《软件工程》课程设计范例.doc

上传人:jian****018 文档编号:7834517 上传时间:2020-03-24 格式:DOC 页数:52 大小:963KB
返回 下载 相关 举报
《软件工程》课程设计范例.doc_第1页
第1页 / 共52页
《软件工程》课程设计范例.doc_第2页
第2页 / 共52页
《软件工程》课程设计范例.doc_第3页
第3页 / 共52页
点击查看更多>>
资源描述
软件工程课程设计 题 目 C语言在线考试系统的设计与实现 学生姓名 学 号 院 系 计算机与软件学院专 业 指导教师 文学志二年 月 日目 录1.绪论11.1.C语言在线考试系统概述11.2.C语言在线考试系统的可行性分析11.2.1.经济可行性21.2.2.技术可行性21.2.3.社会可行性32.相关技术介绍32.1.B/S/S体系结构42.2.Java Server Pages42.3.Struts52.4.Hibernate62.5.MySQL62.6.Tomcat Web服务器73.系统的需求分析73.1.系统的功能需求73.2.系统的模块划分94.系统的设计104.1.系统的概要设计104.1.1.系统的总体结构104.1.2.系统数据库设计114.2.系统主要模块的详细设计194.2.1.试题管理模块设计194.2.2.考试管理模块设计214.2.3.在线考试模块设计214.2.4.答卷自动评分模块设计225.系统主要模块的实现245.1.创建项目245.1.1.开发环境的搭建255.1.2.系统的整体框架265.2.试题管理模块的实现275.2.1.创建持久化类和数据库访问相关类275.2.2.创建Struts相关类295.2.3.创建表示层JSP文件305.3.考试管理模块的实现325.3.1.初始种群的生成325.3.2.适应度值的计算335.3.3.选择(Select)345.3.4.交叉(Crossover)355.3.5.变异(Mutation)365.4.在线考试模块的实现375.4.1.倒计时子模块的实现375.4.2.故障延时子模块的实现385.5.答卷自动评分模块的实现406.系统的测试426.1.系统的测试环境426.2.系统的测试用例设计436.3.系统的测试结果456.4.系统的测试分析46结束语46参考文献46致 谢47C语言在线考试系统的设计与实现张三南京信息工程大学计算机与软件学院,南京 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语言在线考试系统的开发成本包括开发该系统的人力的费用以及用于购买部署该系统并充当服务器的计算机的费用。开发该系统估计需要四个开发人员一周的工作量,如果每人每月的工资为2000元,则开发该系统的人力费用约为2000元。为了部署该系统,需要购买一台带有较大容量磁盘的高性能计算机,费用估计在1万元。因此,开发该系统的成本总计为1.2万元。在未使用该系统之前,为了进行C语言考试,必须支出相应的人力费用进行出卷、组织考试和批阅试卷,这部分费用约为每年4000元。此外,由于传统考试模式需要用纸,每年需要约3500元的纸张费用。因此,若维护系统每年需花费500元,使用C语言在线考试系统每年可节省约0.7万元。根据以上的估计开发费用和节省的费用,在假设年利率i等于12%的前提下,可以计算得到投资的回收期为2.03年(如表1-1所示),即在使用C语言在线考试系统2.03年以后用户可以收回全部投资。因此,开发C语言在线考试系统在经济上是可行的。 表1-1 C语言在线考试系统的成本/效益分析购买设备1.0万元人力(四人、一周、2000元/月) 0.2万元开发成本总计1.2万元系统的维护费500元/年每年节省人力费用0.4万元每年节省纸的费用0.35万元每年节省的总费用0.7万元年节省(元)(1+i)的n次方现在值(元) 累计的现在值(元)10.7万1.120.625万0.625万20.7万1.140.558万1.183万30.7万1.400.498万1.681万第三年后纯收入0.481万投资回收期2.03年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 PagesJava Server Pages简称JSP12,是由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)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。第二,可重用的组件。绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EJB组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。第三,用标识简化页面开发。Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。2.3. StrutsStruts 是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. MySQLMySQL是最流行的开放源码SQL数据库管理系统,它是由MySQL AB公司开发、发布并支持的。MySQL AB是由多名MySQL开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。MySQL是一种关联数据库管理系统。关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL指得是结构化查询语言。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)。管理员考生组教师试题答题卡成绩单试卷考试考试公告考生教师管理考生组管理考试管理、属于、答题组卷试题管理自动阅卷指导查看1mpmmqn1m1mnnnmnn1p11mn公告管理、m使用1属于包含1pm图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 表)字段名称类型默认值是否主键是否为空说明AdminIDInt自增YesNo管理员编号RealNamevarChar(20)NoNo真实姓名续表4-1字段名称类型默认值是否主键是否为空说明PasswordvarChar(20)NoNo密码UsernamevarChar(20)NoNo用户名表4-2 教师表(teacher 表)字段名称类型默认值是否主键是否为空说明TeacherIDInt自增YesNo教师编号RealNamevarChar(20)NoNo真实姓名PasswordvarChar(20)NoNo密码UsernamevarChar(20)NoNo用户名AcademyvarChar(20)NoNo所在院系表4-3 考生表(student 表)字段名称类型默认值是否主键是否为空说明StudentIDInt自增YesNo考生编号UsernamevarChar(20)NoNo用户名PasswordvarChar(20)NoNo密码RealNamevarChar(20)NoNo真实姓名GroupIDIntNoNo考生组编号,外键AcademyvarChar(20)NoNo所在院系表4-4 试题表(question 表)字段名称类型默认值是否主键是否为空说明QuestionIDInt自增YesNo试题编号TypeChar(10)NoNo试题类型DescriptionNvarchar(500)NoNo试题描述DifficultyChar(10)NoNo难度ScoreOfQuestionNvarchar(200)NoNo该题分值AnswerNvarchar(200)NoNo参考答案表4-5考试表(exam表)字段名称类型默认值是否主键是否为空说明ExamIDInt自增YesNo考试编号GroupIDIntNoNo考生组编号,外键 续表4-5字段名称类型默认值是否主键是否为空说明PaperIDIntNoNo试卷编号,外键SupervisorIdvarChar(20)NoNo 监考人编号(管理员监考)ExamRoomvarChar(20)NoNo考场DescriptionNvarchar(500)NoNo考试描述ExamDateDateTimeNoNo考试日期DurationIntNoNo考试时长(分钟)TotalScoreIntNoNo考试总分表4-6考试公告表(notice表)字段名称类型默认值是否主键是否为空说明NoticeIDInt自增YesNo公告编号NoticeTitleNvarchar(30)NoNo公告标题ReadCntInt0NoNo浏览次数ContentNvarchar(500)NoNo公告内容AuthorChar(30)NoNo发布人表4-7试卷表(exam_paper 表)字段名称类型默认值是否主键是否为空说明PaperIDInt自增YesNo试卷编号AdminIDIntNoNo管理员编号,外键AddTimeDateTimeNoNo试卷生成时间IsUsedInt0NoNo是否使用表4-8 考生组表(stu_group 表)字段名称类型默认值是否主键是否为空说明GroupIDInt自增YesNo考生组编号GroupNameNvarchar(20)NoNo考生组名TeacherIDIntNoNo指导教师编号,外键MemoNvarchar(100)NoNo备注表4-9答题卡(answer_sheet 表)字段名称类型默认值是否主键是否为空说明SheetIDInt自增YesNo答题卡编号续表4-9字段名称类型默认值是否主键是否为空说明ExamIDIntNoNo考试编号,外键StudentIDIntNoNo考生编号,外键QuestionIDIntNoNo试题编号,外键TypeChar(1)NoNo试题类型IsCheckedBit(1)0NoNo是否批阅AnswerVarchar(300)NoNo考生答案ScoreIntNoNo该题得分表4-10 考生成绩单表(mark_sheet 表)字段名称类型默认值是否主键是否为空说明SheetIDInt自增YesNo成绩单编号ExamIDIntNoNo考试编号,外键StudentIDIntNoNo考生学号,外键IsPaperSubmittedBit(1)NoNo试卷是否提交IsExamPausedBit(1)NoNo考试是否暂停RemainMinuteIntNoNo考试剩余时间ScoreOfStudentIntNoNo考生总分 表4-11公告管理表(notice_org表)字段名称类型默认值是否主键是否为空说明NoticeOrgIDInt自增YesNo编号AdminIDIntNoNo管理员编号,外键NoticeIDIntNoNo公告编号,外键OperationChar(10)NoNo操作(修改信息等)OperationDateDateTimeNoNo操作日期表4-12考生组管理表(stu_group_org 表)字段名称类型默认值是否主键是否为空说明GroupOrgIDInt自增YesNo编号AdminIDIntNoNo管理员编号,外键GroupIDIntNoNo考生组编号,外键OperationChar(10)NoNo操作(修改信息等)OperationDateDateTimeNoNo操作日期表4-13 教师管理表(teacher_org 表)字段名称类型默认值是否主键是否为空说明TeacherOrgIDInt自增YesNo编号AdminIDIntNoNo管理员编号,外键TeacherIDIntNoNo教师编号,外键Operation Char(10)NoNo操作(修改等)OperationDateDateTimeNoNo操作日期 表4-14 试题管理表(question_org 表)字段名称类型默认值是否主键是否为空说明QuestionOrgIDInt自增YesNo编号TeacherIDIntNoNo教师编号,外键QuestionIDIntNoNo试题编号,外键OperationNvarchar(200)NoNo操作(添加、修改等)OperationDateDateTimeNoNo操作日期表4-15考试管理表(exam_org 表)字段名称类型默认值是否主键是否为空说明ExamOrgIDInt自增YesNo编号AdminIDIntNoNo管理员编号,外键ExamIDIntNoNo考试编号,外键OperationNvarchar(200)NoNo操作(修改信息等)OperationDateDateTimeNoNo操作日期表4-16组卷表(paper_composition 表)字段名称类型默认值是否主键是否为空说明PaperCreationIDInt自增YesNo编号QuestionIDIntNoNo试题编号,外键PaperIDIntNoNo试卷编号,外键4.2. 系统主要模块的详细设计本节在上一节系统概要设计的基础上,对系统的主要模块进行详细设计。系统的主要模块包括试题管理、考试管理、在线考试和自动评分模块。本文通过这些模块(子模块)的功能流程图来说明它们的详细设计。4.2.1. 试题管理模块设计 试题管理模块下分成了两个子模块,包括试题的录入子模块、试题编辑子模块,该模块只提供给教师用户使用。(1)试题录入试题录入子模块为教师用户提供试题(包括参考答案、难度和其他试题参数)的录入功能,以组建试题库,是自动组卷的基础。该子模块的功能流程图如图4-19所示:选择录入题型开始操作成功否结束录入试题(及参考答案)返回操作成功提示返回操作失败提示否是图4-19 试题录入子模块功能流程图(2)试题编辑试题编辑子模块为教师用户提供按关键字查询试题、修改和删除试题(包括参考答案)的功能。该子模块的功能流程图如图4-20所示:查询试题开始操作成功否结束返回操作成功提示返回操作失败提示修改试题删除试题选择操作类型试题存在否否返回试题不存在提示是否是图4-20 试题编辑子模块功能流程图4.2.2. 考试管理模块设计考试管理模块下分成三个子模块,即自动组卷子模块、考试信息管理子模块和考试公告管理子模块。本小节重点论述自动组卷子模块的详细设计。本文中自动组卷采用的是遗传算法,遗传算法的概念由Holland和他的同事在二十世纪六七十年代提出。遗传算法的来源于解释物种起源的进化理论。在自然界中,不适应环境的弱者将被自然选择所淘汰。强者有更多的机会通过繁殖将基因传递给后代。长远来说,带有正确基因组合的物种在种群中占据主导地位。有时,在缓慢的进化中,基因可能发生突变。如果这些突变能够在物种面对生存挑战时带来好处,旧物种就进化为新物种了。而不成功的突变则被自然选择所消灭13。本文中自动组卷子模块根据试卷所要求的各题型的题量、难度,通过遗传算法从试题库中选取相关的试题,自动生成试卷,并保存。算法的流程如图4-21所示,其中适应值低表示试卷更符合组卷要求:生成初试种群(试卷集)结束计算群体中每个个体(试卷)的适应值将适应值低的个体两两配对进行交叉运算将适应值高的个体淘汰对两两配对交叉后生成的个体进行变异保存适应值最低的个体(试卷)开始是否达到最大代数否是图4-21 自动组卷子模块功能流程图4.2.3. 在线考试模块设计在线考试模块下分成了四个子模块,本小节主要详细论述倒计时子模块、故障延时子模块的设计。(1)倒计时倒计时子模块在考生进行在线考试时在界面上给出考试的剩余时间,并在距离考试结束10分钟的时候在界面上给出相应提示,以提醒考生。其功能流程图如图4-22所示:倒计时开始结束剩余10分钟否否是 给出提示 倒计时剩余时间否否是图4-22 倒计时子模块功能流程图(2)故障延时故障延时子模块主要实现监考人员(由管理员担当)暂停某个考生考试的功能。该
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!