Python开发程序:ATM+购物商城

一、需求

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

    1).实现功能  

      1.额度 15000或自定义

      2.实现购物商城,买东西加入 购物车,调用信用卡接口结账

      3.可以提现,手续费5%

      4.每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息

      5.支持多账户登录

      6.支持账户间转账

      7.记录每月日常消费流水

      8.提供还款接口

      9.ATM记录操作日志

     10.提供管理接口,包括添加账户、用户额度,冻结账户等。。。

     11.用户认证用装饰器

二、程序code

程序说明:

## ATM信用卡购物模拟程序

### 作者介绍:
* author:lzl
### 博客地址:
* http://www.cnblogs.com/lianzhilei/p/5770672.html
* http://www.cnblogs.com/lianzhilei/p/5786223.html(程序完整流程图)

### 功能介绍:
模拟实现一个ATM + 购物商城程序
额度 15000或自定义
实现购物商城,买东西加入 购物车,调用信用卡接口结账
可以提现,手续费5%
支持多账户登录
支持账户间转账
记录每月日常消费流水
提供还款接口
ATM记录操作日志
提供管理接口,包括添加账户、用户额度,冻结账户等。。。
用户认证用装饰器

### 目录结构:

    Day4
    ├── Credit_card-shopping
            ├── README.md
            ├── core #入口程序目录
            │   ├── __init__.py
            │   └── main.py  #入口程序(启动程序)
            ├── conf #配置文件目录
            │   ├── __init__.py
            │   └── setting.py
            ├── modules #程序核心目录
            │   ├── __init__.py
            │   ├── admincenter.py  #管理模块
            │   ├── authentication.py  #认证模块
            │   ├── creditcard.py  #信用卡模块
            │   ├── shopping.py  #购物模块
            ├── database #程序数据库
            │   ├── creditcard_dict  #信用卡数据库
            │   ├── creditcard_record  #信用卡流水记录数据库
            │   ├── details_tip  #提示信息
            │   ├── product_list  #商城产品数据库
            │   └── shopping_car  #购物车数据库
            │   ├── shopping_record  #购物记录
            │   └── users_dict  #用户数据库
            └── log
                ├── __init__.py
                └── log  #待扩展....

### 运行说明:

* 用户、信用卡信息数据库已经建立好
        ------用户:zhangsan   密码:123     ##测试用户,对所有的用户环节进行过测试,已存在购物信息,消费记录等
        ------用户:zhaosi     密码:123     ##初始账号,暂无任何记录
        ------用户:wangwu     密码:123     ##初始账号,暂无任何记录

        ------信用卡:888888   密码:123     ##测试信用卡,对所有的信用卡环节进行过测试,已存在余额变动,账单流水等
        ------信用卡:666666   密码:123     ##初始信用卡账号,暂无任何记录

        ------管理中心用户:admin  密码:admin

* 目录结构保持一致,开始启动mian.py

一、主程序Credit_card-shopping开始
   1、把admincenter,shopping,authentication,creditcard目录加载到系统
   2、进入购物模拟程序,选择相应的模式
   3、循环菜单
       (1)、输入1,加载authentication.user_auth()进行系统账号认证,然后调用模块shopping,进入商城购物
       (2)、输入2,加载authentication.creditcard_auth()进行信用卡认证,认证通过后调用creditcard模块,信用卡操作
       (3)、输入3,加载authentication.admincenter_auth()进行信用卡认证,认证通过后调用admincenter模块,管理操作
       (4)、输入q, 程序终止,退出程序
   4、菜单1:shopping商城
       (1)、加载user_auth()函数进行用户认证,用户认证通过后进行购物中心
       (2)、输入值为1,加载shopping.Shopping_mall()函数,进行商品选购,选购的商品会加入到购物车,结束购物按b返回
       (3)、输入值为2,加载shopping.Shopping_car()函数,查看当前用户的购物车数据库数据库,之前购物商场里选择的商品,
              会在此显示,如果没进行购物,会显示为空,另当购物结算完成后,购物车会清空,商品记录到消费记录,按b返回,按f清空
       (4)、输入值为3,加载 shopping.Pay_shopping(current_user)函数,询问是否要进行结账,对购物车商品进行购买;选择
              结算操作,系统会加载账号是否绑定了信用卡,如果未绑定,会提示需到个人中心绑定才能结算;如果进行了绑定,加载
              Auth_creditcard(creditcard)函数进行信用卡密码认证;认证成功加载Shoppingcar_record(current_user,list)、
              Creditcard_record(creditcard, value)、Empty_shopping_car()函数进行信用卡流水,用户消费流水,购物车清空操作
       (5)、输入值为4,进入个人中心设置,进入循环菜单:
              ①、输入1,加载shopping.Catcar_record(current_user)函数,进行当前用户的购物历史记录查看,无购物则为空,购物
                  记录用时间进行分割进行显示,按b返回
              ②、输入2,加载shopping.Updata_password(current_user)函数,选择是否对密码修改,输入y,输入账号原来的密码,匹配
                  成功,输入新的密码,再次输入新的密码,两次密码匹配成功,修改成功,否则修改失败;按b返回
              ③、输入3,加载shopping.Updata_address(current_user)函数,选择是否对收货地址进行修改,输入y,输入新的地址,保存
                  默认地址为none,按b返回
              ④、输入4,加载shopping.Link_creditcard(current_user)函数,选择是否进行信用卡绑定,默认为为绑定;选择y,输入信用卡
                  卡号,加载信用卡数据库进行匹配,如果信用卡存在绑定成功,否则失败,按b返回
              ⑤、输入b,返回上一级
       (6)、输入值为b,返回上一级菜单

   5、菜单2:信用卡中心
       (1)、加载creditcard_auth()函数进行信用卡认证,认证通过后进入信用卡中心
       (2)、输入值为1,加载creditcard.My_creditcard(current_creditcard)函数,查看当前信用卡卡号、额度、提现额度、持卡人,按b返回
       (3)、输入值为2,加载creditcard.Cash_advance(current_creditcard)函数,进行现金提现,显示卡号、额度、可提现金额,还有取现具体
              计算方式,输入提现的金额,不能大于可提现金额,也不可大于额度金额;提现成功,按b返回;提现是调用Creditcard_record
              (current_creditcard, record)函数,进行信用卡流水记录
       (4)、输入值为3,加载creditcard.Transfer(current_creditcard)函数,进入转账选项,选择确定转账;输入转账对方的账号,再次输入
              转账对方账号,两次一致;输入转账金额,不大于当前额度,全部通过,转账成功;然后调用Creditcard_record(current_creditcard, record)
              函数进行流水记录,否则提示转账失败,按b返回
       (5)、输入值为4,加载creditcard.Repayment(current_creditcard))函数,对当前信用卡进行还款,输入正确的金额数字,还款成功,调用
              Creditcard_record(current_creditcard, record)进行流水记录,否则还款失败,按b返回
       (6)、输入值为5,加载creditcard.Catcard_record(current_creditcard)函数,打印当前信用卡账户流水账的日期,输入要查看的流水日期
              匹配后打印日期当天的所有流水记录(按照时间的先后顺序),否则打印失败,重新输入,按b返回;没有进行过交易的卡号为空
       (7)、输入值为b,返回上一级菜单

   6、菜单3:管理中心
       (1)、加载admincenter_auth()函数进行管理认证,认证通过后进入管理中心,显示管理菜单
       (2)、输入值为1,加载admincenter.User_create()函数,打印当前已有账号,开始进行系统账号创建,询问是否进程新用户创建;选择y,开始创建用户
              输入要创建的用户名,输入密码,如果创建的用户不存在,新建用户创建成功;否则失败,另输入的用户名不能为空,按b返回;打印当前最新用户列表
       (3)、输入值为2,加载 admincenter.Lock_user()函数,打印当前用户列表,以及当前的锁定状态;输入要锁定的用户名,对已有的账号进行锁定,输入的
              账号不存在,锁定失败;输入的账号存在,但是当前已经被锁定,锁定失败;账号存在,未被锁定,显示锁定成功;打印当前所有用户的锁定状态,锁定
              高亮显示,被锁定的用户不能进行系统登录。按b返回
       (4)、输入值为3,加载 admincenter.Unlock_user()函数,打印当前用户列表,以及当前的锁定状态;输入要解锁的用户名,对已有的账号进行解锁,输入的
              账号不存在,解锁失败;输入的账号存在,但是当前未被被锁定,解锁失败;账号存在,之前被锁定,显示解锁成功;打印当前所有用户的锁定状态,锁定
              高亮显示,被锁定的用户不能进行系统登录。按b返回
       (5)、输入值为4,加载admincenter.Creditcard_create()函数,打印当前已有信用卡,开始进行系统信用卡发行,询问是否进程信用卡创建;选择y,开始发行信用卡
              输入要创建的信用卡卡号,输入密码,如果创建的信用卡不存在,新建信用卡发行成功;否则失败,另输入的信用卡必须为6位数数字,不能重合,发行过
              的信用卡不能在此进行发;按b返回,打印当前最新信用卡列表
       (6)、输入值为5,加载admincenter.Lock_creditcard())函数,打印当前信用卡列表,以及当前的冻结状态;输入要冻结的信用卡卡号,对已有的信用卡进行冻结
              输入的信用卡卡号不存在,冻结失败;输入的信用卡卡号存在,但是当前已经被冻结,冻结失败;账号存在,未被冻结,显示冻结成功;打印当前所有信用卡卡号的
              冻结状态,被冻结的卡号高亮显示,被冻结的用户不能进行信用卡登录,不能进行购物消费。按b返回
       (7)、输入值为6,加载admincenter.Unlock_creditcard())函数,打印当前信用卡列表,以及当前的冻结状态;输入要解冻的信用卡卡号,对已有的信用卡进行解冻
              输入的信用卡卡号不存在,解冻失败;输入的信用卡卡号存在,但是当前未被冻结,解冻失败;账号存在,已经被冻结,显示解冻成功;打印当前所有信用卡卡号的
              冻结状态,被冻结的卡号高亮显示,被冻结的用户不能进行信用卡登录,不能进行购物消费。按b返回
       (8)、输入值为7,加载admincenter.Updata_limit()函数,打印当前信用卡账户账号,目前可用额度,取现额度,选择是否进行额度调整;选择y,进行额度调整,
              输入要调整额度的信用卡卡号,6为数字,如果输入的信用卡不存在,提示错误;输入已有的信用卡开号,输入新的额度(5000以上),显示额度调整成功,再此
              打印最新的信用卡账户账号,目前可用额度,取现额度列表;按b返回
       (9)、输入值为b,返回上一级菜单

   7 关于信用卡额度,取现额度,可以取现额度:
        ①信用卡默认取现额度为信用卡额度的50%(此系统默认取现额度为7500)
        ②信用卡进行消费时(未取现),取现额度不会变化
        ③信用卡额度低于取现额度时,可取现金额以当前额度为准(可取现金额=当前额度*0.95)
        ④取现额度只有两种状况会发生变化,一种进行取现,第二是对信用卡额度进行调整
        ⑤每次取现扣除5%的手续费
        总结:信用卡额度为总共可消费额度,取现额度为理论上可取现额度,可取现额度为当前真正可以取现的额度(会出现信用卡额度低于取现额度的可能
              此时已信用卡额度为准,另有手续费要加收,所以当前的额度不能全部取完,要扣除5%的手续费,此时可取现额度为额度的95%)

  

时间: 2024-10-07 05:44:11

Python开发程序:ATM+购物商城的相关文章

python基础作业------模拟实现一个ATM + 购物商城程序

模拟实现一个ATM + 购物商城程序 作业需求: 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款接口 ATM记录操作日志 提供管理接口,包括添加账户.用户额度,冻结账户等... 用户认证用装饰器 ## ATM信用卡购物模拟程序 ### 作者介绍: * author:高原 ### 功能介绍: 模拟实现一

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

需求:模拟实现一个ATM+购物商城程序1.额度1500或者自定义2.实现购物商城,买东西加入购物车,调用信用卡接口3.可以提现,手续费5%4.支持账户登录5.支持账户间转账6.记录每日日常消费流水7.提供还款接口8.ATM记录操作日志9.提供管理接口,包括添加账户,用户额度,冻结账户等10.用户认证用装饰 #Author wangmengzhu ''' 用户认证,确认是用户登录,判断用户登录的用户名和密码是否正确,判断用户认证的长度是否为0,使用装饰器 用户登录认证,信用卡登录认证,管理员登录认

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

流程图: 需求: ATM:模拟实现一个ATM + 购物商城程序额度 15000或自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消费流水提供还款接口ATM记录操作日志提供管理接口,包括添加账户.用户额度,冻结账户等...用户认证用装饰器 程序目录结构 ../module2-ATM ├── ATM流程图.png #流畅图 ├── bin #atm执行程序目录 │   ├── ATM_start.py │   └── __init

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

额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款接口 ATM记录操作日志 提供管理接口,包括添加账户.用户额度,冻结账户等... 用户认证用装饰器

模拟实现一个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, amoun

ATM+购物商城(第一版)

#!/usr/bin/env python # -*- coding:utf-8 -*- # by wk # !/usr/bin/env python # -*- coding:utf-8 -*- # by wk import os import time ''' 1.额度 15000或自定义 2.实现购物商城,买东西加入 购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.支持多账户登录 5.支持账户间转账 6.记录每月日常消费流水 7.提供还款接口 8.TM记录操作日志 9.提供管理接

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

1 1.函数从ATM_Program--core下的main文件运行,其中的ATM功能只能有三次登录机会.登陆成功失败与否均不允许再次登陆. 2 2.文件Bin下的atm.py是信用卡操作主程序:例如账户间转账.存钱.提现功能 3 3.文件夹Bin下的是manager.py是信用卡的管理端:例如冻结账户.改变信用卡额度.添加账户. 4 4.manager.py的主程序在accounts.py里. 5 5.logger.py日志记录模块.记录账户登陆和,购物的流水. 6 6.transaction

python小程序 atm模拟

包含启动程序start.py和atm.py模块 用户数据通过字典序列化存入userdata.pkl 用户操作记录文件userid.record(为每个用户保存一个记录文件) 商品价格文件goods_list 功能包含:取现 存钱 转账 购物 打印清单 其他说明:没有包含管理端程序(用于添加用户账号,商品上下架),密码验证用户可以自己开发. start.py如下: #!/usr/bin/python # -*- coding: utf-8 -*-   import sys import getpa

Python开发程序:支持多用户在线的FTP程序

作业:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 允许用户查看当前目录下文件 允许上传和下载文件,保证文件一致性 文件传输过程中显示进度条 附加功能:支持文件的断点续传(仅下载) 程序 1.最最重要的readme: ### 作者介绍: * author:lzl ### 博客地址: * http://www.cnblogs.c