ATM 项目
ATM 系统项目说明文档
运用基础阶段所学的 Python 知识,来模拟出银行的 ATM 系统。 要求:使用面向对象编程来完成这个项目
ATM 系统的主要功能:
- 注册:用户名,手机号,身份证号(18 位),密码(两次确认,长度 6 位)
- 查询:账号必须存在,密码(3 次机会,不对就锁卡)
- 取款:账号必须存在,密码(3 次机会,不对就锁卡),取款金额不能大于存款
- 存款:账号必须存在,存款金额不能低于 0 元
- 转账:您的账户,转款账户都必须存在,密码(3 次机会,不对就锁卡),转账金额不能超过余额
- 锁卡:账号必须存在,可以使用密码冻结,还可以使用身份证号冻结
- 解卡:账号必须存在,只能使用身份证号进行解锁
- 补卡:使用身份证进行补卡,每个身份证只能有一张卡,之前的卡作废
- 改密:原密码进行改密,也可以使用身份证进行改密
- 退出:保存数据
项目分析
根据需求进行分析,思考如何对项目进行设计和架构
思考问题一:如何使用面向对象编程思想来完成
当前的项目功能和项目演示中,有几个对象?
银行卡对象: Card 存储银行卡信息
- 卡号: cardid
- 密码: password
- 余额: money
- 是否锁卡: islock
用户对象: Person 存储用户信息
- 用户名: name
- 身份证号: userid
- 手机号: phone
- 卡号: card
控制器对象: Controller 具体的操作控制类
控制器对象中主要就是去实现 ATM 这个系统中的操作 在上面定义的呐十个方法
- 注册:register
- 查询:query
- 取款:get_money
- 存款:add_money
- 转账:save_money
- 锁卡:lock
- 解卡:unlock
- 补卡:new_card
- 改密:change_pwd
- 退出:save
视图对象:Views 显示操作界面
欢迎界面,操作界面
思考问题二:如何存储数据
肯定是用文件进行存储
- 卡号:用户 ===> user_dict ===> user.txt
- 身份证:卡号 ===> user_id_dict ===> userid.txt
项目基本结构搭建
ATM
项目说明文档
项目基本功能
当前的 ATM 系统模拟实现银行 ATM 机的操作系统功能
- 注册:register
- 查询:query
- 取款:get_money
- 存款:add_money
- 转账:save_money
- 锁卡:lock
- 解卡:unlock
- 补卡:new_card
- 改密:change_pwd
- 退出:save
项目基本结构
1 | ├── ATM/ # 项目目录 |
运行环境
- 系统:windows、Mac OS、Linux
- 版本:python3.5+
- 其他:无
迭代计划
- 增加银行操作日志
- 将数据存储更改为数据库 MySQL
详细内容见代码
https://github.com/BlockZachary/Python_oop/tree/master/ATM
更新: 2024-01-10 22:46:43
原文: https://www.yuque.com/zacharyblock/cx2om6/ozwmftr5d8430maz