您的位置:首页 > 编程语言 > Python开发

Python初学练习03:简易ATM系统-前端

2016-11-08 17:06 447 查看
目录结果如下:
-rw-r--r-- 1 root root 68 Nov 8 16:54 accountinfo.data
-rw-r--r-- 1 root root 545 Nov 8 16:55 accountinfo.log
-rw-r--r-- 1 root root 14 Nov 8 14:25 adminaccount.data
-rw-r--r-- 1 root root 1738 Nov 8 16:53 bill.py
-rw-r--r-- 1 root root 1911 Nov 8 16:53 bill.pyc
-rw-r--r-- 1 root root 1407 Nov 8 08:59 login.py
-rw-r--r-- 1 root root 1855 Nov 8 09:39 login.pyc
-rw-r--r-- 1 root root 4415 Nov 8 16:38 service.py
-rw-r--r-- 1 root root 45 Nov 8 11:37 useraccount.data
-rw-r--r-- 1 root root 11 Nov 8 08:59 userinfo.data

全部文件输出
[BEGIN] 2016/11/8 16:58:01
[root@mysql-test ATMservice]# ls |grep -v .pyc |xargs cat
admin 1802.95 30000 0
qinling 1029.0 30000 0
system 2329.05 30000 0
Tue Nov 8 16:44:54 2016,admin,bill,0
Tue Nov 8 16:44:54 2016,admin,query,0
Tue Nov 8 16:53:32 2016,admin,query,0
Tue Nov 8 16:53:32 2016,admin,bill,0
Tue Nov 8 16:53:32 2016,admin,save,10000
Tue Nov 8 16:53:32 2016,admin,bill,0
Tue Nov 8 16:53:32 2016,admin,query,0
Tue Nov 8 16:53:32 2016,admin,bill,0
Tue Nov 8 16:53:32 2016,admin,bill,0
Tue Nov 8 16:53:32 2016,qinling,query,0
Tue Nov 8 16:53:32 2016,qinling,bill,0
Tue Nov 8 16:53:32 2016,admin,query,0
Tue Nov 8 16:53:32 2016,admin,bill,0
Tue Nov 8 16:53:32 2016,admin,bill,0
admin admin 0
import tab
import io,sys,time
billpath = 'accountinfo.log'
accountpath = 'accountinfo.data'
bill = []
info = []
with open(billpath) as billfile:
for line in billfile.readlines():
bill.append(line.strip())
with open(accountpath) as infofile:
for line in infofile.readlines():
info.append(line.strip())
def bill_index(account):
bill_account_remain=0
bill_count_load=0
bill_count_save=0
for line in bill:
if len(line) !=0 :
logtime=line.split(',')[0]
logaccount=line.split(',')[1]
logaction=line.split(',')[2]
lognumber=line.split(',')[3]
if logaccount == account :
if logaction =='save':
bill_count_save =float(bill_count_save)+float(lognumber)
elif logaction =='load':
bill_count_load =float(bill_count_load)+float(lognumber)
elif logaction =='loadoption':
bill_count_load =float(bill_count_load)+float(lognumber)
for line in info:
if len(line) !=0:
if line.split()[0] == account:
bill_account_remain = float(line.split()[1])
if float(line.split()[1]) < 0 :
bill_account_mustsave = 0 - float(line.split()[1])
else :
bill_account_mustsave = 0

print "=================================================="
print " %s bill" %account
print "=================================================="
print "Data:%s-%s Account:%s" %(time.gmtime()[0],time.gmtime()[1],account)
print "pay:$ %s , save:$ %s " %(bill_count_load,bill_count_save )
print "Remain:$ %s , must save:$ %s " %(bill_account_remain,bill_account_mustsave )
print "=================================================="
for line in bill:
if len(line) !=0 and float(line.split(',')[3]) > 0 and line.split(',')[1]==account:
print line
#bill_index('admin')

#!/usr/lib/env python
import sys,io
def login(filepath='useraccount.data'):
UserInfo={}
with open(filepath) as file:
for line in file.readlines():
if len(line) !=0:
account=line.strip().split()[0]
password=line.strip().split()[1]
errcount=line.strip().split()[2]
UserInfo[account]=[password,errcount]
def fileup(upfilepath):
with open(upfilepath,'w') as fileup:
for key in UserInfo.keys():
str = "%s %s %s\n" %(key,UserInfo[key][0],UserInfo[key][1])
fileup.write(str)

logincount=0
while logincount < 5:
print "Welcome To Login"
Iaccount=raw_input("Account:").strip()
Ipasswd=raw_input("Password:").strip()
if len(Iaccount) !=0 and len(Ipasswd)!=0:
if UserInfo.has_key(Iaccount):
if int(UserInfo[Iaccount][1]) < 3:
if Ipasswd == UserInfo[Iaccount][0]:
print "Welcome to %s" %Iaccount
return(Iaccount)
break
else:
print "Error:Account or password is Error.Please Login agin.Password"
UserInfo[Iaccount][1]=int(UserInfo[Iaccount][1])+1
logincount +=1
fileup(filepath)
else:
print "Error:Account or password is Error.Please Login agin.Lock"
logincount +=1
else:
print "Error:Account or password is Error. Please Login agin.Account"
logincount +=1
else:
print "Error:Input is Error! Please Login again.Len"
logincount +=1
if logincount > 4:
return('null')

import io,sys,time
import tab
import login
import bill
accountinfo={}
with open('accountinfo.data') as userinfofile:
for line in userinfofile.readlines():
if len(line) > 4:
account_value=['node',0,30000,0]
account=line.strip().split()[0]
account_value[0]=line.strip().split()[1]
account_value[1]=line.strip().split()[2]
account_value[2]=line.strip().split()[3]
accountinfo[account]=account_value
def userinfo_update():
with open('accountinfo.data','w') as userinfo_file:
for account in accountinfo.keys():
ccount][2])
userinfo_file.write(str)
def action_log(account,action,number=0,createtime=time.ctime()):
with file('accountinfo.log','a') as log_file:
str = "%s,%s,%s,%s\n" %(createtime,account,action,number)
log_file.write(str)
return('true')
def user(uaccount):
Inoption = ""
while Inoption != '0':
print "=========================="
print " User Function"
print "=========================="
print "1 Save account"
print "2 Load account"
print "3 Query account"
print "4 Query Water Log"
print "0 Break account"
Inoption=raw_input("Option[0-3]:").strip()
inputerr=0
if len(Inoption) !=0:
if Inoption == '1':
while inputerr <5:
Save_Number= int(raw_input("save Money:").strip())
if accountinfo.get(uaccount)[0] > 0 or accountinfo.get(uaccount)[0] == 0:
Save_Number)
userinfo_update()
action_log(uaccount,'save',Save_Number)
print "Action sure"
time.sleep(2)
break
else:
accountinfo[uaccount]=[0,30000,0]
action_log(uaccount,'create',0)
print "Action err "
time.sleep(2)
inputerr +=1

elif Inoption == '2':
while inputerr < 3:
Load_Number = float(raw_input("Load Money:").strip())
loadoption= float(Load_Number * 0.05)
if Load_Number > 0 and Load_Number < 15000 :
_Number) - float(loadoption)
loadoption)
userinfo_update()
action_log(uaccount,'load',Load_Number)
action_log(uaccount,'loadoption',loadoption)
action_log('system','loadoption',loadoption)
print "Action sure"
time.sleep(2)
break

else:
print "Error:.Please Input again."
time.sleep(2)
elif Inoption == '3':
print "Account Balance:\033[032,1m %s \033[0m " % accountinfo[uaccount][0]
action_log(uaccount,'query')
time.sleep(2)
elif Inoption == '4':
bill.bill_index(uaccount)
action_log(uaccount,'bill')
time.sleep(2)
elif Inoption == '0':
break
def user_bill(bill_account):
with file("accountinfo.log") as bill_file:
for line in bill_file.readlines():
#print line
if line.strip().split(',')[1] ==bill_account and len(line) !=0:
if line.strip().split(',')[2] in('save','load','loadoption'):
#== 'save' or line.strip().split(',')[2] == 'load'
#line.strip().split(',')[2] == 'loadoption':
log_time=line.strip().split(',')[0]
log_account=line.strip().split(',')[1]
log_action=line.strip().split(',')[2]
log_numer=line.strip().split(',')[3]
print "%s %s %s"%(log_time,log_action,log_numer)

def admin(uaccount):
Inoption = ""
while Inoption != '0':
print "=========================="
print " ATMAdmin Function"
print "=========================="
print "1 Save account"
print "0 Break account"
Inoption=raw_input("Option[0-4]:").strip()
inputerr=0
if len(Inoption) !=0:
if Inoption == '1':
while inputerr <5:

inputerr +=1
elif Inoption == '0':
break
def index():
while True:
print
print "======================"
print "Welcome To ATM service"
print "======================"
print "1 User Login"
print "2 Admin Login"
print "0 exit"
Ioption = raw_input("Option[1-3]:").strip()
if len(Ioption) !=0 :
if Ioption == '0':
break
elif Ioption == '1':
useraccount=login.login('useraccount.data')
if len(useraccount) !=0 and useraccount !='null':
user(useraccount)
elif Ioption == '2':
login.login('adminaccount.data')
if len(useraccount) !=0 and useraccount !='null':
admin(useraccount)
index()
admin admin 0
qinling 123 2
loren loren123 3
admin 1000
[END] 2016/11/8 16:58:11
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python