鱼C论坛

 找回密码
 立即注册
查看: 1922|回复: 5

[作品展示] 动动手第63讲,第一次敲这么多代码

[复制链接]
发表于 2023-5-3 11:33:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. [size=5][font=黑体]class Member:
  2.     def __init__(self):
  3.         self.names = []
  4.         self.jobs = {}
  5.         self.grades = {}
  6.         self.years = {}
  7.         self.uids = {}
  8.         self.salarys = {}
  9.         self.counts = 0
  10. class SalaryMixin:
  11.     def salary(self,grade,year,job):
  12.         if job == "E":
  13.             return 3000+500*int(grade)+50*int(year)
  14.         if job == "T":
  15.             return 4000+800*int(grade)+100*int(year)
  16.         if job == "M":
  17.             return 5000+1000*(int(grade)+int(year))
  18. class Manage:
  19.     def log_in(self):
  20.         m = Member()
  21.         s = SalaryMixin()
  22.         num = 10000 + m.counts
  23.         name = input("姓名:")
  24.         while name in m.names:
  25.             name = input("该姓名已存在,请重新录入:")
  26.         else:
  27.             m.names.append(name)
  28.         m.uids[name] = num
  29.         job = input("职位(E.普通员工;T.组长;M.经理):")
  30.         m.jobs[name] = job
  31.         year = input("工龄:")
  32.         m.years[name] = year
  33.         grade = input("级别")
  34.         if job == "E":
  35.             while int(grade) > 10 or int(grade) < 1:
  36.                 grade = input("级别不正确,请重新输入:")
  37.         if job == "T":
  38.             while int(grade) > 6 or int(grade) < 1:
  39.                 grade = input("级别不正确,请重新输入:")
  40.         if job == "M":
  41.             while int(grade) > 3 or int(grade) < 1:
  42.                 grade = input("级别不正确,请重新输入:")
  43.         m.grades[name] = grade
  44.         m.counts += 1
  45.         salary = s.salary(grade,year,job)
  46.         m.salarys[name] = salary
  47.         print(f"录入成功!姓名:{name},工号:{num},薪资:{salary}")
  48.     def staff_search(self):
  49.         m =Member()
  50.         uid = input("请输入工号")
  51.         try:
  52.             name = m.uids[uid]
  53.             job = m.jobs[name] + m.grades[name]
  54.             salary = m.salarys[name]
  55.         except:
  56.             print("该员工不存在")
  57.         else:
  58.             print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  59.     def job_search(self):
  60.         m = Member()
  61.         job = input("职位(E.普通员工;T.组长;M.经理):")
  62.         sums = 0
  63.         _ = []
  64.         if job == "E":
  65.             for each in m.names:
  66.                 if m.jobs[name] == "E":
  67.                     sums += 1
  68.                     _.append[each]
  69.                 print(f"当前普通员工共有{sums}人")
  70.                 for each in _:
  71.                     print(f"{m.uids[each]}-each")
  72.         if job == "T":
  73.             for each in m.names:
  74.                 if m.jobs[name] == "T":
  75.                     sums += 1
  76.                     _.append[each]
  77.                 print(f"当前组长共有{sums}人")
  78.                 for each in _:
  79.                     print(f"{m.uids[each]}-each")
  80.         if job == "M":
  81.             for each in m.names:
  82.                 if m.jobs[name] == "M":
  83.                     sums += 1
  84.                     _.append[each]
  85.                 print(f"当前经理共有{sums}人")
  86.                 for each in _:
  87.                     print(f"{m.uids[each]}-each")
  88.     def upgrade(self):
  89.         m = Member()
  90.         s = SalaryMixin()
  91.         uid = input("请输入工号:")
  92.         sums = 0
  93.         try:
  94.             name = m.names[int(uid[4:])]
  95.             job = m.jobs[name] + m.grades[name]
  96.             salary = m.salarys[name]
  97.         except:
  98.             print("该员工不存在")
  99.         else:
  100.             print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  101.         if m.jobs[name] == "E":
  102.             grade = input("请输入需要增加的级数")
  103.             sums = int(m.grades[name]) + int(grade)
  104.             while sums > 19:
  105.                 grade = input("级别错误,请输入需要增加的级数")
  106.                 sums = int(m.grades[name]) + int(grade)
  107.             else:
  108.                 if sums < 11:
  109.                     print("升级成功")
  110.                     salary = int(salary) + 500 * int(grade)
  111.                     job = m.jobs[name] + str(sums)
  112.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  113.                 if sums > 10 and sums < 17:
  114.                     print("升级成功")
  115.                     salary = s.salary(sums-10,m.years[name],"T")
  116.                     job = "T"+str(sums-10)
  117.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  118.                 if sums > 16 and sums < 20:
  119.                     print("升级成功")
  120.                     salary = s.salary(sums-16,m.years[name],"M")
  121.                     job = "M"+str(sums-16)
  122.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  123.         if m.jobs[name] == "T":
  124.             grade = input("请输入需要增加的级数")
  125.             sums = int(m.grades[name]) + int(grade)
  126.             while sums > 9:
  127.                 grade = input("级别错误,请输入需要增加的级数")
  128.                 sums = int(m.grades[name]) + int(grade)
  129.             else:
  130.                 if sums < 4:
  131.                     print("升级成功")
  132.                     salary = int(salary) + 800 * int(grade)
  133.                     job = m.jobs[name] + str(sums)
  134.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  135.                 if sums > 3 and sums < 10:
  136.                     print("升级成功")
  137.                     salary = s.salary(sums-3,m.years[name],"M")
  138.                     job = "M"+str(sums-3)
  139.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  140.         if m.jobs[name] == "M":
  141.             grade = input("请输入需要增加的级数")
  142.             sums = int(m.grades[name]) + int(grade)
  143.             while sums > 3:
  144.                 grade = input("级别错误,请输入需要增加的级数")
  145.                 sums = int(m.grades[name]) + int(grade)
  146.             else:
  147.                 print("升级成功")
  148.                 salary = int(salary) + 1000 * int(grade)
  149.                 job = m.jobs[name] + str(sums)
  150.                 print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  151.     def downgrade(self):
  152.         m = Member()
  153.         s = SalaryMixin()
  154.         uid = input("请输入工号:")
  155.         sums = 0
  156.         try:
  157.             name = m.names[int(uid[4:])]
  158.             job = m.jobs[name] + m.grades[name]
  159.             salary = m.salarys[name]
  160.         except:
  161.             print("该员工不存在")
  162.         else:
  163.             print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  164.         if m.jobs[name] == "E":
  165.             grade = input("请输入需要减少的级数")
  166.             sums = int(m.grades[name]) - int(grade)
  167.         while sums < 1:
  168.                 grade = input("级别错误,请输入需要增加的级数")
  169.                 sums = int(m.grades[name]) + int(grade)
  170.         else:
  171.             print("降级成功")
  172.             salary = int(salary) - 500 * int(grade)
  173.             job = m.jobs[name] + str(sums)
  174.             print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  175.         if m.jobs[name] == "T":
  176.             grade = input("请输入需要减少的级数")
  177.             sums = int(m.grades[name]) - int(grade) + 10
  178.             while sums < 1:
  179.                 grade = input("级别错误,请输入需要增加的级数")
  180.                 sums = int(m.grades[name]) + int(grade)
  181.             else:
  182.                 if sums > 10:
  183.                     print("降级成功")
  184.                     salary = int(salary) - 800 * int(grade)
  185.                     job = m.jobs[name] + str(sums)
  186.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  187.                 if sums < 11:
  188.                     print("降级成功")
  189.                     salary = s.salary(sums,m.years[name],"E")
  190.                     job = "E"+str(sums)
  191.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  192.         if m.jobs[name] == "M":
  193.             grade = input("请输入需要减少的级数")
  194.             sums = int(m.grades[name]) - int(grade) + 16
  195.             while sums < 1:
  196.                 grade = input("级别错误,请输入需要增加的级数")
  197.                 sums = int(m.grades[name]) + int(grade)
  198.             else:
  199.                 if sums > 16:
  200.                     print("降级成功")
  201.                     salary = int(salary) - 1000 * int(grade)
  202.                     job = m.jobs[name] + str(sums)
  203.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  204.                 if sums > 10 and sums < 17:
  205.                     print("降级成功")
  206.                     salary = s.salary(sums-10,m.years[name],"T")
  207.                     job = "T"+str(sums-10)
  208.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  209.                 if sums < 11:
  210.                     print("降级成功")
  211.                     salary = s.salary(sums,m.years[name],"E")
  212.                     job = "E"+str(sums)
  213.                     print(f"{name},工号:{uid},当前职位:{job},当前薪资:{salary}")
  214. while True:
  215.     command = input("1.录入;2.查询;3.升级;4.降级;5.退出:")
  216.     m = Manage()
  217.     if command == "1":
  218.         m.log_in()
  219.     if command == "2":
  220.         search = input("1.员工查询;2.职位查询:")
  221.         if search == "1":
  222.             m.staff_search()
  223.         else:
  224.             m.job_search()
  225.     if command == "3":
  226.         m.upgrade()
  227.     if command == "4":
  228.         m.downgrade()
  229.     if command == "5":
  230.         break
  231.         

  232.                     
  233.                     

  234.                

  235.         
  236.                           
  237.                                 

  238. [/font][/size]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-3 11:34:38 | 显示全部楼层
里面还有好多bug没改,好多要严谨的地方我都懒得敲了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-3 11:39:12 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-5-3 11:41:10 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-5-3 15:45:05 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-3 15:45:35 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-29 06:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表