作业:ATM
一、作业要求:模拟实现一个ATM + 购物商城程序
额度15000或自定义
实现购物商城,买东西加入购物车,调用信用卡接口结账
可以提现,手续费5%
支持多账户登录
支持账户间转账
记录每月日常消费流水
提供还款接口
ATM记录操作日志
提供管理接口,包括添加账户、用户额度,冻结账户等。。。
用户认证用装饰器
二、简单思路
- 先实现ATM的大部分功能,再去实现购物商城的接口调用。
- 功能实现需按照ATM的角色定义,分步实现。
角色:
管理员
1.添加账户✔️
2.用户额度✔️
3.冻结账户✔️
4.解冻账户✔️
普通用户
1.可以提现,手续费5%✔️
2.支持多账户登录✔️
3.支持账户间转账✔️
4.记录每月日常消费流水✔️
5.提供还款接口✔️
6.ATM记录操作日志✔️
实现购物商城,买东西加入购物车,调用信用卡接口结账✔️
用户认证用装饰器:管理员和普通用户进入不同的操作界面✔️
目录
│ shopping.py 商城代码文件
│ will.json 商城试用账户
│
├─bin 执行文件(无业务逻辑)
│ atm.py
│
├─conf 配置文件夹
│ │ settings.py 配置文件
│ │
│ └─__pycache__
│
├─core 业务逻辑
│ │ accounts.py 账户相关操作
│ │ admin.py 管理员相关操作
│ │ logger.py 日志相关操作
│ │ login.py 登录相关操作
│ │ main.py 主业务
│ │ transaction.py 交易相关操作
│ │
│ └─__pycache__
│
├─db 数据目录
│ │ sample.py 账户建立模版
│ │
│ ├─accounts 账户信息
│ │ admin.json 管理员账户信息
│ │
│ └─__pycache__
│
└─log 日志目录
三、流程图
四、参考站点
五、代码
作业:计算器
一、作业要求:模拟计算器开发:
实现加减乘除及拓号优先级解析
用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-25/3 + 7 /399/42998 +10 * 568/14 )) - (-43)/ (16-32) )等类似公式后,必须自己解析里面的(),+,-,,/符号和公式(不能调用eval等类似功能偷懒实现),运算后得出结果,结果必须与真实的计算器所得出的结果一致
二、简单思路
- 用正则表达式从左至右寻找,找到第一个被括号包含且内部不再有括号的算式。
- 用函数计算加减乘除,计算括号内的算式,并将结果替换回算式
- 当不再有括号时,用函数计算整个算式。