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

  1. 额度 15000或自定义
  2. 实现购物商城,买东西加入 购物车,调用信用卡接口结账
  3. 可以提现,手续费5%
  4. 每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息
  5. 支持多账户登录
  6. 支持账户间转账
  7. 记录每月日常消费流水
  8. 提供还款接口
  9. ATM记录操作日志 
  10. 提供管理接口,包括添加账户、用户额度,冻结账户等。。。
  11. 用户认证用装饰器

逻辑流程图

python入门作业---ATM+购物商场程序

 

2018-7-14

需求分析:

 角色:

      管理员功能:
              增删改查
              记录日志
              基本信息
              额度 15000
            
      普通用户功能:
          可以提现,手续费5%
          支持多账户登录
          支持账户间转账
          记录每月日常消费流水
          提供还款接口
          ATM记录操作日志

 

 程序结构:

程序结构:
ATM
|——README
|——atm #ATM执行程序
|    |——__init__.py
|    |——bin#ATM执行程序目录
|    |    |——__init__.py
|    |    |——atm.py  #ATM执行程序
|    |    |——manage.py #ATM管理端,未实现
|    |——conf #配置文件
|    |    |——__init__.py
|    |    |——setting.py
|    |——core #主要程序逻辑 都在这个目录里
|    |    |——__init__.py
|    |    |——accounts.py #用于从文件里加载和存储账户数据
|    |    |——auth.py    #用户认证模块
|    |    |——db_handler.py #数据库连接引擎
|    |    |——logger.py     #日志记录模块
|    |    |——main.py     #侏罗纪交互程序
|    |    |——transaction.py #记账、还钱、取钱等所有的与账户金额相关的操作
|    |——db   #用户数据存储的地方
|    |    |——__init__.py
|    |    |——account_sample.py #生成一个初始的账户数据,把这个数据存成一个 以这个账户id
|    |    |——account #存各个用户的账户数据,一个用户一个文件
|    |    |    |——1234.json #一个用户账户示例文件
|    |——log  #日志记录
|    |    |——__init__.py
|    |    |——access.log #用户访问和操作的相关日志
|    |    |——transactions.log  #所有的交易日志
|
|——shopping_mall  #电子商城程序,需要单独实现
|    |——__init__.py

 估计这个程序会编很久。一脸懵逼的进来:

不过,万事开头难,先抄一下目录结构,查看一下,别人的作品:

python入门作业---ATM+购物商场程序

 db 包下面的文件夹 account 和账户示例文件是由代码生成。

1、先编一个简单的生成文件夹 account

 代码如下:

 1 #__author:Administrator
 2 #date:2018/7/14
 3 
 4 import os ,sys
 5 import json
 6 
 7 acc_dic={
 8     'id':1234,     #卡号
 9     'password':'abc',  #密码
10     'credit':15000,       #信用额度
11     'balance':15000,     #余额度
12     'enroll_date':'2014-12-23',  #注册时间
13     'expir_date':'2019-12-22',  # 到期时间
14     'pay_day':22,
15     'status':0   #0 正常  1 锁卡 2  遗失
16 }
17 
18 # print(sys.platform) #返回操作系统平台名称
19 # print(sys.version) #获取Python解释程序的版本信息
20 def zhanghao(string):#生成一个测试用的银行G个人用户信息
21 
22     with open(r'account\%s.json'%acc_dic['id'],'w') as f:
23         json.dump(string,f)
24 
25 
26 def main():
27     if sys.platform=='win32':
28         # print('这是Windows操作系统')
29         if os.path.isdir('account'):#判断当前目录,是否存在文件名为‘account’的文件夹
30             zhanghao(acc_dic)
31         else:
32             os.mkdir('account') # 如果文件夹不存在,则创建以一个新的文件夹
33             zhanghao(acc_dic)
34     else:
35         print('本软件暂不兼容Windows以外的操作系统,如需帮助,请联系开发人员')
36 
37 def del_file():#如果需要初始化数据,删除已有的数据文件,可以运行该程序
38     print(os.listdir('account'))
39     for i in os.listdir('account'):
40         file=os.path.join('account',i)
41         os.remove(file)
42 
43 if __name__=='__main__':
44     main()
45     # del_file()
account_sample.py

相关文章: