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

作业需求:

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

  

ATM交易中心:

def make_transaction(arg, tran_type, amount, *args):
    if tran_type == 'change': #修改密码
        ……

    if tran_type == 'save': #存款
        ……

    if tran_type == 'withdraw': #取款
        ……

    if tran_type == 'transfer_accounts': #转账
        ……
 

def repayment(arg):
    user = user_info(arg)
    user_row = user_rows(arg)
    user_assets = user[3]
    user_repayment = abs(user[9])
    if user_repayment == user_assets:
        ……
    elif user_repayment > user_assets:
        ……
    else:
        ……
    a_log(arg,message) #写入日志
    return result                    

  

用户认证用装饰器:

def login(func):
    def inner(*args,**kwargs):
        info = settings.user_info(username)
        if info:
            _password = info[2]
            global user_status
            if user_status == False:
                if settings.getpasswd(password) == _password:
                    print("welcome login....")
                    user_status = True
                else:
                    print("wrong username or password!")
            if user_status == True:
                return func(*args,**kwargs)
        else:
            print("用户不存在 ")
    return inner

@login
def atm(username,userpassword):
    print("欢迎登录海盗船!")
    print(settings.user_message(username))
	……

  

测试:

----------首页----------
请输入用户名:mologa
欢迎登录海盗船!

---------------------------mologa个人账户信息:----------------------------
         卡号        |     资产     |         时间         |     贷款
622022002002002000   |     233.0    |   17-07-29 20:08:02  |   0.0
    
----------------------------------------------------------功能栏-----------------------------------------------------------
 '1.转账'  |  '2.存款'  |  '3.修改密码'  |  '4.取款'  |  '5.商城'  |  '6.日志'  | '7.个人信息' |  '8.还款'  |  '9.退出' 
请选择你需要操作的编号:1
请输入转账用户的id或者用户名:miaosx
请输入转账金额:2
余额:231.0
----------------------------------------------------------功能栏-----------------------------------------------------------
 '1.转账'  |  '2.存款'  |  '3.修改密码'  |  '4.取款'  |  '5.商城'  |  '6.日志'  | '7.个人信息' |  '8.还款'  |  '9.退出' 
请选择你需要操作的编号:5
---------------------Credit card mall!----------------------
0 . 母婴用品
	
	 0 . ['帮宝适', 45.9, 50]
	 1 . ['美素佳儿', 380, 10]
1 . 电子产品
	
	 0 . ['mac', 7500, 7]
	 1 . ['iphone7', 5400, 5]
	 2 . ['thunder', 7600, 3]
2 . 摩托汽车
	
	 0 . ['特斯拉', 820000, 2]
	 1 . ['雷克萨斯Rx450', 450000, 5]
3 . 日常用品
	
	 0 . ['东北大米', 38.5, 20]
	 1 . ['上海青', 3.6, 47]
一输入你想购买的商品类别编号:3
0 ['东北大米', 38.5, 20]
1 ['上海青', 3.6, 47]
三输入你想购买的商品编号:1
四请输入你想要购买的商品数量:1
您购买 上海青 ,单价 3.60  数量为1 ;共计花费:3.60
重新请输入y,退出请输入nn
欢迎下次光临!
----------------------------------------------------------功能栏-----------------------------------------------------------
 '1.转账'  |  '2.存款'  |  '3.修改密码'  |  '4.取款'  |  '5.商城'  |  '6.日志'  | '7.个人信息' |  '8.还款'  |  '9.退出' 
请选择你需要操作的编号:7

---------------------------mologa个人账户信息:----------------------------
         卡号        |     资产     |         时间         |     贷款
622022002002002000   |     227.4    |   17-07-29 20:15:22  |   0.0
    
----------------------------------------------------------功能栏-----------------------------------------------------------
 '1.转账'  |  '2.存款'  |  '3.修改密码'  |  '4.取款'  |  '5.商城'  |  '6.日志'  | '7.个人信息' |  '8.还款'  |  '9.退出' 
请选择你需要操作的编号:6
请输入查询日期:[例如[17-07-29 20:15:26]{可缺省}]29
'17-07-29 00:53:59'	'622022002002002000'	余额:192.0	'存款:5.00'

……

'17-07-29 20:15:06'	'622022002002002000'	余额:231.0	'转账:2.0转账对象:miaosx'

'17-07-29 20:15:19'	'622022002002002000'	余额:227.4	'消费:3.6您购买 上海青 ,单价 3.60  数量为1 ;共计花费:3.60'

继续请按yn
----------------------------------------------------------功能栏-----------------------------------------------------------
 '1.转账'  |  '2.存款'  |  '3.修改密码'  |  '4.取款'  |  '5.商城'  |  '6.日志'  | '7.个人信息' |  '8.还款'  |  '9.退出' 
请选择你需要操作的编号:7

---------------------------mologa个人账户信息:----------------------------
         卡号        |     资产     |         时间         |     贷款
622022002002002000   |     227.4    |   17-07-29 20:15:33  |   0.0
    
----------------------------------------------------------功能栏-----------------------------------------------------------
 '1.转账'  |  '2.存款'  |  '3.修改密码'  |  '4.取款'  |  '5.商城'  |  '6.日志'  | '7.个人信息' |  '8.还款'  |  '9.退出' 
请选择你需要操作的编号:9
欢迎再次光临!

Readme:

1) 测试环境:Win10系统  python3.5.2解释器 
2) 存在系统用:
	用户:mologa	密码:mologa
	用户:yepp		密码:yepp
	用户:miaosx	密码:miaosx
3) 用户信息数据存储在xls文件里
	这里用yepp用户登录

这里就不详说了

  

原文地址:https://www.cnblogs.com/mologa-jie/p/7257491.html