**
- 此次内容适用于python初学者
**
一、基础阶段项目要求
1.ATM自动存取款系统的程序
1.注册(用户名,手机号,身份证号(18位),密码(确认两次)(长度6位))
2.查询(账号(必须存在),密码(确认3次,不对就锁卡))
3.取款(账号(必须存在),密码(确认3次,不对就锁卡))
4.存款(账号(必须存在),金额不能低于0,存款的金额必须是纯数字)
5.转账(你的账号,被转的账号(都必须存在),你的密码(确认3次,不对就锁卡),转账的金额不得超过你的余额,必须是纯数字)
6.锁卡(账号(必须存在),密码冻结,身份证锁(身份证的长度))
7.解卡(账号(必须存在),身份证解)
8.补卡(身份证(每个身份证一张卡))
9.改密(原密码改密(确认密码),身份证改密)
10.退出(保存)
2.写项目报告
1.姓名,所在班级,指导老师
2.项目功能汇总
3.每个功能的名字,逻辑判断关系
4.项目总结(心得)
二、需求分析
Card 存储卡的信息
卡号,密码,余额,是否锁定
cardid,password,money,islock
Person 用户类,存储用户信息的
用户名,身份证号,手机号,卡(上一个卡(对象))
name,userid,phone,card
View 视图界面
登陆(管理员账号登陆),欢迎界面,操作界面
#Operation类(具体的操作功能实现)
把我们需要的十个功能都放在这个类里
#Main 在这个类里面实现所有的操作。
1.注册:register
2.查询:query
3.存钱:save_money
4.取钱:get_money
5.转账:trans_money
6.改密:change_pwd
7.锁卡:lock
8.解卡:unlock
9.补卡:new_card
0.退出:save
卡号:用户 user_dict user.txt
身份证:卡号 user_id_dict userid.txt
三、银行ATM机功能文档
模拟银行取款等功能文档说明:
主要实现功能:
一.实现注册银行卡功能
二. 实现查询银行卡余额功能
三. 实现存款功能
四. 实现取款功能
五. 实现转账功能
六. 实现银行卡更换密码功能
七. 实现银行卡冻结功能
八. 实现银行卡解封功能
九. 实现补卡功能
零.结束程序,保存数据到文件
注意:输入值判断是否合法,是否为空,是否不存在等,模块的导入。只有触发0时数据才被存到文件中,否则数据丢失。
详细分析:根据以上功能设计五个类
1.Card(卡类)
属性: 卡号(cardid) 银行卡密码(password) 银行卡余额(money)
默认是否锁卡islock = False
2.Person(用户类)
属性: 用户名(name) 身份证号(userid) 手机号(phone) 银行卡(card)
3.View(管理员登录入口 及 页面操作显示)
4.Operation (操作类 主要功能封装在此类中)
第零部分:
(一)定义初始化方法: 加载{卡号:用户},加载{身份证号:用户}
(二)定义save方法:把数据写入到文件中
(三)定义load_user方法: 如果文件存在,读取内容给字典;如果不存在,定义字典为空。
(四)定义load_user_id方法:如果文件存在,读取内容给字典;如果不存在,定义字典为空。
第一部分(注册):
(一)定义register方法:输入用户名、身份证号、手机号、判断是否合法,调用get_pwd方法得到密码;银行卡余额定义为10;实例化银行卡类及用户类。
添加到字典里:
user.txt =>卡号: 用户 => user_dict
userid.txt =>身份证:卡号 => user_id_dict
开户成功
(二)定义get_pwd方法:判断密码两次是否相等,调用try_pwd方法
(三)定义try_pwd方法:判断密码是否合法
(四)定义get_card_id方法:随机获取不重复的银行卡号,
第二部分(查询):
(一)定义query方法:调用get_card_info方法,如果卡对象存在,查看此卡是否被冻结,冻结则提示;没冻结,则调用check_pw