1、问题描述 住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量 等信息。教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。 能计算出学生和教工每月所要交的电费和水费。定义一个人员类,实现学生和教工共同的信 息和行为。
时间: 2023-06-24 13:04:50 浏览: 175
学生信息管理系统,实现学生信息包括:学号、姓名、性别、年龄、班级等信息。
5星 · 资源好评率100%
2、解决方案
可以定义一个抽象的Person类,包含学号/职工号、姓名、性别、年龄、用电量、用水量等基本属性。然后从Person类派生出Student类和Teacher类,分别包含班级和工作部门属性,并且覆盖父类中的计算电费和水费方法,根据不同的电费和水费标准进行计算。
示例代码如下:
```python
class Person:
def __init__(self, id, name, gender, age, elec_usage, water_usage):
self.id = id
self.name = name
self.gender = gender
self.age = age
self.elec_usage = elec_usage
self.water_usage = water_usage
def calc_elec_cost(self):
# 计算电费的具体实现
pass
def calc_water_cost(self):
# 计算水费的具体实现
pass
class Student(Person):
def __init__(self, id, name, gender, age, elec_usage, water_usage, class_name):
super().__init__(id, name, gender, age, elec_usage, water_usage)
self.class_name = class_name
def calc_elec_cost(self):
# 学生的电费标准
return self.elec_usage * 0.5
def calc_water_cost(self):
# 学生的水费标准
return self.water_usage * 0.3
class Teacher(Person):
def __init__(self, id, name, gender, age, elec_usage, water_usage, dept_name):
super().__init__(id, name, gender, age, elec_usage, water_usage)
self.dept_name = dept_name
def calc_elec_cost(self):
# 教工的电费标准
return self.elec_usage * 0.8
def calc_water_cost(self):
# 教工的水费标准
return self.water_usage * 0.5
```
这样,我们就可以根据不同的学生和教工信息,计算出每个人每月需要交的电费和水费。
阅读全文