1、I摘要互联网核心优势在于信息化,智能化,数据化。无纸办公、在线学习、在线考试、终身学习已经成为共识。在互联网技术应用成熟的环境下,在线考试已经成为教育行业必备的基础配套设施。在线教育、在线考试的需求已经覆盖K12及高等教育范畴,充分实现“互联网+教育”全领域应用。在5G通信基础设施的逐步完善,以智能硬件、VR、在线直播、短视频等教育形式的普遍应用,在线教育领域将成为当下的朝阳产业。C+在线考试主要针对高等院校C+科目在线考试系统。满足在校大学生选修C+课程,并进行模拟测试,期末考试,通过后获取学分设计理念,优化大学教学流程,充分做到理论与实践相结合,同时逐步强化教
2、学内容,让网络充分赋能高等教育。关键字:互联网;在线教育;在线考试;C+课程IIABSTRACTThecoreadvantageofInternetliesininformation,intelligenceanddata.Paperlessoffice,onlinelearning,onlineexaminationandlifelonglearninghavebecomeaconsensus.UnderthematureenvironmentofInternettechnologyapplication,online
3、examinationhasbecomethenecessaryinfrastructureofeducationindustry.ThedemandforonlineeducationandonlineexaminationhascoveredK12andhighereducation,andfullyrealizedtheapplicationofInternet+educationinallfields.Withthegradualimprovementof5gcommunicationinfrastru
4、ctureandtheuniversalapplicationofintelligenthardware,VR,onlinelivebroadcast,shortvideoandothereducationforms,onlineeducationwillbecomeasunriseindustry.C++onlineexaminationmainlyaimsattheonlineexaminationsystemofC++subjectsinCollegesanduniversities.Tomee
5、ttheneedsofcollegestudentstotakeC++courses,carryoutsimulationtestsandfinalexaminations,obtaincreditdesignconceptafterpassing,optimizeuniversityteachingprocess,fullyintegratetheoryandpractice,andgraduallystrengthenteachingcontent,sothatthenetworkcanfullyem
6、powerhighereducation.Keywords:Internet;onlineeducation;onlineexamination;C++Course1第1章前言1.1课题设计目的11、11、11技术能力考察技术能力考察(1)扎实掌握Java开发语言、JSP、JavaScript脚本语言、Ajax等网站开发应用技术;(2)掌握面向对象的设计思想,应用MVC网站设计模式对网站项目进行研发;(3)集合在线考试实际应用需求,进行项目业务流程设计,完成C+在线考试系统。11、11、22核心功能设计核心功能设计运
8、合现有在线教育系统的需求分析,实地调研,查阅资料,竞品分析;(2)根据现有在校考生实际学习需求,进行业务流程分析,进行数据库设计;(3)根据业务规则,进行整个代码设计与编写。11、11、55系统设计成果系统设计成果展示展示(1)完成C+在线考试系统论文的撰写;(2)实现C+在线考试系统的各项功设计及应用;21.2项目可行性分析1.2.1技术评估1、2、1、1Java开发语言Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言1。1、2、1、2JavaServerPages(JSP)Js
11、DBC惊醒了费城轻量级的的对象封装,使得Java程序员可以随心所欲的使用对象变成思维来操作数据库。Struts+Hibernate+Spring三大框架主要应用与网站及WEB应用的建设。1.2.2需求分析1、2、2、1系统角色在线考试系统涉及三类角色:学员、教师、管理员;31、2、2、1、1学员主要解决在线考试模拟、在线考试2个核心功能;学员可以修改自己登陆密码;账号为学号,不允许修改;考试模拟:正式考试前进行考试模拟,主要掌握核心考点,提高考试通过率,获取学分;在线考试:进行期末考试,本次考试为正式考试;1、2、2、1、2教师教师需要进行课
13、ver结构B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。相对于C/S结构属于“胖”客户端,需要在使用者电脑上安装相应的操作软件来说,B/S结构是属于一种“瘦”客户端,大多数或主要的业务逻辑都存在服务器端,因此,B/S结构的系统不需要安装客户端软件,它运行在客户端的浏览器之上,系统升级或维护时只
14、需更新服务器端软件即可,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。B/S结构系统的产生为系统面对无限未知用户提供了可能。当然,与C/S结构相比,B/S结构也存在着系统运行速度较慢,访问系统的用户不可控的弱点。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有
15、效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。基于B/S架构的这些优势,本系统采用了B/S架构。2.1.2MVC设计模式MVC架构是Model-View-Controller的缩写,中文翻译为模型-视图-控制器。MVC应用程序总是由这三个部分组成。事件(Event)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Control
16、ler改变了View,View会从潜在的Model中获取数据来刷新自己。5MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求
17、,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少
18、了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可
19、以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。2.2系统运行环境2.2.1MyEclipse10.06MyEclips
20、e企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse),利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持Html,Struts,Jsp,Css,Javascript,Sql和Hibernate。Eclipse3是一个开放源代码的、基于Java4的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse还附带了一个标准的插件集,
21、包括Java开发工具(JavaDevelopmentTools,JDT)。2.2.2Java开发语言(1)Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。Java丢弃了C+中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧2。(2)Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类
22、与接口之间的实现机制(关键字为Implements)。Java语言全面支持动态绑定,而C+语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。(3)Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(JavaNet),它提供了用于网络应用编程的类库,包括Url、UrlConnection、Socket、ServerSocket等。Java的Rmi(远程方法激活)机制也是开发分布式应用的重要手段。(4)Java语言是健壮的。Java的强类型机制、异常
23、处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。2.2.3TomcatTomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当运行tomcat7时,它实际上作为一个与Apache独立的进程单独运行的。2
24、.2.3Oracle11gOracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。在众多关系型数据库中,Oracle在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力。具有以下特点:1开放性能在所有主流平台上运行(包括Windows),完全支持所有的工业标准,采用完全开放策略,可以使客户选择最适合的解决方案,对开发商全力支持。2客户端支持及应用模式多层次网络计算,支持多种工业标准,可以用Odbc,Jdbc,Oci等网络客户连接。2.3系统功能结构图在
28、题管理模块图2、4、4系统账户管理系统账户有两种类型:管理员、学生、管理员由教师担任。系统账户管理模块有三部分:添加账户、修改账户、删除账户。图图2-5账户管理模块图账户管理模块图11第3章数据库设计3.1系统E-R图在线考试系统E-R图在管理的层面上,有学员、试卷、考试成绩、账号信息几个类别。如图3-1。图图3-1系统系统E-R图图3.2系统实体图3.2.1系统管理员的实体图管理员信息有三个核心属性,用户编号(唯一),用户名和用户密码为必填项。如图3-2管理员用户名用户编号用户密码图图3-2管理员信息实体图及属性管理员
30、信息的实体图及属性用户信息的实体图及属性3.2.4考试题目类别信息实体图13考试题目类别属性很多,主要分为:编号、题型,试题名称,试题选项、正确答案、类别和删除状态。题目类型名称类别编号编号删除分数选项a答案选项b选项d选项c图图3-5题型类别信息的实体图及属性题型类别信息的实体图及属性3.2.5考试成绩信息实体图考试成绩有四个属性:成绩ID,试卷ID,学生ID和分数。通过成绩ID、试卷ID、学生ID进行关联,锁定学员最终考试成绩。图图3-6成绩信息实体图及属性成绩信息实体图及属性3.2.6考试信息实体图考试信息有五个属性
31、,考试ID,学员ID,试卷ID,题目ID和学员答案。成绩编号学生编号试卷编号分数14交卷试卷编号用户编号题目编号编号学生答案图图3-7交卷信息实体图及属性交卷信息实体图及属性3.3数据字典数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。它主要是对数据流图中的数据流、处理逻辑、外部实体、数据存储和数据项等方面进行具体的定义。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。3.3.1系统管理员信息表(T_ADMIN_INFO)字段名称字段意义字段类型字段长度是否主键能否为空Teacher
32、_Id编号int11是否Teacher_Name用户名varchar50否否Teacher_Pwd密码varchar50否否Teacher_State账号状态int1否否表表3-8t_admin_info管理员信息表管理员信息表3.3.2系统成绩信息表(T_RESULT_INFO)字段名称字段意义字段类型字段长度是否主键能否为空Result_Id成绩IDvarchar50是否Test_Id考卷IDvarchar50否否Student_Id学员IDvarchar50否否Grade_Info分数int50否否表表3-9t_result_info成绩信息表成
33、绩信息表3.3.3学员交卷信息表(T_SUBMIT_INFO)15字段名称字段意义字段类型字段长度是否主键能否为空Submit_id试卷IDvarchar50是否Student_id学员IDvarchar50否否Test_id试卷IDvarchar50否否Object_id题目IDvarchar255否否Student_answer学生答案varchar50否否表表4-3t_submit_info交卷信息表交卷信息表3.3.4试卷信息表(T_SUBMIT_INFO)字段名称字段意义字段类型字段长度是否主键能否为空Test_id试卷IDvarchar5
36、varchar2否否16Object_select_C答案选项Cvarchar2否否Object_select_D答案选项Dvarchar2否否Object_true_answer正确答案varchar2否否Object_core分数int4否否Type_id类别编号varchar2否否Del_stste删除varchar2否否表表4-6t_object_info题目信息表题目信息表3.3.7试卷信息表(T_TEST_INFO)字段名称字段意义字段类型字段长度是否主键能否为空Id序号varchar50是否Test_id试卷编号varchar50否否Obj
39、是系统默认值唯一字段。需要系统管理员录入试题标题、试题类型、试题答案选项已经正确答案。试题录入系统后,默认对学员可见。图图4-2添加试题管理模块添加试题管理模块4.2.2试题维护管理(修改、删除)点击【试题信息管理】导航菜单,显示题库信息列表。选中所要修改试题,点击后进入试题修改页面。可以修改试题类型、试题描述、试题答案选项、试题正确答案。以上数据均为非空。点击【保存】按钮时,系统自动对表单数据进行提交,系统进行表单验证,如果满足数据库表存储规则,试题数据修改完成;如果表单数据存才空数据。点击【保存】按钮时,页面JS会自动判断,通过alert弹窗提示,提示信息
42、,获得当前学员总分。教师可以在当前页面查看学生答题情况。图图4-9评分管理模块评分管理模块4.5学生考试管理224.5.1试卷管理列表点击【模拟考试】进入学生试卷管理列表,学生可以看到当前有效的的试卷。点击【进入开始】,开始考试。教师进入试卷列表。显示当前试卷参考学员及得分情况。同时支持批改学生的试卷权限,批改后显示的成绩即是学生的考试成绩。图图4-8查看试卷界面查看试卷界面图图4-9参加考试界面参加考试界面点击【参加考试】后,学生在此界面参加考试,也是此考试系统的正式考试界面,经过了教师组卷后,组成的试卷在此界面得到利用,相对应班级的学生就会在此界面进行
43、答题。23图图4-10查看我的信息界面查看我的信息界面点击【我的信息】导航菜单后,进入学生信息详情页面,学号系统自动生成,并且唯一,只读不可修改。图图4-11查看成绩界面查看成绩界面点击【试卷】列表,此界面查看已考试卷成绩,有分数和试卷名称。24第5章系统测试和改进5.1软件测试的目标(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。测试是为了发现程序中的错误而执行程序的过程,即使经过了最严格的测试后,仍然可能还有没被发现的错误潜藏在程