运用Java在eclipse上实现住宿学生信息包括:学号、姓名、性别、年龄、班级、用电量、用水量 等信息。教工信息包括职工号、姓名、性别、年龄、工作部门、用电量、用水量等信息。 能计算出学生和教工每月所要交的电费和水费。定义一个人员类,实现学生和教工共同的信 息和行为。同时实现保存和读取的工能
时间: 2023-07-04 20:09:58 浏览: 36
以下是一个可能的解决方案:
首先,我们需要定义一个 Person 类,用于保存学生和教工共同的信息:
```
public class Person {
private String id; // 学号或职工号
private String name;
private String gender;
private int age;
private double electricity;
private double water;
public Person(String id, String name, String gender, int age, double electricity, double water) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
this.electricity = electricity;
this.water = water;
}
// getters and setters
}
```
然后,我们可以定义一个 Student 类和一个 Teacher 类,分别继承自 Person 类,并且添加学生和教工特有的信息和行为:
```
public class Student extends Person {
private String clazz; // 班级
public Student(String id, String name, String gender, int age, String clazz, double electricity, double water) {
super(id, name, gender, age, electricity, water);
this.clazz = clazz;
}
// 计算电费和水费
public double getElectricityFee() {
return electricity * 0.5; // 假设电费单价为0.5元/kWh
}
public double getWaterFee() {
return water * 2; // 假设水费单价为2元/m³
}
// getters and setters
}
public class Teacher extends Person {
private String department; // 工作部门
public Teacher(String id, String name, String gender, int age, String department, double electricity, double water) {
super(id, name, gender, age, electricity, water);
this.department = department;
}
// 计算电费和水费
public double getElectricityFee() {
return electricity * 0.8; // 假设电费单价为0.8元/kWh
}
public double getWaterFee() {
return water * 3; // 假设水费单价为3元/m³
}
// getters and setters
}
```
最后,我们可以在主函数中创建学生和教工对象,并计算他们的电费和水费:
```
public static void main(String[] args) {
Student s = new Student("001", "张三", "男", 18, "计算机科学与技术1班", 100, 10);
Teacher t = new Teacher("1001", "李四", "女", 30, "计算机系", 200, 20);
System.out.println(s.getName() + "的电费为:" + s.getElectricityFee() + "元");
System.out.println(s.getName() + "的水费为:" + s.getWaterFee() + "元");
System.out.println(t.getName() + "的电费为:" + t.getElectricityFee() + "元");
System.out.println(t.getName() + "的水费为:" + t.getWaterFee() + "元");
}
```
当然,我们还需要实现保存和读取功能。可以使用 Java 的序列化机制来实现:
```
public class DataIO {
public static void savePersonList(List<Person> list, String fileName) throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName));
oos.writeObject(list);
oos.close();
}
public static List<Person> loadPersonList(String fileName) throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fileName));
List<Person> list = (List<Person>) ois.readObject();
ois.close();
return list;
}
}
```
这样,我们就可以把学生和教工对象保存到文件中,并在需要时读取出来。