ATM项目
目录框架
bin
start.py
conf
settings.py
core
src.py
interface
user_interface.py
shop_interface.py
bank_interface.py
admin_interface.py
lib
common.py
readme
requirements
start.py 启动文件
import os
import sys
base_dir = os.path.dirname(os.path.dirname(__file__))
sys.path.append(base_dir) # 将获取到的项目目录加入到系统环境变量 保证兼容性
if __name__ == '__main__':
from core import src
src.run()
src.py 用户交互层
定义ATM所需功能函数 函数功能字典 以及运行函数
def register():pass
def login():pass
def check_balance():pass
def withdraw():pass
def pay_back():pass
def transfer():pass
def water_flow():pass
def add_shop_car():pass
def show_shop_car():pass
def pay_shop_car():pass
def admin():pass
func_dict = {
'1': register,
'2': login,
'3': check_balance,
'4': withdraw,
'5': pay_back,
'6': transfer,
'7': water_flow,
'8': add_shop_car,
'9': show_shop_car,
'10': pay_shop_car,
'11': admin
}
def run():
while True:
print("""
1.注册功能
2.登录功能
3.查看余额
4.提现功能
5.还款功能
6.转账功能
7.查看流水
8.添加购物车
9.查看购物车
10.结算购物车
11.管理员功能""")
choice_num = input('请输入您想执行的功能编号>>>:').strip()
if choice_num in func_dict:
func_dict[choice_num]()
else:
print('您输入的编号暂无功能')
简单的框架编写好后编写函数具体功能
注册功能
# 1.获取用户输入得到相关数据
# 2.用户两次输入的密码 判断
# 3.简单的两次密码判断 不相等直接停止函数 相等执行第二层核心代码 并接受第二层的返回值
# 4.密码一致后判断用户是否存在 由此引申出-->需要db目录路径 然后用户文件需要进行拼接 用户相关数据增改查删在第三层 也就是可以直接新增db_handler.py在这里进行用户文件的查询 存储
# 5.由于db目录路径每次拼接用户路径都需要是固定的 将它放置在配置文件
# 6.在第三层编写 用户读取的代码
# 8.判断用户路径是否存在 存在返回该字典 不存在 默认返回None
# 9.判断是否接受到字典
# 12.密码得加密 为了之后其他数据也要加密 做成函数 放在公共功能
# 10.定义用户字典
# 11.存储用户数据第三层再次定义存储用户信息的函数
登录功能
# 1.获取用户输入得到相关数据
# 2.直接调用第二层核心代码 并接受返回值
# 3.查询输入的用户存不存在
# 4.字典存在从而判断密码是否相等 注册时密码加密处理 登录也得做加密
# 5.接受完值 如果登录成功 得记录状态 为之后的购物车 银行相关操作做准备
查看余额
# 1.查看当前用户余额前得登录 在不改变调用与源代码的情况得用装饰器 装饰器公共功能 查看余额余额又是另一个业务接口 不在用户接口了得在银行接口
# 2.获取用户字典
提现功能
# 1.提现功能 获取要提现的金额
# 2.提现的金额得做判断是否是小数或者整数 调用第二层代码
# 3.获取的金额是否符合条件 之后相关功能也需要判断 也得做成函数 放在公共功能
# 4.判断金额是否符合 可以使用异常捕获
# 5.获取用户字典 并获取用户余额
# 6.判断提现金额 与 用户余额 提现通常都需要手续费 手续费 又是可更改的可以放在配置文件中
# 用户余额足够提现金额加手续费 则扣除 并重新存储字典
充值功能
# 1.还款功能 也就是充值 获取充值金额
# 2.也得做判断充值金额是否符号条件 调用第二层
# 3.同提现功能 充值金额做判断
# 4.符合条件后 获取用户字典
# 5.修改字典余额
# 6.重新存储字典
转账功能
# 1.转账功能 先获取接受金额的人 和 转账的金额
# 2.调用第二层
# 3.获取接收人的用户字典
# 4.判断转账金额是否符合条件
# 5.代码能够执行到这就可以读取转账的人的字典 并扣除转账金额 并重新存储 接收人也得更改
添加流水功能
# 1.查看流水 直接调用第二层代码层
# 2.获取当前用户 用户字典
# 判断流水 列表是否有值
# 判断返回的值是否成立
# 成立 遍历数据并打印
# 不成立 直接打印结果
# 3.在第二层核心代码层 添加流水 并思考日志配置
# 4.流水添加成功后运行测试下 是否 成功 并添加日志 并运行测试
购物车
添加购物车代码全在第二层 购物车返回值格式化输出无值直接输出结果
结算购物车全在第二层
标签:功能,py,项目,ATM,用户,pass,def,字典
From: https://www.cnblogs.com/qian-yf/p/16846151.html