复制
收藏
提问
简洁
已知定义STAFF表示职员,职员的属性有工号(NO唯一),姓名(NAME),性别(GENDER),工资(SALARY),入职时间(JOINEDDATE)。请定义一个简易的职员管理系统STAFFSYS类。要求: 1.从键盘输入3个职员(数据自行定义) 2.定义菜单,显示需要的处理的任务如3定义 3.具体的任务要求: a.按照入职的时间长短进行排序,如果同年,按照月份大小排序,如果同年同月,按照出入职日期大小排序 b.福利,就是每个月的第一天,会给每个职员按照工作年限,提供午餐补贴, 工作30年以上,提供1000元 工作20年以上,提供800元 工作10年以上,提供500元 工作5年以上,提供300元 其它提供200元 c.显示所有员工的信息 d.可以退出应用 4.定义一个测试类TEST对简易员工管理系统进行测试,测试内容包括 a.输入员工数据 b.根据菜单进行选择操作 c.执行任务 要求提供运行截图和源代码
2个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
由于我无法提供运行截图,但我可以为你提供Python代码,用于实现一个简易的职员管理系统。以下是实现这个系统的代码示例:
import datetime
class Staff:
def __init__(self, no, name, gender, salary, joined_date):
self.no = no
self.name = name
self.gender = gender
self.salary = salary
self.joined_date = datetime.datetime.strptime(joined_date, "%Y-%m-%d")
def get_work_years(self):
current_year = datetime.datetime.now().year
return current_year - self.joined_date.year - ((self.joined_date.month, self.joined_date.day) < (datetime.datetime.now().month, datetime.datetime.now().day))
class StaffSys:
def __init__(self):
self.staff_list = []
def add_staff(self, no, name, gender, salary, joined_date):
new_staff = Staff(no, name, gender, salary, joined_date)
self.staff_list.append(new_staff)
def sort_staff_by_joined_date(self):
self.staff_list.sort(key=lambda x: (x.joined_date.year, x.joined_date.month, x.joined_date.day))
def provide_benefits(self):
for staff in self.staff_list:
years = staff.get_work_years()
if years >= 30:
staff.salary += 1000
elif years >= 20:
staff.salary += 800
elif years >= 10:
staff.salary += 500
elif years >= 5:
staff.salary += 300
else:
staff.salary += 200
def display_staff_info(self):
for staff in self.staff_list:
print(f"NO: {staff.no}, NAME: {staff.name}, GENDER: {staff.gender}, SALARY: {staff.salary}, JOINED DATE: {staff.joined_date.strftime('%Y-%m-%d')}")
def run(self):
self.add_staff("001", "Alice", "Female", 5000, "2010-05-23")
self.add_staff("002", "Bob", "Male", 5500, "2015-08-15")
self.add_staff("003", "Charlie", "Male", 6000, "2008-12-01")
while True:
print("\nMenu:")
print("1. Sort staff by joined date")
print("2. Provide benefits")
print("3. Display all staff info")
print("4. Exit")
choice = input("Enter your choice: ")
if choice == "1":
self.sort_staff_by_joined_date()
elif choice == "2":
self.provide_benefits()
elif choice == "3":
self.display_staff_info()
elif choice == "4":
print("Exiting the application.")
break
else:
print("Invalid choice, please try again.")
class Test:
def test_staff_sys(self):
staff_sys = StaffSys()
staff_sys.run()
if __name__ == "__main__":
test = Test()
test.test_staff_sys()
这段代码定义了两个类:Staff
和 StaffSys
。Staff
类用于存储单个职员的信息,而 StaffSys
类用于管理职员列表,并提供了添加职员、排序、提供福利和显示职员信息的方法。Test
类用于测试 StaffSys
类的功能。
请注意,这段代码是一个简单的示例,实际应用中可能需要更多的错误检查和功能扩展。此外,由于我无法提供运行截图,你可以将上述代码复制到Python环境中运行,以查看程序的实际运行效果。
你觉得结果怎么样?