「这是我参与2022首次更文挑战的第23天,活动详情查看:2022首次更文挑战」
这篇文章,主要讲考试系统功能的开发。
以前传统的考试是纸质的考试,现在,我们越来越遇到网站上的考试,这种考试就是线上考试,我们可以开发出一个在线上考试的系统。
实体类的设计
考试类:考试id(考试编号),学生,试卷,单选题得分,多选题得分,总得分,考试时间
public class Exam {
private int id;
private Student student;
private Paper paper;
private int singleScore;
private int moreScore;
private int score;
private Date examDate;
//getter,setter
}
管理员类:主键id,用户名,密码,名字,标志
public class Manager {
private int id;
private String userName;
private String password;
private String name;
private String flag="1";
//getter,setter
}
试卷类:主键id,试卷名称,时间,试卷题目
public class Paper {
private int id;
private String paperName;
private Date joinDate;
private Set<Question> questions=new HashSet<Question>();
//getter,setter
}
题目类:主键id(问题编号),题目名称,题目类型 1 是单选题 2 是多选题,添加时间,试卷,选项A,选项B,选项C,选项D,答案,用户回答
public class Question {
private int id;
private String subject;
private String type;
private Date joinTime;
private Paper paper;
private String optionA;
private String optionB;
private String optionC;
private String optionD;
private String answer;
private String userAnswer;
//getter,setter
}
学生类:编号、准考证,姓名,密码,性别,专业,身份证,用户类型 1:管理员 2:考生
public class Student {
private String id;
private String name;
private String password;
private String sex;
private String prefession;
private String cardNo;
private String flag="2";
//getter,setter
}
学生类的操作
登录操作,判断学生的用户名和密码
public String login()throws Exception{
HttpSession session=request.getSession();
Student currentUser=studentDao.login(student);
if(currentUser==null){
error="准考证号或者密码错误!";
return ERROR;
}else{
session.setAttribute("currentUser", currentUser);
return SUCCESS;
}
}
修改密码,更新密码操作,先判断之前密码,进行对新的密码保存操作
public String updatePassword()throws Exception{
Student s=studentDao.getStudentById(student.getId());
s.setPassword(student.getPassword());
studentDao.saveStudent(s);
mainPage="student/updateSuccess.jsp";
return SUCCESS;
}
剩下的还有查询学生信息,以及删除学生信息,分别是select操作,delete操作
管理员的操作
现在目前管理员的操作是登录,跟学生登录代码是一样的,后续还有查看学生成绩这些功能,后续慢慢加上
理清考试关系
上面实体类的设计,有exam,papaer和question这三类,分别为考试,试卷,题目(问题)。清理这三类很简单。考试里面一定包含试卷,试卷里面一定会有题目。question->paper->exam。所以我们先从question入手,组成了paper,最后才有exam。 下一篇,我们讲question->paper->exam的形成代码。