需求:

  • 可以查询员工所有信息
  • 可以修改员工信息
  • 可以增加新员工

code:

  1. import sys,json
  2. # yuangong = {
  3. # "1": ["faker", "22", "11111111111", "mid", "2013-01-01"],
  4. # "2": ["huni", "23", "22222222222", "top", "2014-01-01"],
  5. # "3": ["bang", "24", "33333333333", "adc", "2015-01-01"],
  6. # "4": ["wolf", "25", "44444444444", "sup", "2016-01-01"],
  7. # "5": ["blank", "26", "55555555555", "jun", "2017-01-01"]}
  8. # with open('E:/Staff management.txt','w')as w_f:
  9. # json.dump(yuangong,w_f)
  10.  
  11. salary = {}
  12.  
  13. with open('E:/Staff management.txt', 'r') as read_f:
  14. f_line = json.load(read_f)
  15. #read_f.write(json.dump(salary))
  16. salary = f_line
  17. #print(salary)
  18.  
  19. def append_file():
  20. with open('E:/Staff management.txt', 'r+') as append_f:
  21. json.dump(append_f,salary)
  22. return
  23.  
  24. def write_file():
  25. with open('E:/Staff management.txt', 'w') as write_f:
  26. json.dump(salary,write_f)
  27. return
  28.  
  29. def server():
  30. for i in range(1):
  31. print("1.查询员工信息\n2.修改员工信息\n3.增加新员工信息\n4.删除员工\n5.退出")
  32. return
  33.  
  34. def server_choice(a):
  35. while True:
  36. choice = input("Please input your choice:")
  37. if choice == '':
  38. query()
  39. elif choice == '':
  40. modify()
  41. elif choice == '':
  42. increase()
  43. elif choice == '':
  44. delete()
  45. elif choice == '':
  46. sys.exit("程序已退出,欢迎重新运行")
  47. else:
  48. print("你输入的不存在,请重新输入")
  49.  
  50. def query():
  51. position = input("请输入输入员工编号或按b退回上一层:")
  52. if f_line.get(position):
  53. #print(f_line[position])
  54. print("员工信息:\n名字:%s\n年龄:%s\n电话号码:%s\n职位:%s\n入职时间:%s" % (f_line[position][0],f_line[position][1],f_line[position][2],f_line[position][3],f_line[position][4]))
  55. query()
  56. elif position.lower() == 'b':
  57. server()
  58. else:
  59. print('你输入的编号不存在')
  60. query()
  61.  
  62. def modify():
  63. position = input("Please 要修改的员工编号或者按b退到上一层:")
  64. if f_line.get(position):
  65. correct = input(" 1.name:%s\n 2.age:%s\n 3.phone number:%s\n 4.position:%s\n 5.Entry time:%s\n请输入你要修改的信息:" % (f_line[position][0],f_line[position][1],f_line[position][2],f_line[position][3],f_line[position][4]))
  66. if correct == '':
  67. name = input("请输入你要修改的名字:")
  68. salary[position][0] = name
  69. write_file()
  70. modify()
  71. elif correct == '':
  72. age = input("请输入你要修改的年龄:")
  73. if age.isdigit():
  74. salary[position][1] = age
  75. write_file()
  76. modify()
  77. else:
  78. print("你输入的不是数字,请重新输入")
  79. modify()
  80. elif correct == '':
  81. phone = input("请输入你要修改的电话号码:")
  82. salary[position][2] = phone
  83. write_file()
  84. modify()
  85. elif correct == '':
  86. post = input("请输入你要修改的职位:")
  87. salary[position][3] = post
  88. write_file()
  89. modify()
  90. elif correct == '':
  91. Entry = input("请输入你要修改的入职时间:")
  92. salary[position][4] = Entry
  93. write_file()
  94. modify()
  95. else:
  96. print("Input error,Please re-enter")
  97. modify()
  98. elif position.lower() == 'b':
  99. server()
  100. else:
  101. print("你输入的员工编号不存在,请重新输入")
  102. modify()
  103.  
  104. def increase():
  105. post = []
  106. position = input("请输入你要添加的员工编号或者按b返回:")
  107. if salary.get(position):
  108. print("你输入的编号已存在,请重新输入")
  109. increase()
  110. elif position.isdigit():
  111. name = input("请输入员工姓名:")
  112. age = input("请输入员工年龄:")
  113. phone = input("请输入员工电话号码:")
  114. positioN = input("请输入员工职务:")
  115. Entry = input("请输入员工入职时间:")
  116. post.append(name)
  117. post.append(age)
  118. post.append(phone)
  119. post.append(positioN)
  120. post.append(Entry)
  121. salary[position] = post
  122. write_file()
  123. server()
  124. elif position == 'b':
  125. server()
  126. else:
  127. print("你输入的编号格式不正确(必须为数字),请重新输入:")
  128. increase()
  129.  
  130. def delete():
  131. position = input("请输入你要删除的员工编号或者输入b退到上一层:")
  132. if salary.get(position):
  133. salary.pop(position)
  134. write_file()
  135. print("成功删除")
  136. delete()
  137. elif position == 'b':
  138. server()
  139. else:
  140. print("你输入的编号不存在,请重新输入")
  141. delete()
  142.  
  143. server_choice(server())

Third week-homework(员工管理系统)的更多相关文章

  1. 基于SSM实现的简易员工管理系统(网站上线篇)

    经历无数苦难,好不容易,网站终于上线了.=.=内牛满面ing.chengmingwei.top就是本员工管理系统的主页啦.是的,很简陋,但是毕竟是第一次嘛,所以慢慢来嘛. 如上次所说的(网站简介,见: ...

  2. 基于SSM实现的简易员工管理系统

    之前自学完了JAVA基础,一直以来也没有做什么好玩的项目,最近暑假,时间上比较空闲,所以又学习了一下最近在企业实际应用中比较流行的SSM框架,以此为基础,通过网络课程,学习编写了一个基于SSM实现的M ...

  3. 基于SSH实现员工管理系统之框架整合篇

    本篇文章来源于:https://blog.csdn.net/zhang_ling_yun/article/details/77803178 以下内容来自慕课网的课程:基于SSH实现员工管理系统之框架整 ...

  4. PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例

    前言: 1.关于PureMVC: MVC框架在很多项目当中拥有广泛的应用,很多时候做项目前人开坑开了一半就消失了,后人为了填补各种的坑就遭殃的不得了.嘛,程序猿大家都不喜欢像文案策划一样组织文字写东西 ...

  5. 5_python之路之员工管理系统

    python之路之员工管理系统 1.程序说明:Readme.cmd 1.程序文件:info_management.py user_info 2.程序文件说明:info_management.py-主程 ...

  6. Java普通员工管理系统

    login GUI界面(登录) package 普通员工管理系统; import java.awt.event.ActionEvent; import java.awt.event.ActionLis ...

  7. 员工管理系统(集合与IO流的结合使用 beta1.0 ArrayList<Employee>)

    package cn.employee; public class Employee { private int empNo; private String name; private String ...

  8. 员工管理系统(集合与IO流的结合使用 beta2.0 ObjectInputStream/ ObjectOutputStream)

    package cn.employee; import java.io.Serializable; public class Employee implements Serializable{ pri ...

  9. 员工管理系统(集合与IO流的结合使用 beta5.0 BufferedReader/ BufferedWriter)

    package cn.gee; public class Emp { private String id;//员工编号 一般是唯一的 private String sname; private int ...

  10. 员工管理系统(集合与IO流的结合使用 beta4.0 ObjectInputStream/ ObjectOutputStream)

    package cn.employee_io; import java.io.Serializable; public class Employee implements Serializable{ ...

随机推荐

  1. 2018南京icpc现场赛心得

    第一次参加icpc的比赛,也是第一块奖牌,虽然只是铜,但其实打的已经很好了,稍微差一点就可以摸银了. 之前参加省赛,成为那次比赛我校唯一一个没拿奖的队伍,其实还是一直都有一些心结的,而这段时间和新的队 ...

  2. 用jenkins编译WPF程序并传输到服务器

    环境准备: 1.ide   visual studio2017 Enterprise,Ide可以https://visualstudio.microsoft.com/zh-hans/downloads ...

  3. PIXI AnimatedSprite 及打字爆炸动画(5)

    效果 : 消除字母 当前位置出现爆炸效果 这里使用到了AnimatedSprite 动画  Members An AnimatedSprite is a simple way to display a ...

  4. Linux——【rpm、yun、源码包】安装

    RPM包或者安装源码包 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松,因为我们不是在图形界面下.所以我们要 ...

  5. zabbix web url监控

    一, web监控 这个监控为通过cookie的值来监控网站是否能正常使用 这里测试环境为bbs网站 二, 配置web监控 01, 创建web监控项 02,配置步骤1 查看数据是否成功 第一查看首页时候 ...

  6. 【3dsMax安装失败,如何卸载、安装3dMax 2012?】

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  7. ubuntu安装VMware Tools报错enter the path to the kernel header files

    $ sudo apt-get install build-essential linux-headers-$(uname -r) cd /lib/modules/$(uname -r)/build/i ...

  8. (Frontend Newbie)Web简史

    前段时间在微博上看到有人问,前端这几年发展这么迅猛,各种新技术.新框架层出不穷,我们究竟怎么学习这些新技术才能跟得上脚步,毕竟精力有限,逐个学习不现实.个人认为,没有太大的必要去追逐那些新潮的技术.原 ...

  9. STL:vector用法总结

    一:介绍 vector是C++标准模板库,是一个容器,底层是数组,为连续内存.命名空间为std,所属头文件为<vector>   注意:不是<vector.h>vector存储 ...

  10. C# 服务端控件 asp:RadioButton 选择选中值

    1.服务端控件RadioButton <asp:RadioButton ID="rbNewUser" runat="server" GroupName=& ...