學Python將近一個月了,第一次寫了兩百多行代碼,一個很簡單的腳本。 員工信息管理系統: 需求: 1.管理員賬戶能夠增加,刪除,修改,查詢員工信息,並且設置管理員賬戶。 2.普通賬戶可以查看所有員工信息,但不能增加,修改,刪除員工信息。 3.可以針對員工信息類型進行模糊查詢,並能記錄搜索出多少條結 ...
學Python將近一個月了,第一次寫了兩百多行代碼,一個很簡單的腳本。
員工信息管理系統:
需求:
1.管理員賬戶能夠增加,刪除,修改,查詢員工信息,並且設置管理員賬戶。
2.普通賬戶可以查看所有員工信息,但不能增加,修改,刪除員工信息。
3.可以針對員工信息類型進行模糊查詢,並能記錄搜索出多少條結果。
4.三次密碼輸入錯誤退出程式。
5.員工工號自增。
思路:
時間太晚了,明天再寫。
具體實現代碼
1 #coding=utf-8 2 #__author:Administrator 3 #__time:2018/5/21 12:43 4 #__file_name:staff_list 5 6 import io 7 import time 8 import os 9 10 FileRead = io.open('Staff_list','r',encoding='utf8') 11 Staff_list = eval(FileRead.read()) 12 username = 0 13 14 ''' 15 員工信息管理系統 16 需求: 17 1.增 18 2.刪 19 3.改 20 4.查 21 5.管理員登陸 22 6.模糊搜索 23 ''' 24 25 string = ''' 26 工號:%s 27 姓名:%s 28 年齡:%s 29 部門:%s 30 地址:%s 31 電話:%s 32 Q Q:%s 33 微信:%s 34 入職時間:%s 35 ''' 36 37 Project = ['姓名','年齡','部門','地址','電話','qq','微信','入職時間'] 38 39 def login():#登陸模塊 40 global username 41 print '='*43,'員工信息管理系統','='*43 42 num = 1 43 while num <= 3 : 44 username = int(raw_input('請輸入你的工號:\n')) 45 pwd = raw_input('請輸入密碼:\n') 46 if username not in Staff_list: 47 print '沒有你的信息,請聯繫管理員添加或重新輸入,還有 %d 次機會'%(3-num) 48 num += 1 49 elif Staff_list[username]['許可權'] == 1 and pwd == Staff_list[username]['密碼']: 50 print '歡迎 %s 進入員工信息管理系統'%Staff_list[username]['姓名'] 51 AdminMenuShow() 52 elif Staff_list[username]['許可權'] != 1 and pwd == Staff_list[username]['密碼']: 53 print '歡迎 %s 進入員工信息系統'%Staff_list[username]['姓名'] 54 StaffMenuShow() 55 else : 56 print '密碼輸入錯誤,還有 %d 次機會'%(3-num) 57 num += 1 58 else : 59 print '輸入次數過多,已退出程式' 60 time.sleep(3) 61 exit() 62 63 def OptionJudge(chioce):#對用戶輸入進行判斷 64 if chioce == 'A' or chioce == 'a': Increase() 65 elif chioce == 'B' or chioce == 'b': Delete() 66 elif chioce == 'C' or chioce == 'c': Amend() 67 elif chioce == 'D' or chioce == 'd': Query() 68 elif chioce == 'E' or chioce == 'e': AllStaff() 69 elif chioce == 'F' or chioce == 'f': Search() 70 elif chioce == 'G' or chioce == 'g': IncreaseAdmin() 71 elif chioce == 'H' or chioce == 'h': exit() 72 else : 73 chioce = raw_input('你的輸入有誤 請重新輸入:\n') 74 OptionJudge(chioce) 75 76 def AdminMenuShow():#管理員菜單展示 77 print '=' * 43, '員工信息管理系統', '=' * 43 78 print '【A】增加一個成員 【B】刪除一個成員' 79 print '【C】修改一個成員 【D】查詢一個成員' 80 print '【E】查看所有成員 【F】關鍵詞搜索 ' 81 print '【G】增加一個管理員【H】退出系統' 82 print 83 chioce = raw_input('請輸入你的選擇:\n') 84 OptionJudge(chioce) 85 86 def StaffMenuShow():#普通用戶菜單展示 87 print '=' * 43, '員工信息管理系統', '=' * 43 88 print '【E】查看所有成員 【D】查詢一個成員' 89 print '【F】關鍵詞搜索 【H】退出系統 ' 90 chioce = raw_input('請輸入你的選擇:\n') 91 OptionJudge(chioce) 92 93 def Increase():#增加一個用戶 94 print '=' * 44, '增加新的員工', '=' * 44 95 staff_num = Staff_list['num'] 96 Staff_list[staff_num] = {} 97 Staff_list[staff_num]['姓名'] = raw_input('請輸入員工姓名\n') 98 Staff_list[staff_num]['年齡'] = raw_input('請輸入員工年齡\n') 99 Staff_list[staff_num]['部門'] = raw_input('請輸入員工部門\n') 100 Staff_list[staff_num]['住址'] = raw_input('請輸入員工地址\n') 101 Staff_list[staff_num]['電話'] = raw_input('請輸入員工電話號碼\n') 102 Staff_list[staff_num]['qq'] = raw_input('請輸入員工QQ號碼\n') 103 Staff_list[staff_num]['微信'] = raw_input('請輸入員工微信號碼\n') 104 Staff_list[staff_num]['入職時間'] = raw_input('請輸入員工入職日期\n') 105 Staff_list[staff_num]['密碼'] = raw_input('請設置員工登陸密碼\n') 106 Staff_list[staff_num]['許可權'] = raw_input('請設置員工許可權\n') 107 Staff_list['num'] = Staff_list['num'] + 1 108 print '%s已錄入成功,工號為%d' % (Staff_list[staff_num]['姓名'],staff_num) 109 Staff_list_UpDate() 110 111 def IncreaseAdmin():#創建管理員賬戶 112 print '=' * 43, '正在增加管理員', '=' * 43 113 staff_num = int(raw_input('請輸入員工工號\n')) 114 if Staff_list[staff_num] == {}: 115 print '工號為%d的員工已離職,請重新輸入' % staff_num 116 IncreaseAdmin() 117 elif staff_num in Staff_list and Staff_list[staff_num] != {}: 118 Flag = raw_input('確認是否將 %s 設置為管理員用戶?Y/N' % Staff_list[staff_num]['姓名']) 119 if Flag == 'Y': 120 print '%s 已成功設置為管理員' % Staff_list[staff_num]['姓名'] 121 Staff_list[staff_num]['許可權'] = 1 122 time.sleep(3) 123 Staff_list_UpDate() 124 elif Flag == 'N': 125 print '正在返回主菜單' 126 AdminMenuShow() 127 else: 128 print '你的輸入錯誤,正在為你返回主菜單' 129 AdminMenuShow() 130 else : 131 print '沒有工號為%d的員工,請重新輸入' % staff_num 132 IncreaseAdmin() 133 134 def Delete():#刪除一個用戶 135 print '=' * 46, '刪除員工', '=' * 46 136 Staff_num = int(raw_input('請輸入你要刪除的員工工號\n')) 137 if Staff_num in Staff_list and Staff_list[Staff_num] != {}: 138 Flag = raw_input('確認是否刪除 %s?Y/N ' % Staff_list[Staff_num]['姓名']) 139 if Flag == 'Y' or Flag == 'y' : 140 temp = Staff_list[Staff_num]['姓名'] 141 Staff_list[Staff_num] = {} 142 time.sleep(3) 143 print '已經為您刪除 %s'%temp 144 Staff_list_UpDate() 145 elif Flag == 'N' or Flag == 'n': 146 print '請重新輸入' 147 Delete() 148 else: 149 print '你的輸入錯誤,正在為你返回主菜單' 150 AdminMenuShow() 151 elif Staff_num in Staff_list and Staff_list[Staff_num] == {}: 152 print '%s已被刪除,請重新輸入'%Staff_list[Staff_num]['姓名'] 153 Delete() 154 else: 155 print '沒有工號為%d的用戶,請重新輸入'%Staff_num 156 Delete() 157 print '操作完畢,正在返回主菜單' 158 AdminMenuShow() 159 160 def Amend():#修改一個用戶 161 print '=' * 44, '修改員工信息', '=' * 44 162 staff_num = int(raw_input('請輸入你要修改的員工編號\n')) 163 if staff_num not in Staff_list: 164 print '你輸入的員工編號不存在,請重新輸入' 165 Amend() 166 elif staff_num == 0 : 167 print '你無權修改,請重新輸入' 168 Amend() 169 elif Staff_list[staff_num] == {}: 170 print '你所要修改的員工已被刪除,無法進行修改' 171 Amend() 172 else : 173 while True : 174 project = raw_input('請輸入你要修改的項目(姓名/年齡/部門/地址/電話/qq/微信/入職時間)\n') 175 if project in Staff_list[staff_num] and project in Project : 176 content = raw_input('請輸入你要修改的內容:\n') 177 Staff_list[staff_num][project] = content 178 print '已為您修改完畢,正在為您返回主菜單' 179 Staff_list_UpDate() 180 else : 181 print '你輸入的項目不正確,請重新輸入' 182 183 def Permissions(): 184 if Staff_list[username]['許可權'] == 1: 185 print '操作完畢,正在返回主菜單' 186 AdminMenuShow() 187 else: 188 print '操作完畢,正在返回主菜單' 189 StaffMenuShow() 190 191 def Query():#查詢一個用戶 192 print '=' * 44, '員工信息查詢', '=' * 44 193 staff_num = int(raw_input('請輸入員工工號\n')) 194 if Staff_list[staff_num] == {}: 195 print '該員工已被刪除,請重新搜索你要查詢的員工' 196 Query() 197 elif staff_num in Staff_list: 198 print '=' * 43, 'Info of %s' % Staff_list[staff_num]['姓名'], '=' * 43 199 print string % ( 200 staff_num, Staff_list[staff_num]['姓名'], Staff_list[staff_num]['年齡'], Staff_list[staff_num]['部門'], 201 Staff_list[staff_num]['住址'], Staff_list[staff_num]['電話'], Staff_list[staff_num]['qq'], 202 Staff_list[staff_num]['微信'], Staff_list[staff_num]['入職時間']) 203 else : 204 print '沒有工號為%d的員工,請重新輸入' 205 Query() 206 Flag = raw_input('員工%s 信息已查詢完畢,是否返回主菜單?Y/N ' % Staff_list[staff_num]['姓名']) 207 if Flag == 'Y' or Flag == 'y' : 208 Permissions() 209 else : 210 print '重新查詢一個用戶' 211 Query() 212 213 def AllStaff():#查看所有用戶 214 for i in range(1, Staff_list['num']) : 215 if Staff_list[i] == {}: 216 print '=' * 45, '第%d 號員工'%i, '=' * 45 217 print '第%d 號員工已離職'%i 218 else : 219 print '=' * 44, '%s的信息' % Staff_list[i]['姓名'], '=' * 44, 220 print string % ( 221 i, Staff_list[i]['姓名'], Staff_list[i]['年齡'], Staff_list[i]['部門'], 222 Staff_list[i]['住址'], Staff_list[i]['電話'], Staff_list[i]['qq'], 223 Staff_list[i]['微信'], Staff_list[i]['入職時間']) 224 Flag = raw_input('用戶信息已查詢完畢,是否返回主菜單?Y/N ') 225 if Flag == 'Y' or Flag == 'y': 226 Permissions() 227 else: 228 print '不允許操作' 229 230 def Search():#關鍵詞搜索 231 print '=' * 44, '員工信息搜索', '=' * 44 232 project = raw_input('請輸入你要查找的項目(姓名/年齡/部門/地址/電話/qq/微信/入職時間)\n') 233 num = 0 234 while True: 235 key = raw_input('請輸入你要查找的關鍵字\n') 236 if project in Project: 237 for i in range(1, Staff_list['num']): 238 if Staff_list[i] == {}: 239 pass 240 elif key in Staff_list[i][project]: 241 print '=' * 44, '%s的信息' % Staff_list[i]['姓名'], '=' * 44, 242 print string % ( 243 i, Staff_list[i]['姓名'], Staff_list[i]['年齡'], Staff_list[i]['部門'], 244 Staff_list[i]['住址'], Staff_list[i]['電話'], Staff_list[i]['qq'], 245 Staff_list[i]['微信'], Staff_list[i]['入職時間']) 246 num += 1 247 if num == 0: 248 print '沒有搜索到結果,請重新搜索' 249 else: 250 print '共搜索到 %d 名 %s 為 %s 的員工' % (num, project, key) 251 Flag = raw_input('用戶信息已查詢完畢,任意鍵繼續搜索,選擇Y返回主菜單 ') 252 if Flag == 'Y' or Flag == 'y': 253 Permissions() 254 else : 255 Search() 256 else: 257 print '你要查找的項目不存在' 258 259 def Staff_list_UpDate(): 260 global FileRead 261 FileRead.close() 262 with open('Staff_list_copy', 'w') as FileWrite : 263 Write_Staff_list = str(Staff_list) 264 FileWrite.write(Write_Staff_list) 265 os.remove('Staff_list') 266 os.renames('Staff_list_copy','Staff_list') 267 FileRead = io.open('Staff_list', 'r', encoding='utf8') 268 time.sleep(3) 269 AdminMenuShow() 270 271 login()
文本內容:
初始帳號:0
初始密碼:123456
1 {0: {'\xe5\xaf\x86\xe7\xa0\x81': '123456', '\xe6\x9d\x83\xe9\x99\x90': 1, '\xe5\xa7\x93\xe5\x90\x8d': 'admin'}}