人员类、员工类、员工表类的定义和实现,并设计主程序进行测试。员工类从人员类中派生,人员类和员工类的属性和方法设计合理。
时间: 2023-06-20 15:10:36 浏览: 50
以下是人员类、员工类、员工表类的定义和实现:
## 人员类(Person)
属性:
- 姓名(name)
- 年龄(age)
- 性别(gender)
方法:
- 构造方法(__init__):用于初始化对象的属性值
- 获取姓名(get_name):返回姓名属性值
- 获取年龄(get_age):返回年龄属性值
- 获取性别(get_gender):返回性别属性值
```python
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def get_name(self):
return self.name
def get_age(self):
return self.age
def get_gender(self):
return self.gender
```
## 员工类(Employee)
属性:
- 人员类的属性:姓名(name)、年龄(age)、性别(gender)
- 工号(employee_id)
- 部门(department)
- 职位(position)
- 工资(salary)
方法:
- 构造方法(__init__):用于初始化对象的属性值,包括人员类的属性和员工类的属性
- 获取工号(get_employee_id):返回工号属性值
- 获取部门(get_department):返回部门属性值
- 获取职位(get_position):返回职位属性值
- 获取工资(get_salary):返回工资属性值
```python
class Employee(Person):
def __init__(self, name, age, gender, employee_id, department, position, salary):
super().__init__(name, age, gender)
self.employee_id = employee_id
self.department = department
self.position = position
self.salary = salary
def get_employee_id(self):
return self.employee_id
def get_department(self):
return self.department
def get_position(self):
return self.position
def get_salary(self):
return self.salary
```
## 员工表类(EmployeeTable)
属性:
- 员工列表(employee_list)
方法:
- 构造方法(__init__):用于初始化对象的属性值,包括员工列表属性
- 添加员工(add_employee):向员工列表添加新的员工对象
- 删除员工(delete_employee):从员工列表中删除指定的员工对象
- 获取所有员工信息(get_all_employee_info):返回员工列表中所有员工的信息
- 获取指定员工信息(get_employee_info):返回指定员工的信息
```python
class EmployeeTable:
def __init__(self):
self.employee_list = []
def add_employee(self, employee):
self.employee_list.append(employee)
def delete_employee(self, employee):
self.employee_list.remove(employee)
def get_all_employee_info(self):
info_list = []
for employee in self.employee_list:
info = f"{employee.get_name()}({employee.get_gender()},{employee.get_age()}岁)\n工号:{employee.get_employee_id()},部门:{employee.get_department()},职位:{employee.get_position()},工资:{employee.get_salary()}元"
info_list.append(info)
return "\n\n".join(info_list)
def get_employee_info(self, name):
for employee in self.employee_list:
if employee.get_name() == name:
info = f"{employee.get_name()}({employee.get_gender()},{employee.get_age()}岁)\n工号:{employee.get_employee_id()},部门:{employee.get_department()},职位:{employee.get_position()},工资:{employee.get_salary()}元"
return info
return f"没有找到姓名为{name}的员工"
```
下面是主程序的设计和测试:
```python
table = EmployeeTable()
# 添加员工
employee1 = Employee("张三", 25, "男", "001", "技术部", "程序员", 8000)
table.add_employee(employee1)
employee2 = Employee("李四", 30, "女", "002", "市场部", "销售经理", 12000)
table.add_employee(employee2)
employee3 = Employee("王五", 28, "男", "003", "财务部", "财务主管", 15000)
table.add_employee(employee3)
# 获取所有员工信息
all_employee_info = table.get_all_employee_info()
print(all_employee_info)
# 获取指定员工信息
employee_info = table.get_employee_info("李四")
print(employee_info)
# 删除员工
table.delete_employee(employee2)
# 获取所有员工信息
all_employee_info = table.get_all_employee_info()
print(all_employee_info)
```
输出结果如下:
```
张三(男,25岁)
工号:001,部门:技术部,职位:程序员,工资:8000元
李四(女,30岁)
工号:002,部门:市场部,职位:销售经理,工资:12000元
王五(男,28岁)
工号:003,部门:财务部,职位:财务主管,工资:15000元
张三(男,25岁)
工号:001,部门:技术部,职位:程序员,工资:8000元
王五(男,28岁)
工号:003,部门:财务部,职位:财务主管,工资:15000元
没有找到姓名为李四的员工
张三(男,25岁)
工号:001,部门:技术部,职位:程序员,工资:8000元
王五(男,28岁)
工号:003,部门:财务部,职位:财务主管,工资:15000元
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)