|
|
发表于 2026-1-19 15:42:47
|
显示全部楼层
class Users:
def __init__(self,name,uid,job,grade,year,salary):
self.name = name
self.uid = uid
self.salary = salary
self.job = job
self.grade = grade
self.year = year
class Manager():
def __init__(self):
self.users = []
self.uid = 10000
def get_uid(self):
return self.uid + 1
def get_name(self):
self.name = input('姓名:')
while True:
if self.name == '':
self.name = input('姓名:')
continue
else:
break
return self.name
def get_job(self):
self.job = input('职位(E.普通员工;T:组长;M:经理):').upper()
while True:
if self.job == '':
self.job = input('职位(E.普通员工;T:组长;M:经理):').upper()
continue
else:
break
return self.job
def get_grade(self):
self.grade = input('级别:')
while True:
if self.grade == '':
self.grade = input('级别:')
continue
else:
break
return int(self.grade)
def get_year(self):
self.year = input('工龄:')
while True:
if self.year == '':
self.year = input('工龄:')
continue
else:
break
return self.year
def welcome(self):
while True:
choices = input('1、录入;2、查询;3、升级;4降级;5、退出:')
if choices == '1':
self.register_user()
print(f'user信息{self.users}')
continue
if choices == '2':
self.view_info()
continue
if choices == '3':
self.up_job()
continue
if choices == '4':
self.down_job()
continue
if choices == '5':
return
else:
print('===输入错误。请重新输入===')
def salary(self, job, grade, year):
if job == 'E':
salary1 = 3000 + 500 * int(grade) + 50 * int(year)
if job == 'T':
salary1 = 4000 + 800 * int(grade) + 100 * int(year)
if job == 'M':
salary1 = 5000 + 1000 * ( int(grade) + int(year) )
return salary1
def register_user(self):
while True:
username = self.get_name()
job = self.get_job()
year = self.get_year()
grade = self.get_grade()
if job == 'E':
while True:
if grade >10 or grade <1:
print('员工级别最低为1,最高为10!')
grade = self.get_grade()
continue
else:
break
if job == 'T':
while True:
if grade >6 or grade <1:
print('组长级别最低为1,最高为6!')
grade = self.get_grade()
continue
else:
break
if job == 'M':
while True:
if grade >3 or grade <1:
print('经理级别最低为1,最高为3!')
grade = self.get_grade()
continue
else:
break
calculate_salary = self.salary(job, grade, year)
usersinfor = Users(username,self.uid,job,grade,year,calculate_salary)
self.users.append(usersinfor)
print(f'录入成功!姓名:{username},工号:{self.uid},薪资{calculate_salary}')
self.uid = self.get_uid()
return self.users
def view_info(self):
while True:
v = input ('1、员工查询;2、职位查询:')
if v == '1':
uid = input ('请输入员工工号:')
for each in self.users:
if each.uid == int(uid):
print(f'姓名:{each.name}\n职位:{each.job}\n级别:{each.grade}\n工龄:{each.year}\n薪资:{each.salary}\n')
break
else:
continue
else:
print('查无此人!!')
break
elif v == '2':
count = 0
temp = {}
job = input('职位(E.普通员工;T:组长;M:经理):').upper()
for each in self.users:
if each.job == job:
count += 1
temp[each.uid] = each.name
continue
# t = list(map('-'.join,temp.items()))
if job == 'E' and count != 0:
print(f'目前普通员工一共有:{count}人:\n{temp}')
elif job == 'T'and count != 0:
print(f'目前组长一共有:{count}人:\n{temp}')
elif job == 'M'and count != 0:
print(f'目前经理一共有:{count}人:\n{temp}')
else:
print('此职位暂无人员!!')
break
else:
print('输入指令不正确!')
break
def up_job(self):
uid = int(input('请输入员工工号:'))
for each in self.users:
if each.uid == uid:
name = each.name
uid = each.uid
job = each.job + str(each.grade)
salary = each.salary
print(f'{name},工号:{uid},当前职位:{job},当前薪资:{salary}\n')
temp_grade = input('请输入需要增加的级数:')
new_grade = int(temp_grade) + each.grade
if each.job == 'E':
if new_grade > 10 :
each.job = 'T'
new_grade = 1
elif each.job == 'T':
if new_grade > 6 :
each.job = 'M'
new_grade = 1
elif each.job == 'M':
if new_grade > 3 :
each.job = 'M'
new_grade = 3
print('经理级别最高为3!')
new_job = each.job + str(new_grade)
each.grade = new_grade
each.job = each.job
new_salary = self.salary(each.job, each.grade, each.year)
chasalary = new_salary - each.salary
each.salary = new_salary
print('升级成功!')
print(f'{name},工号:{uid},当前职位:{new_job},当前薪资:{new_salary}(+{chasalary})\n')
return
def down_job(self):
uid = int(input('请输入员工工号:'))
for each in self.users:
if each.uid == uid:
name = each.name
uid = each.uid
job = each.job + str(each.grade)
salary = each.salary
print(f'{name},工号:{uid},当前职位:{job},当前薪资:{salary}\n')
temp_grade = input('请输入需要减少的级数:')
new_grade = each.grade - int(temp_grade)
if each.job == 'E':
if new_grade < 0 :
print('普通理级别最低为1!')
each.job = 'E'
new_grade = 1
elif each.job == 'T':
if new_grade < 1 :
each.job = 'E'
new_grade = 10
elif each.job == 'M':
if new_grade < 1 :
each.job = 'T'
new_grade = 6
new_job = each.job + str(new_grade)
each.grade = new_grade
each.job = each.job
new_salary = self.salary(each.job, each.grade, each.year)
chasalary = each.salary -new_salary
each.salary = new_salary
print('降级成功!')
print(f'{name},工号:{uid},当前职位:{new_job},当前薪资:{new_salary}(-{chasalary})\n')
return
def main():
m = Manager()
m.welcome()
main() |
|