Fork me on GitHub

模拟实现一个ATM + 购物商城程序

           记得上次小编上传了一个购物车程序,这次呢稍微复杂一点,还是那句话,上传在这里不是为了炫耀什么,只是督促小编学习,如果大神有什么意见和建议,欢迎指导。

  于2018.3.11开始动笔,继续完成这个项目。

一,需求:模拟实现一个ATM + 购物商城程序

     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
要求如下:
 
       1.额度15000或者自定义
 
       2.实现购物商城,买东西加入购物车,调用信用卡接口结账
 
       3.可以提现,手续费5%
 
        4.支持多账户登陆
 
        5.支持账户间转账
 
        6.记录每月日常消费流水
 
        7.提供还款接口
 
        8.ATM记录操作日志
 
        9.提供管理接口,包括添加账户,用户额度,冻结账户等
 
        10.用户认证用装饰器

 

二,分析功能需求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ATM的角色:
      管理员功能:
              1,增删改查,加钱,减钱
              2,记录日志
              3,基本信息
              4,额度 15000
             
      普通用户功能:
              1,可以提现,手续费5%
              2,支持多账户登录
              3,支持账户间转账
              4,记录每月日常消费流水
              5,提供还款接口
              6,ATM记录操作日志   
         
购物车程序:
              1,可以进入程序购买商品
              2,支持多账户登录
              3,购完东西显示余额和购买的东西
     
        

  

 三,文件创建

  文件的创建是有开发规范的,比如下面:

1
2
3
4
5
6
7
8
9
bin  用于执行可执行文件
 
conf  配置文件
 
core    用于存放核心代码  
 
db  用于存放用户数据
 
log  日志,记录相关信息

  

四,思路流程图

 

 

 

 五,简要说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1,本程序思路是写了一个ATM和购物商城的程序
    其中购物商场简单的实现了功能,并没有调用ATM中的信用卡结账
    ATM写了信用卡操作和管理员操作,没有实现记录每月日常消费流水
2,对于购物商城:
    调用/shopping_mall/shopping_run.py文件执行
    简单的实现了用户进入商城,选择购物,则对账户余额进行扣款,推出时打印购买商品和余额
3,对于ATM有两个入口:
    1):普通用户对信用卡操作
             调用/atm-learn/bin/atm.py文件执行,可以打印账户信息、还款、取款、转账、账单、退出等操作
      ①账户信息
  ②还款
  ③取款
  ④转账
  ⑤账单
  ⑥退出
    2):管理用户对信用卡操作
             调用/atm-learn/bin/atm_manage.py文件执行则可以对用户进行管理,解冻用户、冻结用户、申领新卡等操作
  ①添加账户
  ②冻结账户
  ③解冻账户
  ④退出

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
概述
 
本次作业文件夹一共包含了以下6个文件:
 
流程图一:ATM用户登录思路流程图
流程图二:ATM管理登陆思路流程图
流程图三:购物车思路流程图
程序结构图:整个ATM+shopping的程序文件结构
程序文件: ATM + shopping
程序说明文件:README.md
程序介绍
 
本程序思路是写了一个ATM和购物商城的程序
 
ATM写了信用卡操作和管理员操作,没有实现记录每月日常消费流水
购物商场简单的实现了功能,并没有调用ATM中的信用卡结账
1,对于ATM有两个入口:
 
1):普通用户对信用卡操作
 
调用/atm/bin/atm.py文件执行,可以打印账户信息、还款、取款、转账、账单、退出等操作
2):管理用户对信用卡操作
 
调用/atm-learn/bin/atm_manage.py文件执行则可以对用户进行管理,解冻用户、冻结用户、申领新卡等操作
2,对于购物商城:
 
调用/shopping/shopping_run.py文件执行
简单的实现了用户进入商城,选择购物,则对账户余额进行扣款,推出时打印购买商品和余额
程序结构
 
备注
 
目前还不会在windows中用树的结构,所以做出程序结构的txt版本,放在文件外面
对几个实例json文件的说明
 
0000.json 一个用户账户示例文件(这个是账号正常,但是账号过期,不在使用范围内)
123.json 一个用户账户示例文件(这个是账号正常)
1234.json 一个用户账户示例文件(这个是账号被锁定,除非登陆管理端修改被冻结的状态,才能正常使用)
admin.json 一个管理账户示例文件(如果不知道管理者的账户和密码,可以查看)
不足及其改进的方面
 
1,未实现购物商城调用信用卡接口结账
 
2,账户之间的转账
 
3,ATM中查看账单,未能实现调用每个月的流水帐单,只是简单的查看信用额度和账户余额
 
4,购物商场比较简单,每次买一个东西就自己结账退出

  

六,程序结构

复制代码
atm+shopping``
├── README
├── atm #ATM主程序目录
│   ├── __init__.py
│   ├── bin #ATM 执行文件 目录
│   │   ├── __init__.py
│   │   ├── atm.py  #ATM 执行程序
│   │   └── manage.py #ATM 管理端 执行程序
│   ├── conf #配置文件
│   │   ├── __init__.py
│   │   └── settings.py
│   ├── core #主要程序逻辑都 在这个目录 里
│   │   ├── __init__.py
│   │   ├── accounts.py  #用于从文件里加载和存储账户数据
│   │   ├── atm_main.py   #atm 主逻辑交互程序
│   │   ├── auth.py      #用户认证模块
│   │   ├── db_handler.py   #数据库连接引擎
│   │   ├── logger.py       #日志记录模块
│   │   ├── manage_main.py         #atm管理端主逻辑交互程序
│   │   └── transaction.py  #记账\还钱\取钱等所有的与账户金额相关的操作都 在这
│   ├── db  #用户数据存储的地方
│   │   ├── __init__.py
│   │   ├── account_sample.py #一个存用户的账户数据的例子
│   │   └── accounts #存各个用户的账户数据 ,一个用户一个文件
│   │       └── 0000.json #一个用户账户示例文件(这个是账号正常,但是账号过期,不在使用范围内)
│   │       └── 123.json #一个用户账户示例文件(这个是账号正常)
│   │       └── 1234.json #一个用户账户示例文件(这个是账号被锁定,除非登陆管理端修改被冻结的状态,才能正常使用)
│   │       └── admin.json #一个管理账户示例文件(如果不知道管理者的账户和密码,可以查看)
│   └── log #日志目录
│       ├── __init__.py
│       ├── access.log #用户访问和操作的相关日志
│       └── transactions.log    #所有的交易日志
└── shopping #购物车目录
    └── __init__.py
    └── 123.json            #一个购物用户账户示例文件(包括用户id,密码,余额)
    └── shopping_main.py    #主逻辑交互程序
    └── shopping_run.py     #购物车 执行程序
复制代码

 七,程序代码

7.1 ATM代码

bin下atm.py

  

bin下atm_manage.py

  

conf/setting.py

  

core/accounts.py

  

core/atm_main.py

  

core/auth.py

  

core/db_handler.py

  

core/logger.py

  

core/manage_main.py

  

core/tranction.py

  

db/account_sample/py(此处只举一个例子)

 

  

7.2 shopping代码

 shopping_main.py

  

shopping_run.py

  

 

 

 

                                                                                                              

 

posted @   战争热诚  阅读(1519)  评论(6编辑  收藏  举报

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示