欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 员工信息管理系统

程序员文章站 2022-05-04 10:24:09
学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'}}