基于MVC的在线考试系统

基于MVC的在线考试系统
基于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 考试选择部分代码

<%int n=0; int subjectId=Integer.parseInt(request.getParameter("subjectSelect"));

sql="select * from examtest where subjectId='"+subjectId+"' ORDER BY rand() LIMIT 5"; rs=stmt.executeQuery(sql);

try{ while(rs.next()){

n++; id=rs.getInt("id");

title=rs.getString("title");

a=rs.getString("a");

b=rs.getString("b");

c=rs.getString("c");

d=rs.getString("d");%>

<%=n %><%out.print("."); %>

<%=title %>

value="a">

<%=a %>

value="b">

<%=b %>

value="c">

<%=c %>

value="d">

<%=d %>
<%}

}catch(Exception e){

e.printStackTrace();

}%>

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.;

学生签名:填表日期:年月日第三部分:指导教师评语

第四部分:成绩评定

指导教师签名:填表日期:年月日

相关主题
相关文档
最新文档