ATM 程序

ATM 目前只有用户操作,数据操作暂时未做,算遗留吧,万变不理其中,都是这么操作的!

  1 # -*- coding:utf-8 -*-
  2 # Author:JinYu
  3 
  4 dect_info = {
  5     'name_login':'',    #登录名
  6     'pwd_login':'',     #密码
  7     'account':'',       #账号
  8     'login_data':'',    #注册时间
  9     'billing_day':'15', #账单日
 10     'repayment_day':'1',#还款日
 11     'status':'0',       #账户状态(0活跃 1冻结)
 12     'cash_balance':'0',  #现金余额
 13     'facility_extent':'15000',#默认透支额度15000
 14     'amountin_arrears':'0',#欠款金额
 15     'shopping_history':{},#购物历史
 16 }
 17 import json,time,json,os,sys
 18 #print(time.localtime(time.time()))
 19 day = time.strftime('%Y-%m-%d',time.localtime(time.time()))
 20 time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
 21 print(day,time)
 22 BASE_PATH = os.path.dirname(os.path.abspath(__file__))
 23 FILE_NAME = BASE_PATH+os.path.sep
 24 #print(BASE_PATH)
 25 
 26 def check(a,b,c=None):
 27     if len(a) ==0 and len(b) ==0:
 28         print('你输入的用户名密码不可为空!')
 29         return True
 30     elif len(a) ==0 and len(b) ==0 and len(c) == 0:
 31         print('你输入的字段不可为空!')
 32         return True
 33     else:
 34         return False
 35 
 36 #用户查询
 37 def login_select():
 38     count = 0
 39     while True:
 40         username = input('输入用户名:')
 41         password = input('输入密码:')
 42         if check(username,password):
 43             continue
 44         else:
 45             with open(FILE_NAME+'creadit_history','r') as write_f:
 46                 flag = False
 47                 for line in  write_f:
 48                     data = json.loads(line)
 49                     if username in data['name_login']:
 50                         #print(data)
 51                         if  data['status'] == '1' : #data['name_login'] == username and
 52                             #print(data['status'],data['name_login'],count)
 53                             exit('\033[32;1m您的账号已被锁定,请到营业厅办理办理!!!\n\033[0m ')
 54                             #return  True
 55                         elif  count >=2:
 56                             #print(count+1)
 57                             exit('\033[32;1m您的账号多次登录,请稍后再试!!!\n\033[0m ')
 58                         elif username == data['name_login'] and password == data['pwd_login']:
 59                             print('\033[32;0m登录成功\033[0m'.center(50,'*'))
 60                             return True
 61                         else:
 62                             print('\033[32;1m账号密码错误,请重新输入!!\033[0m')
 63                             flag = True
 64                             continue
 65                 else:
 66                     #print(flag)
 67                     if flag == True:
 68                         count +=1
 69                     if flag == False:
 70                             print('\033[32;1m没有这个用户!!\033[0m')
 71 
 72 #login_select()
 73 
 74 #新增用户
 75 def add_login():
 76     #import  json
 77     while True:
 78         username = input('输入用户名:')
 79         password = input('输入密码:')
 80         account = input('输入账号:')
 81         atm = input('输入信用卡额度:')
 82         # if check(username,password,account):
 83         #     continue
 84         # else:
 85         with open(FILE_NAME+'creadit_history','r+') as write_f:
 86             for line in  write_f:
 87                 data = json.loads(line)
 88                 if username not in data['name_login']:
 89                     dect_info['name_login'] =username
 90                     dect_info['pwd_login'] = password
 91                     dect_info['account'] = account
 92                     if len(atm) and atm.isdecimal():
 93                         dect_info['facility_extent'] = atm
 94                     dect_info['login_data'] =day
 95                     #write_f.write(json.dumps(dect_info))
 96                     write_f.write(json.dumps(dect_info)+'\n')
 97                     write_f.flush()
 98                     exit('\033[32;1m新增用户成功!!\033[0m')
 99 
100                 else:
101                     exit('\033[32;1m您输入的用户已存在!!\033[0m')
102 
103 #add_login()
104 
105 #删除用户记录
106 def del_login():
107     while True:
108         username = input('输入要删除的用户名:')
109         with  open(FILE_NAME+'creadit_history','r') as read_f,open(FILE_NAME+'creadit_crad','w') as write_f:
110             for line in read_f:
111                 data = json.loads(line)
112                 #print(data)
113                 if username in data['name_login']:
114                     data.clear()
115                     pass
116                 else:
117                     write_f.write(json.dumps(data)+'\n')
118                     write_f.flush()
119         os.rename(FILE_NAME+'creadit_history',FILE_NAME+'creadit_history.bak')
120         os.rename(FILE_NAME+'creadit_crad',FILE_NAME+'creadit_history')
121         exit('\033[32;1m删除用户成功!!\033[0m')
122 
123 #del_login()
124 
125 #修改用户额度
126 def modify_login():
127     while True:
128         username = input('输入要修改额度的用户名:')
129         with  open(FILE_NAME+'creadit_history','r') as read_f,open(FILE_NAME+'creadit_crad','w') as write_f:
130             for line in read_f:
131                 data = json.loads(line)
132                 #print(data)
133                 if username in data['name_login']:
134                     atm = input('输入信用卡额度:')
135                     if len(atm) and atm.isdecimal():
136                         data['facility_extent'] = atm
137                         #print(data)
138                     write_f.write(json.dumps(data)+'\n')
139                     write_f.flush()
140                 else:
141                     write_f.write(json.dumps(data)+'\n')
142                     write_f.flush()
143         os.rename(FILE_NAME+'creadit_history',FILE_NAME+'creadit_history.bak')
144         os.rename(FILE_NAME+'creadit_crad',FILE_NAME+'creadit_history')
145         exit('\033[32;1m修改用户额度成功!!\033[0m')
146 
147 #modify_login()
148 
149 #冻结用户
150 def freeze_login():
151     while True:
152         username = input('输入要冻结的用户名:')
153         with  open(FILE_NAME+'creadit_history','r') as read_f,open(FILE_NAME+'creadit_crad','w') as write_f:
154             for line in read_f:
155                 data = json.loads(line)
156                 #print(data)
157                 if username in data['name_login']:
158                     data['status'] = '1'
159                     #print(data)
160                     write_f.write(json.dumps(data)+'\n')
161                     write_f.flush()
162                 else:
163                     write_f.write(json.dumps(data)+'\n')
164                     write_f.flush()
165         os.rename(FILE_NAME+'creadit_history',FILE_NAME+'creadit_history.bak')
166         os.rename(FILE_NAME+'creadit_crad',FILE_NAME+'creadit_history')
167         exit('\033[32;1m用户冻结成功!!\033[0m')
168 #freeze_login()
用户操作代码
 1 # -*- coding:utf-8 -*-
 2 # Author:JinYu
 3 
 4 import os,sys
 5 
 6 DASE_DIR = os.path.dirname(os.path.abspath(__file__))
 7 #DASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 8 #print(DASE_DIR)
 9 sys.path.append(DASE_DIR)
10 from Login import *
11 
12 #装饰器
13 def auth(auth_type):
14     def outer_wrapper(func):
15         def wrapper(*args,**kwargs):
16             if auth_type =='local':
17                 login_select()
18                 ret = func(*args,**kwargs)
19                 return ret
20             elif auth_type =='ldap':
21                 print('不需要登录,请直接操作!')
22                 ret = func(*args,**kwargs)
23                 return ret
24         return wrapper
25     return outer_wrapper
26 
27 @auth(auth_type='local')
28 def index(name,age):
29     print('welcome to index page! ',name,age)
30 index('jinyu',18)
31 
32 @auth(auth_type='ldap')
33 def home():
34     print('welcome to home page!')
35 
36 home()
装饰器-是否需要登录
 1 # -*- coding:utf-8 -*-
 2 # Author:JinYu
 3 
 4 import os,sys
 5 
 6 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 7 print(BASE_DIR)
 8 sys.path.append(BASE_DIR)
 9 
10 from conf import Login
11 
12 
13 def login_action():
14     Login.login_select()
15     menu_dic ={
16         1:Login.add_login,
17         2:Login.del_login,
18         3:Login.modify_login,
19         4:Login.freeze_login,
20 
21     }
22     # print(menu_dic['1']())
23     # exit()
24     exit_flag = False
25     while not exit_flag:
26         print('\n')
27         print('\033[32;1m欢迎光临ATM电子银行用户管理系统\033[0m'.center(50,'*'))
28         print('\033[32;1m\t\t用户操作请选择以下功能项\n\t\t1,信用卡用户新增\n\t\t2,信用卡用户删除\n\t\t3,信用卡用户额度修改\n\t\t4,信用卡用户冻结\033[0m')
29         temp = int(input('请输入与功能菜单:'))
30         if temp in  menu_dic:
31             print(menu_dic[temp])
32             menu_dic[temp]()
33         else:
34             #print(menu_dic[temp])
35             print('\033[31;1m输入的功能编号有误,请重新输入要操作的功能:\033[0m')
36 
37 login_action()
菜单栏

 

posted on 2017-02-28 22:56  Baylor_Chen  阅读(180)  评论(0)    收藏  举报

导航