项目1 ATM + 购物商城
1 需求分析
1.1 项目需求
模拟实现一个ATM + 购物商城程序
主要功能包括:
- 额度默认为15000,可以自定义额度;
- 实现购物商城,买东西加入购物车,调用信用卡接口结账;
- 可以提现,手续费5%;
- 支持多账户登录;
- 支持账户间转账;
- 记录每月日常消费流水;
- 提供还款接口;
- ATM记录操作日志;
- 提供管理接口,包括添加账户、用户额度,冻结账户等;
- 用户认证用装饰器。
1.2 提取功能
额度默认为15000,可以自定义额度
=> 注册功能
实现购物商城,买东西加入购物车,调用信用卡接口结账
=> 购物车功能 + 支付功能
可以提现,手续费5%
=> 提现功能 + 查询余额功能
支持多账户登录
=> 登录功能
支持账户间转账
=> 转账功能
记录每月日常消费流水
=> 记录/查看消费流水
提供还款接口
=> 接口功能
ATM记录操作日志
=> 日志功能
提供管理接口,包括添加账户、用户额度,冻结账户等
=> 管理员功能
用户认证用装饰器
=> 登录认证装饰器
1.3 需求分类
提供给用户选择与操作的功能
注册功能
登录功能
查询余额功能
提现功能
转账功能
购物车功能(添加 + 查看)
查看消费流水
2 软件架构设计
2.1 三层架构
- 用户视图层 (View)
用于与用户进行交互,接收用户输入的数据,交给逻辑接口层处理,
用户视图层会接受逻辑接口层的结果并展示给用户。 - 逻辑接口层 (Control)
包括所有核心逻辑功能,供用户视图层调用,也会控制数据处理层对数据进行增删改查。
相当于用户视图层与数据处理层的桥梁。 - 数据处理层 (Module)
接收来自逻辑接口层的参数或命令,返回或保存数据,包括对数据进行增删改查等相关功能。
以注册功能为例
2.2 项目目录结构
ShoppingSystem
│ README.md
│ start.py
│
├─bin
├─conf
│ settings.py
│
├─core
│ src.py
│
├─db
│ │ db_handler.py
│ │
│ ├─commodity_data
│ │ commodity_data.json
│ │
│ └─user_data
│
├─interface
│ bank_interface.py
│ shop_interface.py
│ user_interface.py
│
├─lib
│ common.py
│
└─log
shop_atm.log
3 代码
项目代码
https://github.com/feiernk/ShoppingSystem