基于MVC的在线考试系统
面向行业领域软件开发学年设计任务书
学院计算机与信息工程学院专业网络工程
课程名称面向行业领域软件开发题目基于MVC的在线考试管
理系统
完成期限自2015年6月29日至2015年7月8日共1周
内容及任务一、项目的目的
这次项目基于MVC的在线考试管理系统主要目的是让我们对于之前所学的JA V A和JSP内容进行更加深入的了解与学习,让我们更加熟练的利用MVC框架进行小型系统的开发,理解自己的不足,及时加以改正,为毕业设计打下良好基础。
二、项目任务的主要内容和要求
1.系统分为前后台,前台为游客游览查询,后台为管理员管理;
2.贴近现实进行需求分析和设计功能;
3.管理功能指对数据的增删改查;
4.管理功能应在管理员登录过后才能进行管理;
5.数据库中数据表至少有三张。
三、项目设计(研究)思路
1.拿到题目后对题目了解需求,剖析,设计,做出ER图和用例图;
2.对数据库进行设计,创建出系统需要的表;
3.搭建环境框架,进行编码,测试,调试;
4.完善系统,进行答辩;
5.完成学年设计报告。
四、具体成果形式和要求
完成题目所提出的要求,基本的要有前后台,数据库最少要有3张表,能够进行数据的增删改查,管理员对数据能进行管理,考生能够进行正常注册登录和选题考试,获得分数功能。
进度安排
起止日期工作内容
2015.6.29-7.1 了解题目需求,查看相关资料,向老师请教;2015.7.2-7.5 搭建框架,进行编码,测试,调试;
2015.7.6-7.8 进行答辩,完成学年设计文档。
主要参考资料1.赵生慧等. Java面向对象程序设计[M]. 北京:中国水利水电出版社,2013.;
2.张跃平等.JSP程序设计[M].北京:清华大学出版社,2009.;
3.唐振明等.JavaEE主流开源框架(第二版)[M].北京:电子工业出版社,201
4.;
指导教师
意见
(签字):年月日
系(教研室)
主任意见
(签字):年月日
面向行业领域软件设计说明书(或论文)
(封面)
学院名称:计算机与信息工程学院
班级名称:
学生姓名:
学号:
题目:基于MVC的在线考试管理系统
指导教师
姓名:王涛
起止日期:2015.6.29-2015.7.8
第一部分:正文部分
一、选题背景
随着现代学校的发展,考试项目和次数越来越多,纸质化考试形式已经不能完全满足学校和考生的需求,顺应发展要求,这次的这个学年设计基于MVC的在线考试管理系统就是为了解决这个问题,在线考试系统能够使考试完全脱离纸质材料,完全是在电脑上操作,考试和管理方便快捷,能够为考生和学校减轻很多负担。
二、方案论证(或设计理念)
这次选择这个基于MVC框架来开发这个在线考试管理系统是因为MVC作为基础的JA V A开发框架,通俗易懂,容易上手和编码操作,对于我们学生来说更适合不过。系统里采用考生、系统管理员和普通教师三种权限,充分考虑了现实情况,考生通过注册登录之后可以进行在线选题考试,考试之后提交之后可以获得成绩;系统管理员登录之后可以进行试卷管理、题库管理和用户管理;普通教师登录之后可以进行试卷管理和对题库的管理,整个系统架构简单清晰,也是我采用这个设计方案的原因。
三、过程论述
(一)系统E-R图
图3-1系统E-R图
(二)系统用例图
图3-2 系统用例图
(三)数据库和表设计
此次系统采用mysql 数据库进行承载数据,数据库名为testonline ,里面涵盖五张表,分别为:loginuser 表;manager 表;examtest 表;exampaper 表和subject 表,部分表结构如下: i.loginuser 表:
表1 loginuser 表
在线考试系统
考生
管理员
注册
登录 考试
管理
名类型长度十进制位id int 11 0
userName varchar 10 0
password varchar 10 0
departmet varchar 20 0
classes varchar 20 0
job varchar 20 0
ii.manager表:
表2 manager表
名类型长度十进制位id int 11 0
userName varchar 20 0
password varchar 20 0
isManager varchar 5 0
(四)系统各项界面
4.1 系统主界面
图4-1 主界面4.2 考生登录后
图4-2 考生登录界面4.3 考生选题考试
图4-3 考生选题考试
4.4 提交考卷
图4-4 提交考卷
4.5 管理员登录界面
图4-5 管理
员登录
4.6 管理试卷
图4-6 管理试卷4.7 管理题库
图4-7 管理题库
4.8 用户管理
图4-8 用户管理
4.9 普通教师登录
图4-9 普通教师登录
4.10 教师登陆后只能对试卷和题库进行管理,无权对用户管理
图4-10 普通教师登录管理
(五)系统相关代码
5.1 数据库连接主要代码
private ConnDb(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("数据库驱动找不到!!!");
}
try {
conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/testonline","root","root");
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("数据库连接错误!!!!");
}
try {
stmt = conn.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
5.2 login代码
5.3 考试选择部分代码
5.4 考题判断部分代码
<%
try{ int in_id=Integer.parseInt(request.getParameter("id"));
String in_title=Convert.convert(request.getParameter("title"));
String in_subjectId=Convert.convert(request.getParameter("subjectId"));
S tring in_a=Convert.convert(request.getParameter("a"));
S tring in_b=Convert.convert(request.getParameter("b"));
S tring in_c=Convert.convert(request.getParameter("c"));
S tring in_d=Convert.convert(request.getParameter("d"));
S tring in_answer=Convert.convert(request.getParameter("answer"));
S tring in_isChosen =request.getParameter("isChosen");
s ql="update examtest set title=?,subjectId=?,a=?,b=?,c=?,d=?,answer=?,isChosen=? where id="+in_id;
p s=conn.prepareStatement(sql);
p s.setString(1,in_title);
p s.setString(2,in_subjectId);
p s.setString(3,in_a);
p s.setString(4,in_b);
p s.setString(5,in_c);
p s.setString(6,in_d);
p s.setString(7,in_answer);
p s.setString(8,in_isChosen);
p s.executeUpdate();
}catch(Exception e){
e.printStackTrace();
} %>
5.5 LoginUser.java代码
package sample.util;
public class LoginUser {
private int id;
private String userName;
private String password;
private String department;
private String classes;
private String job;
public LoginUser(){
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) { https://www.360docs.net/doc/0b10129372.html,erName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) { this.department = department;
}
public String getClasses() {
return classes;
}
public void setClasses(String classes) {
this.classes = classes;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
}
四、结果分析
系统从设计到编码,测试,调试,系统已经完全与数据库进行连接,注册登录考试之类的数据完全能够顺利的与数据库交互,系统能够基本实现学年设计要求,基于MVC模式开发,系统涵盖五张基本表,能够实现基本的数据增删改查,能够实现基本的考试功能,这次学年设计任务圆满完成。
五、结论(或总结)
通过一个多礼拜的学年设计任务,我发现我的不足之处还有许多,对于基本的概念还不是很明白,编程功底也不够扎实,必须要向同学和老师请教才能圆满完成这次任务,不过我也学到了很多,自己动手让我更加深入的了解了JA V A与JSP开发的步骤,学到了平时课堂上学不到的知识,为下学期的毕业设计打下了良好的基础,感谢这次设计活动,感谢老师和同学的帮助。
第二部分:参考文献
1.赵生慧等. Java面向对象程序设计[M]. 北京:中国水利水电出版社,2013.;
2.张跃平等.JSP程序设计[M].北京:清华大学出版社,2009.;
3.唐振明等.JavaEE主流开源框架(第二版)[M].北京:电子工业出版社,201
4.;
学生签名:填表日期:年月日第三部分:指导教师评语
第四部分:成绩评定
指导教师签名:填表日期:年月日