收藏 分销(赏)

软件综合重点工程优秀课程设计范例.doc

上传人:w****g 文档编号:2656702 上传时间:2024-06-03 格式:DOC 页数:60 大小:968.54KB 下载积分:14 金币
下载 相关 举报
软件综合重点工程优秀课程设计范例.doc_第1页
第1页 / 共60页
软件综合重点工程优秀课程设计范例.doc_第2页
第2页 / 共60页


点击查看更多>>
资源描述
《软件工程》课程设计 题 目 C语言在线考试系统设计和实现 学生姓名 学 号 院 系 计算机和软件学院 专 业 指导老师 文学志 二O年 月 日 目 录 1.绪论 1 1.1.C语言在线考试系统概述 1 1.2.C语言在线考试系统可行性分析 1 1.2.1.经济可行性 2 1.2.2.技术可行性 2 1.2.3.社会可行性 3 2.相关技术介绍 3 2.1.B/S/S体系结构 4 2.2.Java Server Pages 4 2.3.Struts 5 2.4.Hibernate 6 2.5.MySQL 6 2.6.Tomcat Web服务器 7 3. 系统需求分析 7 3.1.系统功效需求 7 3.2.系统模块划分 9 4. 系统设计 10 4.1.系统概要设计 10 4.1.1.系统总体结构 10 4.1.2.系统数据库设计 11 4.2.系统关键模块具体设计 19 4.2.1.试题管理模块设计 19 4.2.2.考试管理模块设计 21 4.2.3.在线考试模块设计 21 4.2.4.答卷自动评分模块设计 22 5.系统关键模块实现 24 5.1.创建项目 24 5.1.1.开发环境搭建 25 5.1.2.系统整体框架 26 5.2.试题管理模块实现 27 5.2.1.创建持久化类和数据库访问相关类 27 5.2.2.创建Struts相关类 29 5.2.3.创建表示层JSP文件 30 5.3.考试管理模块实现 32 5.3.1.初始种群生成 32 5.3.2.适应度值计算 33 5.3.3.选择(Select) 34 5.3.4.交叉(Crossover) 35 5.3.5.变异(Mutation) 36 5.4.在线考试模块实现 37 5.4.1.倒计时子模块实现 37 5.4.2.故障延时子模块实现 38 5.5.答卷自动评分模块实现 40 6. 系统测试 42 6.1.系统测试环境 42 6.2.系统测试用例设计 43 6.3.系统测试结果 45 6.4.系统测试分析 46 结束语 46 参考文件 46 致 谢 47 C语言在线考试系统设计和实现 张三 南京信息工程大学计算机和软件学院,南京 210044 摘 要:伴随计算机技术、Internet 技术迅猛发展,在线考试模式以其跨地域性、随时性和用户广泛性特点,成为推进教育现代化关键手段,已经成为对学生练习、考试、评价和分析教学效果关键工具。本文研究利用三层浏览器(B/S/S)体系结构,即Web浏览器/Web服务器/数据库服务器结构来实现C语言科目标在线考试系统。该系统实现了试题库管理、自动组卷和答卷自动评分等功效,满足了广大老师和考生需求。该系统实现以Java语言及其相关技术为基础,构建于MySQL数据库系统和Tomcat Web服务器之上。该系统实现表明,在线考试系统能够提升试题库管理、考试组织和阅卷效率,并同时确保考试公正和公平。所以,其它科目标考试也能够开发对应在线考试系统。 关键词:在线考试系统;B/S/S体系结构;Java;MySQL;自动组卷 1. 绪论 本章对C语言在线考试系统进行了概要性介绍,并在经济、技术、社会三个方面对该系统开发可行性进行了分析,以说明该系统开发是可行,能够立即开始研制工作。 1.1. C语言在线考试系统概述 伴随计算机技术、Internet 技术迅猛发展,绝大部分高校全部已接入互联网并建成了校园网,硬件设施也日趋完善。以互联网为基础在线考试模式,以其跨地域性、随时性和用户广泛性特点,成为推进教育现代化关键手段,已经成为对学生练习、考试、评价和分析教学效果关键工具[1]。 C语言在线考试系统利用开放、动态系统架构,将传统考试模式和优异网络应用相结合,实现了C语言科目考试无纸化、自动化、网络化。第一,本系统能够帮助老师方便地实现试题管理,包含试题录入、查询、修改、删除。第二,本系统实现了自动组卷功效,能够依据出题要求自动生成C语言考试试卷,供考生在线作答。第三,考生在使用本系统进行在线考试时,系统将提供倒计时功效,使考生能够随时了解考试剩下时间。第四,本系统在考试时间截止以后将自动完成交卷,以确保考试严厉公正地进行。第五,在答卷提交以后,本系统将对答卷进行自动评分并保留结果,方便考生查询考试成绩。 1.2. C语言在线考试系统可行性分析 项目标可行性通常从三个方面进行分析,即经济可行性、技术可行性、社会可行性。经济可行性分析即进行开发成本估算和效益评定,确定开发项目是否值得投资开发;技术可行性分析是指对要开发项目标功效、性能和限制条件进行分析,确定现有资源条件下,技术风险有多大,项目是否能实现;社会可行性分析是指研究要开发项目是否存在侵犯、妨碍等责任问题,要开发项目标运行方法在用户组织内是否行得通,现有管理制度、人员素质和操作方法是否可行[2]。本节从这三个方面对C语言在线考试系统可行性进行分析,方便后续工作展开。 1.2.1. 经济可行性 C语言在线考试系统开发成本包含开发该系统人力费用和用于购置布署该系统并充当服务器计算机费用。开发该系统估量需要四个开发人员一周工作量,假如每人每个月工资为元,则开发该系统人力费用约为元。为了布署该系统,需要购置一台带有较大容量磁盘高性能计算机,费用估量在1万元。所以,开发该系统成本总计为1.2万元。 在未使用该系统之前,为了进行C语言考试,必需支出对应人力费用进行出卷、组织考试和批阅试卷,这部分费用约为每十二个月4000元。另外,因为传统考试模式需要用纸,每十二个月需要约3500元纸张费用。所以,若维护系统每十二个月需花费500元,使用C语言在线考试系统每十二个月可节省约0.7万元。 依据以上估量开发费用和节省费用,在假设年利率i等于12%前提下,能够计算得到投资回收期为2.(如表1-1所表示),即在使用C语言在线考试系统2.以后用户能够收回全部投资。所以,开发C语言在线考试系统在经济上是可行。 表1-1 C语言在线考试系统成本/效益分析 购置设备 1.0万元 人力(四人、一周、元/月) 0.2万元 开发成本总计 1.2万元 系统维护费 500元/年 每十二个月节省人力费用 0.4万元 每十二个月节省纸费用 0.35万元 每十二个月节省总费用 0.7万元 年 节省(元) (1+i)n次方 现在值(元) 累计现在值(元) 1 0.7万 1.12 0.625万 0.625万 2 0.7万 1.14 0.558万 1.183万 3 0.7万 1.40 0.498万 1.681万 第三年后纯收入 0.481万 投资回收期 2. 1.2.2. 技术可行性 (1)对所提议系统简明描述 C语言在线考试系统利用数据库对试题信息进行高效、便捷管理,实现试题录入、查询、修改和删除。同时,系统提供了自动组卷功效、倒计时功效、试卷提交功效、试卷评分功效,实现了考试无纸化、自动化、网络化,并表现了考试公正、严厉。 (2)和现有系统比较优越性 C语言在线考试系统利用数据库对试题进行管理,使得对大量试题管理高效、方便地进行,而传统考试模式下试题管理低效耗时,在试题达成一定数量以后,管理起来十分不便,需要花费大量时间和精力。因为试题存放于计算机硬盘中,并采取在线考试这种无纸化考试模式,和传统考试模式相比,不仅节省了试题存放空间,更是节省了大量纸张(试卷和答题册),愈加环境保护、节省。同时,该系统自动组卷和评分功效使得出卷和评分过程自动化,和传统手工出卷评分相比,节省了大量劳力,使得广大老师能够从繁重出卷、评分工作中解脱出来,从而把更多时间和精力用于教学和科研。另外,系统试卷提交功效在考试时间截止时,自动完成试卷提交,阻止考生继续答题,使得考试公正性和严厉性较传统考试愈加好得表现。最终,该系统提供倒计时功效,使得考生在考试过程中更合理地安排时间,有利于考生取得好成绩。 (3)采取提议系统可能带来影响 采取C语言在线考试系统以后,试题管理效率,组织考试和评卷效率将大为提升,有利于在短时间内实现对考生C语言学习情况检验。同时,本系统将节省大量纸资源,节省组织考试开支。老师将从繁重出题、组织监督考试、评分工作中解脱出来,把更多时间和精力用于教学和科研。 采取C语言在线考试系统以后,要讨老师适应新型试题管理模式,需要老师掌握该系统使用。对考生而言,要求她们适应新型考试模式,一样,也需要她们熟悉系统使用。 (4)所提议技术可行性分析 C语言在线考试系统是一个基于B/S/S体系结构网络应用系统,开发这类系统技术已经比较成熟,比如JSP技术、ASP技术等等。同时,考虑到开发人员对这类系统和相关技术比较熟悉且开发期较为充裕,估计能够再要求期限内完成开发。 1.2.3. 社会可行性 (1)法律方面可行性 C语言在线考试系统研制和开发过程,将在严格遵守国家各项法律法规基础上进行,将不会侵犯她人、集体和国家利益。同时,在系统开发过程中,将严格遵守和用户签署协议各项条款。 (2)使用方面可行性 C语言在线考试系统研制和开发将充足考虑到用户业务往来、管理步骤和人员素质等,从而能满足使用要求。 2. 相关技术介绍 C语言在线考试系统开发采取了三层浏览器(B/S/S)体系结构,即Web浏览器/Web服务器/数据库服务器结构[7]。本文中采取了Java语言及相关技术JSP、Struts和Hibernate实现该系统,并以Tomcat作为Web服务器,以MySQL作为数据库服务器。本章是对这些技术和服务器介绍。 2.1. B/S/S体系结构 将Web技术B/S结构和数据库系统三层C/S/S体系结构结合,产生了Web浏览器/Web服务器/数据库服务器结构,图2-1所表示。B/S/S体系结构是指在TCP/IP支持下,以HTTP为传输协议,用户经过浏览器访问Web服务器和和Web服务器相连后台数据库体系结构,它由Web浏览器、Web服务器、中间件和数据库服务器组成。在B/S/S结构中,各组成部分之间经过Internet(或Intranet)相连,遵守HTTP协议,浏览器经过发送请求和服务器端建立连接,从而实现以整个Internet为背景数据存放和访问。 Web浏览器 Web 服务器 中间件 (应用程序) 数据库服务器 数据库 Http请求 Html页面 SQL请求 结果 图2-1 Web数据库系统三层B/S/S体系结构 B/S/S结构中表示层有Web浏览器,它向网络上Web服务器提出服务请求,接收Web服务器返回页面并显示给用户;事务逻辑层有Web服务器,它接收用户请求并判定请求类型。假如请求是通常静态页面,就直接在Web服务器文件系统中找到页面并返回;不然实施对应应用程序,比如对数据库进行更新、查询等,随即取得数据库操作结果,将结果动态生成页面,返回给表示层用户端;数据层则有数据库服务器,实现数据存放、维护、访问和更新,它接收Web服务器数据操作请求,并把运行结果返回给Web服务器。 B/S/S结构含有以下特点: 第一,基于TCP/IP开放式网络标准协议,完全实现了跨平台访问计算机及其网络上多种资源,含有很强系统独立性和平台无关性。 第二,软件维护开销大大降低,只需开发维护服务器应用程序,无需开发用户端程序,规范和统一了用户端程序标准——Web浏览器,从而统一了用户界面。 第三,充足发挥了数据库管理系统(DBMS)高效数据存放和数据管理能力,实现了更大程度和更大范围数据库资源共享。 B/S/S结构代表了目前数据库应用软件技术发展趋势,是现在开发Web数据库应用系统普遍采取数据库系统体系结构。它优点使它成为构建高效安全Web数据库应用系统首选体系结构[7]。 2.2. Java Server Pages Java Server Pages简称JSP[12],是由Sun Microsystems企业提倡、很多企业参与一起建立一个动态网页技术标准。JSP技术有点类似ASP技术,它是在传统网页HTML文件(*.htm,*.html)中插入Java程序段(scriptlet)和JSP标识(tag),从而形成JSP文件(*.jsp)。用JSP开发Web应用是跨平台,既能在Linux下运行,也能在其它操作系统上运行。 和前一代Internet/Intranet开发语言(ASP、PHP)相比,JSP在以下多个方面有了重大突破: 第一,经过JSP扩展标签库和JavaBeans功效,网站逻辑和网站界面能够完美地分离。 第二,使用 Enterprise JavaBeans,能够轻松地在JSP开发Web中实现事务、安全、会话等等企业级应用所需要功效。 第三,JDBC 2.0提供了不一样数据库产品无关数据库连接方法,更关键是,数据库连接池提供了一个比一般数据库连接方法效率高得多连接方法。Web服务器在碰到访问JSP网页请求时,首先实施其中程序片段,然后将实施结果以HTML格式返回给用户。程序片段能够操作数据库、重新定向网页和发送email等等,这就是建立动态网站所需要功效。全部程序操作全部是在服务器端进行,网络上传送给用户端仅是得到结果,对用户浏览器要求最低,能够实现无plugin,无ActiveX,无Java Applet,甚至无Frame。 JSP含有以下优点[6]: 第一,将内容生成和显示进行分离。使用JSP技术,Web页面开发人员能够使用HTML或XML标识来设计和格式化最终页面。使用JSP标识或小脚原来生成页面上动态内容。生成内容逻辑被封装标识在JavaBeans组件中,而且捆绑在小脚本中,全部脚本在服务器端运行。Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响动态内容生成。在服务器端,JSP引擎JSP标识和小脚本,生成所请求动态内容而且将结果以HTML(或XML)页面形式发送回浏览器。这有利于作者保护自己代码,而又确保任何基于HTMLWeb浏览器完全可用性。 第二,可重用组件。绝大多数JSP页面依靠于可重用,跨平台组件(JavaBeans或EJB组件)来实施应用程序所要求更为复杂处理。开发人员能够共享和交换实施一般操作组件,或使得这些组件为更多使用者或用户团体所使用。基于组件方法加速了总体开发过程,而且使得多种组织在她们现有技能和优化结果开发努力中得到平衡。 第三,用标识简化页面开发。Web页面开发人员不会全部是熟悉脚本语言编程人员。JSP技术封装了很多功效,这些功效是在易用、和JSP相关XML标识中进行动态内容生成所需要。标准JSP标识能够访问和实例化JavaBeans组件,设置或检索组件属性,下载Applet,和实施用其它方法更难于编码和耗时功效。 2.3. Struts Struts 是Apache 软件基金组织Jakarta 项目标一个子项目,Struts 前身是Craig R. McClanahan 编写JSP Model2 架构。 Struts 在英文中是"支架、支撑"意思,这表明了Struts 在Web 应用开发中巨大作用,采取Struts 能够愈加好地遵照MVC 模式。另外, Struts 提供了一套完备规范,和基础类库,能够充足利用JSP/Servlet 优点,减轻程序员工作量,含有很强可扩展性。Struts作者Craig R.McClanahan参与了JSP规范制订和Tomcat4开发,同时还领导制订了J2EE平台Web层架构规范。受此影响,Struts框架一经推出,立即引发了Java 开发者广泛爱好,并在全世界推广开来,最终成为世界上应用最广泛MVC 框架[9]。 2.4. Hibernate 目前软件开发语言已经全方面转向面向对象,而数据库系统仍停留在关系数据库阶段。面对复杂企业环境,同时使用面向对象语言和关系数据库是相当麻烦,不仅中间过渡难以了解,而且其开发周期也相当长。 Hibernate 是一个面向Java 环境对象/关系数据库映射工具。对象/关系数据库映射( Object/Relational Mapping) 表示一个技术,用来把对象模型表示对象映射到基于SQL关系模型数据结构中去[10]。 Hibernate 目标是:释放开发者通常数据持久化相关编程任务95% 。对于以数据为中心程序而言,往往在数据库中使用存放过程来实现商业逻辑,Hibernate 可能不是最好处理方案。但对于那些基于Java 中间件应用中,设计采取面向对象业务模型和商业逻辑时,Hibernate 是最有用。不管怎样, Hibernate能消除那些针对特定数据库厂商SQL代码,而且把结果集由表格式形式转换成值对象形式。Hibernate不仅管理Java类到数据库表映射(包含Java 数据类型到SQL 数据类型映射),还提供数据查询和获取数据方法,能够大幅度地降低在开发时人工使用SQL和JDBC处理数据时间。 2.5. MySQL MySQL是最流行开放源码SQL数据库管理系统,它是由MySQL AB企业开发、公布并支持。MySQL AB是由多名MySQL开发人创办一家商业企业。它是一家第二代开放源码企业,结合了开放源码价值取向、方法和成功商业模型。 MySQL是一个关联数据库管理系统。关联数据库将数据保留在不一样表中,而不是将全部数据放在一个大仓库内。这么就增加了速度并提升了灵活性。MySQLSQL指得是结构化查询语言。SQL是用于访问数据库最常见标准化语言,它是由ANSI/ISO SQL标准定义。SQL标准自1986年以来不停演化发展,有数种版本。 MySQL软件是一个开放源码软件。开放源码意味着任何人全部能使用和改变软件。任何人全部能从Internet下载MySQL软件,而无需支付任何费用。假如愿意,你能够研究源码并进行合适更改,以满足你自己需求。 MySQL数据库服务器含有快速、可靠和易于使用特点。MySQL服务器还有一套实用特征集合,这些特征是经过和用户亲密合作而开发。在MySQL基准测试主页上,给出了MySQL服务器和其它数据库管理器。 MySQL服务器最初是为处理大型数据库而开发,和已经有处理方案相比,它速度愈加快,多年以 来,它已成功用于众多要求很高生产环境。尽管MySQL一直在不停发展,但现在MySQL服务器已能提供丰富和有用功效。它含有良好连通性、速度和安全性,这使得MySQL十分适合于访问Internet上数据库。 MySQL服务器工作在用户端/服务器模式下,或嵌入式系统中。MySQL数据库软件是一个用户端/服务器系统,由支持不一样后端1个多线程SQL服务器,数种不一样用户端程序和库,众多管理工具和广泛应用编程接口API组成。还能以嵌入式多线程库形式提供MySQL服务器,你能够将其链接到你应用程序,从而取得更小、愈加快、和更易管理产品[4]。 2.6. Tomcat Web服务器 Tomcat服务器是一个无偿开放源代码Web应用服务器。它是Apache 软件基金会(Apache Software Foundation)Jakarta 项目中一个关键项目,由Apache、Sun 和其它部分企业及个人共同开发而成[11]。因为有了Sun 参与和支持,最新Servlet和JSP规范总是能在Tomcat中得到表现,Tomcat 5支持最新Servlet 2.4和JSP 2.0规范。因为Tomcat技术优异、性能稳定,而且无偿,所以深受Java爱好者喜爱并得到了部分软件开发商认可,成为现在比较流行Web 应用服务器。   Tomcat很受广大程序员喜爱,因为它运行时占用系统资源小,扩展性好,支持负载平衡和邮件服务等开发应用系统常见功效;而且它还在不停改善和完善中,任何一个感爱好程序员全部能够更改它或在其中加入新功效。 Tomcat是一个小型轻量级应用服务器,在中小型系统和并发访问用户不是很多场所下被普遍使用,是开发和调试JSP程序首选。对于一个初学者来说,能够这么认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面访问请求。实际上Tomcat部分是Apache服务器扩展,但它是独立运行,所以当你运行Tomcat 时,它实际上作为一个和Apache独立进程单独运行。这里诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,含有处理HTML页面功效,另外它还是一个Servlet和JSP容器,独立Servlet容器是Tomcat默认模式。不过,Tomcat处理静态HTML能力不如Apache服务器。 3. 系统需求分析 在系统可行性分析完成以后,并确定系统能够立即投入设计和研制时,下一步要做工作便是系统需求分析,即经过多种路径(访谈、调查问卷、实地考察等)了解并明确用户对所要开发系统各方面需求,包含功效上要求、性能上要求、操作方便性要求等等。本章对C语言在线考试系统进行了需求分析,关键是依据用户对系统功效方面要求,明确了系统所要实现各个功效相关细节,并在此基础上对系统进行了模块划分,为后续系统设计打下基础。 3.1. 系统功效需求 依据用户对系统功效方面实际要求,C语言在线考试系统关键功效包含:用户登录验证功效、用户管理功效、试题管理功效(试题录入、查询、修改、删除)、考试管理功效、自动组卷功效、倒计时功效、试卷提交功效、故障延时功效和答卷自动评分功效。本节具体地说明了用户对这些功效需求。 (1)用户登录验证功效 用户在登录C语言在线考试系统时必需进行身份验证,只有经过了身份验证,才能进入并使用该系统。系统用户应分成三大类,即管理员、老师和考生。用户在登录时,系统应提供用户类别选择,以区分不一样用户登录;用户在选择好登录身份以后,系统应该要求用户提供用户名和密码,以进行登录验证。系统应该为管理员(有若干位)预置登录用户名和密码,并许可管理员修改用户名和密码。在系统提供给老师和考生使用前,管理员负责向系统中提前录入老师和考生部分相关信息,比如老师编号、考生学号和各自身份证号等等,这些信息可用来作为这两类用户首次登录时验证信息。用户首次登录以后,系统应该要求用户修改登录信息,尤其是登录密码,以预防她人冒用。另外,为了预防恶意软件进行系统攻击,每个用户登录之前全部要以图片形式产生一组随机验证码[8],用户必需输入正确验证码才能进入系统。 (2)用户管理功效 C语言在线考试系统应该对用户进行有效管理。系统用户分成了三类,即管理员、老师和考生。管理员含有系统操作最高权限,负责添加老师和考生用户,并查看其用户信息(不包含密码)。管理员初始用户名和密码是内置,管理员能够修改自己用户名和密码,并添加和修改其它相关信息。对于老师用户来说,用户信息应最少包含登录用户名和密码,初始时能够选择老师老师编号作为用户名,身份证号作为密码,以后能够修改。老师能够添加和修改本身相关其它信息,并查看考试结果(包含相关分析)。对于考生来说,用户信息应最少包含用户名、密码,初始时,用户名为考生学号,密码为考生身份证号,以后能够修改。考生能够添加和修改本身相关其它信息,并查看考试成绩。 (3)试题管理功效 C语言在线考试系统需要实现试题管理功效,即组建一个试题库,方便对大量C语言试题进行高效、便捷管理。该功效包含:试题录入,即使得老师能够方便地将C语言试题及其参考答案录入系统试题库。试题录入子功效应该依据老师录入试题类型(选择题、填空题、程序设计题)对试题进行分类管理;试题查询,即使得老师能够依据试题一些关键字方便地查询试题,方便检验和修改试题。试题查询子功效一样应该对不一样题型进行分类查询,以提升查询效率;试题修改,即使老师能够对已经录入系统试题及其参考答案进行不限次数修改,方便提升试题本身或参考答案正确性;试题删除,即使老师能够删除已经录入系统试题(连同参考答案),方便更新试题库。 (4)考试管理功效 考试管理功效,即系统提供管理员对考试信息和考试公告管理功效。具体来说,系统管理员用户能够安排考试、编辑考试信息、利用自动组卷功效生成试卷投入考试使用;系统管理员能够公布、编辑考试公告。而老师和考生用户则只能浏览考试公告。 (5)自动组卷功效 自动组卷功效,即系统能够自动生成C语言试卷,供考生作答。自动组卷功效应该依据管理员要求组卷,即管理员能够设置试卷所包含题型,各类题型分值和题数,各类型试题在试卷上前后次序和考试时间限制。自动组卷功效应该根据管理员设置出卷要求根据某种算法从试题库中选择对应试题,确保每个试题全部有机会出现在试卷上,而且每次组卷试卷相同概率尽可能小。 (6)倒计时功效 倒计时功效,即在考生进行测试界面上提供倒计时,方便考生随时了解考试剩下时间。倒计时功效应该依据老师设置考试时间限制正确地进行,确保考试公平性。倒计时功效应该在考试结束前10分钟时给出对应提醒,提醒考生抓紧时间作答。另外,该功效出现在界面上位置应该合理,显示大小适中,不至于分散考生注意力,产生负面效果。 (7)试卷提交功效 试卷提交功效包含两种情况,一个情况是考生在考试时间截止之前就已经完成答题,应许可考生提交试卷;另一个情况是考生在要求考试时间内没能完成答题,此时,系统将自动完试卷提交,以避免考生继续答题,破坏考试公平性。对于提前完成考试并欲提交试卷考生,试卷提交功效在正式提交试卷之前,应该给出确定提醒,确保考生不是因为误操作而提交试卷。自动提交试卷情况则应该和倒计时功效相一致,确保倒计时到零时自动提交试卷并切换主界面到考试结束界面。 (8)故障延时功效 故障延时功效,即当某个考生电脑发生故障,比如死机时,监考人员能够暂停该考生答题倒计时。当故障排除以后,考生可重新登录系统,进入考试,此时考生考试剩下时间同故障发生时相同,即考生考试时间被延迟。 (9)答卷自动评分功效 答卷自动评分功效完成考生答卷批阅和评分工作,得出考生成绩。因为C语言考试试题通常包含选择题、填空题和程序设计题,所以系统应能够自动完成这三类试题批阅和评分。对于程序设计题,应能将考生程序保留下来,批量编译、运行,得出结果以判定程序是否正确。 3.2. 系统模块划分 依据系统功效需求,将C语言在线考试系统分成六大模块进行设计:(1)用户登录验证模块;(2)用户管理模块;(3)试题管理模块;(4)考试管理模块;(5)在线考试模块;(6)答卷自动评分模块。各个模块及子模块划分和功效说明如表3-1所表示: 表3-1 C语言在线考试系统模块划分 编号 模块名称 子模块名称 功效说明 1 用户登录模块 实现用户登录时身份选择、验证。 2 用户管理模块 管理员信息管理模块 添加、删除老师和考生用户;修改和查看老师和考生部分信息;修改和查看管理员个人信息。 老师信息管理模块 修改和查看老师个人信息;查看考生部分信息。 考生信息管理模块 修改和查看考生个人信息、查询考试相关信息。 续表3-1 编号 模块名称 子模块名称 功效说明 3 试题管理模块 试题录入模块 许可老师录入试题及参考答案。 试题编辑模块 许可老师对试题库中试题进行查询、修改、删除。 4 考试管理模块 自动组卷模块 自动组卷;保留、查看、删除试卷。 考试信息管理模块 公布考试;保留、修改、删除考试信息。 考试公告管理模块 对考试公告进行添加、修改、删除。 5 在线考试模块 倒计时模块 给出考试剩下时间和对应提醒信息。 试卷提交模块 许可考试提前交卷;考试时间截止时自动交卷。 试题显示及作答模块 显示试题,供考生在线作答。 故障延时模块 故障发生时,暂停考生答题倒计时。 6 答卷自动评分模块 客观题评分模块 对选择题、填空题进行自动评分,并保留得分。 程序设计题评分模块 对程序设计题自动评分,并保留得分。 4. 系统设计 在C语言在线考试系统需求分析和模块划分完成基础上,本章叙述了该系统概要设计和关键模块具体设计。 4.1. 系统概要设计 本节对C语言在线考试系统进行概要设计,给出了系统总体结构图和数据库设计。 4.1.1. 系统总体结构 依据上一章需求分析中系统模块划分,对C语言在线考试系统进行总体设计,得到系统总体结构图图4-1所表示(各模块功效说明见上一章表3-1): 用户登录 验证 C语言在线考试系统 用户管理 试题管理 在线考试 答卷自动评分 管理员 信息管理 老师信息管理 考生信息管理 试题录入 试题编辑 自动组卷 倒计时 试卷提交 客观题评分 程序设计题评分 试题显示及作答 考试管理 考试 信息管理 考试 公告管理 故障延时 图 4-1 系统总体结构图 4.1.2. 系统数据库设计 本节依据系统各模块功效和模块间相互关系,对系统数据库设计进行叙述,包含了数据库需求分析、概念结构设计、逻辑设计和表设计。 (1)数据库需求分析 C语言在线考试系统实现了用户管理、试题管理、在线考试、试卷评分等功效,这些功效所包含到数据库需求说明以下: 为实现用户管理,必需在数据库中保留用户信息,因为用户分成管理员、老师和考生三类,数据库中应建立对应管理员表、老师表和考生表。另外,为了方便管理同一考场考生,数据库中应建立考生组表。 为实现试题管理,数据库中应建立试题表以保留试题信息。 为实现考试管理,数据库中应建立试卷表保留自动组卷功效生成试卷;应建立考试信息表和考试公告表,保留考试信息和考试公告。 为实现在线考试和试卷评分,数据库中应建立答题表存放考生答题结果。另外,应建立考生成绩表用于保留考生成绩和相关考试信息。 对于系统E-R图中m:n关系(即多对多关系),也应建立对应表。 (2)数据库概念结构设计 依据C语言在线考试系统数据库需求分析进行概念结构设计,画出系统实体-联络图,即E-R图[3](图4-2)和实体图(图4-3~图4-18)。 管理员 考生组 老师 试题 答题卡 成绩单 试卷 考试 考试公告 考生 老师管理 考生组管理 考试管理 、 属于 、 答题 组卷 试题管理 自动阅卷 指导 查看 1 m p m m q n 1 m 1 m n n n m n n 1 p 1 1 m n 公告管理 、 m 使用 1 属于 包含 1 p m 图4-2 C语言在线考试系统数据库概念结构设计(E-R图) 管理员 密码 用户名 编号 真实姓名 图4-3 管理员实体图 老师 密码 用户名 编号 真实姓名 院系 图4-4 老师实体图 考生 密码 用户名 编号 真实姓名 考生组编号 所在院系 图4-5 考生实体图 试题 分值 难度 试题描述 参考答案 类型 编号 图4-6 试题实体图 考试 编号 监考人编号 考场 描述 考试日期 考生组编号 试卷编号 总分 考试时长 图4-7 考试实体图 考试公告 编号 公告内容 浏览次数 公告标题 作者 图4-8 考试公告实体图 试卷 编号 是否使用 生成时间 管理员编号 图4-9 试卷实体图 考生组 编号 组名 老师编号 备注 图4-10 考生组实体图 答题卡 编号 考生答案 考试编号 得分 考生编号 试题类型 试题编号 是否批阅 图4-11 答题卡实体图 考生成绩单 考生编号 考生成绩 考试编号 是否暂停考试 考试剩下时间 编号 是否交卷 图4-12 考生成绩单实体图 管理员编号 操作日期 操作 公告编号 公告管理 编号 图4-13 公告管理实体图 管理员编号 操作日期 操作 考生组编号 考生组管理 编号 图4-14 考生组管理实体图 管理员编号 操作日期 操作 老师编号 老师管理 编号 图4-15 老师管理实体图 老师编号 操作日期 操作 试题编号 试题管理 编号 图4-16 试题管理实体图 管理员编号 操作日期 操作 考试编号 考试管理 编号 图4-17 考试管理实体图 试卷编号 组卷 编号 试题编号 图4-18组卷实体图 (3)数据库逻辑设计及表设计 依据系统总体概念设计模型、E-R图向关系模式转化规则和数据库范式理论,得到系统优化后逻辑模型[5],如表4-1~表4-17所表示: 表4-1 管理员表 (admin 表) 字段名称 类型 默认值 是否主键 是否为空 说明 AdminID Int 自增 Yes No 管理员编号 RealName varChar(20) No No 真实姓名 续表4-1 字段名称 类型 默认值 是否主键 是否为空 说明 Password varChar(20) No No 密码 Username varChar(20) No No 用户名 表4-2 老师表(teacher 表) 字段名称 类型 默认值 是否主键 是否为空 说明 TeacherID Int 自增 Yes No 老师编号 RealName varChar(20) No No 真实姓名 Password varChar(20) No No 密码 Username varChar(20) No No 用户名 Academy varChar(20) No No 所在院系 表4-3 考生表(student 表) 字段名称 类型 默认值 是否主键 是否为空 说明 StudentID Int 自增 Yes No 考生编号 Username varChar(20) No No 用户名 Password varChar(20) No No 密码 RealName varChar(20) No No 真实姓名 GroupID Int No No 考生组编号,外键 Academy varChar(20) No No 所在院系 表4-4 试题表(question 表) 字段名称 类型 默认值 是否主键 是否为空 说明 QuestionID Int 自增 Yes No 试题编号 Type Char(10) No No 试题类型 Description Nvarchar(500) No No 试题描述 Difficulty Char(10) No No 难度 ScoreOfQuestion Nvarchar(200) No No 该题分值 Answer Nvarchar(200) No No 参考答案 表4-5考试表(exam表) 字段名称 类型 默认值 是否主键
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服