考试信息系统经过分析具有如下类及相关属性、方法,并编写演示程序。 (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 15:41:56 浏览: 70
这是一个很完整的考试信息系统的类结构设计,需要根据需求编写对应的Java代码。以下是一个简单的示例代码:
```java
// User类
public abstract class User {
private String id;
private String name;
private String password;
private String tel;
public User(String id, String name, String password, String tel) {
this.id = id;
this.name = name;
this.password = password;
this.tel = tel;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
public void modifyPassword(String password) {
this.password = password;
}
public String getTel() {
return tel;
}
public abstract void login();
public abstract String getInfo();
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", password='" + password + '\'' +
", tel='" + tel + '\'' +
'}';
}
}
// Student类
public class Student extends User {
private double average;
private int count;
public Student(String id, String name, String password, String tel) {
super(id, name, password, tel);
this.average = 0;
this.count = 0;
}
public double getAverage() {
return average;
}
public void test(Exam exam) {
// 考试操作
}
public double queryGrade(Exam exam) {
// 查询成绩操作
return 0;
}
@Override
public void login() {
// 登录操作
}
@Override
public String getInfo() {
// 获取用户信息操作
return null;
}
@Override
public String toString() {
return "Student{" +
"id='" + getId() + '\'' +
", name='" + getName() + '\'' +
", password='" + getPassword() + '\'' +
", tel='" + getTel() + '\'' +
", average=" + average +
", count=" + count +
'}';
}
}
// Teacher类
public class Teacher extends User {
private String professionalTitle;
public Teacher(String id, String name, String password, String tel, String professionalTitle) {
super(id, name, password, tel);
this.professionalTitle = professionalTitle;
}
public void test(Exam exam) {
// 出试卷操作
}
public double queryGrade(Exam exam) {
// 查询学生考试成绩操作
return 0;
}
public double queryGrade(Exam exam, Student stu) {
// 查询指定学生成绩操作
return 0;
}
@Override
public void login() {
// 登录操作
}
@Override
public String getInfo() {
// 获取用户信息操作
return null;
}
@Override
public String toString() {
return "Teacher{" +
"id='" + getId() + '\'' +
", name='" + getName() + '\'' +
", password='" + getPassword() + '\'' +
", tel='" + getTel() + '\'' +
", professionalTitle='" + professionalTitle + '\'' +
'}';
}
}
// HeadTeacher类
public class HeadTeacher extends Teacher {
public HeadTeacher(String id, String name, String password, String tel, String professionalTitle) {
super(id, name, password, tel, professionalTitle);
}
public double queryGrade(Exam exam, String clazz) {
// 查询自己班里学生考试成绩操作
return 0;
}
@Override
public String toString() {
return "HeadTeacher{" +
"id='" + getId() + '\'' +
", name='" + getName() + '\'' +
", password='" + getPassword() + '\'' +
", tel='" + getTel() + '\'' +
", professionalTitle='" + professionalTitle + '\'' +
'}';
}
}
// Exam类
public class Exam {
private String id;
private String name;
private String content;
private Date examDate;
public Exam(String id, String name, String content, Date examDate) {
this.id = id;
this.name = name;
this.content = content;
this.examDate = examDate;
}
public double getAverage() {
// 计算平均分操作
return 0;
}
@Override
public String toString() {
return "Exam{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", content='" + content + '\'' +
", examDate=" + examDate +
'}';
}
}
// StudentExam类
public class StudentExam {
private Student stu;
private Exam exam;
private double score;
public StudentExam(Student stu, Exam exam, double score) {
this.stu = stu;
this.exam = exam;
this.score = score;
}
@Override
public String toString() {
return "StudentExam{" +
"stu=" + stu +
", exam=" + exam +
", score=" + score +
'}';
}
}
```
以上仅为示例代码,具体实现需要根据实际需求进行调整。