ATM-core-src
from interface import bank, shopping, user
from lib import common user_data = {
'name': None
} def logout():
if user_data['name']:
print('退出成功')
user_data['name'] = None
else:
print('你从来就没有登陆过') def login():
'''
登录
:return:
'''
print('欢迎来到登陆界面:')
if user_data['name']:
print('你已经登陆过了!')
return
count = 0
while True:
name = input('用户名:')
if name == 'q': break
password = input('密码:')
flag, msg = user.login_interface(name, password)
if flag:
user_data['name'] = name
print(msg)
break
else:
print(msg)
count += 1
if count == 3:
print('失败过多已锁定')
user.locked_interface(name)
break def register():
'''
注册:
:return:
'''
if user_data['name']:
print('你已经登陆过了!')
return
print('注册:')
while True:
name = input('用户名:')
if name == 'q': break
password = input('密码:')
conf_password = input('密码:')
if password == conf_password:
flag, msg = user.register_interface(name, password)
if flag:
print(msg)
break
else:
print(msg) else:
print('两次不一致') @common.login_auth
def check_balance():
'''
查询
:return:
'''
print('查询:')
balance = bank.check_balance(user_data['name'])
print(balance) @common.login_auth
def transfer():
'''
转账
:return:
'''
print('转账:')
while True:
toname = input('请输入需要转给的账户名:')
if toname == 'q': break
balance = input('转账金额:')
if balance == 'q': break
if balance.isdigit():
balance = int(balance)
falg, msg = bank.transfer_interface(user_data['name'], toname, balance)
if falg:
print(msg)
break
else:
print(msg)
else:
print('输入非法') @common.login_auth
def repay():
'''
还款
:return:
'''
print('还款界面:')
balance = input('请输入还款金额:')
if balance.isdigit():
balance = int(balance)
flag, msg = bank.repay_interface(user_data['name'], balance)
print(msg)
else:
print('必须数字') @common.login_auth
def withdraw():
'''
还款界面
:return:
'''
print('取款界面:')
balance = input('请输入取款金额:')
if balance.isdigit():
balance = int(balance)
falg, msg = bank.withdraw_interface(user_data['name'], balance)
if falg:
print(msg)
else:
print(msg) @common.login_auth
def check_record():
'''
查看流水
:return:
'''
print('查看流水:')
flow = bank.check_record_interface(user_data['name'])
for i in flow:
print(i)
# print(bank.check_record_interface(user_data['name'])) @common.login_auth
def shop():
'''
购物
:return:
'''
print('购物:')
goods = [
['coffee', 10],
['chicken', 20],
['iphone', 8000],
['macPro', 15000],
['car', 100000],
]
shoppingcart = {}
cost = 0
user_balance = bank.check_balance(user_data['name'])
while True:
for i, j in enumerate(goods):
print('%s:%s' % (i, j))
choice = input('请输入购买的编码:')
if choice.isdigit():
choice = int(choice)
if choice >= len(goods): continue
goods_name = goods[choice][0]
goods_price = goods[choice][1]
if user_balance >= goods_price:
if goods_name in shoppingcart:
shoppingcart[goods_name]['count'] += 1
else:
shoppingcart[goods_name] = {'price': goods_price, 'count': 1}
user_balance -= goods_price
cost += goods_price
else:
print('余额不足')
elif choice == 'q':
if cost == 0: break
print(shoppingcart)
buy = input('确认购买(y/n)')
if buy == 'y':
flg, msg = shopping.shopping_interface(user_data['name'], cost, shoppingcart)
if flg:
print(msg)
break
else:
print(msg)
else:
print('购物车为空')
break
else:
print('输入非法') def check_shopping_cart():
'''
查看购物车
:return:
'''
print(shopping.check_shoppingcart(user_data['name'])) func_dic = {
'1': login,
'2': register,
'3': check_balance,
'4': transfer,
'5': repay,
'6': withdraw,
'7': check_record,
'8': shop,
'9': check_shopping_cart,
'10': logout
} def run():
while True:
print('''
1、登陆
2、注册
3、查询余额
4、转账
5、还款
6、取款
7、查看流水
8、购物
9、查看购物车
10、退出登陆
11、退出系统
''')
choice = input('请输入需要选择的操作编码:')
if choice == '11': break
if choice in func_dic:
func_dic[choice]()
ATM-core-src的更多相关文章
- First Project -用函数写的ATM+购物商城程序
作业需求:模拟实现一个ATM + 购物商城程序 额度15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠 ...
- ATM机小程序
用规范化项目录的格式模拟一个ATM系统. 项目功能: 登录(可支持多个账户(非同时)登录) 注册 查看余额 存钱 转账(给其他用户转钱) 查看账户流水 退出 提供的思路:ATM直译就是取款机,但是咱们 ...
- 软件开发目录规范 ATM框架构建
软件开发的目录规范 建立文件夹 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要.软件的目录规范并无硬性标准,只要清晰可读即可 以ATM购物车项目为例: 首 ...
- 18、Python模块基础
一.模块 模块可以看成是一堆函数的集合体. 一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块. 如果这个py文件的文件名为module.py,模块名则是module. 1.模块的四 ...
- python以ATM+购物车剖析一个项目的由来及流程
ATM+购物车 一个项目是如何从无到有的 ''' 项目的由来,几个阶段 0.采集项目需求 1.需求分析 2.程序的架构设计 3.分任务开发 4.测试 5.上线运行 ''' 需求分析: # 对项目需求进 ...
- Python实战之ATM+购物车
ATM + 购物车 需求分析 ''' - 额度 15000或自定义 - 实现购物商城,买东西加入 购物车,调用信用卡接口结账 - 可以提现,手续费5% - 支持多账户登录 - 支持账户间转账 - 记录 ...
- 阶段性项目 ATM+购物车项目
ATM + 购物车https://www.cnblogs.com/kermitjam/articles/10687180.html readme 内容前戏: 一个项目是如何从无到有的. 一 需求分析 ...
- ATM购物车+三层结构项目设计
ATM购物车项目 模拟实现一个ATM + 购物商城程序. 该程序实现普通用户的登录注册.提现充值还款等功能,并且支持到网上商城购物的功能. 账户余额足够支付商品价格时,扣款支付:余额不足时,无法支付, ...
- day26 作业(ATM第二版)
目录 start.py conf.settings.py core.src.py db.db_handler.py interface.bank_interface.py interface.shop ...
- day25 作业(ATM第一版)
目录 conf.setting.py core.src.py db.db_handler.py interface.admin_interface interface.bank_interface i ...
随机推荐
- (转)CentOS 7常见的基础命令和配置
CentOS 7常见的基础命令和配置 原文:http://blog.51cto.com/hujiangtao/1973566 管理服务 命令格式:systemctl COMMAND name.serv ...
- c/c++技巧总结
1.bzero().memset()初始化结构体. 2.求结构体分量在结构体中地址偏移量 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) ...
- 【Python】python2 html safe string
import cgi s = '<>&' s += u'哈哈' print type(s) print s r = cgi.escape(s) print type(r) prin ...
- TCP 协议中的 Window Size与吞吐量
原地址:http://blog.sina.com.cn/s/blog_c5c2d6690102wpxl.html TCP协议中影响实际业务流量的参数很多,这里主要分析一下窗口的影响. TCP窗口目的 ...
- python 多线程 生产者消费者
import threading import time import logging import random import Queue logging.basicConfig(level=log ...
- hiho一下 第三十七周 二分查找之k小数
题目链接:http://hihocoder.com/contest/hiho37/problem/1 , 简单二分. 算法: 题目即为求一个无序数组数组中第k小的数,由于数据量太大,排序是会超时的. ...
- Hybris ECP里Customer对应的数据库表
SAP CRM里Account明细页面: SAP C4C里Account明细页面: 在Hybris storefront注册一个帐号: 注册成功之后能在backoffice里看到成功生成的custom ...
- C语言标准库之setjmp
协程的介绍 协程(coroutine),意思就是“协作的例程”(co-operative routines),最早由Melvin Conway在1963年提出并实现.跟主流程序语言中的线程不一样,线程 ...
- Extjs4.1+desktop+SSH2 搭建环境 项目能跑起来
linux开发感觉可能就是日常办公的时候,用别的软件会有问题,java开发还是没什么区别的,换回window开发: push 它: 每次看到右上那红红的叉,我还以为又出错了: 这个项目用resin,下 ...
- IOS - (id)initWithStyle... 方法的使用
// 该方法只有在通过代码创建控件的时候才会调用, 如果控件是通过xib或者storyboard创建出来的不会调用该方法- (id)initWithStyle:(UITableViewCellStyl ...