首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编程阶段项目-ATM#学习猿地

Python编程阶段项目-ATM#学习猿地

原创
作者头像
学习猿地
修改2020-03-18 17:57:36
3650
修改2020-03-18 17:57:36
举报
文章被收录于专栏:学习猿地学习猿地学习猿地

### ATM系统项目说明文档

> 运用基础阶段所学习的python的知识,来模拟出银行的ATM系统。

>

> 要求:使用面向对象编程来完成这个项目

## ATM系统的主要功能:

1. 注册:用户名,手机号,身份证号(18位),密码(两次确认,长度6位)

2. 查询:账号必须存在,密码(三次机会,不对就锁卡)

3. 取款:账号必须存在,密码(三次机会,不对就锁卡),取款金额不能大于存款

4. 存款:账号必须存在,存款金额不能低于0

5. 转帐:你的账户,转款账户都必须存在,密码(三次机会,不对就锁卡),转账金额不能超过余额

6. 锁卡:账号必须存在,可以使用密码冻结,还可以使用身份证号冻结

7. 解卡:账号必须存在,只能使用身份证号进行解锁

8. 补卡:使用身份证进行补卡,每个身份证只能有一张卡,之前的卡作废

9. 改密:愿密码进行改密,也可以使用身份证进行改密

10. 退出: 保存数据

## 项目分析

> 根据需求进行分析,思考如何对项目进行设计和架构

### 思考问题一:如果使用面向对象编程思想来完成

当前的项目功能和项目演示中,大家看到了几个对象?

#### 银行卡对象:Card  存储银行卡信息

+ 卡号。      cardid

+ 密码          password

+ 余额。      money

+ 是否锁卡。islock

#### 用户对象:Person  存储用户信息

+ 用户名。    name

+ 身份证号.  userid

+ 手机号.      phone

+ 卡.              card.    银行卡对象

#### 控制器对象:    Controller  具体的操作控制类

> 控制器对象中主要就是去实现ATM这个系统中的操作

>

> 在上面定义的那十个方法

1. 注册 :regiser

2. 查询:query

3. 取款:get_money

4. 存款:add_money

5. 转帐:save_money

6. 锁卡:lock

7. 解卡:unlock

8. 补卡:new_card

9. 改密:change_pwd

10. 退出: save

#### 视图对象: Views。 显示操作界面的

欢迎界面,操作界面

### 思考问题二:如何存储数据?

肯定是用文件进行存储。

卡号:用户 ==>  user_dict  ==> user.txt

身份证:卡号 ==> user_id_dict ==> userid.txt

### 开发周期

花4个小时左右的时间,去分析这个项目,可以先动手尝试一部分

花4-10个小时左右,可以去完成和实现这个项目

### 扩展功能

给当前ATM增加一个 交易记录 的功能

就像存折一样,每次对金额的变动都需要记录下来

每个银行卡都有自己的交易记录

记录的格式:

[2019/12/12 12:12:12] 存款 200 元,余额 300 元。

[2019/12/12 13:13:13] 转账 向用户:张三,卡号:100100 转账 100 元,余额 200 元。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档