用python为学校人事部门设计一个简单的人事管理程序,满足如下管理要求: 学校人员分为三类:教师、学生、职员 三类人员的共同属性是姓名、性别、年龄、部门。 教师的特别属性是职称、主讲课程。 学生的特别属性是专业、入学日期。 职员的特别属性是部门、工资。
时间: 2023-07-10 21:36:58 浏览: 171
好的,这是一个非常好的编程练习。你可以按照以下步骤进行设计:
1. 定义一个基类 `Person`,包含共同属性:姓名、性别、年龄、部门。
```python
class Person:
def __init__(self, name, gender, age, department):
self.name = name
self.gender = gender
self.age = age
self.department = department
```
2. 创建三个子类 `Teacher`、`Student` 和 `Staff`,分别继承自 `Person`,并添加特别属性。
```python
class Teacher(Person):
def __init__(self, name, gender, age, department, title, course):
super().__init__(name, gender, age, department)
self.title = title
self.course = course
class Student(Person):
def __init__(self, name, gender, age, department, major, enrollment_date):
super().__init__(name, gender, age, department)
self.major = major
self.enrollment_date = enrollment_date
class Staff(Person):
def __init__(self, name, gender, age, department, salary):
super().__init__(name, gender, age, department)
self.salary = salary
```
3. 实现一个简单的管理系统,包括添加、删除、修改和查询人员信息等功能。
```python
class School:
def __init__(self):
self.persons = []
def add_person(self, person):
self.persons.append(person)
def remove_person(self, name):
for person in self.persons:
if person.name == name:
self.persons.remove(person)
def update_person(self, name, new_info):
for person in self.persons:
if person.name == name:
person.__dict__.update(new_info)
def search_person(self, name):
for person in self.persons:
if person.name == name:
return person.__dict__
return None
```
4. 使用该管理系统进行操作。
```python
school = School()
teacher = Teacher('张三', '男', 35, '计算机科学与技术系', '副教授', '算法设计与分析')
student = Student('李四', '女', 20, '计算机科学与技术系', '计算机科学与技术', '2020-09-01')
staff = Staff('王五', '男', 30, '行政部门', 8000)
school.add_person(teacher)
school.add_person(student)
school.add_person(staff)
print(school.search_person('张三'))
# {'name': '张三', 'gender': '男', 'age': 35, 'department': '计算机科学与技术系',
# 'title': '副教授', 'course': '算法设计与分析'}
school.update_person('张三', {'title': '教授', 'course': '数据结构'})
print(school.search_person('张三'))
# {'name': '张三', 'gender': '男', 'age': 35, 'department': '计算机科学与技术系',
# 'title': '教授', 'course': '数据结构'}
school.remove_person('李四')
print(school.search_person('李四'))
# None
```
以上是一个简单的人事管理程序,仅供参考。你可以根据自己的需求进行改进和完善。
阅读全文