ATM分析
# 查看余额功能
1.第一层直接调用查看余额的接口(传当前登录用户名)
2.第二层直接调用第三层数据查询的接口
3.第二层从用户字典中提取出用户余额返回给第一层展示
# 账户提现功能
1.第一层获取用户提现的金额 然后调用第二层提现接口(金额 用户名)
2.第二层根据用户名获取对应的用户字典数据
3.提现应该收取一定的费率(为了方便 将费率设置放到了配置文件中)
4.针对用户输入的金额需要判断是否是整数或者小数
float() + 异常捕获
5.计算账户余额是否满足提现金额+手续费
6.如果满足则修改用户字典并调用第三层的数据保存接口
# 账户转账功能
1.第一层获取想要转账的用户及转账金额 调用第二层转账接口(金额 用户名)
2.先处理金额是否合法(common.py)
3.再判断用户是否存在(第三层查询数据接口)
4.分别获取登录用户的字典数据以及待收款用户的字典数据
5.调用第三层接口保存修改之后的用户字典数据
# 查看流水功能
1.应该将所有账户余额变动的操作在用户字典的water_flow键对于的列表中添加记录
2.第一层直接调用第二层查看用户流水的接口
3.第二层调用第三层查询用户数据的接口 然后提取出流水记录返回给第一层
# 添加购物车功能
直接将所有的操作放在第二层
# 查看购物车功能
第一层调用第二层接口查询数据返回即可
# 结算购物车功能
直接将所有的操作放在第二层
# 管理员相关功能
冻结账户
1.用户必须登录而且必须是管理员
给每个用户字典再添加一个用于标识是否是管理员身份的键值对
is_admin:false
2.如何判断用户是否登录并且是否是管理员
判断用户是否登录已经在之前的功能中编写了一个装饰器
用户登录成功之后获取用户的身份并在第一层字典中记录
is_login = {
'username':'',
'is_admin':False
}
校验是否是管理员有很多种方式
直接在函数体代码中加if判断
将装饰器变成有参的版本(normal admin)
通过额外参数的不同在装饰器中校验完用户登录之后是否继续校验用户是否是管理员
3.冻结账户
1.获取系统中除管理员以外的用户名单
2.管理员选择想要冻结的账户
3.获取该账户字典数据 修改用于标识是否冻结的键值对 is_lock
4.需要在项目登录功能处 添加用户是否已被冻结的校验
ps:基于上述模板可以自行扩展管理员其他功能
ATM分析的更多相关文章
- 技术分享:逆向分析ATM分离器
文章内容仅供技术交流,请勿模仿操作! 背景(作者) 每一次外出时, Elizabeth和我总是格外的小心,同时把我们身上的钱藏在特殊的皮带上面,这样还不够,我们还采取了“狡兔三窟”的方式来藏身上带的银 ...
- 设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)
说到状态模式,如果你看过之前发布的重构系列的文章中的<代码重构(六):代码重构完整案例>这篇博客的话,那么你应该对“状态模式”并不陌生,因为我们之前使用到了状态模式进行重构.上一篇博客我们 ...
- 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)
一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...
- python之ATM
每次做一点就发出来,大神不要嫌重复 2016/11/4 今天来搞ATM,反正逃不了的,说来惭愧,这个作业是我10/4号20天前拿到的,当时是万脸蒙比的,今天又做了一点,现在算是百脸蒙比吧. 一.需求: ...
- Hadoop-HBASE案例分析-Hadoop学习笔记<二>
之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第八章的笔记 主要介绍HBase,一个分布式数据库的应用案例. 案例概况: 1)时间序列数据库(OpenTSD ...
- python之信用卡ATM(第五天)
本节作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日, ...
- 语言模拟ATM自动取款机系统
C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...
- BZOJ1179 Atm //缩点+spfa
1179: [Apio2009]Atm Description Input 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的 ...
- Try-Catch机制使用场景分析
(一)在什么场景下加Try-Catch机制 1)以业务逻辑功能为单位,在最上层加Try-Catch机制.为什么要这样做呢?这主要是增加程序的健壮性,防止因抛出异常过多,导致程序崩溃. try { ...
- 银行ATM机工作流程模拟编程
[编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...
随机推荐
- 引擎之旅 Chapter.1 高分辨率时钟
目录 游戏中的时间线 真实时间线 游戏时间线 全局时钟的实现方式 我们如何理解时间.在现实生活中,时间就是一个有方向的直线.从一个无穷远到另一个无穷远.用数学去抽象地思考,它就是一个从无穷小到无穷大的 ...
- Python数据科学手册-Numpy数组的排序
1) Numpy中的快速排序: np.sort 和 np.argsort np.sort 是快速排序,算法复杂度 O[ N log N] ,也可以选择归并排序和堆排序 如果不想修改原始输入数组,返 ...
- ProxySQL 使用情况报错问题汇总及解决办法
1.ProxySQL Error: connection is locked to hostgroup 2 but trying to reach hostgroup 1 解决方案:登上proxysq ...
- Vmware虚拟机设置主机端口映射
转载自:https://blog.csdn.net/Mrqiang9001/article/details/80820321
- Ant Design槽位失效
保证数据结构中有scopedSlots: { title: 'title' }, 即包含scopedSlots属性 使用时名字应保证一致 例如: 数据结构: treeData: [ { key ...
- Bing 广告平台迁移到 .net6
原文链接 https://devblogs.microsoft.com/dotnet/bing-ads-campaign-platform-journey-to-dotnet-6/ 广告组件平台对于微 ...
- 可观测性的常见用例|Techtarget
[ 文章来源 ]https://www.techtarget.com/searchitoperations/tip/Common-use-cases-for-observability 这些可观测性用 ...
- ubuntu20.04详细安装教程
1.运行虚拟机,加载一段时间后弹出"安装"界面.语言栏倒数第三个是中文.点击[安装 Ubuntu]. 2.键盘布局,[继续] 3.更新和其他软件,取消[安装Ubuntu时下载更新] ...
- C语言------数据类型与输入输出
仅供借鉴.仅供借鉴.仅供借鉴(整理了一下大一C语言每个章节的练习题.没得题目.只有程序了) 文章目录 1 .实训名称 2 .实训目的及要求 3 .源代码及运行截图 4 .小结 1 .实训名称 实训2: ...
- C语言整人关机程序
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char input ...