毕业设计基于JAVA SWING的考试模拟系统初稿_第1页
毕业设计基于JAVA SWING的考试模拟系统初稿_第2页
毕业设计基于JAVA SWING的考试模拟系统初稿_第3页
毕业设计基于JAVA SWING的考试模拟系统初稿_第4页
毕业设计基于JAVA SWING的考试模拟系统初稿_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽工业大学工商学院毕业设计(论文) 课题名称基于 java swing 的考试模拟系统系 别计算机科学与技术专业班级计 1041姓 名 学 号 摘摘 要要21 世纪是网络化、信息化的社会,利用计算机技术实现无纸化考试,取代传统的纸张考试,是未来考试的一大发展方向。他不仅节约了笔墨纸张的花费,也为广大考生提供了极大的方便,而且大大提高了考试的自动化和科学化。本文介绍了一个基于 b/s 模式的在线考试系统的设计与实现,该系统使用 microsoft visual studio 2008 和 sql server 2000 等开发工具,通过 java 程序语言实现了两大功能模块,即前台考试模块。考

2、生在线考试及教师在线出题的网络一体化,极大的提高了考试效率。系统管理员能够对学生信息、教师信息和试题信息进行统一管理,进一步确保系统的稳定性及安全性。本系统还增设了随机抽取试题和考试题量灵活设置等功能。关键词:关键词:无纸化考试;b/s 模式;.java 技术 abstractthe 21st century is a networked, information society. using computer technology to achieve paperless examination and replace traditional paper examination is a g

3、reat developing direction in the future. it not only saved the cost of paper, pen and ink, but also provided a lot of convenience for the majority of candidates and improved the examination process automation and scientific greatly. this article describes the design and implementation of a examinati

4、on online system which based on b / s mode of information technology. the system uses microsoft visual studio 2008 and sql server 2000 development tools to achieve two major functional modules through the c # programming language and .java technology. the major functional modules are the foreground

5、module for studentsonline examination and the background module for the teachers and administrators to management the system. online exam candidates and teachers, the high integration on network which combines candidatesonline examination with teachers setting out exam paper greatly improved the eff

6、iciency of the examination. system administrators can not only manage all the students and teachers information, but also manage the exam paper. it further ensure the systems stability and security. the system also added some new functions such as a random sample of papers and flexibility setting of

7、 exams amount.keywords: paperless examination; b / s mode;.java technology; 目目 录录第一章第一章 绪论绪论.11.1 课题研究背景与意义 .11.2 本文结构 .2第二章第二章 相关技术概述相关技术概述.32.1 asp 技术 .32.2 数据库技术 .32.3 b/s 结构简介 .3第三章第三章 可行性研究及需求分析可行性研究及需求分析.63.1 可行性研究 .63.1.1 可行性研究的方法.63.1.2 系统主要开发目标.63.1.3 技术可行性.73.2 需求分析 .73.2.1 市场需求.83.2.2 软件功

8、能分析.83.2.3 软件的非功能性需求.8第四章第四章 系统总体设计系统总体设计.94.1 系统设计简介 .94.2 系统功能设计 .94.2.1 系统前台功能结构.94.2.2 系统后台功能结构.94.3 系统结构设计 .10第五章第五章 系统详细设计系统详细设计.125.1 数据库设计 .125.1.1 数据库概念设计.125.1.2 数据库逻辑设计.135.1.3 数据库物理设计.165.2 公共类设计 .185.3 系统各模块的设计与实现 .185.3.1 登录模块.185.3.2 随机抽取试题模块.205.3.3 自动评分模块.225.3.4 试题管理模块.235.3.5 系统管理

9、员模块.28第六章第六章 测试与维护测试与维护.316.1 系统测试 .316.1.1 测试技术介绍.316.1.2 系统测试用例.326.2 网站维护.35第七章第七章 总结与展望总结与展望.367.1 总结.367.2 展望.36参考文献参考文献.37致致 谢谢.38第一章第一章 绪论绪论1.1 课题研究背景与意义课题研究背景与意义1.2 本文结构本文结构本文共分为七章。第一章为绪论。简单介绍了课题的研究背景和研究意义。第二章为相关技术背景概述。主要介绍了传统考试模式及在线考试模式的选择。第三章为可行性分析及需求分析。主要介绍系统研发可行性以及系统的市场需求和功能需求。第四章为系统总体设计

10、。主要介绍系统的功能设计和系统的结构设计。第五章为系统详细设计。通过数据库设计、公共类设计以及各个模块的设计与实现来讲解整个系统的设计过程。第六章为测试与维护。第七章为总结与展望。主要是对全文的总结以及对未来的展望。第二章第二章 相关技术相关技术概述概述2.1 asp 技术技术asp(active server pages)指动态服务器页面,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。在 internet 得到广泛应用的今天,网页已经成为一种不可替代的信息交流工具,它以交互式的特点开创了人们进行信息交流的新方式。以往的静态网页大多不能与数据库连接,交互

11、能力有限,不能很好的实现人们交流的愿望,所以,今天我们可以用动态网页设计来弥补这个缺陷。常用的三种动态网页语言有 asp(active server page)、jsp(java server pages)、php(hypertext preprocessor)。这里我们介绍一下 asp,asp 是一个 web 服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的 web 服务应用程序。asp.net 是asp 下一代版本,他并不只是 asp4.0,而是一个用于 web 开发的全新框架,asp.net 完全基于模块和组件,具有更好的可扩展性与可定制性,具有更好的灵活性,有效缩短了

12、web 应用程序的开发周期,asp.net 使用了新的文件拓展名“.aspx” ,这使 asp.net 程序能够与 asp 程序运行在同一台服务器上。服务器不再需要通过重启来进行部署或是取代编译后的代码。asp.net 会顺其自然地将新的请求转向到新的代码。2.2 数据库技术数据库技术本系统采用的是 sql server 2000,因为它拥有以下特性:1) internet 集成;2) 可收缩性和可用性;3) 企业级数据库功能;4) 易用安装部署和使用。sql server 2000 与 windows 2000 server 服务器紧密集成,而 windows 2000 server 服务器

13、具有良好的安全性,能够排除所有未经授权的非法用户访问,确保了sql server 2000 服务器的安全性,符合系统对安全性的要求;其次是,sql server 2000 容量庞大,每个数据库中可创建多达二十万个数据表,数据表中记录的行数只受服务器硬盘空间的限制,符合系统考题数目多的要求。2.3 b/s 结结构构简简介介b/s 结构(browser/server 结构)即浏览器和服务器结构。 浏览器是表示层,在表示层中包含了系统的显示逻辑。它的任务是由浏览器向网络上的某一 web 服务器提出服务请求,web 服务器对用户身份进行验证后用 http 协议把所需的主页传送给客户端,客户端接受传来的

14、主页文件,并把它显示在浏览器上。服务器是由 web 服务器、数据库服务器、应用服务器、中间件组成的多层结构。其中 web 服务器处于功能层,完成客户的应用功能,也是数据库服务器和应用服务器与客户机交互的连接通道。应用服务器就是接受客户端应用逻辑的请求,然后根据应用逻辑将这个请求转化为数据库请求后与数据库服务器交互,并将这个结果传送给客户端的应用程序。数据库服务器软件根据应用服务器发送的请求进行数据库操作,并将操作结果传送给应用服务器。中间件的功能主要是反映和处理事务逻辑,包括从表示层获取的信息引导给系统的数据库服务器、进行各种复杂的数据分析、监督种种自发的进程。数据库和程序放在服务器端,服务器

15、执行必要的计算,负责与数据库交互工作,并将结果发送给客户端。前端浏览器web服务器(asp)数据库业务处理请求业务处理结果数据存取请求数据存取结果图 2.1 b/s 模式逻辑示意图其主要特点表现为:(1) 系统易于扩展和维护。b/s 结构具有很大的伸缩性,既可以将 web 服务器与数据服务器合二为一,以可以同时连接多台数据库服务器。(2) 真正实现跨平台的系统集成服务。多种网络操作系统(如unix、netware、windowsnt、linux 等),多种数据库管理系统(aeeess、sqlserver、sybase、oraele、informix 等)通过统一的协议和标准,完全集成一个 b/

16、s 结构中,从而为用户清晰、统一的信息服务界面。(3) 大大降低对网络带宽的要求。由于采用 b/s 结构,用户端只是做数据的呈现和录入,业务逻辑完全在服务器上实现,从而大幅降低网络负荷。b/s 结构是目前信息系统建设的主要发展方向,也可以称为 b/w/s(browser/web/server)结构。b/s 模式应用优势:对于一般的系统,采用 b/s 结构和采用 c/s 结构相比,采用 b/s 结构具有很多的优势,如表 2.1 所示。由表 2.1 的比较可以很明显地看出 b/s 结构的在线考试系统的应用优势,为了适应社会各类应用,本系统采用了 b/s 结构模式。表表 2.1 b/s 结构与结构与

17、 c/s 结构的比较结构的比较比较内容client/serverbrowser/server对客户端硬件配置要求根据系统规模需要较高的硬件配置需要一般的硬件配置没有特殊要求要专门安装客户端软件需要安装专门的客户端软件客户端只需要浏览器,不需要安装专门的客户端软件系统部署的代价部署代价与信息点的多少成正比与信息点的多少无关,部署代价比较小系统的可维护性系统维护复杂良好的系统维护性实现功能的复杂程度能够根据用户的需求定制复杂的应用可以定制大型复杂的系统应用。系统功能的可扩展性扩张性较差具有良好的系统扩张性,可随用户需求增加新的功能系统使用的难易程度一般要经过专门的培训才能使用不需要专门的培训与 i

18、nternet 的集成与 internet 难集成与 internet 集成平滑第三章第三章 可行性研究及需求分析可行性研究及需求分析3.1 可行性研究可行性研究在线考试系统的主要特点是一方面可以动态地管理各种考试系统信息,只要准备好足够大的题库,就可以按照要求自动生成各种试卷;另一方面,考试时间灵活,用户可以在规定时间段内的任意时间参加考试;另外计算机化的考试的最大特点是阅卷快,系统可以在考试结束时当场给出考试结果,计算机阅卷给了用户的最大的公平感。如何通过一种开发语言能高效的设计出这个系统是一个值考虑的一个需求。由于现代计算机网络技术的快速发展,信息已遍布全球。再加上现代考试的普及。网络已

19、成为大众化的产物,所以将考试系统与网络相联,是很有意义的。asp.net技术为这个系统设计提供了极大的方便。3.1.1 可行性研究的方法可行性研究的方法 结合系统本身及自身的情况选定此课题,对该系统做出了可行性研究。系统设计是以在线考试为目的,基于现代网络在线考试技术,结合现有的技术制定出设计的方案。最终将开发出界面友好、方便现代用户考试的一套完整的在线考试系统。3.1.2 系统主要开发目标系统主要开发目标开发目标:(1) 迅速实现试题的更新。(2) 使系统的后台管理功能完善。(3) 让系统自动生成试卷,随机抽取试题。(4) 实现现代考试网络化。项目要求:(1) 功能:数据库管理、考试功能、教

20、师及系统管理员管理。(2) 性能:操作方便、可靠、高效,界面赏心悦目。(3) 本系统必须要求开发人员对网络技术有一定了解。(4) 教师及系统管理员可以通过本系统将考试的信息存入到数据库中。评价尺度:(1) 自动生成试卷和随机抽取试题的可行性与完整性。(2) 后台管理功能的管理能力。(3) 信息发布的及时性。(4) 考试界面的完善。(5) 系统在使用过程是否便于操作和维护。 3.1.3 技术可行性技术可行性本系统最终在分布式系统上运行,本人电脑的硬件和软件配置可以满足考试系统开发需求。本人电脑硬件配置如图 3.1 所示。图图 3.13.1 电脑硬件配置图电脑硬件配置图软件配置为:操作系统使用 w

21、indows,windows 作为一个优秀的网络操作系统,它的发行版本中集成了大量的网络应用软件。web 服务器端采用 iis+asp.net+sql server2000。3.2 需求分析需求分析目前,在我国的各大中小学校内及社会上存在的各种考试基本上都是采用传统的考试方式。在这种方式下,组织一次考试至少需要经历一下五个步骤:人工出卷、试卷印刷、学生考试、人工阅卷、成绩统计。显然,随着各种考试的类型的不断增加和对考试要求的不断提高,教师的工作量将越来越大;而且,当学生数量比较大时,试卷印刷、考场安排、阅卷、成绩统计将是一件十分繁琐且容易出错的事情。另外,传统的卷面考核也存在着很多弊端;教师手

22、工出题,选题范围有限,题目难度、区分度等指标不好控制;有时教师是根据自己的教学经验和平时上课时的情况出题的,学生会根据以前的笔记和教师考前复习的内容准备考试,这样的考试过程不能对学生掌握的知识程度做全面的考核;学生纸上答题,不直观、教师主观平卷,标准难以完全统一,缺乏公正性,随意性大;而且由于考试行为是发生在同一时间、同一考场、相同的试卷内容,这就难以避免考试过程中的舞弊行为;另外,试题的保密性也是一个问题。随着计算机技术及信息技术的不断发展,特别是随着我国加入 wto,中小学信息、技术课程成为目前我国在全国范围内需要推广的基础课程之一。为了更好地推动计算机应用的普及,尤其是培养学生真正的动手

23、实践能力,现在中小学信息技术课程要求掌握一些常用信息处理软件的操作使用方法,如windows 操作题、office 操作题、ie 操作题等。如果仅靠人工判卷,工作量大且容易出错,所以怎样合理的、高效的、公正的评价学生对于相关技能的掌握情况,是急需解决的问题。总之,传统的考试方式发展到今天,如果不能很好地解决它的这些弊端,会不利于提高学生的实际动手能力以及发现问题、分析问故、解决问题的能力,更是有碍于培养学生的创造能力,它己经不能适应现代考试的需要,改革传统的考试模式势在必行。3.2.1 市场需求市场需求上述背景分析指出了传统考试分式所存在的诸多弊端以及当前所面临的各种问题,考试系统软件是针对这

24、一情况设计的辅助教师进行考试和管理工作的一种软件,它以其独特的功能和良好的适应性和兼容性来适应市场发展的需求,并且由于其尚处于继续改进的阶段,改进的考试系统软件将不断的涌向市场。3.2.2 软件功能分析软件功能分析根据高校管理的实际要求,结合考试管理的实际过程,系统应该实现以下功能:(1)掌握本考试系统范围内所有用户的基本情况,包括编号,姓名,登录口令等。(2)基于考试系统的基本功能管理,本系统可以提供给管理员类用户及学生类用户使用。不同的用户类型所能完成的功能不同。学生类用户主要是参与考试,提交试卷,查看成绩及个人信息维护;教师类用户可以创建试题、删除过期试题、进行个人信息维护;管理员类用户

25、则可以对本系统内所有试题信息和人员信息进行维护和更新等。 (3)适时的试题题库更新,试题题型为选择题类型。试题库的更新可以由管理员类用户完成,也可以为对应科目的教师完成,学生类用户不允许对试题进行更新。(4)试卷可由本系统自动生成,并且可以实现试题的随机抽取,各科目考试题量也可灵活设置。(5)阅卷评分准确快速,自动生成考试成绩。(6)实现各类查询,方便教师及系统管理员对学生、试题信息进行管理。(7)提供各类登录用户修改口令功能,确保各用户的信息安全。3.2.3 软件的非功能性需求软件的非功能性需求作为一种软件产品,除了在功能方面必须达到用户的基本要求以外,还必须在意一些非功能方面的因素,诸如:

26、软件的用户操作界面的美观和简洁,以及界面图标的标准化和规范化。软件要有一定的兼容性,应该兼容当前的主流操作系统平台,如:windows 98/nt/me/2000/xp/2003 等。硬件方面应当要求配置低一点,这样的小型开发软件应该适用于现大多数的计算机网络系统。第四章第四章 系统总体设计系统总体设计4.1 系统设计简介系统设计简介本系统是通过 microsoft visual studio 2008 和 microsoft sql server 2005 完成的。本系统的开发,从在线考试到试卷评分,真正实现了无纸化考试,评分准确快捷,考试管理方便,系统稳定可靠。系统包含如下功能:考生、教师

27、及系统管理员登录,对考试试题进行随机抽取,对提交的考试试卷进行自动评分,教师对试题进行管理以及系统管理员对整个系统的管理。4.2 系统功能设计系统功能设计4.2.1 系统前台功能结构系统前台功能结构本系统前台功能结构分为三个模块:登录模块、随机抽取试题模块、自动评分模块。这个前台模块主要是针对考生类用户。在登录模块中,考生可以通过自己的学号和密码进行登陆,登陆进入系统后可以修改个人密码。在随机抽取试题模块中,首先让考生阅读考试规则,只有当考生接受考试规则后才能选择考试科目进行考试。考生选择好自己要考试的科目后再进入考试环节。考生作答完毕后提交考试试卷,系统将进入自动评分模块,对考试的作答进行评

28、分。前台功能结构图 4.1 所示。前台功能结构登录模块随机抽取试题模块自动评分模块修改密码阅读考试规则选择考试科目开始考试生成考试成绩图图 4.1 在线考试系统前台功能结构图在线考试系统前台功能结构图4.2.2 系统后台功能结构系统后台功能结构本系统后台功能结构大体分为两个模块:试题管理模块、系统管理员模块。试题管理模块主要针对教师类用户,教师进入试题管理模块之后,可以对试题信息进行管理,对考试结果进行管理以及对个人信息进行维护。如果登入后台的是系统管理员,那么系统管理员就可以对学生信息进行管理,对教师信息进行管理,对试题信息进行管理以及对科目信息进行管理,并且对考试的结果也可以进行管理,然后

29、还可以对管理员的信息进行维护。后台功能结构图如图 4.2 所示。图图 4.2 在线考试系统后台功能结构图在线考试系统后台功能结构图4.3 系统结构设计系统结构设计通过登录模块对登录用户进行验证,如果选择了登录,首先判断其身份。如果登录的身份是学生,则会转到相应学生版块,学生登录以后可以阅读考试规则,选择考试科目,开始考试以及交卷评分。如果登录的身份是教师,则会转到相应的教师版块,教师登录以后可以对试题信息进行管理,对考试结果进行管理以及对个人信息进行维护。如果登录的身份是管理员,则会转到相应的管理员版块,管理员登录以后可以对学生信息进行管理,对教师信息进行管理,对试题信息进行管理以及对科目信息

30、进行管理,并且对考试的结果也可以进行管理,然后还可以对管理员的信息进行维护。登录模块执行流程图如图 4.3 所示。考生在线考试流程图如图 4.4 所示。登录信息录入接受登录信息验证码是否正确按用户名查询用户已存在吗?密码正确吗?登录成功提示密码错误yesnoyesyesnono开始结束提示验证码错误提示用户不存在考生登录选择考试科目随机生成试卷开始考试时间结束?交卷?自动评分自动交卷yesnonoyes开始结束图图 4.3 登录模块执行流程图登录模块执行流程图 图图 4.4 考生在线考试流程图考生在线考试流程图第五章第五章 系统详细设计系统详细设计5.1 数据库设计数据库设计现在数据库已用于各

31、类应用系统,例如 mis(管理信息系统)、dss(决策支持系统)、oas(办公自动化系统)等。实际上,数据已成为现代信息系统的基础与核心部分。如果数据库模型设计得不合理,即使使用性能良好的 dbms 软件,也很难是应用系统达到最佳状态。总之,数据库设计的优劣将直接影响信息系统的质量和运行效果。在具备了 dbms、系统软件、操作系统和硬件环境后,对数据库应用开发人员来说,就是如何是这个环境表达用户的需求,构造最优的数据库模型,然后据此建立及其应用系统,这个过程称为数据库设计。一项数据库工程按内容可分为两部分,一部分是作为系统核心的数据库应用系统的设计与实现;另一部分是相应的应用软件及其他软件的设

32、计与实现。因此,数据库设计是在线考试系统的设计核心技术内容。数据库设计的好坏,很大程度上对后续开发工作的展开以及最终产品的性能产生很大的影响,有时甚至导致开发的失败。好的数据库应该具有占用空间少,访问速度快等特点,充分满足应用系统的各级管理要求。5.1.1 数据库概念设计数据库概念设计概念设计的目标是产生反映考试系统信息需求的数据库概念结构,即概念设计模式。概念模式独立于计算机硬件结构,独立于支持数据库的 dbms。(1) 实体设计根据前面的需求分析可知,在线考试系统的用户应包括管理员、教师、考生三个不同的角色。由于每个角色的权限各不相同,因此,结合实际的需要和开发的方便。首先需要如下几个实体

33、类型:1.考生实体:拥有考生 id(系统自动生成) 、学号、姓名、密码、性别等属性,其中用学号和密码是进行登录验证时所必需的。2.管理员实体:拥有管理员 id(系统自动生成) 、帐号、用户名、密码、其中用帐号和密码是进行登录验证时所必需的;管理员的信息由数据库系统管理员预先存入数据库。3.教师实体:拥有教师 id(系统自动生成) 、帐号、用户名、密码、其中用帐号和密码是进行登录验证时所必需的;教师的信息由系统管理员预先存入数据库。4.科目实体:具有科目 id(系统自动生成) 、科目名称、科目加入时间、考试题数量等属性。5.试题实体:具有试题 id(系统自动生成) 、题目内容、选项 a、选项 b

34、、选项c、选项 d、是否发布、正确答案、课程名等属性;6.分数实体:具有分数 id(系统自动生成) 、考生 id、课程名、分数、学生名、学生答案、正确答案。 (2) 联系设计根据前面的分析可知,本系统中各实体之间的关系如下所示:考生:试题=m:n(一个试题让多位考生考试,每位考生可对多个试题进行考试);试题:科目=n:1(一个试题只能属于某一科目,而某一科目可有多个试题);成绩:考生= m:1(一个考生只能有多个科目的成绩,而某一科目的成绩只能有一个考生);教师:试题=1:n(一个教师可以出多个试题,而每个试题只能对应一个教师);管理员: 教师= m:n(一个管理员可以管理多个教师,而每个教师

35、可以对应多个管理员);管理员: 学生= m:n(一个管理员可以管理多个学生,而每个学生可以对应多个管理员);管理员: 科目= m:n(一个管理员可以管理多个科目,而每个科目可以对应多个管理员);由以上的分析与设计可知,本系统的 e-r 图可设计为如图 5.1 所示。成绩试题科目教师管理员考生属于m1考试m管理管理n属于管理管理1mnnm1mm1m图图 5.1 在线考试系统在线考试系统 e-r 图图5.1.2 数据库逻辑设计数据库逻辑设计概念设计的结果得到的是一个与 dbms 无关的概念模式,而逻辑设计的目的是把概念设计阶段设计好的全局概念模式转换成与选用的具体机器上的 dbms(本系统 dbm

36、s 采用 sql server 2000 )所支持的数据模式相符合的逻辑结构(包括数据库模式和外模式)。这些模式在功能上、完整性和一致性约束及数据库的可充性等方面均应满足用户的各种要求。在数据库管理中,数据冗余一直是影响性能的大问题。数据冗余是指同一个数据在系统中多次重复出现。如果一个关系模式设计得不好,就可能会出现向文件系统一样的数据冗余、异常、不一致等问题。衡量关系模式好坏的标准就是关系模式的范式(normal forms,简记为 nf) 。范式的种类与数据依赖有着直接的联系,基于函依赖 fd(functional dependency,简记为 fd)的范式有 1nf、2nf、3nf、bc

37、nf等多种。1nf 是关系模式应具备的最起码的条件,但是即使关系模式是 1nf,但也很可能出现数据冗余和异常操作,因此需把关系模式作进一步地规范化,即把关系模式分解成 2nf,3nf 等。在数据库设计中最常用的是 3nf 和 bcnf。因此,在数据库逻辑设计阶段,有必要运用关系数据库的规范化设计对每个关系模式进行模式分析,使每个关系模式尽可能的达到 bcnf 或 3nf 标准。前阶段设计的 e-r 图可以转换成为 sql server2005 所支持的如下关系模式集:(1)(1) 实体类型实体类型1)考生(考生 id,学号,姓名,密码,性别)模式分析每个考生对应一个唯一的考生 id、学号,且有

38、自己的名字、密码、性别,但不同的考生可有相同的姓名、密码、性别。因此,存在的 fd(函数依赖)集:考生 id-(姓名,密码,性别) ,考生 id-学号,学号-考生 id;最小 fd 集:考生 id-(学号,姓名,密码,性别) ;关键码:考生 id、学号(基于实际考虑,采用考生 id 作为该模式的关键码) ;经分析,该模式中每个属性都是不可再分解的原子属性,满足 1nf;不存在非主属性局部依赖于候选键,满足 2nf;同时也不存在非主属性传递依赖于候选键,满足 3nf;因此,该模式满足 3nf,符合要求。2)管理员(管理员 id, 帐号,密码,姓名) ;模式分析每个管理员对应一个唯一的管理员 id

39、,且有自己的密码、姓名,而不同的管理员可有相同的密码、姓名。因此,存在的 fd:管理员 id-(姓名,密码) ,管理员 id-帐号,帐号-管理员 id;最小 fd 集:管理员 id-(姓名,密码,帐号) ;关键码:管理员 id、帐号;(基于实际考虑,采用管理 id 作为该模式的关键码) ;经分析,该模式中每个属性都是不可再分解的原子属性,满足 1nf;不存在非主属性局部依赖于候选键,满足 2nf;同时也不存在非主属性传递依赖于候选键,满足 3nf;因此,该模式满足 3nf,符合要求。3)教师(教师 id, 帐号,密码,姓名,课程名) ;模式分析每个教师对应一个唯一的管理员 id,且有自己的密码

40、、姓名,课程名,而不同的教师可有相同的密码、姓名。因此,存在的 fd:,教师 id-(姓名,密码) ,教师 id-帐号,帐号-教师 id;最小 fd 集:教师 id-(姓名,密码,教师 id) ;关键码:教师 id、帐号;(基于实际考虑,采用教师 id 作为该模式的关键码) ;经分析,该模式中每个属性都是不可再分解的原子属性,满足 1nf;不存在非主属性局部依赖于候选键,满足 2nf;同时也不存在非主属性传递依赖于候选键,满足 3nf;因此,该模式满足 3nf,符合要求。3)课程(课程 id, 课程名,添加日期,考题数量) ;模式分析每门课程对应一个唯一的管理员 id,且有自己的课程名、添加日

41、期、考题数量,而不同的课程可有相同的添加日期、考题数量。存在的 fd:,课程 id-(添加日期,考题数) ,课程 id-课程名,课程名-课程 id;最小 fd 集:课程 id-(课程名,添加日期,考题数) ;关键码:课程 id、课程名;(基于实际考虑,采用课程 id 作为该模式的关键码) ;经分析,该模式中每个属性都是不可再分解的原子属性,满足 1nf;不存在非主属性局部依赖于候选键,满足 2nf;同时也不存在非主属性传递依赖于候选键,满足 3nf;因此,该模式满足 3nf,符合要求。4)试题(试题 id,科目名, 题目内容, 选项 a,选项 b,选项 c,选项 d,正确答案,是否审核)模式分

42、析每个试题对应一个唯一的管理员 id,且有自己的科目名、题目内容、选项 a、选项 b、选项 c、选项 d、正确答案、是否审核,而不同的试题可有相同的科目名、正确答案、是否审核。存在的 fd:试题 id-科目名,试题 id-(题目内容,选项 a,选项 b,选项 c,选项 d,正确答案,是否审核);最小 fd 集:试题 id-(科目 id,科目名,题目内容,选项 a,选项 b,选项c,选项 d,正确答案,是否审核) ;关键码:试题 id;经分析,该模式中每个属性都是不可再分解的原子属性,满足 1nf;不存在非主属性局部依赖于候选键,满足 2nf;同时也不存在非主属性传递依赖于候选键,满足 3nf;

43、因此,该模式满足 3nf,符合要求。(2)(2) 联系类型联系类型1)考试成绩(成绩 id,学生 id,课程名,分数,学生名,学生答案,正确答案)模式分析每位考生可在某一时间对某一试卷进行考试,考试会有正确答案,考生会填写自己的答案,同时会获得分数,而不同的考生针对同一份试卷,甚至在同一考试时间可获得跟其他考生相同的得分。5.1.3 数据库物理设计数据库物理设计对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程,称为物理设计。根据数据库逻辑阶段设计的关系模式,在线考试系统的数据库应该由考生信息表、管理员信息表、教师信息表、试题信息表、课程信息表、成绩信息表组成,以实现数据的持久化。本

44、系统的 dbms 采用 sql server 2000,因此各信息表的物理设计如下所示:(1) 管理员信息表(tb_admin) 。表名为 tb_admin,存放管理员的信息,包括管理员 id, 帐号,密码,姓名等属性,其中由管理员 id 唯一标识用户信息记录。该表中的信息预先由 dba 存入数据库中并把账号分配给每个教师,教师不须自行注册。教师可通过登录目标系统修改个人信息。如表 5.1 所示。表表 5.1 管理员信息表(管理员信息表(tb_admin)字 段说 明类 型备 注ididint主键adminnum帐号varchar(50)非空adminname名称varchar(50)允许空a

45、dminpwd密码varchar(50)非空(2) 考生信息表(tb_student) 。表名为 tb_student,存放考生的信息,包括考生 id,考生学号,密码,姓名,性别等属性,其中由 id 唯一标识考生信息记录。考生可以修改密码。如表 5.2 所示。表表 5.2 考生信息表(考生信息表(tb_studenttb_student)字 段说 明类 型备 注ididint主键studentnum帐号varchar(50)非空studentname名称varchar(50)允许空studentpwd密码varchar(50)非空studentsex性别varchar(4)允许空(3) 教师信

46、息表(tb_teacher) 。表名为 tb_teacher,存放教师的信息,包括教师 id,帐号,密码,姓名,课程名等属性,其中由 id 唯一标识教师信息记录。如表 5.3所示。表表 5.35.3 教师信息表(教师信息表(tb_teachertb_teacher)字 段说 明类 型备 注ididint主键teachernum帐号varchar(50)非空teachername名称varchar(50)允许空teacherpwd密码varchar(50)非空teachercoutse课程名varchar(50)非空(4) 课程信息表(tb_lesson) 。表名为 tb_lesson,存放课程

47、的信息,包括课程id,课程名,加入时间,考题数量等属性,其中由 id 唯一标识课程信息记录。如表 5.4所示。表表 5.4 课程信息表(课程信息表(tb_lessontb_lesson)字 段说 明类 型备 注ididint主键lessonname名称varchar(50)非空lessondatatime加入时间datetime允许空number考题数量int非空(5) 试题信息表(tb_test) 。表名为 tb_test,存放试题的信息,包括试题 id,内容,各个选项,正确答案,是否审核,课程名等属性,其中由 id 唯一标识试题信息记录。如表 5.5 所示。表表 5.5 试题信息表(试题信

48、息表(tb_testtb_test)字 段说 明类 型备 注ididint主键testcontent内容varchar(200)非空testans答案 1varchar(50)非空testans答案 2varchar(50)非空testans答案 3varchar(50)非空testans答案 4varchar(50)非空rightans正确答案varchar(50)非空pub是否审核int非空testcourse科目名称varchar(50)非空(6) 成绩信息表(tb_score) 。表名为 tb_score,存放成绩的信息,包括成绩 id,学生 id,课程名,得分,考生答案,正确答案等属

49、性,其中由 id 唯一标识成绩信息记录。如表 5.6 所示。表表 5.6 成绩信息表(成绩信息表(tb_scoretb_score)字 段说 明类 型备 注ididint主键studentid学生 idvarchar(50)非空lessonname课程名varchar(50)非空score得分int非空studentname考生姓名varchar(50)非空studentans考生答案varchar(50)非空rightans正确答案varchar(50)非空5.2 公共类设计公共类设计在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。本

50、系统中创建了一个公共类 baseclass 类,其中包含 dbcon 方法、binddg 方法、operatedata 方法、checkstudent 方法、checkteacher 方法和 checkadmin 方法,分别用于连接数据库、绑定 gridview 控件、执行 sql 语句、判断考生登录、判断教师登录和判断管理员登录。5.3 系统各模块的设计与实现系统各模块的设计与实现5.3.1 登录模块登录模块并不是任何人都可以参加在线考试,默认是不允许匿名登录的,只有经过管理员分配的编号和密码才能登录在线考试系统参加考试,这时就需要通过登录模块验证登录用户的合法性。登录模块是在线考试系统的第

51、一道安全屏障。在登录模块中,我们需要输入用户账号和密码,还要选择用户身份,并填写验证码,然后选择登录或是取消。当用户账号、密码、验证码中任一出错时,能够显示错误信息。当激发 button 按钮时会引发 click 事件,在 click 事件中我们编写了验证用户的代码。判断验证码是否正确的核心代码如下:protected void btnlogin_click(object sender, eventargs e)if (txtcode.text.trim() != sessionverify.tostring()response.write(alert(验证码错误);location=logi

52、n.aspx); 判断其输入的账号和密码是否正确。具体是用baseclass.checkname(txtnum.text.name(), txtpwd.text.name()语句调用公共类里面的 checkname 方法,将登录的账号和密码传递过去,查看其返回值。如果返回值是true 则先记录一下用户的账号,再通过 response.redirect 语句跳转到相应界面。如果返回值是 fault 则输出“您不是*或者用户名和密码错误,并通过 location=login.aspx”);语句跳转到登陆界面。判断用户名或密码正确与否的部分核心代码如下:if (this.ddlstatus.sele

53、ctedvalue = 学生)if (baseclass.checkstudent(txtnum.text.trim(), txtpwd.text.trim()sessionid = txtnum.text.trim();response.redirect(student/studentexam.aspx);elseresponse.write(alert(您不是学生用户或者用户或密码错误);location=login.aspx);登录界面登录界面如图如图 5.2 所示。所示。5.3.2 随机抽取试题模块随机抽取试题模块开发在线考试系统过程中,需要考虑的一点是如何将试题显示在页面上,如何将试

54、题从数据库中读取出来。比较合理的做法是将所有试题信息存储在数据库中,然后随机抽取若干道试题,动态的显示在页面当中。为了实现此功能,设计出随机抽取试题模块。在随机抽取试题模块中,我们划分两个子模块:考试规则阅读模块和考试模块。当学生成功登录系统以后,会跳转到考试规则阅读模块。在此模块中,可以显示学生学号、姓名和性别。接着是考试规则阅读,并有一个复选框可供选择,完后有一个“已经阅读完毕”按钮可供提交。最后就是选择考试科目,并可以通过一个“开始考试”按钮进入下一环节。在激发“开始考试”按钮时,会对用户进行判断,如下:sqlcommand cmd = new sqlcommand(select cou

55、nt(*) from tb_score where studentid= + stuid + and lessonname= + stukc + , conn);int i = convert.toint32(cmd.executescalar();if (i 0) messagebox.show(你已经参加过此科目的考试了);首先根据考生的考号和考生选择的科目在数据表中进行检索,用来查看该考生是否已经参加过该科目的考试。当然在选择科目后,还要用一个 if 语句判断该科目是否有考试题目。最后跳转到考试模块。在考试模块中,同样可以显示学生学号、姓名和性别,而且还有一个提交试卷的按钮。再用一个 l

56、abel 空间显示考试科目,另外两个 label 空间分别显示考生的考试时间和当前所用时间,最后是对试题的显示。当进入考试模块,首先激发 load 事件 protected void page_load(object sender, eventargs e),在 load 事件中我们可以看到考试时间、考生考号、考生姓名、考生性别以及考试科目。lblendtime.text = 考试时间为 10 分钟,每小题 2 分,考试已用时:;lblstunum.text = sessionid.tostring();lblstuname.text = sessionname.tostring();lbls

57、tusex.text = sessionsex.tostring();lblstukm.text = + sessionkm.tostring() + + 考试试题;然后打开数据库连接(conn.open()),建立一个 sqlcommand 对象执行 sql 语句进行随机抽取试题,主要代码如下:sqlcommand cmd = new sqlcommand(select top 10 * from tb_test where testcourse= + sessionkm.tostring() + order by newid(), conn);首先用一个 select 语句,利用 top

58、10 来限制我们检索出的数据是十条,我们从tb_text 数据表中检索十条数据。这个表存储的是不同科目的所以考试试题,他的条件是考生选择了科目,然后根据这个科目在这个表中随机的选择十条数据,也就是随机的选择十道题。最关键的是根据 order by newid()实现随机功能。这个 newid()方法是sql 2000 的一个内置方法。最后建立两个字符串,用两个 update sql 语句分别记录随机试题的答案和考生作答的答案。再用 response.redirect 语句将画面跳转到自动评分模块。string sql = update tb_score set rigthans= + ans

59、+ where studentid= + lblstunum.text + ;baseclass.operatedata(sql);string strsql = update tb_score set studentans= + msc + where studentid= + lblstunum.text + ;baseclass.operatedata(strsql);response.redirect(result.aspx?bint= + tnum.tostring();该模块主界面如图 5.3-图 5.5 所示。图图 5.3 在线考试系统考试规则阅读界面在线考试系统考试规则阅读界面

60、5.3.3 自动评分模块自动评分模块在线考试系统和普通考试的流程是一样的,考生答卷完毕要对考生的答案评分。根据实际的需要,在线考试系统中加入了自动评分模块,当考生答题完毕提交试卷时,系统会根据考生选择的答案与正确答案进行比较,最后进行评分。在自动评分模块中,主要用四个 label 空间分别显示考生的考试科目、考生学生、考生姓名和考试成绩。自动评分功能主要使用一个 for 循环来实现,如下:for (int i = 0; i j; i+) if (rans.substring(i, 1).equals(sans.substring(i, 1) stuscore += 2; 用字符串的 subst

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论