python实现atm机的部分功能

环境:python2.7

缺陷:钱不变,待完善

# -*- coding: utf-8 -*-
user_name = "C:\Users\95112\Desktop\ATM\username" #定义用户名和密码的位置
goods     = "C:\Users\95112\Desktop\ATM\goods"  #定义商品列表的的位置

#登录
def login():
	global a
	global salary
	username=[]
	password=[]
	money  =[]
	f = file(user_name)
	for line in f.readlines():
		new_line = line.split()
		username.append(int(new_line[0]))
		password.append(int(new_line[1]))
		money.append(int(new_line[2])) 
	UserName = int(raw_input("please input your username:"))
	if UserName in username:
		PassWord = int(raw_input("please input your password:"))
		username_passwd = password[username.index(UserName)]  #取出username相对应的密码
		salary = money[username.index(UserName)]  #取出账户中相对应的钱
		if PassWord == username_passwd:
			a = 1 #登录成功的标志
			print "Login successful"
			print "You still have %s of the balance" % money
		else:
			a = 0
			print "password error"
	else:
		a = 0
		print "your username error"

	return a
	return salary

#购物
def shopping(salary):
	global s
	products=[]
	price=[]
	shop_list= []

	f = file(goods)
	for line in f.readlines():
		new_line = line.split()
		products.append(new_line[0])
		price.append(int(new_line[1]))
	while 1:
		print u‘请从以下商品中挑选一个或者几个购买:‘
		print products
		for i in range(0,len(products)):
			if (salary>=price[i]):
				print products[i],price[i]
		print "+---------------------------------+"
		print u"输入exit可以退出购买"
		choice  = raw_input("please choice a shop to buy:")
		F_choice = choice.strip()#去除空格,格式化输出。
		#退出循环
		if F_choice == "exit":
			break
		if F_choice in products:
			product_price = price[products.index(F_choice)] #取出产品价格
			print "+---------------------------------+"
			print u"你要购买的商品以及价格:",F_choice,product_price
			print u"商品正在加入购物列表,请稍等"
			if salary > product_price:
				shop_list.append(F_choice)
				salary = salary - product_price
				print "+---------------------------------+"
				print u"你已经成功购买了%s" % F_choice
				print u"你的余额还有:", salary
				print u"你已经购买的商品有:", shop_list
				print "+---------------------------------+"
			else:
				pass
		else:
			print u"你输入的商品不在商品列表里,请重新输入!"

	return salary

#转账或者提现
def Transfer_accounts(salary):
	print u"每次转账和提现收取百分之5的服务费."
	inputs = int(raw_input("please input you should how much money:"))
	SS = inputs*0.05
	zong = inputs + SS
	if ( salary < zong or salary < input):
		print u"余额不足"
	else:
		salary = salary - zong
	return salary

#菜单
def menu(salary):
    print u"""Welcome to use ATM automatic teller machine
            If the machine failure please contact ATM\t """
    while True:
    	print "\t(1) shop"
    	print "\t(2) Transfer accounts"
    	print "\t(3) quit"
        choices = raw_input("Please choices:").strip()
        if len(choices) == 0:
        	continue
        if choices == ‘1‘:
        	shopping(salary)
    	elif choices == ‘2‘:
    		Transfer_accounts(salary)
        else:
            print "Please pay attention to the property security"
            exit()

if __name__ == ‘__main__‘:
	login()
	if a == 1:
		menu(salary)
	else:
		pass


时间: 2024-10-20 10:14:14

python实现atm机的部分功能的相关文章

Python实现atm机的功能

主要还是参考网上内容,自己做了修改.虽然代码有小bug,但是不影响学习和测试. 功能: 额度:8000 可以提现,手续费5% 每月最后一天出账单,写入文件 记录每月日常消费流水 提供还款接口 1.atm的脚本 [[email protected] atm]# cat atm.py #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Date:2017-03-23 Author:Bob ''' import os import time import

python版—ATM机

# 初始化存储变量 cards = [123456, 234567, 345678]   # 存放用户卡号 pwds = [111, 222, 333]            # 存放用户的密码 moneys = [1000, 1000, 100]       # 存放用户的余额 IsLogin = False  # 用户是否登录 loginUser = -1  # 登录的用户,保存数组的下标 loginCount = 0 # 登录次数 #主菜单 def menu():    while Tru

菜鸡程序猿的开始:java基础知识之一个简单ATM机

import java.util.Scanner; public class Atm{ static int allmoney=150000; //ATM现有余额 static int all=200000; // ATM最大量 static int money =10000; // 初始化用户的余额 public static void main(String[] args) { System.out.print("*********************************"

模拟ATM机功能(C语言)

/* fuction:模拟ATM机存取功能 date:2014/8/20 by:zhouhaiou*/ #include <stdio.h>#include <string.h>#include <math.h>int money=100000; void query();void transf(); void welcome()//欢迎界面 { printf("\t\t*********************************************

JAVA - ATM机程序

ATM机程序 UnionPayTest.java package oo.day06.work; public class UnionPayTest { } interface UnionPay{ //银联接口 public double getBalance(); //查询余额 public boolean drawMoney(double number); //取款 public boolean checkPwd(String input); //检查密码 } interface ABC ex

文件及输入输出流模拟ATM机

题目:两部分要求都要实现. 一.ATM机的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,操作日期(Date),操作类型,账户密码(六位的数字,可以用0开头),当前的余额(可以为0). 模拟ATM的功能设计,用户插卡后显示选择语言界面,输入密码界面,用户输入正确密码(用户输入错误密码,则提示该卡已被锁定,无法操作),则弹出选择界面:存款.取款.转账汇款.修改密码.查询余额. 选择"取款",则显示100元.500元.1000元.1500元.2000元

摩根大通银行被黑客攻克, ATM机/网银危在旦夕,winxp退市灾难来临了

winxp4月退市到如今还不到半年,就出现故障了 7600多万个消费者银行账户被黑.此外还有700万个小企业账户的信息也被黑客窃取,这个算不算灾难呢?假设等到银行业彻底崩溃,资金彻底丧失,那不仅仅是灾难,而是末日. 因为越来越多黑客受雇于组织.针对winxp退市的唾手可得的攻击成了他们的巨大狂欢.我觉得黑客可能利用winxp漏洞入侵atm机后再进入银行网络.在没有安全操作系统(windows不安全众人皆知)情况下把数据放到云服务.等于把安全钥匙交给了黑客.摩根发布这些事件是想获得针对账户攻击的免

一个简易的ATM机实现

这是我们C语言学习的最后阶段,用C语言做一个控制台控制的简易ATM机.实现输入密码,密码判断,显示选线等功能.我实现的代码如下: #include<stdio.h> #include<string.h> //#include<stdlib.h> void welcome(char user[]) { printf(" ################################################# \n"); printf(&quo

模拟ATM机银行系统

淄博汉企Java基础考核项目 模拟银行自助终端系统 一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处理机制进行处理. 2. 评分将以功能实现与代码规范性相结合的方式进行考核. 3. 如果对项目需求有疑问,可以随时以QQ留言方式联系我进行咨询. 4. 国庆放假期间,每天都有老师在公司值班,10月4日是我在公司值班,10月7日正常上班,欢迎大家到公司来做项目. 二. 项目功能要求: 项目开始运行显示主