python 面向对象ATM,不用数据库版本

import time
import random

class Users():

    #注册开户,输入基本信息
    def zhuce(self):
        name = input('请输入你的名字:')
        phone = int(input("电话:"))
        idcard = int(input("身份证号码:"))
        #调用Card的静态方法随机生成卡号
        iccard = int(Card.randomcard())
        # 调用Card的静态方法输入密码
        psw = Card.s_psd()
        mon = int(input('请输入你的钱:'))
        print("你的卡号为%d  密码:%d  金额:%d"%(iccard,psw,mon))
        #将相对应的信息存储到字典里
        dict_m ={iccard:mon}
        dict_c = {iccard:psw}
        dict_n = {name: [phone,idcard,psw]}
        Atm.dict1.update(dict_c)
        Atm.dict2.update(dict_n)
        Atm.dict3.update(dict_m)
        print(Atm.dict2)


class Card():

    @staticmethod
    def randomcard():
        iccard_s = random.choices(['1','2','3','4','5','6','7','8','9'],k=6)
        iccard = ''.join(iccard_s)
        return iccard

    @staticmethod
    def s_psd():
        s = int(input('请输入你的密码:') )
        return s


class Atm():
    #存卡和密码
    dict1 = {}
    #信息
    dict2 = {}
    #卡和钱
    dict3 = {}

    #初始化选择功能
    def select(self):
        print('''
           **********************
           *                    *
           *  welcome to bank   *
           *                    *
           **********************
           ''')
        time.sleep(1)
        print('''
           **********************
           *  1.登陆   2.开户    *
           *  3.查询   4.取款    *
           *  5.存款   0.退出    *
           *  6.转账   7.改密    *
           **********************
           ''')
        num = int(input("请选择服务项目:"))
        return num

    #开户的功能
    def openc(self):
        #创建一个用户
        a = Users()
        #用户调用成员方法在User类中
        a.zhuce()

    def login(self):
        while True:
            num = self.select()
            if  num == 1:
                card = int(input('请输入你的卡号:'))
                psw = int(input('请输入你的密码:'))
                print(Atm.dict1)
                #判断是否存在字典里,不存在则登录不了,登录不了无法进行其他操作
                if card in Atm.dict1:
                    if Atm.dict1.get(card) == psw:
                        print("登录成功")
                        #对功能进行循环
                        while True:
                            num =self.select()
                            if num==1 or num ==2:
                                print('您已经登录')

                            elif num == 3:
                                #查询字典的值
                                cnum = Atm.dict3.get(card)
                                print('查询成功',cnum)

                            elif num == 4:
                                print('取款')
                                qnum = int(input('请输入你要取款的金额:'))
                                Atm.dict3[card] -=qnum
                                print('您现在的余额为:',Atm.dict3[card])
                                print(Atm.dict3)

                            elif num == 5:
                                print('存款')
                                qnum = int(input('请输入你要存款的金额:'))
                                Atm.dict3[card] += qnum
                                print('您现在的余额为:', Atm.dict3[card])
                                print(Atm.dict3)

                            #必须要有两个账号,不然无法转账
                            elif num == 6:
                                zhanghao = int(input('请输入要转账的号码:'))
                                znum = int(input('请输入要转账的金额:'))
                                Atm.dict3[card]-=znum
                                Atm.dict3[zhanghao] +=znum
                                print(Atm.dict3)
                                print('转账成功')

                            elif num == 7:
                                print('更改密码')
                                m = int(input('请输入新密码:'))
                                Atm.dict1[card]=m
                                print('密码更改成功')
                                print(Atm.dict1)
                                
                            elif num == 0:
                                print('退出系统')
                                return
                    else:
                        print("卡号或密码错误")
                else:
                    print('卡号不存在,请注册')
            elif num == 2:
                self.openc()
            elif num == 0:
                print('退出系统')
                return
            else:
                print('抱歉你没有登录,请登录')


if __name__ == '__main__':
    #创建一个Atm机子
    r = Atm()
    #开始登录
    r.login()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值