首页 > 其他分享 >ATM(考试)

ATM(考试)

时间:2023-12-29 20:44:48浏览次数:20  
标签:self ATM number choice 考试 print card user

import random
import datetime

class ATM:
def init(self):
self.users = {}
self.logged_in_user = None
self.bank_info = {'total_balance': 1000000}
self.transaction_log = []

def card_number(self):
    return random.randint(1000, 9999)

def register(self):
    name = input("请输入姓名:>>>>>>")
    password = input("请输入密码:>>>>>>")
    card_number = self.card_number()

    user = {'name': name, 'password': password, 'card_number': card_number, 'balance': 0, 'activated': False}
    self.users[card_number] = user

    print(f'注册成功!你的卡号是:>>>>>{card_number}')

def login(self):
    card_number = input('请输入卡号:>>>>>>>')
    password = input('请输入密码:>>>>>>>')
    user = self.users.get(int(card_number))
    if user and user['password'] == password and user['activated']:
        self.logged_in_user = user
        print(f"欢迎{user['name']}!")
    else:
        print('登录失败')

def activate_card(self):
    card_number = input("请输入卡号:>>>>>>>")
    user = self.users.get(int(card_number))
    if user:
        user['activated'] = True
        print("银行卡激活成功")
    else:
        print('卡号不存在,重新输入')

def draw_money(self):
    amount = float(input("输入取款金额:>>>>>>"))
    if amount > 0 and amount <= self.logged_in_user['balance']:
        self.logged_in_user['balance'] -= amount
        self.bank_info['total_balance'] -= amount
        self.transaction_log.append(f'{datetime.datetime.now()}:取款{amount}元')
        print('取款成功')
    else:
        print('取款失败,检查金额或余额是否足够')

def transfer_money(self):
    other_card_number = input("请输入对方卡号:>>>>>>")
    amount = float(input("请输入转账金额:>>>>>>>"))
    other_card = self.users.get(int(other_card_number))
    if other_card and amount > 0 and amount <= self.logged_in_user['balance']:
        self.logged_in_user['balance'] -= amount
        other_card['balance'] += amount
        self.transaction_log.append(f"{datetime.datetime.now()}:转账{amount}元给卡号{other_card_number}")
        print('转账成功')
    else:
        print('转账失败,检查对方卡号或你的余额')

def recharge_money(self):
    amount = float(input('请输入充值金额:>>>>>>'))
    if amount > 0:
        self.logged_in_user['balance'] += amount
        self.bank_info['total_balance'] += amount
        self.transaction_log.append(f"{datetime.datetime.now()}: 充值 {amount} 元")
        print("充值成功!")
    else:
        print('充值失败,输入正确的充值金额')

def search_history(self):
    print('交易流水')
    for log in self.transaction_log:
        print(log)

def search_bank_info(self):
    print("银行信息:")
    print(f"总余额: {self.bank_info['total_balance']}")
    print(f"你的卡号: {self.logged_in_user['card_number']}")
    print(f"你的余额: {self.logged_in_user['balance']}")
    self.search_history()

def menu(self):
    while True:
        print("\n===================用户功能菜单=====================")
        print("1. 注册")
        print("2. 登陆")
        print("3. 激活银行卡")
        print("4. 取款")
        print("5. 转账")
        print("6. 充值余额")
        print("7. 查看流水")
        print("8. 查看日志")
        print("9. 查看银行信息")
        print("======================欢迎使用=======================")

        choice = input("请选择操作: ")

        if choice == '1':
            self.register()
        elif choice == '2':
            self.login()
        elif choice == '3':
            self.activate_card()
        elif choice == '4':
            self.draw_money()
        elif choice == '5':
            self.transfer_money()
        elif choice == '6':
            self.recharge_money()
        elif choice == '7':
            self.search_history()
        elif choice == '8':
            print("日志:")
            for log in self.transaction_log:
                print(log)
        elif choice == '9':
            if self.logged_in_user:
                self.search_bank_info()
            else:
                print("请先登录!")
        else:
            print("无效的选择,请重新输入。")
if __name__ == "__main__":
    atm = ATM()
    atm.menu()

标签:self,ATM,number,choice,考试,print,card,user
From: https://www.cnblogs.com/dhyuan/p/17935641.html

相关文章

  • 员工管理系统(考试)
    classSyestem:def__init__(self):self.employees={}defregister(self):username=input('请输入用户名:>>>>>>')password=input('请输入密码:>>>>>>')print('注册成功......
  • 全国计算机等级考试简介 School of Computer Science and Engineering
    全国计算机等级考试简介SchoolofComputerScienceandEngineering阅读量:1185     发布时间:2014-05-25分享到: 全国计算机等级考试(NationalComputerRankExamination,简称NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查应试人......
  • 管理类联考考试科目有哪些?一次性搞懂!
    考研,即研究生入学考试,是许多大学毕业生为了继续深造而参加的考试。一般来说,考研的科目包括英语、政治、数学等多个学科,考试时间通常会持续数天。然而,有一些专业的考研只需要一天的时间,这就是管理类的专业学位考试。管理类联考是什么?管理类联考是指管理类专业硕士研究生入学统一考试......
  • 2024年PMI-ACP考试安排已出,备考攻略请收下
    PMI-ACP®是一种专业认证,旨在验证专业人士在敏捷项目管理方面的知识和技能。对于那些对提高项目管理能力和拓宽职业发展道路感兴趣的人来说,考取PMI-ACP®证书是一个有吸引力的选择。下面一起来了解2024年PMI-ACP®报考相关信息。 2024年PMI-ACP®考试时间:经PMI®和中国国际人才交......
  • 2024年3月PMP考试时间已定!尽快完成英文报名!
    2024年3月PMI®考试暂定在3月10日(周日)举办,报名预计在1月10日前后开始。请合理安排学习备考时间,尽早完成英文网站注册。最终报名日期以基金会官网发布的通知为准。 小贴士:计划参加2024年3月考试的考生,如尚未获得PMI®英文有效期,尽快登录PMI®官网进行申请,以免耽误考试报名。需要满......
  • 20230318_Test考试分析
    \(T1:\)题目链接入门模拟题。维护这个篮子现在的作用端点的位置即可。预计得分:\(100pts\)。\(T2:\)题目链接读题可以发现\(n\leq400\)。于是可以想到直接暴力预处理前缀和。然后用\(O(n^3)\)枚举正方形左上角的点的坐标\([i,j]\)和这个正方形的边长即可。预计得......
  • SOLIDWOKRS CSWA助理工程师认证考试报名开启
     一、 CSWA助理工程师认证考试简介CSWA全称CertifiedSolidWorksAssociate,即SolidWorks认证助理工程师证书考试。是DSSolidWorks公司推出的全球性认证考试项目。该考试主要考察用户对SolidWorks软件在设计和工程领域中工作所需的技能。该认证考试项目是被实践证明的、用于评价......
  • 2023年12月|ORACLE OCP 19C考试通过
    数据库工程师-OracleOCP19C认证介绍厦门微思网络......
  • 12月22日考试
    测试信息安全系统有时间戳的需求,因此密码系统有实时钟芯片。假设实时钟芯片的IO映像基址是全局变量unsigntedintTIME的指针地址,时间存放在(基址+2)的寄存器中(默认值为当前时间),寄存器是16位,结构如附件中图所示1.按照下图给出TIME的注释(6‘)提取位插入位2.定义基于16位......
  • 2024年1-6月CISP考试计划安排表
    想获取更多『 思科 |华为|红帽认证真题』、『网工软考真题』、『大厂岗位内推』,请关注公众号:HCIE考证研究所......