作业要求
模拟实现一个ATM + 购物商城程序
- 额度 15000或自定义
- 实现购物商城,买东西加入 购物车,调用信用卡接口结账
- 可以提现,手续费5%
- 支持多账户登录
- 支持账户间转账
- 记录每月日常消费流水
- 提供还款接口
- ATM记录操作日志
- 提供管理接口,包括添加账户、用户额度,冻结账户等。。。
- 用户认证用装饰器
作业流程图
ATM_购物车程序目录
——————————————————————————————
作业中应注意的问题和解决方法
1.在创建用户文件的时候,要用json类型,这样可以避免用户信息修改的时候覆盖文件,导致其他的用户信息丢失。
2.程序的主入口py文件,在主目录的下一级,这样可以方面调用每一个模块之中的函数。
3.日志中的Formatter格式不要写死,可以在创建一个py文件,来进行调用。
4.用户名和密码进行判断的时候,可以通过用户名等同于文件名,进行判断。
5.创建setting文件的时候一定要不能随便更改其中的参数。
6.在对文件进行读取的时候,要利用os.path.dirname返回到前两级的目录,以及os.path.abspath获取到绝对路径,这样才可以打开用户文件。
7.在main.py的文件当中要尽量使用函数,这样可以减少代码的数量,增加可读性。
————————————————————————————————
manage.json
{"account":"manage","password":"1234","user":"manage"}
atm_start.py
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#程序入口 if __name__ == '__main__': from atm import exchange exchange.user_exchange()
shopping.py
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import json,os from tabulate import tabulate from atm.auth import userjudge from atm.logger import logger1 from conf.settings import user_path from atm.conroller_class import user_file shopping_list = [ ['1','Mac_pro','12000'] , ['2','iphone','8000'], ['3','Mi_mix','5000'] ] k = ["sum","goods","price"] print(tabulate(shopping_list, headers=k, tablefmt="grid")) print("