python atm作业详解_Python学习day5作业-ATM和购物商城
Python学习day5作业
Python学习day5作业
ATM和购物商城
作业需求
ATM:指定最大透支额度
可取款
定期还款(每月指定日期还款,如15号)
可存款
定期出账单
支持多用户登陆,用户间转帐
支持多用户
管理员可添加账户、指定用户额度、冻结用户等
购物车:商品信息- 数量、单价、名称
用户信息- 帐号、密码、余额
用户可充值
购物历史信息
允许用户多次购买,每次可购买多件
余额不足时进行提醒
用户退出时 ,输出当次购物信息
用户下次登陆时可查看购物历史
商品列表分级显示
1. 程序说明
购物商城实现功能如下:
博客
多用户登录
商品按二级菜单显示
充值功能
多次购买,每次购买多件
余额不足提示充值
可查看购物历史
ATM实现功能如下:
指定最大透支额度
可取款
定期还款(每月指定日期还款,如15号)
可存款
定期出账单
支持多用户登陆,用户间转帐
支持多用户
管理员可添加账户、指定用户额度、冻结用户等
2. 基本流程图
3. 程序测试帐号
用户/密码:
ATM普通用户:1000/abc、1001/1001
ATM管理用户:admin/abc
购物商城:test/test
4. 程序结构:.
├── Atm # ATM主程目录
│ ├── __init__.py
│ ├── api # ATM程序API目录
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-35.pyc
│ │ │ └── pay1.cpython-35.pyc
│ │ └── pay.py # ATM支付api
│ ├── bin # ATM执行文件目录
│ │ ├── __init__.py
│ │ ├── atm.py # ATM执行程序,普通用户登录入口
│ │ └── manager.py # ATM管理员登录入口
│ ├── conf # ATM配置目录
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-35.pyc
│ │ │ └── settings.cpython-35.pyc
│ │ └── settings.py # ATM配置文件
│ ├── core # ATM主要逻辑程序目录
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-35.pyc
│ │ │ ├── accounts.cpython-35.pyc
│ │ │ ├── auth.cpython-35.pyc
│ │ │ ├── bill_date.cpython-35.pyc
│ │ │ ├── db_handler.cpython-35.pyc
│ │ │ ├── logger.cpython-35.pyc
│ │ │ ├── main.cpython-35.pyc
│ │ │ └── transaction.cpython-35.pyc
│ │ ├── accounts.py # 用于从文件里加载和存储账户数据
│ │ ├── auth.py # 用于帐户认证和帐户操作
│ │ ├── bill_date.py # 根据年-月,生成帐单起止时间模块
│ │ ├── db_handler.py # 数据库连接引擎
│ │ ├── logger.py # 日志记录模块
│ │ ├── main.py # 主逻辑程序
│ │ └── transaction.py # 记账\还钱\取钱等所有的与账户金额相关的操作模块
│ ├── db # 用户数据存储目录
│ │ ├── __init__.py
│ │ ├── account_sample.py # 生成一个初始的账户数据 ,把这个数据存成一个以这个账户id为文件名的文件,放在accounts目录就行了,程序自己去会这里找
│ │ └── accounts # 存各个用户的账户数据,一个用户一个文件
│ │ ├── 1000.json # 一个普通用户账户文件
│ │ └── admin.json # 一个管理员用户示例文件
│ ├── docs # 程序说明文档目录
│ │ └── __init__.py
│ └── log # 日志根目录
│ ├── __init__.py
│ ├── access.log # 用户访问和操作的相关日志
│ ├── accounts # 存各个用户的帐单数据,一个用户一个文件
│ │ └── 1000.bills # 一个普通用户的帐单文件
│ └── transactions.log # 所有的交易还款等日志
├── README.md # readme文件
└── Shopping_mall # 购物商城程序目录
├── bin # 购物商城执行文件目录
│ ├── __init__.py
│ └── shopping_mall.py # 购物商城入口程序
├── conf # 购物商城配置目录
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-35.pyc
│ │ ├── goods.cpython-35.pyc
│ │ └── settings.cpython-35.pyc
│ ├── goods.py # 购物商城商品价格列表
│ └── settings.py # 购物商城配置文件
├── core # 购物商城主要逻辑程序目录
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-35.pyc
│ │ ├── accounts.cpython-35.pyc
│ │ ├── auth.cpython-35.pyc
│ │ ├── db_handler.cpython-35.pyc
│ │ ├── logger.cpython-35.pyc
│ │ ├── main.cpython-35.pyc
│ │ └── shopping.cpython-35.pyc
│ ├── accounts.py # 用于从文件里加载和存储账户数据
│ ├── auth.py # 用于帐户认证和帐户操作
│ ├── db_handler.py # 数据库连接引擎
│ ├── logger.py # 日志记录模块
│ └── main.py # 主逻辑程序
├── db # 用户数据存储目录
│ └── accounts # 存各个用户的账户数据,一个用户一个文件
│ ├── __init__.py
│ └── test.json # 一个普通用户账户文件
└── log
├── access.log # 用户访问和操作的相关日志
└── test_shopping.log # 用户购物历史日志
5. 程序测试管理员登录失败
python Atm/bin/manager.py################ATM admin manager#################
account:a
password:a
Account [a] does not exist!
account:a
password:a
Account [a] does not exist!
account:a
password:a
Account [a] does not exist!
2017-01-27 01:47:07,377 - access - ERROR - account [a] too many login attempts
Process finished with exit code 0管理员登录(不允许普通用户登录)
python Atm/bin/manager.py################ATM admin manager#################
account:1000
password:abc
Permission denied
Process finished with exit code 0################ATM admin manager#################
account:admin
password:abc
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:1001
Option does not exist!
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:1
account id:1001
password:1001
Account [1001] is exist,try another account.
account id:1002
password:1002
account [1002] added sucessed
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:2
Please input your query account id:1002
pay_day :22
credit :15000
status :0
balance :15000
id :1002
enroll_date :2017-01-27
expire_date :2022-01-26
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:2
Please input your query account id:1001
pay_day :22
credit :15000
status :0
id :1001
balance :15000
enroll_date :2017-01-27
expire_date :2022-01-26
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:>>:3
account id:1001
You can choose the items like this:
{
"password": "abc",
"credit": 15000,
"status": 0,
"expire_date": "2021-01-01",
"pay_day": 22
}
Input modify items(json):{"credit":20000,"pay_day": 23}
Account infomation updated!
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:2
Please input your query account id:1001
pay_day :23
credit :20000
status :0
balance :15000
id :1001
enroll_date :2017-01-27
expire_date :2022-01-26
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:>>:2
Please input your query account id:0
Get account [0] info pemission denied!
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>>>:2
Please input your query account id:0
Get account [0] info pemission denied!
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>>>:2
Please input your query account id:0
Get account [0] info pemission denied!
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:4
------------------Account bill:-------------------
-----------------------End------------------------
------------------Account bill:-------------------
expire_date :2021-01-01
credit :15000
enroll_date :2016-01-02
status :0
balance :4265.0
pay_day :22
id :1000
Today is not the bill generation day!
Account [1000] need to repay [10735.0]
-----------------------End------------------------
------------------Account bill:-------------------
expire_date :2022-01-26
id :1001
pay_day :23
status :0
balance :15000
enroll_date :2017-01-27
credit :20000
Today is not the bill generation day!
Account [1001] need to repay [5000]
-----------------------End------------------------
------------------Account bill:-------------------
expire_date :2022-01-26
credit :15000
pay_day :22
status :0
balance :15000
enroll_date :2017-01-27
id :1002
Today is not the bill generation day!
Account [1002] needn't to repay.
-----------------------End------------------------
------------------Account bill:-------------------
-----------------------End------------------------
------- Admin erea ---------
1. 添加账户
2. 查询用户信息
3. 用户信息修改(冻结帐户、用户信用卡额度等)
4. 生成全部用户帐单
5. 退出
>>:5
###################Bye,thanks!####################普通用户登录(不允许管理员登录)
python Atm/bin/atm.py##################Welcome to ATM##################
account:1000
password:abc
------- Oldboy Bank ---------
1. 账户信息
2. 还款(示例)
3. 取款(示例)
4. 转账
5. 存款
6. 账单
7. 退出
>>:1
status :0
pay_day :22
enroll_date :2016-01-02
balance :4265.0
expire_date :2021-01-01
credit :15000
id :1000
------- Oldboy Bank ---------
1. 账户信息
2. 还款(示例)
3. 取款(示例)
4. 转账
5. 存款
6. 账单
7. 退出
>>:2
--------- BALANCE INFO --------
Credit : 15000
Balance: 4265.0
Tip: [b] to back
Input repay amount:200
2017-01-28 09:49:30,934 - transaction - INFO - account:1000 action:repay amount:200.0 interest:0.0
New Balance:4465.0
Tip: [b] to back
Input repay amount:b
------- Oldboy Bank ---------
1. 账户信息
2. 还款(示例)
3. 取款(示例)
4. 转账
5. 存款
6. 账单
7. 退出
>>:3
--------- BALANCE INFO --------
Credit : 15000
Balance: 4465.0
Tip: [b] to back
Input withdraw amount:200
2017-01-28 09:49:44,162 - transaction - INFO - account:1000 action:withdraw amount:200.0 interest:10.0
New Balance:4255.0
Tip: [b] to back
Input withdraw amount:b
------- Oldboy Bank ---------
1. 账户信息
2. 还款(示例)
3. 取款(示例)
4. 转账
5. 存款
6. 账单
7. 退出
>>:4
--------- BALANCE INFO --------
Credit : 15000
Balance: 4255.0
(Tip: input [b] to back)
Input receiver:1001
Input transfer amount:200
2017-01-28 09:50:06,723 - transaction - INFO - account:1000 action:transfer amount:200.0 interest:10.0
New Balance:4045.02017-01-28 09:50:06,723 - transaction - INFO - account:1001 action:receive amount:200.0 interest:0.0
Input receiver:b
------- Oldboy Bank ---------
1. 账户信息
2. 还款(示例)
3. 取款(示例)
4. 转账
5. 存款
6. 账单
7. 退出
>>:5
--------- BALANCE INFO --------
Credit : 15000
Balance: 4045.0
(Tip: input [b] to back)
Input your save amount:400
2017-01-28 09:53:45,354 - transaction - INFO - account:1000 action:save amount:400.0 interest:0.0
New Balance:4445.0
------- Oldboy Bank ---------
1. 账户信息
2. 还款(示例)
3. 取款(示例)
4. 转账
5. 存款
6. 账单
7. 退出
>>:6
Please input the date you will query like [2016-12]>>>2016-12
Account [1000] bills:
--------------------------------------------------
bill_date: 2017-1 account_id: 1000 need_repay: 10555
bill_date: 2017-1 account_id: 1000 need_repay: 10555
Account [1000] history log:
--------------------------------------------------
--------------------------------------------------
------- Oldboy Bank ---------
1. 账户信息
2. 还款(示例)
3. 取款(示例)
4. 转账
5. 存款
6. 账单
7. 退出
>>:6
Please input the date you will query like [2016-12]>>>2017-01
Account [1000] bills:
--------------------------------------------------
bill_date: 2017-1 account_id: 1000 need_repay: 10555
bill_date: 2017-1 account_id: 1000 need_repay: 10555
Account [1000] history log:
--------------------------------------------------
2017-01-25 21:33:43,281 - transaction - INFO - account:1000 action:pay amount:10000.0 interest:0.0
2017-01-25 22:16:26,609 - transaction - INFO - account:1000 action:pay amount:100.0 interest:0.0
2017-01-25 22:16:52,347 - transaction - INFO - account:1000 action:pay amount:100.0 interest:0.0
2017-01-26 21:47:42,372 - transaction - INFO - account:1000 action:repay amount:100.0 interest:0.0
2017-01-26 21:51:13,819 - transaction - INFO - account:1000 action:repay amount:100.0 interest:0.0
2017-01-26 21:51:24,608 - transaction - INFO - account:1000 action:withdraw amount:500.0 interest:25.0
2017-01-26 21:53:16,352 - transaction - INFO - account:1000 action:withdraw amount:200.0 interest:10.0
2017-01-28 09:49:30,934 - transaction - INFO - account:1000 action:repay amount:200.0 interest:0.0
2017-01-28 09:49:44,162 - transaction - INFO - account:1000 action:withdraw amount:200.0 interest:10.0
2017-01-28 09:50:06,723 - transaction - INFO - account:1000 action:transfer amount:200.0 interest:10.0
2017-01-28 09:53:45,354 - transaction - INFO - account:1000 action:save amount:400.0 interest:0.0
--------------------------------------------------
------- Oldboy Bank ---------
1. 账户信息
2. 还款(示例)
3. 取款(示例)
4. 转账
5. 存款
6. 账单
7. 退出
>>:7
###################Bye,thanks!####################
Process finished with exit code 1购物商城已注册用户登录
python Shopping_mall/bin/shopping_mall.py------------Welcome to shopping mall!-------------
--------------------------------------------------
1. Login
2. Sign up
3. Logout
--------------------------------------------------
>>:1
Please input your user name and password!
user:test
password:test
Input [y|yes] to view your purchase history,[others] means not.
Please input:y
User test shopping history:
--------------------------------------------------
2017-01-17 17:15:39,199 - shopping - INFO - account:test action:shopping product_number:2 goods:Tea cost:29378
2017-01-17 17:22:13,163 - shopping - INFO - account:test action:shopping product_number:1 goods:Coffee cost:29348
2017-01-24 21:55:50,796 - shopping - INFO - account:test action:shopping product_number:2 goods:Milk cost:29230
2017-01-25 00:05:46,534 - shopping - INFO - account:test action:shopping product_number:1 goods:Coffee cost:29200
2017-01-25 00:06:07,089 - shopping - INFO - account:test action:shopping product_number:1 goods:Coffee cost:29170
2017-01-25 00:36:53,038 - shopping - INFO - account:test action:shopping product_number:1 goods:Coffee cost:29140
2017-01-25 21:33:07,174 - shopping - INFO - account:test action:shopping product_number:1 goods:Coffee cost:30110
-------------------Species list-------------------
0 --> Mobile phone
1 --> Car
2 --> Drink
-----------------------End------------------------
[q|b] to quit;[c] to check;[t] to top up
Input your choice:t
Do you want to charge more money?[y|n|b]y
Please use your ATM account to pay.
Please input your top-up amount:1000
account:abc
password:a
Account [abc] does not exist!
account:1000
password:abc
2017-01-28 10:31:52,106 - transaction - INFO - account:1000 action:pay amount:1000.0 interest:0.0
Pay successed
Your balance is [41310]
-------------------Species list-------------------
0 --> Mobile phone
1 --> Car
2 --> Drink
-----------------------End------------------------
[q|b] to quit;[c] to check;[t] to top up
Input your choice:2
---->Enter Drink
-------------------Product list-------------------
0.Milk 59
1.Coffee 30
2.Tea 311
-----------------------End------------------------
[q|quit] to quit;[b|back] to back;[c|check] to check
Please choice the product:1
Please input the number of product:2
Added [2] [Coffee] into shopping cart,your balance is [40250]
2017-01-28 10:32:07,465 - shopping - INFO - account:test action:shopping product_number:2 goods:Coffee cost:40250
-------------------Product list-------------------
0.Milk 59
1.Coffee 30
2.Tea 311
-----------------------End------------------------
[q|quit] to quit;[b|back] to back;[c|check] to check
Please choice the product:b
-------------------Species list-------------------
0 --> Mobile phone
1 --> Car
2 --> Drink
-----------------------End------------------------
[q|b] to quit;[c] to check;[t] to top up
Input your choice:0
---->Enter Mobile phone
-------------------Product list-------------------
0.Iphone7 6188
1.Iphone7 plus 7888
2.Xiaomi5 2888
-----------------------End------------------------
[q|quit] to quit;[b|back] to back;[c|check] to check
Please choice the product:0
Please input the number of product:1
2017-01-28 10:32:20,656 - shopping - INFO - account:test action:shopping product_number:1 goods:Iphone7 cost:34062
Added [1] [Iphone7] into shopping cart,your balance is [34062]
-------------------Product list-------------------
0.Iphone7 6188
1.Iphone7 plus 7888
2.Xiaomi5 2888
-----------------------End------------------------
[q|quit] to quit;[b|back] to back;[c|check] to check
Please choice the product:c
*********You purchased products as below**********
Goods Price Number Cost
Iphone7 6188 1 6188
Coffee 30 2 60
***********************End************************
You total cost: 6248
Your balance is [34062]
-------------------Product list-------------------
0.Iphone7 6188
1.Iphone7 plus 7888
2.Xiaomi5 2888
-----------------------End------------------------
[q|quit] to quit;[b|back] to back;[c|check] to check
Please choice the product:b
-------------------Species list-------------------
0 --> Mobile phone
1 --> Car
2 --> Drink
-----------------------End------------------------
[q|b] to quit;[c] to check;[t] to top up
Input your choice:q
*********You purchased products as below**********
Goods Price Number Cost
Iphone7 6188 1 6188
Coffee 30 2 60
***********************End************************
You total cost: 6248
Your balance is [34062]
###################Bye,thanks!####################
Process finished with exit code 1购物商城新注册用户
python Shopping_mall/bin/shopping_mall.py------------Welcome to shopping mall!-------------
--------------------------------------------------
1. Login
2. Sign up
3. Logout
--------------------------------------------------
>>:2
user:test01
password:test01
-------------------Species list-------------------
0 --> Drink
1 --> Mobile phone
2 --> Car
-----------------------End------------------------
[q|b] to quit;[c] to check;[t] to top up
Input your choice:c
*********You purchased products as below**********
Goods Price Number Cost
***********************End************************
You total cost: 0
Your balance is [0]
-------------------Species list-------------------
0 --> Drink
1 --> Mobile phone
2 --> Car
-----------------------End------------------------
[q|b] to quit;[c] to check;[t] to top up
Input your choice:q
*********You purchased products as below**********
Goods Price Number Cost
***********************End************************
You total cost: 0
Your balance is [0]
###################Bye,thanks!####################
Process finished with exit code 1
python atm作业详解_Python学习day5作业-ATM和购物商城相关推荐
- python argparse模块详解_python学习之argparse模块
一.介绍 argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行参数. 我们很多时候,需要用到解析命令行参 ...
- python之struct详解_Python学习之struct
准确地讲,Python没有专门处理字节的数据类型.但由于str既是字符串,又可以表示字节,所以,字节数组=str.而在C语言中,我们可以很方便地用struct.union来处理字节,以及字节和int, ...
- python协程详解_python协程详解
原博文 2019-10-25 10:07 − # python协程详解 ![python协程详解](https://pic2.zhimg.com/50/v2-9f3e2152b616e89fbad86 ...
- python average函数详解_python 函数详解
函数函数是代码的一种组织形式 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果的叫过程,python不加以区分 ...
- python 元类 详解_Python 元类详解 __new__、__init__、__call__、__metacalss__
了解元类之前,先了解几个魔术方法: __new__.__init__.__call__ __new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪 ...
- awk命令详解_python学习之利用urllib和urllib2访问http的GET/POST详解
前言 本文主要给大家介绍了关于python如何学习访问http的GET/POST的相关内容,使用urllib和urllib2,可以轻松实现对http的访问,下面话不多说了,来一起看看详细的介绍吧. 示 ...
- python scatter参数详解_Python中scatter函数参数及用法详解
最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...
- python字符串格式化详解_Python字符串格式化%s%d%f详解
Python字符串格式化%s%d%f详解 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Python字符串格式化%s%d%f详解.txt ] (友情提示:右键点上 ...
- python scatter参数详解_Python 中 scatter 函数参数及用法详解
Python 中 scatter 函数参数及用法详解 Python 中 scatter 函数参数及用法详解 这里有新鲜出炉的 Python 教程, 程序狗速度看过来! Python 编程语言 Pyth ...
最新文章
- pytorch 转换onnx_新版PyTorch发布!新增TorchScript API,扩展ONNX导出
- linux shell date 1,linux shell date命令的坑(date 1 month ago 的诡异现象)
- java统计报表日期工具类
- 实现 Virtual DOM 下的一个 VNode 节点
- 计算机发展史的内容概述,计算机及其发展史概述
- Python 测试驱动开发(四)测试及重构的目的(上)
- linux 跑java程序_Linux下独立执行Java程序
- webpack4学习笔记(一)
- PTA是什么?BT-WIFI共存
- 开源淘宝客APP源码淘客商城源码uniapp开发模版
- ElasticSearch介绍ES客户端IK分词器Kibana安装
- h5制作导出html,Hype这款H5制作软件的导出功能的详细介绍
- 【GAN】生成式对抗网络论文笔记及TF2代码实现
- 2021-08-07 解决安装MacTeX后界面显示法语问题
- MAC系统连接Windows共享文件的方法
- 【UEFI基础】Protocol介绍
- 吴军《数学之美》第二版阅读整理
- workbench应力应变曲线_ansys workbench中的7种应力结果如何理解
- 多线程同步器之CountDownLatch
- 基于IIC和SPI协议的OLED显示(STM32)
热门文章
- python输入十个数输出最大值_python输入十个数如何输出最大值
- java基础之设计模式
- Sklearn.metrics评估方法
- 异常值处理 - iterrows()对 DataFrame 进行遍历,并修改遍历中的异常值 - Python代码
- AI技术在空气净化机器人中的高能应用
- 谁说2021届秋招算法岗一定要灰飞烟灭啦?
- 技术动态 | 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?
- SSM:出现Connections could not be acquired from the underlying database异常的解决
- thriftpy2使用与流程
- .net core中不支持GB2312编码的问题