4.2.1tb_manager(管理员信息表).11
4.2.2tb_Student(考生信息表).11
4.2.3tb_stuResult(考生成绩信息表).11
4.2.4tb_TaoTi(套题信息表).12
4.2.5tb_Lesson(课程信息表).12
4.2.6tb_Questions(考试题目信息表).12
4.3数据表关系设计.13
5详细设计.14
5.1前台首页模块设计.14
5.2考生信息模块设计.14
5.3在线考试模块设计.15
5.4考试题目管理模块设计.17
6软件测试.18
6.1软件开发技术概述.18
参考文献.19
附录:数据库源程序.20
当今社会,考试已经是我们必不可少的东西了,从小到大我们已经考过无数次了,以后还要考,不管是国内还是国外的各大厂家,都在不断的推出一系列的考试、认证。又是要我们去考试。我们国家的自考或是成考,以及各省市的各种考试,现在都在朝着信息化的道路前进在走。我们相信在今后这一系列的考试将会走向网络化考试的。这样才是符合信息技术发展的方向。我们要给不同的考试同一个好的解决方案。这个方案在技术上来讲我们是采用B/S模式。在windows/Linux平台上,使用IE浏览器,完成抽题、考试、交卷等考试任务。方便,简单的完成各种考试,这也是我们的目的所在。
考点模块通过网络获取题库,按照题库中的抽题策略,自动给每个考生生成一份试卷,考生在线作答,考试结果数据通过网络回收,系统自动进行判分,生成考试成绩和统计数据。“在线考试系统”是集合现代考试理论、方法和现代信息技术手段的智能化网上考试系统,为学生个性化学习提供“灵活、方便、科学、公平”的“个别化考试服务”,是终结性评价系统。学生可以随时、随地进行课程结业考试。
本系统作为一个在线的考试系统,要求实现网络考试系统的各项基本功能。从维护和安全的角度看,可以把系统设计成B/S模式的,可以让用户通过浏览器直接访问位于服务器上的考试题以及对系统进行远程维护。
(2)在线考试
(3)考试套题管理
考试套题管理主要包括对考试题进行添加、查询、修改和删除操作。
(4)考试题目管理
考试题目管理主要包括对考试题进行添加、查询、修改和删除操作。除此之外,根据实际需要,还可以对数据库中的信息(学生信息、试题)进行维护。
要求:
①操作简单方便、界面简洁美化。
⑤考生可以随时查看成绩。
⑦对考生注册信息进行管理。
⑧系统自动交卷、阅卷,保证成绩真实,准确。
⑨系统运行稳定、安全。
选择MySql作为后台的数据库,选择myeclipse作为应用程序开发工具,应用JAVA、JSP、JavaScript、Html、Tomcat服务器技术,整个系统完全基于B/S(Browser/Server)模式进行设计,采用strus框架进行架构。
在开发网络在线考试系统时,需要具备下面的软件环境:
a)操作系统:Windows8.1。
b)Web服务器:Tomcat7.0。
c)Java开发包:JDK1.7。
d)开发工具:myeclipse2015。
e)数据库:MySQL及其图形化管理工具SQLyog。
f)浏览器:火狐游览器。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
所有计算机均由两种元素组成:代码和数据。精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的。
第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码。如C等过程化语言。
第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象、封装、继承和多态的好处。
由于采用B/S设计模式分层思想,同时根据软件工程的管理思想及系统分析的设计与分析的思想进行系统的开发,利用Java语言开发Web应用程序,提供String+Hibernate+Spring框架对系统的程序代码结构进行分层。分层的策略如下:
图1Struts-Spring-Hibernate架构
图2系统前台功能图
网络在线考试系统的后台功能结构如图3所示:
图3系统后台功能图
网络在线考试的系统业务流程如图4所示:
图4系统业务流程图
根据对系统所做的需求分析和系统设计,规划出本系统中使用的数据库实体分别为考生档案实体、管理员档案实体、课程档案实体、套题实体、考试题目实体和考生成绩实体。
图5考生档案实体的E-R图
管理员档案实体包括编号、管理员名、管理员密码属性。管理员档案实体的E-R图如图6所示:
图6管理员档案实体的E-R图
图7课程档案实体的E-R图
图8考试题目实体的E-R图
图9考生成绩实体的E-R图
管理员信息表用来保存管理员信息,该表的结构如表1所示:
表1tb_stuResult表的结构
考生信息表用来保存考生信息,该表的结构如表2所示:
表2tb_Student表的结构
表3tb_stuResult表的结构
表4tb_TaoTi表的结构
表5tb_Lesson表的结构
考试题目信息表用来保存考试题目信息。考试题目信息表的结构如表6所示:
表6tb_Questions表的结构
本系统设计了如图10所示的数据表之间的关系,该关系实际上也反映了系统中各个实体之间的关系。
图10数据表之间的关系图
图11前台首页图
图12考生信息注册图
考生信息模块的Action实现类Student继承了Action类。在该类中,首先需要在该类的构造方法中分别实例化考生信息模块的StudentDAO类。Action实现类的主要方法是execute(),该方法会被自动执行,这个方法本身没有具体的事务,它是根据HttpServletRequest的getParameter()方法获取的action参数值执行相应方法的。
图13在线考试流程图
图14考试试题图
网络在线考试系统的后台首页是管理员对网站信息进行管理的首页面。在该页面中,管理员可以清楚地了解网站后台管理系统包含的基本操作。
a)管理员信息管理:主要包括管理员信息列表、添加管理员、修改管理员和删除管理员。
b)考生信息管理:主要包括查看注册考生信息列表和删除已注册的考生信息。
d)课程信息管理:主要包括查看课程列表、添加课程信息和删除课程信息。
e)套题信息管理:主要包括查看套题信息列表、添加套题信息、修改套题信息
和删除套题信息。
f)考试题目管理:主要包括查看考试题目列表、添加考试题目、修改考试题目
和删除考试题目。
g)退出管理:主要用于退出后台管理系统。
为了方便管理员管理,在网络在线考试系统的后台首页中显示考生成绩查询页
面,其运行结果如图15所示:
图15后台首页图
图16添加考试题目图
[1]刘东祥.动态网页JSP技术探究[J].时代教育,2010,(10):14-17.
[2]何文辉.基于JSP的动态网站开发技术[J].吉林省教育学院学报,2012,(8):18-20.
[3]郭利周,于长虹,郭晓萍.基于的网上考试安全体系的设计与构建[J].洛阳师范学院学报,2013,(5):25-28.
[4]张洪伟.TomcatWeb开发及整合应用[M].北京.清华大学出版社.2010.8:10-230
[5]周玫,袁振武.浅谈在线考试系统[J].科技广场,2008,(7):11-14.
[6]覃远霞.在线考试系统的设计与运用[J].应用科学,2010,(1):34-36.
[7]四维科技,杨易编著.JSP网络编程技术与案例[M].北京:人民邮电出版社,2006.
[8]范云之.基于Web数据库在线考试系统的设计与实现研究[J].商丘师范学院学报第22卷第5期2006.10:1-20
[9]刘中兵,李伯华,邹晨编著.JSP数据库项目案例导航[M].北京:清华大学出版社,2013.
[10]覃远霞.在线考试系统的设计与运用[J].应用科学,2013,(1):34-36.
[11]BruceEckel.Java编程思想[M].北京.机械工业出版社.2008.9:30-280[12](美)舒尔第.Java2-Thecompletereference[M].北京.电子工业出版社.2006.1:20-100
[13](美)MartyHall.Servlet与JSP权威指南[M].北京v机械工业出版社.2008.10:30-350
[14](美)MartyHall.JavaScript高级程序设计[M].北京.人民邮电出版社.2009.11:50-200
[15](美)DavidFlanagan.JavaScript权威指南[M].北京.机械工业出版社.2013.1:10-200
CREATEDATABASEdb_exam;
USE`db_exam`;
CREATETABLE`tb_lesson`(
`ID`INT(11)NOTNULLAUTO_INCREMENT,
`Name`VARCHAR(60)DEFAULTNULL,
`JoinTime`DATETIMEDEFAULTNULL,
PRIMARYKEY(`ID`)
)ENGINE=INNODBAUTO_INCREMENT=34DEFAULTCHARSET=utf-8;
INSERTINTO`tb_lesson`(`ID`,`Name`,`JoinTime`)VALUES(4,'数据库原理','2015-12-0100:00:00'),(5,'计算机文化基础','2015-12-0100:00:00'),(8,'计算机专业英语','2015-12-0100:00:00'),(29,'嵌入式系统','2015-12-0200:00:00'),(31,'物联网体系结构','2015-12-0500:00:00'),(33,'接口与通信技术','2015-12-0210:29:10');
CREATETABLE`tb_manager`(
`name`VARCHAR(30)DEFAULTNULL,
`PWD`VARCHAR(30)DEFAULTNULL,
)ENGINE=INNODBAUTO_INCREMENT=15DEFAULTCHARSET=utf8;
INSERTINTO`tb_manager`(`ID`,`name`,`PWD`)VALUES(1,'admin','admin'),(2,'tf111','tf111');
CREATETABLE`tb_questions`(
`id`INT(11)NOTNULLAUTO_INCREMENT,
`subject`VARCHAR(50)DEFAULTNULL,
`type`CHAR(6)DEFAULTNULL,
`joinTime`DATETIMEDEFAULTNULL,
`lessonId`INT(11)DEFAULTNULL,
`taoTiId`INT(11)DEFAULTNULL,
`optionA`VARCHAR(50)DEFAULTNULL,
`optionB`VARCHAR(50)DEFAULTNULL,
`optionC`VARCHAR(50)DEFAULTNULL,
`optionD`VARCHAR(50)DEFAULTNULL,
`answer`VARCHAR(10)DEFAULTNULL,
`note`VARCHAR(50)DEFAULTNULL,
PRIMARYKEY(`id`)
)ENGINE=INNODBAUTO_INCREMENT=52DEFAULTCHARSET=utf8;
INSERTINTO`tb_questions`(`id`,`subject`,`type`,`joinTime`,`lessonId`,`taoTiId`,`optionA`,`optionB`,`optionC`,`optionD`,`answer`,`note`)VALUES(37,'数据库原理的老师是谁?','单选题','2015-12-0101:00:00',5,10,'常赞杰','陈利平','姜平','以上都不是','B','空'),(39,'网络营销的发展经历几个阶段?','单选题','2015-12-0100:00:00',29,17,'2个','3个','5个','6个','C','空'),(40,'Internet提供的基本服务有哪些?','多选题','2015-12-0100:00:00',29,17,'E-mail','FTP','Telnet','WWW','A,B,C,D','空'),(48,'EPROM代表什么?','单选题','2015-12-0100:00:00',8,19,'可编程存储器','可擦可编程存储器','只读存储器','可擦可编程只读存储器','D',''),(49,'对于WWW的正确解释有哪些?','多选题','2015-12-0100:00:00',8,19,'全球网','万维网','局域网','WorldWideWeb的缩写','A,B,D','');
CREATETABLE`tb_student`(
`ID`VARCHAR(16)DEFAULTNULL,
`name`VARCHAR(20)DEFAULTNULL,
`pwd`VARCHAR(20)DEFAULTNULL,
`sex`VARCHAR(2)DEFAULTNULL,
`question`VARCHAR(50)DEFAULTNULL,
`answer`VARCHAR(50)DEFAULTNULL,
`profession`VARCHAR(30)DEFAULTNULL,
`cardNo`VARCHAR(18)DEFAULTNULL
)ENGINE=INNODBDEFAULTCHARSET=utf8;
CREATETABLE`tb_sturesult`(
`stuId`VARCHAR(16)DEFAULTNULL,
`whichLesson`VARCHAR(60)DEFAULTNULL,
`resSingle`INT(11)DEFAULTNULL,
`resMore`INT(11)DEFAULTNULL,
`resTotal`INT(11)DEFAULTNULL,
)ENGINE=INNODBAUTO_INCREMENT=43DEFAULTCHARSET=utf8;
INSERTINTO`tb_sturesult`(`id`,`stuId`,`whichLesson`,`resSingle`,`resMore`,`resTotal`,`joinTime`)VALUES(1,'CN20151201000002','计算机专业英语',50,30,80,'2015-12-0100:00:00'),(2,'CN20151201000001','物联网体系结构',0,20,20,'2015-12-0100:00:00'),(4,'CN20151201000001','数据库原理',20,30,50,'2015-01-0100:00:00'),(12,'CN20151201000001','计算机专业英语',40,60,100,'2015-12-0100:00:00'),(14,'CN20151225000005','嵌入式系统',40,0,40,'2015-12-0100:00:00'),(29,'CN20151201000002','接口与通信技术',40,60,100,'2015-12-0100:00:00'),(30,'CN20151229000006','数据库原理',40,60,100,'2015-12-0100:00:00'),(37,'CN20151229000007','计算机文化基础',0,0,0,'2015-12-0100:00:00'),(38,'CN20151229000007','数据库原理',40,60,100,'2015-12-0100:00:00'),(39,'CN20151229000006','嵌入式系统',0,0,0,'2015-12-0100:00:00'),(40,'CN20151201000001','数据库原理',0,0,NULL,NULL),(41,'CN20151201000002','接口与通信技术',0,0,NULL,'2015-12-0211:43:15'),(42,'CN20151201000002','计算机文化基础',40,0,40,'2015-12-0213:10:12');
CREATETABLE`tb_taoti`(
`Name`VARCHAR(50)DEFAULTNULL,
`LessonID`INT(11)DEFAULTNULL,
)ENGINE=INNODBAUTO_INCREMENT=21DEFAULTCHARSET=utf8;
INSERTINTO`tb_taoti`(`ID`,`Name`,`LessonID`,`JoinTime`)VALUES(10,'2015数据库期末考试',5,'2015-01-0100:00:00'),(17,'2015年嵌入式期末考试题',29,'2015-12-0100:00:00'),(19,'2015年物联网体系结构考试题',8,'2015-12-0100:00:00'),(20,'接口与通信期末考试题',31,'2015-12-0100:00:00');