Python学习day5作业-ATM和购物商城、计算器
2017-01-28 12:02
603 查看
Python学习day5作业-ATM和购物商城、计算器
@(学习)[python]Python学习day5作业-ATM和购物商城计算器
ATM和购物商城
程序说明
基本流程图
程序测试帐号
程序结构
程序测试
计算器
程序说明
基本流程图
程序结构
程序测试
ATM和购物商城
作业需求ATM:
指定最大透支额度
可取款
定期还款(每月指定日期还款,如15号)
可存款
定期出账单
支持多用户登陆,用户间转帐
支持多用户
管理员可添加账户、指定用户额度、冻结用户等
购物车:
商品信息- 数量、单价、名称
用户信息- 帐号、密码、余额
用户可充值
购物历史信息
允许用户多次购买,每次可购买多件
余额不足时进行提醒
用户退出时 ,输出当次购物信息
用户下次登陆时可查看购物历史
商品列表分级显示
1. 程序说明
购物商城实现功能如下:- [x] 博客
- [x] 多用户登录
- [x] 商品按二级菜单显示
- [x] 充值功能
- [x] 多次购买,每次购买多件
- [x] 余额不足提示充值
- [x] 可查看购物历史
ATM实现功能如下:
- [x] 指定最大透支额度
- [x] 可取款
- [ ] 定期还款(每月指定日期还款,如15号)
- [x] 可存款
- [x] 定期出账单
- [x] 支持多用户登陆,用户间转帐
- [x] 支持多用户
- [x] 管理员可添加账户、指定用户额度、冻结用户等
ygqygq2的博客地址
作业地址:https://git.oschina.net/ygqygq2/python_homework/tree/master/day5作业
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
计算器
作业需求计算器:
算式支持加减乘除及括号
有历史记录
1. 程序说明
计算器实现功能如下:[x] 算式支持加减乘除及括号
[x] 有历史记录
ygqygq2的博客地址
作业地址:
https://git.oschina.net/ygqygq2/python_homework/tree/master/day5作业
2. 基本流程图
3. 程序结构:
. ├── Calculator # 计算器主程目录 │ ├── __init__.py │ ├── bin # 执行文件目录 │ │ ├── __init__.py │ │ ├── calculator.py # 计算器执行程序 │ ├── conf # 配置目录 │ │ ├── __init__.py │ │ └── settings.py # 配置文件 │ ├── core # 主要逻辑程序目录 │ │ ├── __init__.py │ │ ├── logger.py # 日志记录模块 │ │ └── main.py # 主逻辑程序 │ └── log # 日志根目录 │ ├── __init__.py │ └── history.log # 计算器历史日志 ├── README.md # readme文件 ├── calculator.jpg # 基本流程图
4. 程序测试
python Calculator/bin/calculator.py
**************Welcome to calculator!************** Please input your expression[q to quit]:1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) ) The expression result:2776672.6952380957 -------------------------------------------------- Please input your expression[q to quit]:1/(2-2)+3*8 Do not allow the divisor is 0!
**************Welcome to calculator!************** Please input your expression[q to quit]:1+1+3 The expression result:5.0 -------------------------------------------------- Please input your expression[q to quit]:q *********************Bye bye**********************
相关文章推荐
- Python学习day5作业-ATM和购物商城
- Python学习day5作业
- Python-S13作业-day5-之 ATM
- 第15天作业ATM+购物商城的讲解和练习
- python学习---购物商场与ATM
- python实现简单购物商城
- python实现简单购物商城
- day5 python学习随笔
- python学习之路之案例2---计算器
- 第一次作业:源代码计算器 学习流程
- Python学习day2作业总结
- Day2作业:购物商城
- Day5作业,商城+ATM机+后台管理
- Python实战计划学习作业1-1
- 学习JS,把作业晒晒---计算器
- Python 之路 Day5 - 常用模块学习
- JavaWeb学习记录(十三)——商城购物之添加订单的数据库级联操作
- Python入门学习第五周:字符串·作业
- python学习第四周:函数与递归函数·作业20141224
- JavaWeb学习记录(十二)——商城购物之数据库操作的接口定义