基于Java的网络考试系统的设计与实现

点击下载源码

基于Java的网络考试系统的设计与实现

摘 要
科技在进步,人们生活和工作的方式正发生着改变,不仅体现在人们的衣食住行,也体现在与时俱进的考试形式上。以前的考试需要组织者投入大量的时间和精力,需要对考试的试题进行筛选,对后期的考卷进行批阅,这么多的步骤影响了整个考试执行的效率。因此,本文提出了一种网络考试系统,用于解决上述的一些问题。
本文描述的网络考试系统主要是利用浏览器作为界面,利用B/S模式,即用户可利用浏览器直接访问本站点。主要用到的技术是采用JavaWeb技术和MySql数据库等设计出了各种功能。该系统主要有用户管理、功能管理、角色权限管理、学生网络考试、试题管理、错题管理、自动组卷等功能。
本文提供了一些该系统的部分代码跟截图帮助介绍该系统,对系统的总体设计、详细设计以及测试都给出了一些介绍,还对运行截图以及代码作出了相应的解释。该网络考试系统基本上可以满足一些简单的考试,运行良好,基本可以满足设计要求。
关键词: 考试;JavaWeb;网络

目 录
摘 要 i
Abstract ii
第1章 绪论 1
1.1 研究的目的及意义 1
1.2 研究开发现状分析 1
1.3 研究的内容 1
第2章 系统相关技术 3
2.1 JAVA简介 3
2.2 J2EE 3
2.3 MySQL 4
2.4 MyEclipse 5
2.5 JavaScript 6
2.6 JQuery 6
2.7 CSS3 7
2.8 JSP 7
2.9 Tomcat服务器 8
第3章 可行性与需求分析 9
3.1 可行性分析 9
3.2 需求分析 9
第4章 系统总体设计 11
4.1. 系统概要功能图 11
4.2 系统基本功能 11
4.2.1 登录功能 11
4.2.2 系统答题 11
4.2.3 答题得分 12
4.2.4 错题解析 12
4.2.5 系统功能管理 12
4.2.6 用户管理 12
4.2.7 角色管理 12
4.2.8 题目管理 13
4.2.9 试卷管理 13
4.3 数据库设计 13
第5章 系统详细设计 18
5.1 学生用户端 18
5.1.1 学生用户登录 18
5.1.2 主界面 19
5.1.3 系统答题 20
5.1.4 答题得分 21
5.1.5 错题解析 24
5.2 管理员端 24
5.2.1 管理员登录 24
5.2.2 管理员主界面 25
5.2.3 系统功能管理 25
5.2.4 用户管理 27
5.2.5 角色管理 29
5.2.6 题目管理 30
5.2.7 试卷管理 32
5.3 数据管理 33
第6章 系统测试 37
6.1 功能测试 37
6.2 兼容性测试 42
6.3 测试的方法 42
第7章 结束语 43
致谢 44
参考文献 45
外文翻译 46

第1章 绪论
1.1 研究的目的及意义
在我们以往的考试经历中,我们可以看到,每次考试都需要经过出试卷、印试卷、发卷、做卷、收卷、阅卷、统计等过程,这几个过程有着很强的先后次序,不能顺序颠倒。这些过程中,又以出卷、阅卷和统计最为复杂,当一次考试涉及的人数众多时,老师需要批阅非常多的卷子,重复的批阅卷子浪费了大量的时间,此外,不仅效率底下,同时大量的阅卷工作也让老师疲于应付,最后导致阅卷的准确率下降。即便阅卷完成之后,工作还没结束,还需要对这些卷子进行分数登记、成绩统计以及对各个题目进行错误率统计,这些工作消耗时间非常多,因此效率也是非常低的。此外,从学生角度出发,每次做卷都要准备笔和草稿纸,麻烦且不符合环保的要求,从老师的角度出发,如果能够减少出卷、阅卷和统计的时间,那么可以腾出更多的时间用在其他的地方。因此本文基于JavaWeb技术希望开发一套网络考试系统来解决出卷、阅卷、统计花费时间过多的问题,同时为学校教务信息化作出一份贡献。
本文开发的网络考试系统具有一定的现实意义,主要是解决教师在出卷、阅卷和统计上花费时间过多的问题。开发一个系统需要考虑很多方面的问题,比如说时效性和高效性这是两个最最常见的因素,因为时效性关系到你的系统在投入使用时是不是真的能够解决当前所存在的这些问题,网络考试系统在国内虽然已经初具规模,一些学校也在使用这种方式考试,但我觉得目前的考试系统还存在着一些未解决的问题,还需进一步完善。同时高效性也是一个非常重要的因素,如果你的系统用了以后还不如不用那么你的系统必定是一个不成功的产品这也是我们开发需要考虑的一个重要问题。本系统目前只可以实现对一门科目的客观题的考试,基本上还不是特别成熟的一个系统,我还需要考虑如何进行多科目的主客观题型的考试是我以后研究的方向。因此是本系统的开发具有很重要的实际意义,能在当前的发展状态下为学生和教师提供适当的帮助的同时也为今后此类软件的发展提供一定的基础。
1.2 研究开发现状分析
国内考试系统的信息化发展比较缓慢,在广泛化应用的过程中,开发者一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学软件、数据统计、信息记录等应用系统,形成了一定规模的信息化建设体系。可是,由于目前国内的系统还不是很完善,比如一门考试就需要一个系统去支持,这样成本太高,而且我国集体信息化水平有些落后,资金短缺等因素。我国的网络考试系统还没有很好地完全自如的融入到我们的学习生活中,比其他国家有一定的差距。国外的管理与国内完全不同,不但在线考试化建设早,而且他们有坚强的技术团队来提供技术基础。
1.3 研究的内容
本系统的研究目的在于实现网络考试系统,实现该系统要完成的工作包括如下几个方面:
(1)了解全球的网络考试系统的发展历程和现状。深入解析其工作流程。
(2)根据该系统的工作流程设计其总体结构,绘制其结构图。
(3)设计系统的功能模块,如:后台系统运行维护模块。包括试题的录入、筛选、删除,随机生成,提交,打分等功能。前台考试模块,包括题的分发、时间的记录等功能。教师组题模块,具有考题的生成、选择、分数评判的等能力。设计并实现教师考前出题的组题功能模块。包括题类型,数量,每个题考分的设定等。
(4)熟练地运用和掌握JavaWeb技术和MySql数据库编程,进行考试系统的程序代码编写、调试运行以及功能测试。
(5)了解电脑服务器的运行问题以及原理;大数据库的储存;以及大数据库与程序的互相交流问题。

第2章 系统相关技术
本网络考试系统运用了很多的开发工具以及以java为基础的开发语言,在后台的代码编写中主要运用了Java、J2EE;前台的设计中运用了JavaScript、JQuery、css等一些开发语言;通过eclipse来编写这些程序;用mysql进行数据库的设计与分析;另外该网络考试系统的部署容器为tomcat,当需要进行考试时,只需要配置tomcat服务器,便可进行考试。
2.1 JAVA简介
Java作为一种计算机编程语言,其在企业网络和Internet环境的应用更是十分广泛,现在已成为Internet中最受欢迎、最有影响的编程语言之一。其最大的特点就是面向对象,这种面向对象的程序设计更接近我们的思维方式,相对于面向过程的程序设计,它最大的优点就是可扩展性和可维护性,这也使我们的代码更健壮。
我们都知道面向对象主要有四大特性:封装、抽象、继承和多态。
封装:在面向对象语言中,封装特性最为直接的体现在类中,类即现实生活中的实体的抽象,我们将其所拥有的属性和方法封装到类中,对外部我们提供相应的接口,通过实例化的对象可以调用类中封装好的属性和方法,并且在使用这些方法时并不用知晓其内部的具体实现,这是面向对象的封装特性;
抽象:抽象就是将一类实体的所共同拥有的特性抽象出来,封装在一个抽象类中,抽象在面向对象语言中是由抽象类来体现的。抽象类描述的是一类事物共有的东西,而并非特指某种事物,所以在Java编程语言中体现为抽象类不能实例化;
继承:继承就是指子类可以继承父类或者接口,从而可以实现代码重用,其实继承体现的是单继承关系,父类和子类本质上还是一类实体。
多态:Java中的多态具有多重含义。首先多态最为直白的体现就是父类对象引用不同的子类对象实例,调用不同的子类重写的方法从而表现出不同的行为。多态能够提高代码重用,还可为程序提供更好的可扩展性。
2.2 J2EE
J2EE是一项目架构标准主要用于网页的开发通过这个标准可以制定出一些应用于企业的网站。严格地来说,J2EE并不属于一种产品而是一种约束或者是标准。有的人把它称开发的规范,因此,不管是哪一家公司他们只要在这个架构下进行开发都可以开发出一款比较实用的高级应用程序。J2EE从开发到设计,再到最后的综合管理可以构成一套完整的开发体系,J2EE是由oracle软件公司跟其他多数享誉盛名的科技公司共同努力发明并且应用起来的。J2EE是软件开发的一项标准。J2EE并非是一种生产产品,它既可以说一种开发标准,也能够说是一种开发规范。无论是哪家公司都能够在这种现有统一的标准下开发出一套属于自己企业的高级应用系统的。J2EE是一个公司级平台。它用来给那些在公司经营项目中遇到的研发、设计、系统管控有关难题进行简化。
J2EE可以说这一项技术是根据JAVA标准升级而成而不是凭空独创的,J2EE不断的更新和发展最终形成了现在的约束和规范。J2EE技术首先要不违背它所继承的技术和规范标准,比如说对数据库的访问以及良好的跨平台性质,以及分布式的应用。同时,还要适用于各种各样的使用人群。除此之外必须还要为其他的网页开发或者企业开发提供大量的预留接口,体现其强大的可扩展性。其他的开发人员可以通过这些预留的接口对该规范和准则进行更加标准和一致性高的开发,从而体现出J2EE标准的强大的伸缩性。那么最终的一个目的就是要使得程序开发人员在开发过程中尽量少使用市场上的一些现有的框架,从而规范一个正确的开发体系。那么,他是利用一种开发模型,此模型呈现分布式。以此来完成对所有应用的开发。在开发过程中主要根据系统的各个功能进行划分,也可将这些功能划分为不同的组件。不同的组件会存放在不同的服务器上,并通过不同的用户接口进行管理。那么使用这一标准可以明确的规范开发的流程,并且可以通过MVC来解决系统层次和架构的问题,使得开发人员更加轻松的开发代码,并且让维护人员或者后期的修改人员能更加方便地查看系统的代码和结构。
2.3 MySQL
MySQL是一款开源的数据库。它具有非常实用的价值。他属于中型数据库。MySQL提供了许多的技术支持其中包括了多操作系统的支持也包括了多线程的支持,同时也提供多种资源的支持,除此之外,还可以提供多种的数据库连接方法解决数据库并发和大量数据操作的问题 。使用MySQL的人都会认为这个数据库特别实用。由于它是完全开源和免费的,在使用成本上也不会有太大的损失,因此是目前中小型公司主要使用的数据库之一。从数据库关系来看他是一款关系型数据库具有很多优点比如说用的内存空间较小用户界面简单操作起来十分便捷并且不需要太多繁琐的安装步骤。MySQL是由MySQL公司开发而成,那么这个公司是一个什么公司呢?从历史数据来看它是一个非常有商业眼光的公司,也是非常成功的一个公司,它所开发的产品都受到了人们的青睐。MySQL本身的特性也非常的突出,他能够兼容多种操作系统,同时也能兼容多种的编程语言,比如说Linux环境下使用,也同时能够支持多种编程语言并为这些编程语言提供他们所要使用的用户接口。在性能方面具有处理大数据高并发的处理能力,并且不会占用太多的主机内存,这一点相对其他的数据库要好很多。MySQL的架构应用图如2-1所示:

图2-1 Mysql架构服务图
MySQL使用了好几种软件进行测试,保证这个可用性;它支持好多种操作系统;支持多线程,提供了很多资源;也提种了很多数据库连接方法;它还可以处理很多比较大的数据库。大部分使用这个软件的人就会有很大的帮助了,而且还因为其他开放源码软件,也还大大降低总体拥有成本了。
MySQL数据库是最流行的关系型数据库管理系统,在WEB应用方面MySQL数据库是最好的RDBMS(Relational Database Management System:关系型数据库管理系统)应用软件之一。关系型数据库有较强的灵活性,它将数据保存到不同的表中,这样将数据进一步细分,读取速度和灵活性就会提高。MySQL数据库是真正做到了多线程、多用户的SQL数据库[9]。它使用最常用标准化语言去访问数据库。MySQL数据库以其成本低、体积小、速度快和源码开发的优点,开发中小型的网站都选用MySQL数据库作为数据库。
在大学期间,MySQL做为我们最先接触和理解的数据库其基础应用相对广泛,此次毕业设计我也选用MySQL做为后台数据库。
MySQL数据库的实现是以一个客户机/服务器结构[13]的形式,它是很多不同的客户程序和库和一个服务器守护程序组合而成的。
MySQL数据库主要是快度速、比较健壮和易于使用。我们需要这样一个SQL服务器,它能基于不昂贵的基础上,处理数据速度快,加之可视化插件、软件的使用可以使其数据操作更加方便。
可以总结出MySQL具有以下几个特性:
a. 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;
b. 为多种编程语言提供了API;
c. 支持多线程,充分利用CPU资源;
d. 通过优化的SQL语句算法,有效地增进了查询速度;
e. 能够作为单独的应用程序为客户端服务器网络环境提供数据支持,也能够作为库而嵌入到其他的软件,完成相关的数据存储作用;
f. 提供多种语言支持,数据表名和数据列名都可以使用多种编码方式如中文的GB 2312、BIG5,日文的Shift_JIS等;
g. 提供多种用于管理数据库操作的管理工具;
使用MySql数据库用作集群服务器管理系统的数据库。可以让服务器大量的相关数据得以快捷地查询处理。
2.4 MyEclipse
MyEclipse是一种有集成效果的开发工具。在Eclipse的基础上进行插件的集成,最终形成功能强大的开发软件。目前主要用于JAVA,JAVAEE的开发,也可以用于移动应用的开发,其主要特点是功能强大,应用广泛,并且支持很多开源的产品,应用前景非常广发。
MyEclipse是由Eclipse通过对插件的集成而来,是对IDE的拓展,可以用来开发网页等应用,可以实现程序的开发,调试,发布等,能极大的提高开发效率,能完美支持HTML、STRUTS等,可以说集成后的MyEclipse包含了当前所有主流的开源产品。MyEclpise也经历了很多代的产品,从最开始的到后来的2014版本,2015版本等都说明了它在发展历程中的变化。
MyEclipse的配置使用也非常智能,不需要使用者懂太多的知识,只需要在自己使用的功能中进行了解即可,在完成项目开发之后,也可以直接通过MyEclipse进行项目部署,可以将网页项目进行选中,直接运行在Tomcat中,也可以将项目打包通过导出功能将项目全部导出,然后将项目发布到tomcat中,通过对配置文件的设置,完成布置,布置完项目以后可以在浏览器中进行查看。可以说,有了MyEclipse之后,基本就能支持所有的web开发,就能使用快捷的编译工具进行快速的开发,也能在各种各样的服务器上进行代码测试。在其他方面,MyEclispe也有很多的开发前景,比如在云开发领域,在移动端开发领域,在企业级开发领域等等,因此,MyEclipse的应用场景非常的广泛。
2.5 JavaScript
JavaScript看样子和Java很像,但是,实际上它们之间并没有直接联系,只是大家都以Java开头而已。目前互联网上最重要的语言是什么?不是Java,不是.Net,也不是PHP,而是JavaScript,它是互联网上最重要的语言。它不仅能跨平台、跨浏览器,它还能跨后端语言。在WEB2.0时代,JavaScript语言像桥一样,将前端页面和后端服务器连接了起来,这样前端页面不用知道服务器那里是用什么语言编写的,也不用知道是如何编写的,而服务器那头也不用知道前端是用什么语言写的,只需要知道前端会传过来一些固定格式的数据信息。JavaScript编写的程序是在浏览器中运行的,它不会在服务器那头运行,一定程度上减少了服务器那头的压力。JavaScript语言在网页完全加载完毕后,可以与网页产生互动来完成一些操作,利用这个特性,我们经常将JavaScript运用在验证表单、修改HTML元素和存储用户数据等方面上。这些功能,Flash和Silverlight都能完成,但是Flash和Silverlight都要单独的安装插件,使用门槛比较高,而且针对不同的浏览器,插件也不一样,在一堆插件中,用户很难选择正确的插件进行安装。而JavaScript不同,它不需要额外的安装什么东西,只要是个浏览器,就能支持。JavaScript的语法与C的语法类似,语句通过在最后加上“;”符号来表示结束,同样的大小写敏感,注释也是“//”开始。因此学习过C语言的人能够很快的上手JavaScript的开发工作。
2.6 JQuery
如果把开发人员扔回石器时代,那么JavaScript就是一堆绳子、木头和石头,通过用这些工具,人类就可以在石器时代活下来,同样的,开发人员也能用JavaScript做任何事。但是,如果说我们把绳子、木头和石头组装起来,做成榔头,做成弓箭,那么无论是打猎还是耕作,效率都会有很大的提升。jQuery就是这里的榔头和弓箭。jQuery是由JavaScript写的,它封装了一些我们在创作网页时候常用的操作,比如对DOM的修改、AJAX等操作,这些操作如果让开发人员自己用JavaScript编写,那么可能要花几十行代码,复杂的甚至要上百行,同时考虑到这些操作比较频繁,那么一个页面上你会看到很多很多的JavaScript代码,开发成本和维护成本都会很高,代码也不容易读。在jQuery,这些操作只需要少数几行代码甚至一行代码就能完成,减少了开发人员的负担,也让后期维护更加简单。绳子、木头和石头可以组装成榔头、弓箭等,同样的,JavaScript也能组装成许多和jQuery类似的工具,但是我们为什么选择jQuery,而不选择其他的呢?一方面是因为jQuery功能强大且容易学习,另一方面,jQuery从发行到现在,经历了许多版本的迭代,不仅稳定,而且网上相关的资料也更齐全,遇到问题也能更容易的解决。此外,在jQuery的支持下,还诞生一大批基于jQuery的插件,比如UI插件、弹窗、选项卡、导航菜单、在线客服、瀑布流、3D、时间轴等等的插件,这些插件不仅简化了开发,还使网页更加美观,用户交互体验更加好。基于上述原因,才在众多工具中,采用了jQuery。
2.7 CSS3
Cascading Style Sheets(CSS),中文叫层叠样式表。现在来说我们已经进入了WEB2.0的时代,WEB2.0下的网站不仅需要好看的外观,同时还要用户体验良好的界面。CSS2标准,从现在的大环境下去看,显然已经不能满足日益增长的用户需求和开发需求。因此CSS3标准应运而生。CSS的作用是控制页面的布局,除了控制布局外,它还能够对页面上的字体颜色、大小、字体、背景和你能在网页上看到的一切进行控制。日前很多浏览器都能很好的支持CSS3标准。
CSS3引入许多新特性,以字体为例,在以前的CSS版本中,如果我们将网页的字体设置成“宋体”,那么大多数的电脑都能正常显示,可是我们都知道,MacOS系统里的字体要比Windows下的字体好看,但是如果我们将网页的字体设置为MacOS系统里的字体,那么Windows系统用户就没办法正常访问。这在老版本的CSS中是没办法解决的,但是在CSS3中,通过@Font-face特性,可以允许浏览器从服务器上加载字体文件,换句话说,即便你的电脑上没有这种字体,你也能正常的访问用了这个字体的页面。可见CSS3赋予了更大的灵活性。除了@Font-face特性外,CSS3还引入了包括Word-wrap & Text-overflow样式、文字渲染、多列布局、渐变、阴影、反射、盒子模型、Transforms 和 Animation Transitions等等新特性,这些新特点的引进,降低了创造者的开发难度,也提高了体验。
2.8 JSP
JSP(Java Script Pages)是由Sun公司建立的一种动态网页技术,它是建立在HTML文件基础上的。在传统的网页HTML文件(.htm,.html)中加入Java程序。
首先JSP是跨平台的,因为Java就是可移植跨平台的,而JSP技术是建立在Java平台之上,所以使用JSP开发的Web应用也是跨平台的。
JSP页面不仅可以使用普通网页一样使用标准标记语言的元素(如HTML标记)以外,还可以使用其独有的JSP标记。JSP可以直接向数据库中获取或写入数据,所以通过JSP,我们可以在网页中加入更多动态内容。
JSP有如下优点:
(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。
(2)JSP具有多平台支持。可以在任意平台上的任意环境中开发,在任意环境中进行系统的部署和扩展。相比JSP的多平台支持相比ASP/.net的局限性是显而易见的。
(3)具有可伸缩性。不论是只有一个小的Jar文件就可以运行的Servlet/JSP,还是由多台服务器进行集群和负载均衡,亦或者由多台Application来事务处理,Java显示了其广阔的应用范围和巨大的生命力。
(4)功能强大的多样化的开发工具支持。Java已经有了许多非常优秀的开发工具,其中大部分可以免费得到,并且其中大多都能运行在多平台下。
选取JSP的原因
JSP通过其独有的标签库,使静态HTML网页技术向动态网页技术完善。通过其在网络编程中的使用,可以利用嵌入Java代码使其充分利用Java语言的上手容易,跨平台,运行效率高等优点。具备一定程序设计的基本知识,学习JSP也十分容易。
首先JSP是一种动态网页编程语言,再加上JSP具有跨平台、运行效率高、易学易用等特点和优势,做简单界面比较容易,故选用JSP来实现网络考试系统。
2.9 Tomcat服务器
Tomcat 服务器是Apache组织的一个开源子项目。具备基本的web服务的功能,是中小型系统首选的服务器,更是开发和调试JSP 程序的首选。因为Tomcat 技术不仅免费而且性能稳定,我们在本科阶段的很多web项目中也多为使用Tomcat作为服务器,其也成为目前比较流行使用的Web 应用服务器。
如果配置正确,Tomcat 服务器实际上在运行JSP 页面和Servlet容器。此外,Tomcat和其他Web服务器一样,都具有基于处理HTML页面的功能,另外它还是一个Servlet和JSP容器。独立的Servlet容器是Tomcat服务器的默认模式。目前Tomcat服务器最新版本为8.0.0,本次毕设我使用的也是Tomcat8。
此外,Tomcat 服务器运行时占用的系统资源较小,可扩展性良好,支持邮件服务和负载平衡等开发应用系统常用的功能。因此利用Tomcat服务器作为网络考试系统的Web应用服务器。

第3章 可行性与需求分析
3.1 可行性分析
可行性分析是用最小的代价在最短的时间内确定问题是否能够解决。我首先需要进一步对上一章节目前考试系统现状的分析。之后初步的确定项目的规模跟目标,确定项目的约束跟限制,必须分析几种可能解法的利弊,从而判定原定系统的目标和规模是否能够实现,系统完成后带来的效益是否能够达到最大值。总之,只有认真的进行了可行性分析,才会避免或者减轻项目开发后期可能出现的困境。

  1. 经济可行性
    经济可行性的重要方面是研究成本,其中包含毕业设计所需的开发成本,对开发成本是不是会大于开发项目前期预计利润进行预算。在结合上述所有情况的分析下,我觉得自己的毕设课题是经济可行性好的。首先开发此次毕设软件不要前期的投入资金,其次是自己设计的,最多是自己去图书馆找书,在实验室做项目,通过老师教导,同学帮助,这些都是免费的,再有就是需要一台电脑,这些都是能接受的,成本很小的同时我也可能够提升我在编码方面的实现能力。
  2. 技术可行性
    本课题使用的是Java技术,开发平台选用Eclipse,Eclipse有着完整配备的功能,便于初学者使用还有代码提示,让我使用更加得心应手。在决定了编程框架后,再说用Java语言编码的优点:快,精简,可用性高等。同时,使用的数据库是MySQL,开源的MySQL增添了可视化和稳定化的优点,而且安全方面也做得很好,更别说它的强大的保存数据功能以及查询数据功能。
  3. 操作可行性
    该网络考试系统部署容器为tomcat,当需要进行考试时,只需要配置tomcat服务器,便可进行考试。本系统采用jsp技术,利用网络就能够进行访问和操作,且界面简单易操作,用户只要有电脑,都能进行访问和操作。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。
    3.2 需求分析
    一.功能需求分析
    网络考试系统主要用于实现高校在线考试,基本功能包括:自动组卷、试卷发布、试卷批阅、试卷成绩统计等。本系统结构如下:
    (1)学生端:
    登录模块:登录功能;
    网络考试模块:可参加考试,并查看考试结果,提交试卷后老师允许的情况下查看错题;
    (2)超级管理员端:
    登录模块:实现管理员登录功能;
    用户管理模块:实现用户信息的增加、修改、查看功能;
    角色权限管理模块:实现角色的增加、修改、查看功能;
    试卷管理模块:实现试卷信息的增加、修改、查看功能;
    试题管理模块:实现试题信息的增加、修改、查看功能;
    (3)试题管理员端(老师):
    试卷管理模块:实现试卷信息的增加、修改、查看功能;
    试题管理模块:实现试题信息的增加、修改、查看功能;

二.非功能需求分析
1、整个系统的设计中,系统必须满足以下要求:
(1)数据安全性
存储有关隐私权的网络考试等问题的系统数据,需要确保数据的安全性,在网站设计时必须要采取安全防范措施,以解决潜在的安全问题,比如如何防止学生上网查答案。
(2)易用性
在用户权限范围内,可在一个统一风格的界面内即可完成相关的所有业务流程操作或者获取所有相关信息,大大提高操作员的工作效率和易用性,灵活应用本系统。
(3)柔软性
由于这个网络考试系统涉及到范围广泛的业务,设计出的系统必须能够处理接受变化的能力。
(4)扩展性
随着互联网管理业务管理需求的不断变化,老师管理系统必然涉及到业务更新及扩展,这就要求在设计之初就应该考虑良好的可扩展性方案。

第4章 系统总体设计
4.1. 系统概要功能图
本系统所开发的网络考试系统主要分成了三个模块的主要功能,系统功能、考试功能和学生功能,每个功能都包含了几个子功能,子功能主要包括:对于系统功能方面的管理、角色的管理、用户方面的管理、对于试题管理、对于的试卷管理、学生答题、总结出错题库与得分。系统的概要功能图如图4-1所示:

图4-1 系统概要功能图
4.2 系统基本功能
系统功能的划分方式可以分成很多种类,前面是按照功能模块进行划分,将系统分成三个模块,本章节依据网络考试系统的系统角色不同,可以分成用户端和管理员端。用户端包括:登录功能、学生答题、答题得分以及考完试之后的错题解析。管理员端包括:登录功能、系统功能管理、用户管理、角色管理、题目管理、试卷管理。下面本节主要对各个基本的功能进行一个简介。(此处没有对试题管理员进行详细介绍,因为管理员的题目管理跟试卷管理的功能就是他的功能)
4.2.1 登录功能
登录功能是一个系统的重要组成部分,也是一个系统重要的门户功能,登录功能主要实现了使用者对系统的登录,在本文所设计的体系中,登录主要分成了两种身份:学生用户和管理员。两种身份登陆,能细分系统的功能模块,实现更加方便的操作和管理。
4.2.2 系统答题
系统答题模块是本系统的一个重要功能,可以实现让用户的答题操作。系统答题功能主要是学生用户登录以后操作的,学生用户在输入正确的用户名和密码以后能开始系统答题,系统答题的题目均来自数据库。
4.2.3 答题得分
答题得分功能实现了学生用户在答题结束以后对自己得分情况的查看,该功能就实现了登录系统的学生用户在完成自己的试卷以后,点击体提交就能看到自己的得分,因此该功能是一个展示性质的功辅助能。
4.2.4 错题解析
错题解析功能是系统答题功能的一个辅助或者说优化的功能,只有学生用户在登录系统完成答题以后在老师允许的情况下才能进行该功能的操作,学生答题可能存在一定的错误,对错误题目的查看成为考试系统的子功能。因此本文所设计的错题解析功能,能让学生迅速发现正确或者错误题目,以及解析过程。这样方便自学和改进。学生功能结构图,如图4-2所示:

图4-2学生系统结构图
4.2.5 系统功能管理
系统功能管理主要实现了对系统的其他功能进行管理,主要包括对新功能的添加和编辑,对现有功能的添加和修改,同时能对现有的功能进行子功能的编辑和修改,修改后的功能可以在系统中被查看。
4.2.6 用户管理
用户管理是一个系统的重要功能之一,对用户的管理可以实现对系统使用者的了解和查看,能让使用者更加方便的使用本系统,用户的种类分为多种,本文主要体现在学生用户和管理者两种用户上面,可以对用户的信息进行添加修改等。
4.2.7 角色管理
角色管理主要是针对用户来设计的,不同的用户拥有不同的权力。换句话说就是操作的权限是不同的。学生账号只能进行答题等行为,而不能进行后台的管理员操作。管理员账号也拥有不一样的权利。这些权力体现在对账号的操作,试卷和题目的管理上,因此对权限的管理能很好的控制系统用户的行为,有利于系统更加稳定的运行。
4.2.8 题目管理
题目管理主要是针对管理员的功能,该功能面向系统中试卷所使用的题目库,在本系统中,管理员能通过对题目的添加和修改对题目进行管理,可以查看现有的题目,同时也能对新的题目进行添加,为试卷的生成提供更多题目的选择。
4.2.9 试卷管理
试卷管理是本系统的核心功能,主要实现的是对学生用户考试答题的试卷进行管理,通过系统随机抽取的题目自动生成试卷并且能将试卷存入数据库,供学生考试时进行选择。管理员功能结构图,如图4-3所示:

图4-3 管理员功能结构图
4.3 数据库设计
数据库的设计十分重要,下面将对本文所使用的数据表进行逐一的介绍。

  1. 用户表及ER图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/390991.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能与大数据的融合:驱动未来的力量

人工智能与大数据的融合:驱动未来的力量 一、人工智能与大数据的概述二、人工智能与大数据在数据库中的融合三、实际应用案例四、未来发展方向总结 【纪录片】中国数据库前世今生 在数字化潮流席卷全球的今天,数据库作为IT技术领域的“活化石”&#xff…

【Python实战】如何优雅地实现文字 二维码检测?

前几篇,和大家分享了如何通过 Python 和相关库,自动化处理 PDF 文档,提高办公效率。 【Python实战】自动化处理 PDF 文档,完美实现 WPS 会员功能【Python实战】如何优雅地实现 PDF 去水印?【Python实战】一键生成 PDF…

【Linux详解】基础IO:软硬连接 | 动静态库管理

目录 软硬链接 1. 介绍 2.理解 2.1 如何理解硬链接? 2.2 如何理解软连接? 动静态库 1.介绍 1.1 使用 1.2 什么是库? 2.生成 2.1 静态库 2.2 动态库: 软硬链接 1. 介绍 1.1 软连接 是一个独立文件,具有独…

【Python机器学习】支持向量机——利用完整platt SMO算法加速优化

在几百个数据点组成的小规模数据集上,简化版SMO算法的运行是没有什么问题,但是在更大的数据集上的运行速度就会变慢。完整版的platt SMO算法应用了一些能够提速的启动方法。 platt SMO算法时通过一个外循环来选择第一个alpha值的,并且其选择…

内网穿透--ICMP隧道转发实验

实验背景 通过公司带有防火墙功能的路由器接入互联网,然后由于私网IP的缘故,公网无法直接访问内部web服务器主机。通过内网其它主机做代理,穿透访问内网web服务器主机边界路由器或防火墙做静态NAT映射访问内网服务器inux主机,且策…

MySQL的数据类型

文章目录 数据类型分类整型bit类型浮点类型字符串类型charvarchar 日期和时间类型enum和set find_ in_ set 数据类型分类 整型 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。 可以通过UNSIGNED来说明某个字段是无符号的。 在MySQL中如…

Tree-of-Traversals:结合知识图谱与大模型,通过树遍历和回溯寻找高置信度推理路径

Tree-of-Traversals:结合知识图谱与大模型,通过树遍历和回溯寻找高置信度推理路径 Tree-of-Traversals算法解析对比 MindMap1. 与知识图谱(KGs)的整合2. 推理方法3. 灵活性与可扩展性4. 在医学诊断中的应用 速度和准确1. 速度2. 推…

第十一章:Kubernetes API服务器的安全防护

本章内容包括: 了解认证机制ServiceAccounts是什么及使用的原因了解基于角色(RBAC)的权限控制插件使用角色和角色绑定使用集群角色和集群角色绑定了解默认角色及其绑定 1 了解认证机制 在前面的内容中,我们说到API服务器可以配置一个到多个认证的插件(授…

数据结构链表2(常考习题1)(C语言)

移除链表元素: . - 力扣(LeetCode) 题目: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 解题思路: 情况1: 情…

python dash框架

Dash 是一个用于创建数据分析型 web 应用的 Python 框架。它由 Plotly 团队开发,并且可以用来构建交互式的 web 应用程序,这些应用能够包含图表、表格、地图等多种数据可视化组件。 Dash 的特点: 易于使用:Dash 使用 Python 语法…

深入解析 KMZ 文件的处理与可视化:从数据提取到地图展示项目实战

文章目录 1. KMZ 文件与 KML 文件简介1.1 KMZ 文件1.2 KML 文件 2. Python 环境配置与依赖安装3. 代码实现详解3.1 查找 KMZ 文件3.2 解压 KMZ 文件3.3 解析 KML 文件3.4 可视化 KMZ 数据 4. 项目实战4.1. 数据采集4.2. 项目完整代码 5. 项目运行与结果展示6. 总结与展望 在处理…

将后台传来的数据,转成easyui-tree所需格式

easyui 中文文档 EasyUI Tree组件需要一个包含特定属性(如id, text, children等)的JSON对象数组来初始化。 而后台返回的数据,它可能不是我们直接能拿来用的。 方式一:使用loadFilter函数处理来自Web Services的JSON数据。 $(#…

功能实现——通过阿里云 OSS 实现文件管理

目录 1.需求分析2.阿里云 OSS 开通与配置2.1.登录阿里云官网2.2.搜索 OSS 服务并开通2.3.OSS 配置 3.在项目使用阿里云 OSS3.1.项目环境搭建3.2.代码实现3.2.1.将本地文件上传到阿里云 OSS3.2.2.将前端传入的文件上传到阿里云 OSS3.2.3.下载文件到本地2.3.4.流式下载3.2.4.OSSC…

本地部署文生图模型 Flux

本地部署文生图模型 Flux 0. 引言1. 本地部署1-1. 创建虚拟环境1-2. 安装依赖模块1-3. 创建 Web UI1-4. 启动 Web UI1-5. 访问 Web UI 0. 引言 2024年8月1日,blackforestlabs.ai发布了 FLUX.1 模型套件。 FLUX.1 文本到图像模型套件,该套件定义了文本到…

【收录率高丨最快会后3-4个月EI检索 | 往届均已EI检索】第四届光学与通信技术国际学术会议(ICOCT 2024,8月9-11)

欢迎参加第四届光学与通信技术国际学术会议(ICOCT 2024),该会议将于2024年8月9-11日在南京举办。自2021年首次会议以来,ICOCT已经发展成为光学和通信领域较有影响力的国际会议之一,聚焦最前沿的技术进展与未来发展趋势…

【Redis 进阶】哨兵 Sentinel(重点理解流程和原理)

Redis 的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工进行主从切换,同时大量的客户端需要被通知切换到新的主节点上,对于上了一定规模的应用来说,这种方案是无法接受的,于是 Redis 从 2.8 开始…

“八股文“在现代编程面试中的角色重塑:助力、阻力还是桥梁?

🌈所属专栏:【其它】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点…

AI人工智能开发环境配置

AI人工智能 为什么使用Python来开发AI 人工智能被认为是未来的趋势技术。 已经有了许多应用程序。 因此,许多公司和研究人员都对此感兴趣。 但是这里出现的主要问题是,在哪种编程语言中可以开发这些 AI 应用程序? 有各种编程语言&#xff0c…

Python 实现股票指标计算——LON

LON - 铁龙长线 1 公式 LC : REF(CLOSE,1); VID : SUM(VOL,2)/(((HHV(HIGH,2)-LLV(LOW,2)))*100); RC : (CLOSE-LC)*VID; LONG : SUM(RC,0); DIFF : SMA(LONG,10,1); DEA : SMA(LONG,20,1); LON : DIFF-DEA; LONMA : MA(LON,10); LONT : LON, COLORSTICK; 2 数据准备…

练题模块环境搭建

文章目录 1.数据库表设计1.practice_set 套卷2.practice_set_detail 套卷细节3.practice_info 练习信息4.practice_detail 练习详情5.E-R图 2.架构设计(三层架构)3.练题微服务架构搭建1.创建一个练题微服务模块1.创建一个maven项目2.把src删除&#xff0…