2022首次更文挑战第23天 | 考试系统的开发01

204 阅读2分钟

「这是我参与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的形成代码。