首页 > 其他分享 >ATM项目

ATM项目

时间:2022-10-31 23:55:41浏览次数:34  
标签:py 项目 money ATM 用户 购物车 调用 interface

ATM项目

项目架构设计

三层架构
	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.注册功能(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信息的存储

​ 11 .管理员功能

1.用户视图层
2.逻辑接口层
3.数据处理层(数据的增删改查)

标签:py,项目,money,ATM,用户,购物车,调用,interface
From: https://www.cnblogs.com/zhiliaowang/p/16846359.html

相关文章

  • ATM购物车项目
    ATM购物车项目分析注册登陆登陆装饰器查看余额提款额度提现功能充值功能转账功能查看流水添加购物车查看购物车结算购物车ATM功能分析注册1.1先获取用户......
  • ATM
    目录ATM逻辑描述三层框架简介1、第一层(src.py)2、第二层(interface文件夹下内容)3、第三层(db_hanlder)启动函数用户注册功能用户登录common中的小功能检测是否登陆的装饰器判......
  • ATM项目
    ATM项目实战项目需求分析:1.注册(密码要加密)2.登陆3.查看余额4.提现(可自定手续费)5.还款6.转账7.查看流水8.添加购物车功能(商品可配置)9.查看购物车功能10.结算购......
  • ATM
    ATM+购物车1.创建功能字典2.打印功能选项3.执行的功能编号函数4.判断编号是否在功能字典里注册功能:1.获取用户信息2.判断两次密码是否一致4.密码加密(调用h......
  • python第二十五课---ATM购物车所有模块代码,及框架搭建等建议与注释
    ATM购物车1.先把主要用到的文件夹在项目根目录下创建一下!!!2.再先把简单的几个常用的文件创建一下binstart.py#直接写,固定的coresrc.pyconf......
  • ATM+shopping_car ——面条版(待补充)——三层架构思路
    ATM+shopping_car——面条版(待补充)——三层架构思路#coding:utf-8importosimportsysimportjsonroot_dir=os.path.dirname(os.path.dirname(__file__))user......
  • ATM项目
    ATM项目目录框架bin start.pyconf settings.pycore src.pyinterface user_interface.py shop_interface.py bank_interface.py admin_interface.pylib commo......
  • ATM思路
    ATM思路创建文件目录bin文件夹 start.pyconf文件夹 settings.pycore文件夹 conf.pydb文件夹保存用户数据文件interface文件夹 user_interface第二层逻辑......
  • ATM项目思路
    ATM思路创建文件目录bin文件夹 start.pyconf文件夹 settings.pycore文件夹 conf.pydb文件夹保存用户数据文件interface文件夹 user_interface第二层逻辑......
  • ATM
    项目架构设计三层架构 core目录下的src.py(浏览器/用户视图层) interface目录下的多个py文件(框架/逻辑接口层) db目录下db_handler.py(数据库服务/数据处理层)项目目录搭......