利用目前学的流程控制写的
'''
ATM机
需求:
1.登陆
输入账号输入密码
每日只有3次登陆密码错误的机会,超过3次禁止登陆
2.查询余额
3.存款
4.取款
5.转帐
6.退出
'''
infos = [
{'name':'jack','pwd':'123','yue':0},
{'name':'bran','pwd':'123','yue':0},
{'name':'egon','pwd':'123','yue':0},
]
# 禁止登陆
ban = False
# 登陆状态
login_state = False
# 账号密码错误次数
login_num = 0
# 菜单 choice
choice = 0
# 输入的用户名
name = ''
# 输入的密码
pwd = ''
# 余额
yue = 0
while ban == False:
# 登陆
while login_state == False:
# 登陆
name = input('请输入账号:')
pwd = input('请输入密码:')
# 查询账号密码是否正确
for info in infos:
if name == info['name'] and pwd == info['pwd']:
print('登陆成功!')
login_state = True
yue = info['yue']
break
# 如果没有账号密码不正确则 运行下面的代码
if login_state == False:
login_num += 1
print('账号密码错误!请重新输入!剩余次数 %s' % (3 - login_num))
if login_num == 3:
print('今日登陆错误次数超限,请明日再来')
ban = True
break
# 打印菜单
if login_state == True and choice == 0:
print('''
1 查询
2 存款
3 转帐
4 取款
5 退出
''')
choice = int(input('请输入操作状态:'))
# 查询
if login_state == True and choice == 1:
print('%s 账户的余额为 %s ¥' % (name,yue))
choice = 0
# 存款
if login_state == True and choice == 2:
money = int(input('请输入你的金额:'))
for info in infos:
if name == info['name']:
info['yue'] += money
yue += money
print('%s 账户存入 %s ¥' % (name,money))
choice = 0
# 转帐:
if login_state == True and choice == 3:
to_state = 0 # 1:成功 2:余额不足
to_num = 0
while to_state == 0:
to_name = input('请输入转入的用户名:')
# 判断 用户是否存在
for info in infos:
if to_name == info['name']:
money = int(input('请输入转帐的金额:'))
# 判断自己账户的金额是否足够
if yue >= money:
info['yue'] += money
yue -= money
print('你给 %s 用户成功转入 %s ¥'%(to_name,money))
to_state = 1
break
else:
print('你的余额不足,请充值后再转帐')
to_state = 2
if to_state == 1:
break
elif to_state == 2:
break
else:
to_num += 1
print('你输入的用户不存在,请重新输入:')
choice = 0
# 取款
if login_state == True and choice == 4:
money = int(input('请输入你的取款金额:'))
# 判断输入的金额是否小于等于余额
if money <= yue:
print('请再出钞口取钞票吧!')
yue -= money
choice = 0
else:
print('你输入的金额大于你的余额,无法取款!')
# 退出
if login_state == True and choice == 5:
break
ATM机运行代码
实现代码: import java.util.Scanner; public class Atm { public static void main(String[] args) { // TODO ...
Python(ATM机low版)
import osclass ATM: @staticmethod def regst(): while 1: nm = input('请输入你的名字:') mm = input('请输入你的密码:' ...
简单的小程序实现ATM机操作
简单的小程序实现ATM机操作 代码如下: package Day06; import java.util.Scanner; public class TestAccount { public stat ...
简易ATM机
简易ATM机(代码如下): /* * 功能:简易银行系统 */package day8; import java.util.Scanner; /** * * @FengYan Huang Admini ...
模块购物商城和ATM机代码:
http://outofmemory.cn/python/video/let-us-python/ python为程序员服务 快来加入群[python爬虫交流群](群号570070796),发现精彩 ...
python实现atm机基本操作及购物车
一.需求分析 ATM机要为用户提供转账,提现,还款,付款,消费流水,操作记录等操作接口 ATM机要为管理员提供创建用户,冻结解冻,修改额度的功能 ATM机管理员认证使用装饰器来实现 购物车要提供管理员 ...
python模块使用案例
python模块使用案例 一.使用MySQLdb模块代码示例: # 导入 MySQLdb模块 import MySQLdb # 和服务器建立链接,host是服务器ip,我的MySQL数据库搭建在本机, ...
模拟ATM机银行系统
淄博汉企Java基础考核项目 模拟银行自助终端系统 一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处 ...
python + hadoop (案例)
python如何链接hadoop,并且使用hadoop的资源,这篇文章介绍了一个简单的案例! 一.python的map/reduce代码 首先认为大家已经对haoop已经有了很多的了解,那么需要建立m ...
随机推荐
ucosII移植
移植ucos II 到一个芯片上,只需要修改下面三个文件:OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM. 具体来说,移植主要包括以下几项内容 (1).OS_CPU.H :用#def ...
MyEclipse2014不支持jre1.8吗
myeclipse 2015才支持了java 8 也可以用Eclipse Kepler加插件的形式来支持java 8
20175223 实验一 《JAVA开发环境的熟悉》实验报告
目录 北京电子科技学院(BESTI)实验报告 实验名称:实验一 Java开发环境的熟悉 实验内容.步骤与体会: 一.实验一 Java开发环境的熟悉-1 二.实验一 Java开发环境的熟悉-2 步骤: ...
Scala入门系列(六):面向对象之object
object object相当于class的单个实例,类似于Java中的static,通常在里面放一些静态的field和method. 第一次调用object中的方法时,会执行object的con ...
mongo学习-TTL索引 过期数据
在mongo中我们可以设置文档的过期时间,超过时间,文档会自动删除.(2.x版本中 固定结合也支持,但是到了3.x中 固定集合这个索引不好用) 用法: 1.创建一个db:db.createColle ...
20145310 《Java程序设计》第7周学习总结
20145310 第7周学习总结 教材学习内容总结 本周主要进行第十二章和第十三章的学习. Lambda定义:一个不用被绑定到一个标识符上,并且可能被调用的函数. 在只 ...
将selenium集成到scrapy框架中
一 首先想到的是将selenium 写在下载中间件的process_request中.如以下代码. middleware.py from selenium import webdriver from ...
并不对劲的bzoj4651:loj2084:uoj220:p1173:[NOI2016]网格
题目大意 有一个\(n*m\)(\(n,m\leq10^9\))的网格,每个格子是空地或障碍(\(障碍数\leq10^5\)) 定义两块空地连通,当且仅当它们是"相邻的两块空地"或 ...
Viewpager切换时pager页面的生命周期变化
总结1: 当我们把ViewPager和Fragment合用的时候,切换页面时生命周期会发生对应的变化.变化规律:载入当前页面.前一个页面和后一个页面.我们来看一个实际測试效果图 打开应用会载入第一个页 ...