import json import hashlib from lib.common import isuserlist,dblistname,userlog,auth from conf.settings import pathbd,pathlog
denguser = { 'name':None, 'isdeng' : False, 'username':None, } iswhile = True
def login(): exitnum = 0 while exitnum<3: print('===========登陆页面============') userz = input('请输入账号:输入 "退出" ').strip() userm = input('请输入密码:').strip() md5 = hashlib.md5() md5.update(userm.encode("utf-8")) pwd = md5.hexdigest() userlist = dblistname() if '%s.json'%userz in userlist: with open('%s%s.json'%(pathbd,userz), 'r',encoding='utf-8') as userzmy: userj = json.loads(userzmy.read()) if userj['userm'] == pwd: print("登陆成功") denguser['name'] = userz denguser['isdeng'] = True exitnum = 3 elif not denguser['isdeng']: print("密码错误!") exitnum += 1 elif userz == '退出': print("已退出") exitnum = 3 else: print("没有此用户名") exitnum += 1
def zhuceuser(): exitnum = 0 while exitnum < 3: print("===========注册页面============") userz = input("请输入账号:输入'退出'").strip() userm = input("请输入密码:").strip() userlist = dblistname() if exitnum == 2: print("你没机会了请重新进入注册页面") break elif '%s.json'%userz in userlist: print('用户存在') exitnum +=1 print('你还有%s次机会'%(3-exitnum)) elif not userz.isalnum(): print("你输入的账号存在非法字符") exitnum += 1 print('你还有%s次机会' %(3-exitnum)) elif userz == '退出': print("已退出") exitnum = 3 elif 6 < len(userm) < 14: print("你输入的账号密码正常") with open('%s%s.json'%(pathbd,userz),'a+',encoding='utf-8') as cunuser: dic = {} dic['username'] = userz md5 = hashlib.md5() md5.update(userm.encode("utf-8")) pwd = md5.hexdigest() dic['userm'] = pwd dic['money'] = 0 strr = json.dumps(dic) cunuser.write(strr) print('注册成功') exitnum = 3
@auth def shoumoney(): with open('%s%s.json'%(pathbd,denguser['name']),'r',encoding='utf-8') as shouuser: moneyu = json.loads(shouuser.read()) print('用户名:%s,余额:%s元'%(denguser['name'],moneyu['money'])) userlog(denguser['name'],'查看余额,当前余额为:%s元'%moneyu['money'])
@auth def addmoney(): newmoney = input("请输入你要充值的金额:") with open('%s%s.json'%(pathbd,denguser['name']),'r+',encoding='utf-8') as ismoney: newtext = json.loads(ismoney.read()) newtext['money'] = int(newtext['money']) + int(newmoney) with open('%s%s.json' %(pathbd, denguser['name']), 'w+') as xieru: xienew = json.dumps(newtext) xieru.write(xienew) print("存款成功") print('目前您用户名:%s的余额是:%s'%(denguser['name'],newtext['money'])) userlog(denguser['name'], '存款操作,余额为:%s元 增加:%s元,增加后余额为:%s' % (int(newtext['money']) - int(newmoney), newmoney, newtext['money']))
@auth def zhuanzhang(): username2 = input("请输入你要转账的用户名:") userlist = dblistname() if '%s.json'%username2 in userlist: with open('%s%s.json'%(pathbd,denguser['name']),'r',encoding='utf-8') as userjson: user1json = json.loads(userjson.read()) print("您现在的余额是:%s"%user1json['money']) zhuanmoney = input("请输入你要给他转多少") if int(zhuanmoney) <= int(user1json['money']): user1json['money'] = int(user1json['money']) - int(zhuanmoney) with open('%s%s.json' % (pathbd,denguser['name']), 'w+',encoding='utf-8') as xieru: xienew = json.dumps(user1json) xieru.write(xienew) with open('%s%s.json' %(pathbd,username2), 'r+',encoding='utf-8') as ismoney2: newtext2 = json.loads(ismoney2.read()) newtext2['money'] = int(newtext2['money']) + int(zhuanmoney) with open('%s%s.json' %(pathbd,username2), 'w+') as xieru2: xienew2 = json.dumps(newtext2) xieru2.write(xienew2) print("转账成功") userlog(denguser['name'], '转账操作,余额为:%s元 转走:%s元,转走后余额为:%s,转给:%s' % (int(user1json['money']) - int(zhuanmoney), zhuanmoney, user1json['money'],username2)) userlog(username2, '收款,加:%s元 ,转账人:%s' % (zhuanmoney,denguser['name'])) elif int(zhuanmoney) > int(user1json['money']): print("您的余额不足") else: print("你输入的用户名不存在")
@auth def shouliushui(): with open('%s%s.log'%(pathlog,denguser['name']),encoding='utf-8') as shoulog: print('--------------用户日志---------------') print(shoulog.read()) print('------------------------------------')
def exitatm(): global iswhile iswhile = False return iswhile
def run(): choice_dict = { 1: login, 2: zhuceuser, 3: shoumoney, 4: addmoney, 5: zhuanzhang, 6: shouliushui, 7: exitatm, } while iswhile: print(''' 欢迎来到ATM系统 1:请登录 2:请注册 3:查看余额 4:存钱 5:转账 6:查看账户流水 7:退出程序''') choice = input('请输入您选择的序号:').strip() if choice.isdigit(): choice = int(choice) if 0 < choice <= len(choice_dict): choice_dict[choice]() else: print("您输入的超出范围") else: print("输入不合规范,重新输入")
|