学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: {', '\xe6\x9d\x83\xe9\x99\x90': 1, '\xe5\xa7\x93\xe5\x90\x8d': 'admin'}}

Python 员工信息管理系统的更多相关文章

  1. jQuery实现的3个基础案例(仿QQ列表分组,二级联动下拉框,模拟员工信息管理系统)

    1.仿QQ列表分组 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ...

  2. qt项目:员工信息管理系统

    开发一个员工信息管理系统 一.项目具体要求: 1.用qt开发界面,数据库用QSqlite 数据库文件名:demostudent.db 2.通过界面能够查看到数据库中员工信息表中内容,包括员工姓名.年龄 ...

  3. Python员工信息表练习

    1.用户可以模糊查询员工信息 2.显示匹配了多少条,匹配字符需要高亮显示 employee_db.txt 总经办 龚丽丽 总经理 男 -- 1月18日 汉 族 中共党员 已婚 总经办 李惠 副总经理 ...

  4. Python学生信息管理系统的开发

    # 第一题:设计一个全局变量,来保存很多个学生信息:学生(学号, 姓名,年龄):思考要用怎样的结构来保存:# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄):你将其保存在 ...

  5. python 学生信息管理系统

    python与数据库的例子 初始化数据库 链接数据库创建库和表并插入数据 init.py import pymysql sql_base='create database school;' sql_t ...

  6. Python:员工信息增删改查

    一:需求 homework.txt文件中有如下格式的人员信息: 1,Jack Wang,28,13451024608,HR,2015‐01‐072,Rain Wang,21,13451054608,I ...

  7. python作业员工信息表程序(第四周)

    作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...

  8. python--员工信息管理系统编译及思路

    员工管理系统,顾名思义,应该具有增删查改功能.拿到需求后,应该按照一定的流程依次编写,最后达到程序的统一和兼容. 系统需求如下: 文件存储格式如下: id,name,age,phone,job 1,A ...

  9. python员工管理系统(基础版)

    各位小伙伴们大家好,最近自学python已经差不多把基础学完了,现在运用这些基础知识写了一个简单版本的员工管理系统 因为在大学里我是学过java的,所以,当有了一定的基础和熏陶外,真心觉得python ...

随机推荐

  1. prototype.js 和json.js 冲突

    1.冲突简述和分析 prototype.js与json.js并不是完全兼容的.主要冲突在于json.js为Object的原型增加了一个toJSONString的方法. 冲突之一:是prototype中 ...

  2. C++笔记十七:C语言中 “冒牌货”const和const符号表

      在.c文件中有程序: int main() { int const a = 10; a=20; printf("a=%d\n",a); return 0; } 编译就知道C语言 ...

  3. solr研磨之游标分页

    普通分页 当需要深度分页的时候,比如查询第10000页数据,每页显示10条,意味着需要提取前10000 x 10 页的数据,并将这100000条数据缓存在内存中,然后在内存中进行排序.最后返回最后10 ...

  4. JavaScript脚本放在哪里用户体验好

    javascript代码写在<head>里面: 由于这时候网页主体(body)还未加载,所以这里适合放一些不是立即执行的自定义函数,立即执行的语句则很可能会出错(视浏览器而定) javas ...

  5. 零基础自学Python十天,写了一款猜数字小游戏,附源码和软件下载链接!

    自学一门语言最重要的是要及时给自己反馈,那么经常写一些小程序培养语感很重要,写完可以总结一下程序中运用到了哪些零散的知识点. 本程序中运用到的知识点有: 1.输入输出函数 (input.print) ...

  6. Redis实现简单消息队列

    http://www.jianshu.com/p/9c04890615ba 任务异步化 打开浏览器,输入地址,按下回车,打开了页面.于是一个HTTP请求(request)就由客户端发送到服务器,服务器 ...

  7. (七):C++分布式实时应用框架 2.0

    C++分布式实时应用框架 2.0 技术交流合作QQ群:436466587 欢迎讨论交流 上一篇:(六):大型项目容器化改造 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同 ...

  8. HTML5这个概念的解释

    关于HTML5这个概念我一直很多困惑,稍微总结一下. 从HTML说起,HTML作为一个标记语言,通过这种标记定义了一个网页的dom tree,也定义了网页的结构,然后CSS定义了在这个结构基础上的样式 ...

  9. 搜索应用参考示例XXL-SEARCH

    <搜索应用参考示例XXL-SEARCH> 一.简介 1.1 概述 XXL-SEARCH 是以 "lucene/elasticsearch" 为核心的,Pragmatic ...

  10. Java多线程:线程间通信之Lock

    Java 5 之后,Java在内置关键字sychronized的基础上又增加了一个新的处理锁的方式,Lock类. 由于在Java线程间通信:volatile与sychronized中,我们已经详细的了 ...