首页 > 其他分享 >ATM

ATM

时间:2022-10-31 22:14:33浏览次数:103  
标签:py money ATM 用户 购物车 调用 interface

项目架构设计

三层架构
	core目录下的src.py(浏览器/用户视图层)
	interface目录下的多个py文件(框架/逻辑接口层)
	db目录下db_handler.py(数据库服务/数据处理层)

项目目录搭建

ATM
-bin
	-start.py
-conf
	-settings.py   一般全大写
-core
	-src.py
-interface
	-user_interface.py
	-bank_interface.py
	-shop_interface,py
	-admin_interface.py
-db
	-userinfo.txt
	-db_handler.py
-log
	-log.log
-lib
	-common.py
-README
-requirements.txt

项目功能搭建

1.注册功能
2.登陆功能
3.查看余额
4.提现功能
5.还款功能
6.转功能
7.查看流水-记录日常流水
8.添加购物车功能
9.查看购物车功能
10.结算购物车功能
11.管理员功能-添加账户、用户额度、冻结账户

代码实现

1.项目搭建

2.功能搭建

3.分步实现功能

1.1.注册功能(user_interface.py)

"""  牢记三层结构
		1.用户视图层
		2.逻辑接口层
		3.数据处理层(数据的增删改查)
"""
1.用户视图层
	1.1  获得用户信息
	1.2  判断两次密码是否一致
	1.3  直接调用用户注册接口
	1.4  接收返回值并打印
2.逻辑接口层(register_interface)
	2.1  判断用户是否存在,调用第三层数据库
	2.2  用户存在则返回用户已经存在,结束本次执行代码
	2.2  用户不存在,则对用户的密码进行加密 调用公共工具common的加密函数进行加密
	2.3  构造用户字典并调用第三次数据处理层进行数据序列化进json文件的存储
	2.4   返回用户注册成功
3.数据处理层(数据的增删改查)
	3.1  查看用户是否存在,存在则返回给接口层用户字典信息
	3.2  拼接路径完成用户注册(用户信息的存储)

2.登录功能(user_interface.py)

1.用户视图层
	1.1 获取相关用户信息
	1.2 判断用户名是否存在,直接调用用户登录接口
	1.3 接收返回值并打印
	
注意:""" 登录接口返回的数据值有两个,为了保证接口调用返回值的一致性,应该让所有的接口函数返回值个数保持一致,都应该变成两个"""

2.逻辑接口层(login_interface)
	2.1 判断用户名是否存在,调用第三层数据的查询
	2.2 字典接收第三层返回,判断字典是否有数据,结果为false 返回'用户不存在'
	2.3 用户存在,进行校验密码,调用公共工具get_hash对密码进行加密
	2.4 判断密码是否正确,正确返回用户登录成功,不正确返回'用户密码错误'

3.数据处理层(数据的增删改查)
	3.1 查看用户是否存在,存在则返回给接口层用户字典信息
​	3.查看流水功能(bank_interface.py)
1.用户视图层
	1.1 直接调用查看账户余额的接口
	1.2 接收返回值并打印
2.逻辑接口层(check_flow_interface)
	2.1 查询当前用户字典数据 调用第三层数据的查询
	2.2 利用返回的字典直接查看余额
	2.3 将余额返回给第一层供用户浏览
3.数据处理层(数据的增删改查)
	3.1 返回给第二层用户字典
4.提现功能(bank_interface.py)
1.用户视图层
	1.1 输入用户想要提现的数额withdraw_money
	1.2 直接调用提现的接口
	1.3 接收返回值并打印
2.逻辑接口层(withdraw_intrface)
	2.1 调用common的判断输入的withdraw_money是否整数或小数
	2.2 如果withdraw_money不是整数或小数,则return给第一层'请输入符合要求的整数或小数'
	2.3 如果withdraw_money符合要求,则查询当前用户字典数据 调用第三层数据的查询,并用字典接收
	2.4 计算提现的数目和手续费的总和
	2.5 判断提现的总和与用户账户余额比较
	2.6 账户余额大于提现总和,账户余额减去提现金额,再重新写入第三层数据库中的用户字典
	2.7 返回给第一层'转账成功'
	2.8  账户余额于于提现总和 ,直接返回给第一层并提示'账户余额不足,请先充值'
3.数据处理层(数据的增删改查)
	3.1 进行用户信息的存储
​	5.还款功能(bank_interface.py)
1.用户视图层
	1.1 输入客户想充值的金额pay_money
	1.2 直接调用充值的接口
	1.3  接收返回值并打印
2.逻辑接口层(pay_money_interface)
	2.1 调用common的判断输入的pay_money是否整数或小数
	2.2 如果pay_money不是整数或小数,则return给第一层'请输入符合要求的整数或小数'
	2.3 查询当前用户字典数据
	2.4 将还款金额加入账户余额中,
	2.5 再重新写入第三层数据库
	2.6 返回给第一层 '充值成功'
3.数据处理层(数据的增删改查)
	3.1 进行用户信息的存储
​	6.转账功能(bank_interface.py)
1.用户视图层
	1.1 获取要转账的用户target_name
	1.2 获取转账的金额target_money
	1.3 调用转账接口
	1.4 接收结果并打印
2.逻辑接口层(transfer_interface)
	2.1 传过来的值有 is_login.get('username'),target_name,target_money
	2.2 校验被转账用户target_name是否存在 调用第三层数据查询,并用target_dict接收
	2.3 判断字典是否为空,取反(not)操作 if not target_dict 为false 则返回第一层 '用户不存在'
	2.4 判断结果为True,则调用common的判断输入的target_money是否整数或小数
	2.5 如果target_money不是整数或小数,则return给第一层'请输入符合要求的整数或小数'
	2.6 target_money是整数或小数,调用第三层数据库获取转账人的信息,并用user_dict接收
	2.7 判断当前账户余额是否充足 当余额大于target_money,转账人余额减掉target_money,并调用第三层序列化更新当前用户is_login.get('username')信息
	2.8 被转账人余额加上target_money,并调用第三层序列化更新用户target_name信息
	2.9 返回给第一层 '转账成功'
	2.10 判断当前账户余额不足 当余额小于target_money,直接返回给第一层'账户余额不足'
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典target_dict
	3.2 查看用户并返回给第二层用户字典user_dict
	3.3 进行用户user_dict信息的存储
	3.4 进行用户target_dict信息的存储
7.查看流水(bank_interface.py)
1.用户视图层
	1.1 直接调用查看的流水接口
	1.2 接收结果并打印
2.逻辑接口层(check_flow_interface)
	2.1 直接调用第三层数据库信息查看流水信息
	2.2 判断用户流水信息是否为空
	2.3 无流水信息返回 '该用户暂无流水记录'
	2.4 有流水信息直接返回用户的流水信息user_dict.get('water_flow')
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典user_dict
​	8.添加购物车功能(shop_interface.py)
1.用户视图层
	1.1 直接调用添加购物车接口
	1.2 接收结果并打印
2.逻辑接口层(add_shop_car_interface)
	2.1 获取商品信息
	2.2 循环打印商品信息供用户选择
	2.3 获取用户输入的商品编号choice_num
	2.4 判断编号是否是纯数字并判断数字是否超出范围
	2.5 根据商品编号获取商品信息
	2.6 获取想要购买的商品数量good_num并判断商品数量是否是纯数
	2.7 构造临时小字典存储商品信息 temp_shop_car
	2.8 写入临时小字典中temp_shop_car
	2.9 添加结束标志'q' 用于保存购物车数据
	2.10 调用第三层获取当前登录用户的字典数据user_data_dict
	2.11 获得old_shop_car = user_data_dict.get('shop_car')
	2.12 保存购物车数据 判断存之前商品是否已经添加,分别做各自的添加操作
	2.13 调用第三层的数据保存函数
	2.14 返回给第一层 '添加购物车成功 欢迎下次再来'
	
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典user_data_dict
	3.2 进行用户user_data_dictt信息的存储
​	9.查看购物车功能(shop_interface.py)
1.用户视图层
	1.1 直接调用查看购物车接口
	1.2 接收结果并打印
2.逻辑接口层(check_shop_car_interface)
	2.1 调用第三层数据库,获取取当前登录用户的字典数据并用user_dict接收
	2.2 获取当前用户购物车数据shop_car
	2.3 判断用户购物车是否有数据
	2.4 如果购物车有数据,返回购物车信息'shop_car'
	2.5 购物车为空,则返回 '暂无购物车数据'
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典user_dict
10.结算购物车功能(shop_interface.py)
1.用户视图层
	1.1 直接调用查看购物车接口
	1.2 接收结果并打印
2.逻辑接口层(clear_shop_car_interface)
	2.1 调用第三层数据库,获取取当前登录用户的字典数据并用user_dict接收
	2.2 获取当前用户购物车数据及账户余额current_balance
	2.3 取反操作 如果购物车为空则直接返回 '购物车空空如也'
	2.4 统计购物车商品总价total_money
	2.5 比较账户余额与商品总价
	2.6 当total_money > current_balance时,直接返回 '账户余额不够'
	2.7 当total_money < current_balance时,用户的账户余额静减去total_money
	2.8 清空购物车user_data_dict['shop_car'] = {} ,并调第三层数据库存储数据
	2.9 返回给第一层 '消费的total_money和账户余额'
3.数据处理层(数据的增删改查)
	3.1 查看用户并返回给第二层用户字典user_dict
	3.2 进行用户user_data_dictt信息的存储

标签:py,money,ATM,用户,购物车,调用,interface
From: https://www.cnblogs.com/wxlxl/p/16846010.html

相关文章

  • ATM+购物车功能逻辑
    ATM+购物车功能逻辑功能列表1、注册功能2、登录功能3、查看余额4、体现功能5、充值功能6、转账功能7、查看流水8、添加购物车9、查看购物车10、结算购物车11、......
  • ATM项目实战
    ATM逻辑描述三层框架简介这里我们使用三层框架的结构编写代码1、第一层(src.py)功能展示和数据获取层,顾名思义打印数据或是获取用户输入2、第二层(interface文件夹下内......
  • ATM购物车(思路流程)
    ATM购物车(思路流程)启动文件binstart.py整个项目的启动文件在这里启动,去调展示层展示层coresrc.py获取用户信息把结果展示给用户逻辑判断interfanca......
  • ATM编写思路
    ATM编写思路src文件主体文件写入需要的功能函数 各种功能的函数写一个主体框架的函数 设置一个调用各种功能函数的字典打印操作获取用户选择的功能编号每一个函数......
  • ATM+购物车
    ATM+购物车项目分析1.项目功能需求1.注册功能2.登录功能3.查看余额4.提现功能5.充值功能6.转账功能7.查看流水8.添加购物车......
  • ATM+购物车开发流程
    ATM项目开发流程1.项目需求分析ATM一系列小功能:注册,登录,提现,转账,充值,查看流水,购物车,管理员2.ATM架构设计第一层与用户直接打交道不参与核心逻辑的编写(数据展示与......
  • ATM+购物车项目实战练习
    ATM+购物车项目实战练习项目开发流程在实际的项目开发中,我们通常要经历项目需求分析,架构设计,分组开发,提交测试,交付上线等环节,而作为程序员的我们就可能要经历前三个环节......
  • ATM购物车项目概要
    目录ATM购物车项目概要项目开发流程项目需求分析(具体功能)项目架构设计ATM购物车项目概要项目开发流程需求分析架构设计分组开发提交测试交付上线项目需求分析(......
  • ATM+购物车(思路流程)
    ATM+购物车(思路流程)启动文件首先,创建一个start.py作为整个项目启动的启动文件然后导入os和sys模块,从core中导入src,也就是展示给用户看的在src.py用户视图层中,先......
  • ATM项目的编写
    目录ATM项目的编写项目流程开发项目需求分析项目架构设计项目目录搭建项目功能搭建ATM项目的编写项目流程开发1.需求分析2.架构设计3.分组开发4.提交测试5.交付上线......