ATM银行系统(对象初级练习)

目录

一、题目描述

二、分析

三、源码


一、题目描述

定义表示银行卡和ATM(自动柜员机)的类,要求ATM可以实现读卡、存钱、取钱、转账的功能。

二、分析

1、首先根据题目要求,需要创建两个类,Card()和ATM(),

2、Card类中有卡号,有效期、以及卡的类型三个属性,在实例化对象时对其值初始化,还重写了str方法,也就是输出格式化,在遇到print时直接调用,然后输出规定格式的内容

3、ATM类的实例化方法中没有对其赋初值,但是有三个对象属性;

第一个是account:以字典的形式来存储卡号、密码以及余额;用字典的键来存卡号,再将其它的信息用字典存起来做为值,这样进行判断的时候可以通过键来取到卡的其它信息;(用字典存储的好处就是可以通过键来获取值)

第二个是curren_card,即用来存储当前卡是否存在,初始值为Nnoe

第三个是curren_account,在读卡的时候,如果卡号在数据库中(此处的数据库是最开始声明的账户字典)这将其键对应的值赋值给此变量,方便后续对密码以及余额操作;(关键点)

4.ATM中的方法:

①读卡——read_card(self,card)

要传入一个卡的对象,首先是判断插入的卡的卡号(卡类的实例化属性)是否在ATM的数据库中,如果再就将其卡号对应的值用curren_account给存储起来,在通过current_account(字典)取出其中的密码,与用户输入的密码进行比较是否一致,如果一致则读卡成功,可以进行下一步,密码只有三次的输入机会,如果三次错误则提示卡被收回;

 def read_card(self,card):
        # 插卡
        # 阅读
        # 输入密码
        # 字典的成员运算符 in 验证的就是键
        if card.card_no in self.accounts:
            self.current_account = self.accounts[card.card_no]
            for _ in range(3):
                password = input('请输入您的密码')
                if password != self.current_account['password']:
                    print('密码错误&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值