ATM +购物车(思路流程)

启动文件

首先,创建一个start.py作为整个项目启动的启动文件
然后导入os和sys模块,从core中导入src,也就是展示给用户看的
在src.py用户视图层中,先写好各个功能函数名,然后创建一个函数功能字典。
然后就是视图层的主程序,打印选择列表让用户选择,根据选择的编号来调用不同的功能函数。

配置信息

在conf的setting.py中,编写配置文件。
写好项目的根目录径BASE_PATH
写好商品信息路径GOODS_PATH
写好用户信息路径USER_DATA_PATH
然后写上日志配置(日志格式可以复制粘贴过来)

公共方法

在lib的common.py中存放公共方法
导入conf的settings配置
写上用户的登录认证装饰器
导入hashlib模块,写上密码的md5加密,以json格式存储密码。
导入logging.config,添加日志功能,在接口层使用。

数据处理层

在db_handler.py数据处理层中,导入json和os模块,从conf中导入settings配置。
编写查看数据函数,接收接口层传过来的username用户名,拼接用户json文件路径。
校验用户json文件,打开数据,并返回给接口层。
编写保存数据函数,用于添加新数据或者更新数据。
拼接用户的数据字典,保存用户数据。
编写获取商品数据函数,用于获取商品数据。
商品数据也是以json格式读取的。

注册功能

编写interface的user_interface.py的注册接口。
查看用户是否存在,若存在,返回“用户已存在!”
若不存在,就编写一个用户字典保存为“用户名.json”。
然后调用数据处理层的bd_hander的save功能进行保存。
在core的src.py用户视图层中,编写注册函数。
先定义一个全局login_user = None,用来记录用户登录状态的
让用户输入用户名和密码进行注册,两次密码必须相同。
调用接口层的注册接口,将用户名与密码交给接口层来进行处理。
根据flag判断用户注册是否成功,flag控制 return的结束。

登录功能

编写interface的user_interface.py的登录接口。
先调用数据处理层的db_handler的select功能查看当前用户数据是否存在
如果存在,就继续执行,如果不存在,就输入“用户不存在,请重新输入!”
在根据get用户指定的'locker'的 True或 False判断用户是否被冻结。
然后给用户的密码做一次加密,和取过来的加密的用户密码比对,查看是否一致。
如果一致,就登陆成功;如果不一致,密码不一致。
在core的src.py用户视图层中,编写登录函数。
让用户输入用户名和密码。
调用接口层的登录接口,将用户名与密码交给接口层来进行处理。
根据flag判断用户是否存在,flag控制 return结束。

查看余额功能

编写interface的user_interface.py的查看余额接口。
编写user_dict调用数据处理层的db_handler的select功能查看当前用户的余额。
返回给用户视图层。
在core的src.py用户视图层中,编写查看余额函数。
只有登录的用户才能查看。
调用接口层的查看余额接口,传入当前登录的用户名。
打印用户名和用户金额。

提现功能

编写interface的user_interface.py的查看提现接口。
编写user_dict调用数据处理层的db_handler的select功能查看当前用户的余额。
把当前余额变成整型,然后计算手续费。
判断用户金额是否足够,如果足够,就修改用户字典中的金额,如果不足够,就退出并提示“余额不足,请先充值!”
记录流水,调用数据处理层的db_handler的save和update功能保存并更新数据。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写提现函数。
只有登录的用户才可以提现。
让用户输入提现金额,判断用户输入的金额是否是数字,如果不是,就重新输入。
用户提现金额,将提现的金额交付给接口层来处理,传入当前登录用户名。
调用接口层的查看余额接口,传入当前登录的用户名。
打印用户名和提现信息和余额信息。

还款功能

编写interface的bank_interface.py的转账接口。
编写login_dict和to_user_dict调用数据处理层的db_handler的select功能。
获取“当前用户”和“目标用户”字典,判断目标用户是否存在,若用户存在,则判断“当前用户转账金额”是否足够。
若足够,给当前用户的数据,做减钱操作;给目标用户的数据,做加钱操作,然后记录双方流水。
调用数据处理层的db_handler的save功能保存数据。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写转账函数。
只有登录的用户才能提现。
判断用户输入金额是否数字或者>0,如果不是,就重新输入。
让用户输入转账的用户和金额。将输入的信息交付给接口层来处理,传入当前登录的用户名、对方用户名、金额。
调用接口层的,打印用户名和还款信息和余额信息。

流水功能

编写interface的bank_interface.py的查看流水接口。
编写user_flow_dict字典,调用数据处理层的db_handler的select功能,传入当前用户。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写查看流水函数。
调用interface的bank_interface.py接口,传入当前用户。
调用流水接口,输入流水信息。

添加购物车功能

编写interface的shop_interface.py的购物接口。
编写goods_dict字典,调用数据处理层的db_handler的select_goods功能查看商品信息。
将结果返回给用户视图层。
编写interface的shop_interface.py的add_shop_car_interface 购物车添加接口。
将用户视图层传来的商品信息存入字典。
如果商品不在购物车中则直接加入,商品在购物车中,修改商品数量以及总价。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写购物函数。
调用interface的bank_interface.py接口,获取全部商品信息并打印。
将对应编号的商品加入购物车,调用add_shop_car_interface购物车添加接口。
调用购物车添加接口,已经入购物车的信息。

购物车结算功能

编写interface的shop_interface.py的查看购物车接口。
编写user_dict字典,调用数据处理层的db_handler的select功能,传入当前用户。
编写shop_car_dict字典,取出user_dict字典中的"shop_car",然后记录流水信息。
将结果返回给用户视图层。
在core的src.py用户视图层中,编写查看购物车函数。
调用interface的shop_interface.py接口,获取用户字典里的"shop_car"
打印购物车内的信息,让用户选择要购买的购物车内的商品ID,输入c清空购物车,输入q退出该界面。
如果ID不存在,就跳过本次循环,输入信息"商品不存在"。
获取选择付款商品的商品信息并打印。

ATM+购物车(思路流程)的更多相关文章

  1. ATM+购物车项目流程

    目录 需求分析 架构设计 功能实现 搭建文件目录 conf配置文件夹 lib公共功能文件夹 db数据文件夹 interface业务逻辑层文件夹 core表现层文件夹 测试 最外层功能(src.py) ...

  2. python以ATM+购物车剖析一个项目的由来及流程

    ATM+购物车 一个项目是如何从无到有的 ''' 项目的由来,几个阶段 0.采集项目需求 1.需求分析 2.程序的架构设计 3.分任务开发 4.测试 5.上线运行 ''' 需求分析: # 对项目需求进 ...

  3. ATM购物车+三层结构项目设计

    ATM购物车项目 模拟实现一个ATM + 购物商城程序. 该程序实现普通用户的登录注册.提现充值还款等功能,并且支持到网上商城购物的功能. 账户余额足够支付商品价格时,扣款支付:余额不足时,无法支付, ...

  4. 使用jQuery制作一个简易的购物车结算流程

    因为今天下午时候在网上买了东西,在结算界面的时候突发奇想的也想自己动手做一个结算界面,当然了,只是一个最简易的结算界面,有商品数量的加减,有单价和小计,单个多个删除,全选和区县全选等等一些小功能,我在 ...

  5. day19 十九、ATM+购物车

    项目:ATM+购物车 作业需求:模拟实现一个ATM + 购物商城程序1.额度 15000或自定义 2.实现购物商城,买东西加入 购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.每月22号出账 ...

  6. Python 入门基础16 -- ATM + 购物车

    ATM + 购物车 1.需求分析 2.设计程序以及程序的架构 设计程序的好处: - 扩展性强 - 逻辑清晰 3.分任务开发 4.测试 黑盒: 白盒: 对程序性能的测试 5.上线运行 # Tank -- ...

  7. Django问卷调查项目思路流程

    Django问卷调查项目思路流程: 1 后端思路 : 需求分析 ---- 找出各实体对应关系 ---- 设计model架构 ---- 统一资源封装 --- 提供资源API入口 ---- 设计项目实体功 ...

  8. ATM购物车程序项目规范(更新到高级版)

    ATM购物车程序(高级版) 之前的低级版本已经删除,现在的内容太多,没时间把内容上传,有时间我会把项目源码奉上! 我已经把整个项目源码传到群文件里了,需要的可以加主页qq群号.同时群内也有免费的学习资 ...

  9. Python实战之ATM+购物车

    ATM + 购物车 需求分析 ''' - 额度 15000或自定义 - 实现购物商城,买东西加入 购物车,调用信用卡接口结账 - 可以提现,手续费5% - 支持多账户登录 - 支持账户间转账 - 记录 ...

  10. 阶段性项目 ATM+购物车项目

    ATM + 购物车https://www.cnblogs.com/kermitjam/articles/10687180.html readme 内容前戏: 一个项目是如何从无到有的. 一 需求分析 ...

随机推荐

  1. ELK基于ElastAlert实现日志的微信报警 ---docker环境

    参考网址:https://github.com/anjia0532/elastalert-docker 1.拉取镜像: docker pull anjia0532/elastalert-docker: ...

  2. 2>&1到底是什么意思?

    java -jar snapshot.jar > snapshot.log 2>&1 & 写Java的朋友一定对上面的命令很熟悉,相信大部分人都知道>表示的是重定向, ...

  3. influxDB2.2

    下载安装 下载地址 下载后在解压目录中,输入cmd执行exe文件 浏览器访问localhost:8086 选择快速开始,填写用户信息,组织信息 相关概念 InfluxDB是一个由InfluxData开 ...

  4. .NET 反向代理 YARP 代理 GRPC

    前面的 YARP 文档中,介绍了怎么去代理 http,和如何根据域名转发,而在现在微服务的应用是越来越来多了,服务间的调用依靠 http 越来越不现实了,因为 http 多次握手的耗时越发的影响应用的 ...

  5. 「国产系统」Tubian 0.1,兼容Windows和Android的GNU/Linux系统!

    Tubian 0.42已发布:https://www.cnblogs.com/tubentubentu/p/16745926.html Tubian是我的自用系统整理而成的Linux发行版,基于Deb ...

  6. Seal-Report: 开放式数据库报表工具

    Seal Report是.Net的一个基于Apache 2.0 开源工具,完全用C# 语言编写,最新的6.6 版本采用.NET 6,github: https://github.com/ariacom ...

  7. Gson的使用与理解

    当今社会下,前后端分离,不同系统的信息交互,消息队列的数据传递,微服务的不同服务之间的数据处理,越来越多地方用到了序列化.序列化作为不同系统不同服务之间的数据桥梁.那么方便快捷的序列化工具还是必要的. ...

  8. C语言小白刷题

    1.有n个评委,他们给出score个分数,请用代码写出平均值,ave代表平均值 2022-10-15 13:17:10 int main() { int n, i =1, score, sum = 0 ...

  9. GMOJ5673 爬山法 题解

    Solution 显然先想到处理出每个点能看到的最高的顶点. 然后考虑模拟题目的过程,一段一段走时间复杂度显然不够优秀. 考虑我们要求什么,我们需要求出\(u\)到\(v\)的最近的一个点,使得这个点 ...

  10. Shell揭秘——程序退出状态码

    程序退出状态码 前言 在本篇文章当中主要给大家介绍一个shell的小知识--状态码.这是当我们的程序退出的时候,子进程会将自己程序的退出码传递给父进程,有时候我们可以利用这一操作做一些进程退出之后的事 ...