1.首先分析项目需求:
模拟实现一个ATM + 购物商城程序
额度 15000或自定义---->注册功能
实现购物商城,买东西加入 购物车,调用信用卡接口结账----->购物车,支付
可以提现,手续费5%----->提现
支持多账户登录----->登录
支持账户间转账----->转账
记录日常消费流水----->记录流水
提供还款接口---->还款
ATM记录操作日志---->日志
提供管理接口,包括添加账户、冻结账户等。。。---->管理接口,添加,冻结账户
用户认证用装饰器------>装饰器
用软件功能表达就是:
1、登录
2、注册
3、查看余额
4、转账
5、还款
6、取款
7、查看流水
8、购物
9、查看购买商品
2.设计程序以及程序的架构
通过架构图来设计软件:
3.程序结构:
ATM:程序的根目录
conf:配置文件
setting:放置配置文件,日志字典,日志与db路径
core:核心代码
src.py:核心功能的主体代码,为用户展示功能以及让用户选择,并与用户交互,接收用户输入的数据
在取款/转账/购物完成以后可以在后面加上将此信息加入到该账户的流水(用户接口层注册里面的bankflow)列表中去.
db:数据操作
db_handler.py:数据处理层,里面包含两种方法:save(),传入用户信息字典,存入硬盘..select():传入姓名,若用户存在,返回用户信息字典,若不存在,返回False
wzj.json:存放wzj用户信息的文件,包含内容{用户名,密码,余额,信用卡额度,交易流水,购物车信息,是否锁定}
inter_face:接口层
bank.py:银行接口,包含方法有:
withdraw_interface(money):取款接口:调用src里的登录用户的账户名通过调用db_handler.select方法查询到用户全部信息,更改完余额以后再调用db_handler.save方法重新存入文件
transfer_interface(add_name, money),转账接口
check_balance_interface(),擦看余额接口
check_record_interface(),查看流水接口
user.py:用户接口,包含两个方法
1.用户注册时传入的账号密码,通过调用db_handler里的方法判断,若账户不存在,则写入文件,若存在,则返回用户名已存在,,,,
2.登录时传入用户名与密码,通过调用db_handler里的方法与数据库中的信息匹配
lib:库
common.py:存放常用的函数,当作模块给其他文件调用
log:存放日志文件
readme:软件说明书
start.py:程序入口
4.主要代码
5.购物与支付
在src文件里取到合法的购物车信息与商品总价格后,传入购物车接口,通过调用bank里面的支付接口判断,若余额足够则购买成功,否则返回余额不足