编写下列内容的Test测试方法 考试信息系统经过分析具有如下类及相关属性、方法,并编写演示程序。 (1)类名分别为:User, Student, Teacher,HeadTeacher,Exam,StudentExam; (2)User是Student与Teacher的父类;Teacher是HeadTeacher的父类; (3)User类的属性有:id, name, password, tel;方法:登录login,修改密码modifyPassword,获取用户id,name,tel信息getInfo; (4)Student类属性:继承User的属性,平均分average,对象个数count; 方法:继承方法,考试test(Exam exam), 查询自己的成绩queryGrade(Exam exam); (5)Teacher类属性:继承User的属性,职称professionalTitle; 方法:继承方法,出试卷test(Exam exam), 查询学生考试成绩queryGrade(Exam exam),查询指定学生成绩queryGrade( Exam exam,Student stu)。 (6)HeadTeacher(班主任):继承Teacher的属性,职称professionalTitle; 方法:继承方法,查询自己班里学生考试成绩queryGrade(Exam exam,String clazz)。 (7)Exam类属性:考试编号id,考试名称name,考试内容content,考试时间examDate;方法: 计算平均分getAverage()。 (8)StudentExam类属性:学生stu,考试exam,成绩score。 (9)每个类都有构造方法,访问器方法,toString()方法。
时间: 2024-03-15 17:41:42 浏览: 27
可以编写以下测试方法来测试上述类的属性和方法:
```java
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
// 创建用户对象
User user = new User("001", "Tom", "123456", "123456789");
System.out.println(user.getInfo()); // 输出用户信息
user.modifyPassword("654321"); // 修改密码
user.login("Tom", "654321"); // 登录
// 创建学生对象
Student student = new Student("002", "Jerry", "123456", "987654321", 80);
System.out.println(student.getInfo()); // 输出学生信息
student.test(new Exam("001", "Java基础考试", "包括Java基础语法和面向对象编程", "2022-01-01")); // 进行考试
student.queryGrade(new Exam("001", "Java基础考试", "包括Java基础语法和面向对象编程", "2022-01-01")); // 查询自己的考试成绩
// 创建老师对象
Teacher teacher = new Teacher("003", "Mary", "123456", "987654321", "教授");
System.out.println(teacher.getInfo()); // 输出老师信息
teacher.test(new Exam("001", "Java基础考试", "包括Java基础语法和面向对象编程", "2022-01-01")); // 出试卷
teacher.queryGrade(new Exam("001", "Java基础考试", "包括Java基础语法和面向对象编程", "2022-01-01")); // 查询学生考试成绩
teacher.queryGrade(new Exam("001", "Java基础考试", "包括Java基础语法和面向对象编程", "2022-01-01"), student); // 查询指定学生成绩
// 创建班主任对象
HeadTeacher headTeacher = new HeadTeacher("004", "John", "123456", "987654321", "教授");
System.out.println(headTeacher.getInfo()); // 输出班主任信息
Exam exam = new Exam("001", "Java基础考试", "包括Java基础语法和面向对象编程", "2022-01-01");
headTeacher.queryGrade(exam, "三年级一班"); // 查询班里学生考试成绩
// 创建考试对象和学生考试对象
Exam exam1 = new Exam("002", "Java进阶考试", "包括Java高级特性和多线程编程", "2022-01-02");
List<StudentExam> studentExams = new ArrayList<>();
studentExams.add(new StudentExam(student, exam, 80));
studentExams.add(new StudentExam(new Student("005", "Bob", "123456", "987654321", 90), exam1, 85));
exam.setStudentExams(studentExams);
exam1.setStudentExams(studentExams);
System.out.println(exam.getAverage()); // 计算平均分
System.out.println(exam1.getAverage()); // 计算平均分
}
}
```