软件工程课程设计范例_第1页
软件工程课程设计范例_第2页
软件工程课程设计范例_第3页
软件工程课程设计范例_第4页
软件工程课程设计范例_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

题目C语言在线考试系统的设计与实现院系计算机与软件学院二0年月日1.2.1.经济可行性…………………错误!未指定1.2.2.技术可行性…………………错误!未指定书签。1.2.3.社会可行性…………………错误!未指定2.相关技术介绍……错误!未指定书签。2.1体系结构………错误!未指定书签。3.1.系统的功能需求………………错误!未指定书签。3.2.系统的模块划分………………错误!未指定书签。4.系统的设计……错误!未指定书签。4.1.系统的概要设计………………错误!未指定书签。4.1.1.系统的总体结构……………错误!未指定书签。4.1.2.系统数据库设计……………错误!未指定书签。4.2.系统主要模块的具体设计……错误!未指定书签。4.2.1.试题管理模块设计…………错误!未指定书签。4.2.2.考试管理模块设计…………错误!未指定书签。4.2.3.在线考试模块设计…………错误!未指定书签。4.2.4.答卷自动评分模块设计……错误!未指定书签。5.系统主要模块的实现……………错误!未指定书签。5.1.创建项目………错误!未指定书签。5.1.1.开发环境的搭建……………错误!未指定书签。5.1.2.系统的整体框架……………错误!未指定书签。5.2.试题管理模块的实现…………错误!未指定书签。5.2.1.创建长久化类和数据库访问相关类………错误!未指定书签。5.2.2.创建相关类…………………错误!未指定书签。5.2.3.创建表示层文件……………错误!未指定书签。5.3.考试管理模块的实现…………错误!未指定书签。5.3.1.初始种群的生成……………错误!未指定书签。5.3.2.适应度值的计算……………错误!未指定书签。5.4.1.倒计时子模块的实现………错误!未指定书签。5.4.2.故障延时子模块的实现……错误!未指定书签。5.5.答卷自动评分模块的实现……错误!未指定书签。6.系统的测试………错误!未指定书签。C语言在线考试系统的设计与实现张三南京信息工程高校计算机与软件学院,南京210044摘要:随着计算机技术、技术的迅猛发展,在线考试模式以其跨地域性、随时性和用户广泛性的特点,成为推动教化现代化的重要手段,已经成为对学生练习、考试、评价和分析教学效果的重要工具。本文探讨利用三层阅读器()体系结构,即阅读器服务器/数据库服务器结构来实现C语言科目的在线考试系统。该系统实现了试题库的管理、自动组卷和答卷的自动评分等功能,满意了广阔老师和考生的需求。该系统的实现以语言及其相关技术为基础,构建于数据库系统以及服务器之上。该系统的实现表明,在线考试系统能够提高试题库管理、考试组织和阅卷的效率,并同时保证考试的公正和公允。因此,其他科目的考试也可以开发相应的在线考试系统。关键词:在线考试系统;体系结构;;;自动组卷本章对C语言在线考试系统进行了概要性的介绍,并在经济、技术、社会三个方面对该系统开发的可行性进行了分析,以说明该系统的开发是可行的,可以马上起先研制工作。随着计算机技术、技术的迅猛发展,绝大部分高校都已接入互联网并建成了校内网,硬件设施也日趋完善。以互联网为基础的在线考试模式,以其跨地域性、随时性和用户广泛性的特点,成为推动教化现代化的重要手段,已经成为对学生练习、考试、评价和分析教学效果的重要工具。C语言在线考试系统利用开放、动态的系统架构,将传统的考试模式与先进的网络应用相结合,实现了C语言科目考试的无纸化、自动化、网络化。第一,本系统能够帮助老师便利地实现试题的管理,包括试题的录入、查询、修改、删除。其次,本系统实现了自动组卷功能,能够依据出题要求自动生成C语言考试试卷,供考生在线作答。第三,考生在运用本系统进行在线考试时,系统将供应倒计时功能,使考生能够随时了解考试的剩余时间。第四,本系统在考试时间截止之后将自动完成交卷,以保证考试肃穆公正地进行。第五,在答卷提交之后,本系统将对答卷进行自动评分并保存结果,以便考生查询考试成果。项目的可行性一般从三个方面进行分析,即经济可行性、技术可行性、社会可行性。经济可行性分析即进行开发成本的估算以及效益的评估,确定开发的项目是否值得投资开发;技术可行性分析是指对要开发的项目的功能、性能和限制条件进行分析,确定现有的资源条件下,技术风险有多大,项目是否能实现;社会可行性分析是指探讨要开发的项目是否存在侵扰、阻碍等责任问题,要开发的项目的运行方式在用户试系统的可行性进行分析,以便后续工作的C语言在线考试系统的开发成本包括开发该系统的人力的费用以及用于购买部署该系统并充当服务器的计算机的费用。开发该系统估计须要四个开发人员一周的工作量,假如每人每月的工资为2000元,则开发该系统的人力费用约为2000元。为了部署该系统,须要购买一台带有较大容量磁盘的高性能计算机,费用估计在1万元。因此,开发该系统的成本总计为1.2万元。在未运用该系统之前,为了进行C语言考试,必需支出相应的人力费用进行出卷、组织考试和批阅试卷,这部分费用约为每年4000元。此外,由于传统考试模式须要用纸,每年须要约3500元的纸张费用。因此,若维护系统每年需花费500元,运用C语言在线考试系统每年可节约约0.7万元。依据以上的估计开发费用和节约的费用,在假设年利率i等于12%的前提下,可以计算得到投资的回收期为2.03年(如表1-1所示),即在运用C语言在线考试系统2.03年以后用户可以收回全部投资。因此,开发C语言在线考试系统在经济上是可行的。表1-1C语言在线考试系统的成本/效益分析购买设备1.0万元0.2万元开发成本总计1.2万元系统的维护费500元/年每年节约人力费用0.4万元每年节约纸的费用0.35万元每年节约的总费用0.7万元年节约(元)(1)的n次方现在值(元)累计的现在值(元)10.7万0.625万0.625万20.7万0.558万1.183万30.7万0.498万1.681万第三年后纯收入0.481万投资回收期2.03年(1)对所建议的系统的简要描述C语言在线考试系统利用数据库对试题信息进行高效、便捷的管理,实现试题的录入、查询、修改和删除。同时,系统供应了自动组卷功能、倒计时功能、试卷提交功能、试卷评分功能,实现了考试的无纸化、自动化、网络化,并体现了考试的公正、肃穆。(2)与现有系统比较的优越性C语言在线考试系统利用数据库对试题进行管理,使得对大量试题的管理高效、便利地进行,而传统考试模式下的试题管理低效耗时,在试题达到肯定数量之后,管理起来非常不便,须要耗费大量的时间和精力。由于试题存放于计算机硬盘中,并采纳在线考试这种无纸化的考试模式,与传统考试模式相比,不仅节约了试题的存放空间,更是节约了大量的纸张(试卷和答题册),更加环保、节约。同时,该系统的自动组卷和评分功能使得出卷和评分过程自动化,与传统的手工出卷评分相比,节约了大量的劳力,使得广阔老师可以从繁重的出卷、评分工作中解脱出来,从而把更多的时间和精力用于教学和科研。此外,系统的试卷提交功能在考试时间截止时,自动完成试卷的提交,阻挡考生接着答题,使得考试的公正性和肃穆性较传统考试更好得体现。最终,该系统供应的倒计时功能,使得考生在考试过程中更合理地支配时间,有助于考生取得好成果。(3)采纳建议系统可能带来的影响采纳C语言在线考试系统之后,试题的管理效率,组织考试和评卷的效率将大为提高,有利于在短时间内实现对考生的C语言学习状况的检验。同时,本系统将节约大量的纸资源,节约组织考试的开支。老师将从繁重的出题、组织监督考试、评分的工作中解脱出来,把更多的时间和精力用于教学和科研。采纳C语言在线考试系统之后,要求老师适应新型的试题管理模式,须要老师驾驭该系统的运用。对考生而言,要求他们适应新型考试模式,同样,也须要他们熟识系统的运用。(4)所建议技术可行性分析C语言在线考试系统是一个基于体系结构的网络应用系统,开发这类系统的技术已经比较成熟,比如技术、技术等等。同时,考虑到开发人员对这类系统以及相关的技术比较熟识且开发期较为充裕,预料可以再规定期限内完成开发。(1)法律方面的可行性C语言在线考试系统的研制和开发的过程,将在严格遵守国家各项法律法规的基础上进行,将不会侵扰他人、集体和国家的利益。同时,在系统的开发过程中,将严格遵守与客户签订的合同的各项条款。(2)运用方面的可行性C语言在线考试系统的研制和开发将充分考虑到用户的业务往来、管理流程和人员素养等,从而能满2.相关技术介绍C语言在线考试系统的开发采纳了三层阅读器()体系结构,即阅读器服务器/数据库服务器结构[7]。本文中采纳了语言及相关技术、和实现该系统,并以作为服务器,以作为数据库服务器。本章是对这些技术和服务器的介绍。2.1.体系结构将技术的结构与数据库系统的三层体系结构结合,产生了阅读器服务器/数据库服务器结构,如图2-1所示。体系结构是指在的支持下,以为传输协议,客户通过阅读器访问服务器和与服务器相连的后台数据库的体系结构,它由阅读器、服务器、中间件和数据库服务器组成。在结构中,各组成部分之间通过(或)相连,遵守协议,阅读器通过发送恳求和服务器端建立连接,从而实现以整个为背景的数据存储和访问。服务器服务器恳求数据库(应用程序)数据库服务器阅读器页面结果恳求图2-1数据库系统的三层体系结构结构中的表示层有阅读器,它向网络上的服务器提出服务恳求,接收服务器返回的页面并显示给用户;事务逻辑层有服务器,它接受用户的恳求并推断恳求的类型。假如恳求的是一般静态页面,就干脆在服务器的文件系统中找到页面并返回;否则执行相应的应用程序,比如对数据库进行更新、查询等,随后获得数据库操作的结果,将结果动态生成页面,返回给表示层的客户端;数据层则有数据库服务器,实现数据的存储、维护、访问和更新,它接受服务器的数据操作恳求,并把运行结果返回给服务器。第一,基于开放式网络标准协议,完全实现了跨平台访问计算机及其网络上的各种资源,具有很强的系统独立性和平台无关性。其次,软件维护开销大大降低,只需开发维护服务器应用程序,无需开发客户端程序,规范和统一了客户端程序的标准阅读器,从而统一了用户界面。第三,充分发挥了数据库管理系统()高效的数据存储和数据管理实力,实现了更大程度和更大范围的数据库资源共享。结构代表了当前数据库应用软件技术发展的趋势,是目前开发数据库应用系统普遍采纳的数据库系统体系结构。它的优点使它成为构建高效平安数据库应用系统首选的体系结构[7]。简称[121,是由公司提倡、很多公司参加一起建立的一种动态网页技术标准。技术有点类似技术,它是在传统的网页文件(*,*)中插入程序段)和标记(),从而形成文件(*)。用开发的应用是跨平台的,既能在下运行,也能在其他操作系统上运行。与前一代开发语言(、)相比,在以下几个方面有了重大突破:第一,通过的扩展标签库和功能,网站逻辑和网站界面可以完备地分别。其次,运用,可以轻松地在开发的中实现事务、平安、会话等等企业级应用所须要的功能。第三,2.0供应了不同的数据库产品无关的数据库连接方式,更重要的是,数据库连接池供应了一种比一般的数据库连接方式效率高得多的连接方式。服务器在遇到访问网页的恳求时,首先执行其中的程序片段,然后将执行结果以格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送等等,这就是建立动态网站所须要的功能。全部程序操作都是在服务器端进行,网络上传送给客户端仅是得到的结果,对客户阅读器的要求最低,可以实现无,无,无,甚至无。具有以下的优点6]:第一,将内容的生成和显示进行分别。运用技术,页面开发人员可以运用或者标识来设计和格式化最终页面。运用标识或者小脚原来生成页面上的动态内容。生成内容的逻辑被封装标识在组件中,并且捆绑在小脚本中,全部的脚本在服务器端运行。管理人员和页面设计者,能够编辑和运用页面,而不影响动态内容的生成。在服务器端,引擎标识和小脚本,生成所恳求的动态内容并且将结果以(或)页面的形式发送回阅读器。这有助于作者爱护自己的代码,而又保证任何基于的阅读器的完全可用性。其次,可重用的组件。绝大多数页面依靠于可重用的,跨平台的组件(或者组件)来执行应用程序所要求的更为困难的处理。开发人员能够共享和交换执行一般操作的组件,或者使得这些组件为更多的运用者或者客户团体所运用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。第三,用标识简化页面开发。页面开发人员不会都是熟识脚本语言的编程人员。技术封装了很多功能,这些功能是在易用的、与相关的标识中进行动态内容生成所须要的。标准的标识能够访问和实例化组件,设置或者检索组件属性,下载,以及执行用其他方法更难于编码和耗时的功能。是软件基金组织项目的一个子项目,的前身是R.编写的2架构。在英文中是"支架、支撑"的意思,这表明白在应用开发中的巨大作用,采纳可以更好地遵循模式。此外,供应了一套完备的规范,以及基础类库,可以充分利用的优点,减轻程序员的工作量,具有很强的可扩展性。的作者参加了规范制定以及4的开发,同时还领导制定了J2平台的层架构的规范。受此影响,框架一经推出,马上引起了开发者的广泛爱好,并在全世界推广开来,最终成为世界上应用最广当前的软件开发语言已经全面转向面对对象,而数据库系统仍停留在关系数据库阶段。面对困难的企业环境,同时运用面对对象语言和关系数据库是相当麻烦的,不但中间的过渡难以理解,而且其开发周期是一个面对环境的对象/关系数据库映射工具。对象/关系数据库映射()表示一种技术,用来把对的目标是:释放开发者通常的数据长久化相关的编程任务的95%。对于以数据为中心的程序而言,往往在数据库中运用存储过程来实现商业逻辑,可能不是最好的解决方案。但对于那些基于的中间件应用中,设计采纳面对对象的业务模型和商业逻辑时,是最有用的。不管怎样,能消退那些针对特定数据库厂商的代码,并且把结果集由表格式的形式转换成值对象的形式。不仅管理类到数据库表的映射(包括数据类型到数据类型的映射),还供应数据查询和获得数据的方法,可以大幅度地削减在开发时人工运用和处理数据的时间。是最流行的开放源码数据库管理系统,它是由公司开发、发布并支持的。是由多名开发人创办的一家商业公司。它是一家其次代开放源码公司,结合了开放源码价值取向、方法和胜利的商业模型。是一种关联数据库管理系统。关联数据库将数据保存在不同的表中,而不是将全部数据放在一个大的仓库内。这样就增加了速度并提高了敏捷性。的指得是结构化查询语言。是用于访问数据库的最常用标准化语言,它是由标准定义的。标准自1986年以来不断演化发展,有数种版本。软件是一种开放源码软件。开放源码意味着任何人都能运用和变更软件。任何人都能从下载软件,而无需支付任何费用。假如情愿,你可以探讨源码并进行恰当的更改,以满意你自己的需求。数据库服务器具有快速、牢靠和易于运用的特点。服务器还有一套好用的特性集合,这些特性是通过与用户的亲密合作而开发的。在的基准测试主页上,给出了服务器和其他数据库管理器。服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已胜利用于众多要求很高的生产环境。尽管始终在不断发展,但目前服务器已能供应丰富和有用的功能。它具有良好的连通性、速度和平安性,这使得非常适合于访问上的数据库。服务器工作在客户端/服务器模式下,或嵌入式系统中。数据库软件是一种客户端/服务器系统,由支持不同后端的1个多线程服务器,数种不同的客户端程序和库,众多管理工具和广泛的应用编程接口组成。还能以嵌入式多线程库的形式供应服务器,你可以将其链接到你的应用程序,从而获得更小、更快、和更服务器是一个免费的开放源代码的应用服务器。它是软件基金会()的项目中的一个核心项目,由、和其他一些公司及个人共同开发而成[11]。由于有了的参加和支持,最新的和规范总是能在中得到体现,5支持最新的2.4和2.0规范。因为技术先进、性能稳定,而且免费,因而深受爱好者的宠爱并得到了部分软件开发商的认可,成为目前比较流行的应用服务器。很受广阔程序员的宠爱,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感爱好的程序员都可以更改它或在其中加入新的功能。是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍运用,是开发和调试程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好服务器,可利用它响应对页面的访问恳求。事实上部分是服务器的扩展,但它是独立运行的,所以当你运行时,它事实上作为一个与独立的进程单独运行的。这里的诀窍是,当配置正确时,为页面服务,而事实上运行页面和。另外,和、等服务器一样,具有处理页面的功能,另外它还是一个和容器,独立的容器是的默认模式。不过,处理静态的实力不如服务器。在系统的可行性分析完成以后,并确定系统可以马上投入设计和研制时,下一步要做的工作便是系统的需求分析,即通过各种途径(访谈、调查问卷、实地考察等)了解并明确用户对所要开发的系统各方面的需求,包括功能上的要求、性能上的要求、操作便利性的要求等等。本章对C语言在线考试系统进行了需求分析,主要是依据用户对系统功能方面的要求,明确了系统所要实现的各个功能的相关细微环节,并在此基础上对系统进行了模块划分,为后续的系统的设计打下基础。3.1.系统的功能需求依据用户对系统功能方面的实际要求,C语言在线考试系统的主要功能包括:用户登录验证功能、用户管理功能、试题管理功能(试题的录入、查询、修改、删除)、考试管理功能、自动组卷功能、倒计时功能、试卷提交功能、故障延时功能和答卷自动评分功能。本节具体地说明白用户对这些功能的需求。(1)用户登录验证功能用户在登录C语言在线考试系统时必需进行身份验证,只有通过了身份验证,才能进入并运用该系统。系统的用户应分成三大类,即管理员、老师和考生。用户在登录时,系统应供应用户类别的选择,以区分不同用户的登录;用户在选择好登录身份之后,系统应当要求用户供应用户名和密码,以进行登录验证。系统应当为管理员(有若干位)预置登录的用户名和密码,并允许管理员修改用户名和密码。在系统供应应老师和考生运用前,管理员负责向系统中提前录入老师和考生的一些相关信息,比如老师的编号、考生的学号以及各自的身份证号等等,这些信息可用来作为这两类用户首次登录时的验证信息。用户首次登录之后,系统应当要求用户修改登录信息,特殊是登录密码,以防止他人冒用。此外,为了防止恶意软件进行系统攻击,每个用户登录之前都要以图片的形式产生一组随机验证码[8],用户必需输入正确的验证码才能进入系统。(2)用户管理功能C语言在线考试系统应当对用户进行有效的管理。系统的用户分成了三类,即管理员、老师和考生。管理员具有系统操作的最高权限,负责添加老师和考生用户,并查看其用户信息(不包括密码)。管理员的初始用户名和密码是内置的,管理员可以修改自己的用户名和密码,并添加和修改其他相关信息。对于老师用户来说,用户信息应至少包括登录的用户名和密码,初始时可以选择老师的老师编号作为用户名,身份证号作为密码,之后可以修改。老师可以添加和修改自身相关的其他信息,并查看考试结果(包括相关分析)。对于考生来说,用户信息应至少包括用户名、密码,初始时,用户名为考生的学号,密码为考生的身份证号,之后可以修改。考生可以添加和修改自身的相关其他信息,并查看考试成果。(3)试题管理功能C语言在线考试系统须要实现试题的管理功能,即组建一个试题库,以便对大量的C语言试题进行高效、便捷的管理。该功能包括:试题的录入,即使得老师能够便利地将C语言试题及其参考答案录入系统的试题库。试题录入子功能应当依据老师录入的试题的类型(选择题、填空题、程序设计题)对试题进行分类管理;试题的查询,即使得老师能够依据试题的某些关键字便利地查询试题,以便检查和修改试题。试题的查询子功能同样应当对不同的题型进行分类查询,以提高查询的效率;试题的修改,即使老师能够对已经录入系统的试题及其参考答案进行不限次数的修改,以便提高试题本身或参考答案的精确性;试题的删除,即使老师能够删除已经录入系统的试题(连同参考答案),以便更新试题库。(4)考试管理功能考试管理功能,即系统供应管理员对考试信息以及考试公告的管理功能。具体来说,系统管理员用户可以支配考试、编辑考试信息、利用自动组卷功能生成试卷投入考试运用;系统管理员可以发布、编辑考试公告。而老师和考生用户则只能阅读考试(5)自动组卷功能自动组卷功能,即系统能够自动生成C语言试卷,供考生作答。自动组卷功能应当依据管理员的要求组卷,即管理员可以设置试卷所包括的题型,各类题型的分值和题数,各类型的试题在试卷上的先后依次以及考试的时间限制。自动组卷功能应当依据管理员设置的出卷要求依据某种算法从试题库中选择相应的试题,保证每个试题都有机会出现在试卷上,并且每次组卷试卷相同的概率尽可能小。(6)倒计时功能倒计时功能,即在考生进行测试的界面上供应倒计时,以便考生随时了解考试的剩余时间。倒计时功能应当依据老师设置的考试的时间限制精确地进行,保证考试的公允性。倒计时功能应当在考试结束前10分钟时给出相应的提示,提示考生抓紧时间作答。此外,该功能出现在界面上的位置应当合理,显示的大小适中,不至于分散考生的留意力,产生负面效果。(7)试卷提交功能试卷;另一种状况是考生在规定的考试时间内没能完成答题,此时,系统将自动完试卷的提交,以避开考生接着答题,破坏考试的公允性。对于提前完成考试并欲提交试卷的考生,试卷提交功能在正式提交试卷之前,应当给出确认提示,保证考生不是由于误操作而提交试卷。自动提交试卷的状况则应当与倒计时功能相一样,确保倒计时到零时自动提交试卷并切换主界面到考试结束界面。(8)故障延时功能当故障解除之后,考生可重新登录系统,进入考试,此时考生的考试剩余时间同故障发生时相同,即考生(9)答卷自动评分功能答卷自动评分功能完成考生答卷的批阅和评分工作,得出考生的成果。由于C语言考试试题一般包括选择题、填空题和程序设计题,所以系统应能够自动完成这三类试题的批阅和评分。对于程序设计题,应能将考生的程序保存下来,批量编译、运行,得出结果以推断程序是否正确。依据系统的功能需求,将C语言在线考试系统分成六大模块进行设计:(1)用户登录验证模块;(2)用户管理模块;(3)试题管理模块;(4)考试管理模块;(5)在线考试模块;(6)答卷自动评分模块。各个模块及子模块的划分和功能说明如表3-1所示:表3-1C语言在线考试系统的模块划分编号模块名称子模块名称功能说明1用户登录模块实现用户登录时的身份选择、验证。2用户管理模块管理员信息管理模块添加、删除老师和考生用户;修改和查看老师和考生的部分信息;修改和查看管理员个人信息。老师信息管理模块修改和查看老师个人信息;查看考生的部分信息。考生信息管理模块修改和查看考生个人信息、查询考试相关信息。续表3-1编号模块名称子模块名称功能说明3试题管理模块试题录入模块允许老师录入试题及参考答案。试题编辑模块允许老师对试题库中的试题进行查询、修改、删除。4考试管理模块自动组卷模块自动组卷;保存、查看、删除试卷。考试信息管理模块发布考试;保存、修改、删除考试信息。考试公告管理模块对考试公告进行添加、修改、删除。5在线考试模块倒计时模块给出考试剩余时间和相应的提示信息。试卷提交模块允许考试提前交卷;考试时间截止时自动交卷。试题显示及作答模块显示试题,供考生在线作答。故障延时模块故障发生时,暂停考生的答题倒计时。6答卷自动评分模块客观题评分模块对选择题、填空题进行自动评分,并保存得分。程序设计题评分模块对程序设计题自动评分,并保存得分。在C语言在线考试系统的需求分析和模块划分完成的基础上,本章论述了该系统的概要设计和主要模本节对C语言在线考试系统进行概要设计,给出了系统的总体结构图和数据库的设计。依据上一章需求分析中的系统模块划分,对C语言在线考试系统进行总体设计,得到系统的总体结构图如图4-1所示(各模块的功能说明见上一章表3-1):程程序设计题评分答卷自动评分客观题评分故障延时试卷提交倒计时试题显示及作答考试公(告管理考试信息(管理自动组卷试题编辑试题管理试题录入考生信息管理老师信息管理管理员信息管理用户登录验证考试管理用户管理在线考试图4-1系统的总体结构图本节依据系统各模块的功能和模块间的相互关系,对系统的数据库设计进行论述,包括了数据库的需求分析、概念结构设计、逻辑设计和表设计。(1)数据库的需求分析C语言在线考试系统实现了用户管理、试题管理、在线考试、试卷评分等功能,这些功能所涉及到的为实现用户的管理,必需在数据库中保存用户的信息,由于用户分成管理员、老师和考生三类,数据库中应建立对应的管理员表、老师表和考生表。此外,为了便利管理同一考场的考生,数据库中应建立考为实现试题的管理,数据库中应建立试题表以保存试题信息。为实现考试的管理,数据库中应建立试卷表保存自动组卷功能生成的试卷;应建立考试信息表和考试为实现在线考试和试卷评分,数据库中应建立答题表存放考生的答题结果。此外,应建立考生的成果对于系统图中的关系(即多对多关系),也应建立相应的表。(2)数据库的概念结构设计4-2)以及实体图(图4-3~图4-18)。考试管理考试管理Q公告管理m1考生组mm查看m1成果单1属于nm组卷n/属于运用n自动阅卷答题卡管理员试卷npp图4-2C语言在线考试系统数据库概念结构设计(图)图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)数据库的逻辑设计及表设计依据系统的总体概念设计模型、图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型[5],如表4-1~表4-17所示:表4-1管理员表(表)字段名称类型默认值是否主键是否为空说明自增管理员编号真实姓名续表4-1字段名称类型默认值是否主键是否为空说明密码用户名字段名称类型默认值是否主键是否为空说明自增老师编号真实姓名密码用户名所在院系表4-3考生表(表)字段名称类型默认值是否主键是否为空说明自增考生编号用户名密码真实姓名考生组编号,外键所在院系表4-4试题表(表)字段名称类型默认值是否主键是否为空说明自增试题编号试题类型试题描述难度该题分值参考答案表4-5考试表(表)字段名称类型默认值是否主键是否为空说明自增考试编号考生组编号,外键续表4-5字段名称类型默认值是否主键是否为空说明试卷编号,外键监考人编号(管理员监考)考场考试描述考试日期考试时长(分钟)考试总分表4-6考试公告表(表)字段名称类型默认值是否主键是否为空说明自增公告编号公告标题0阅读次数公告内容发布人表4-7试卷表(表)字段名称类型默认值是否主键是否为空说明自增试卷编号管理员编号,外键试卷生成时间0是否运用表4-8考生组表(表)字段名称类型默认值是否主键是否为空说明自增考生组编号考生组名指导老师编号,外键备注表4-9答题卡(表)字段名称类型默认值是否主键是否为空说明自增答题卡编号续表4-9字段名称类型默认值是否主键是否为空说明考试编号,外键考生编号,外键试题编号,外键试题类型0是否批阅考生答案该题得分表4-10考生成果单表(表)字段名称类型默认值是否主键是否为空说明自增成果单编号考试编号,外键考生学号,外键试卷是否提交考试是否暂停考试剩余时间考生总分字段名称类型默认值是否主键是否为空说明自增编号管理员编号,外键公告编号,外键操作(修改信息等)操作日期表4-12考生组管理表(表)字段名称类型默认值是否主键是否为空说明自增编号管理员编号,外键考生组编号,外键操作(修改信息等)操作日期表4-13老师管理表(表)字段名称类型默认值是否主键是否为空说明自增编号管理员编号,外键老师编号,外键操作(修改等)操作日期表4-14试题管理表(表)字段名称类型默认值是否主键是否为空说明自增编号老师编号,外键试题编号,外键操作(添加、修改等)操作日期表4-15考试管理表(表)字段名称类型默认值是否主键是否为空说明自增编号管理员编号,外键考试编号,外键操作(修改信息等)操作日期表4-16组卷表(表)字段名称类型默认值是否主键是否为空说明自增编号试题编号,外键试卷编号,外键4.2.系统主要模块的具体设计本节在上一节系统概要设计的基础上,对系统的主要模块进行具体设计。系统的主要模块包括试题管理、考试管理、在线考试和自动评分模块。本文通过这些模块(子模块)的功能流程图来说明它们的具体试题管理模块下分成了两个子模块,包括试题的录入子模块、试题编辑子模块,该模块只供应应老(1)试题录入试题录入子模块为老师用户供应试题(包括参考答案、难度和其他试题参数)的录入功能,以组建试题库,是自动组卷的基础。该子模块的功能流程图如图4-19所示:起先起先录入试题(及参考答案)否☑结束图4-19试题录入子模块功能流程图(2)试题编辑试题编辑子模块为老师用户供应按关键字查询试题、修改和删除试题(包括参考答案)的功能。该子模块的功能流程图如图4-20所示:起先起先查询试题立是立删除试题操作胜利否是结束江修改试题试题存在否图4-20试题编辑子模块功能流程图考试管理模块下分成三个子模块,即自动组卷子模块、考试信息管理子模块和考试公告管理子模块。本小节重点论述自动组卷子模块的具体设计。本文中自动组卷采纳的是遗传算法,遗传算法的概念由和他的同事在二十世纪六七十年头提出。遗传算法的来源于说明物种起源的进化理论。在自然界中,不适应环境的弱者将被自然选择所淘汰。强者有更多的机会通过繁殖将基因传递给后代。长远来说,带有正确基因组合的物种在种群中占据主导地位。有时,在缓慢的进化中,基因可能发生突变。假如这些突变能够在物种面对生存挑战时带来好处,旧物种就进化本文中自动组卷子模块依据试卷所要求的各题型的题量、难度,通过遗传算法从试题库中选取相关的试题,自动生成试卷,并保存。算法的流程如图4-21所示,其中适应值低表示试卷更符合组卷要求:生成初试种群(试卷集)计算群体中每个个体(试卷)的适应值否是否达到最大代数保存适应值最低的个体(试卷)图4-21自动组卷子模块功能流程图在线考试模块下分成了四个子模块,本小节主要具体论述倒计时子模块、故障延时子模块的设计。(1)倒计时倒计时子模块在考生进行在线考试时在界面上给出考试的剩余时间,并在距离考试结束10分钟的时候在界面上给出相应提示,以提示考生。其功能流程图如图4-22所示:倒计时否剩余10分钟否是给出提示倒计时是否图4-22倒计时子模块功能流程图(2)故障延时故障延时子模块主要实现监考人员(由管理员担当)暂停某个考生考试的功能。该子模块的功能流程起先起先否结束是图4-23故障延时子模块功能流程图(1)客观题评分客观题评分子模块实现对选择题、填空题进行自动评分(通过对比考生答案和参考答案)并保存得分。其功能流程图如图4-24所示:是否还有答题卡否是是结束否图4-24客观题评分子模块功能流程图(2)程序设计题评分程序设计题评分子模块从考生答题卡中获得考生编写的程序,将其保存为C语言源程序(*),并进行编译、运行得出结果。通过对比考生程序的运行结果和试题的参考答案来确定考生是否得分。若考生的程序无法通过编译则不进行运行操作,其功能流程图如图4-25所示:起先起先是否还有答题卡是从答题卡中获得试题编号是获得考生程序代码将考生代码保存为C语言源文件(*)编译源文件否编译是否通过是运行程序将程序运行结果同参考答案进行对比否是否相同是保存考生得分结束图4-25程序设计题评分子模块功能流程图本章在上一章系统主要模块具体设计的基础上,给出了C语言在线考试系统的主要模块的具体实现过程,包括项目创建过程和这些模块的主要实现代码。5.1.创建项目在本文中,系统的实现用到了经典框架(1)和经典框架(3)。系统的数据库管理软件为(5.1),服务器为(6)。在系统开发工作起先之前,必需下载、安装和配置这些开发工具和软件。本节介绍开发环境的搭建和项目的整体结构。本系统的开发环境的搭建步骤如下:a)从公司的官方网站()上下载适合所运用操作系统的和并安装;b)编辑系统环境变量,使其包含安装书目下的书目;c)编辑系统环境变量,使其包含安装书目下的书目中的和;d)从网站下载6的压缩包,解压后置于随意书目下;e)添加系统环境变量,其值为所在书目;f)添加系统环境变量,其值为所在书目;g)从网站下载(作为编译工具)压缩包,解压后置于随意书目下;h)添加系统环境变量,其值为所在书目;i)从网站下载压缩包,解压后备用;j)从网站下载压缩包,解压后备用;k)在书目下的书目中新建书目作为本项目的书目,在该书目下创建项目的文件结构,如下所示:一该书目下存放中源程序编译后生成的文件和相关的配置文件||系统的国际化配置文件系统的配置文件|—存放系统所需的包—该书目下存放系统的源程序和相关的配置文件相关的源程序所在书目|—存放类|一存放与访问数据库相关的类ll—存放长久化类I—系统的国际化配置文件-系统的配置文件|一系统的配置文件|一系统的配置文件|一系统的配置文件,以便运用进行源程序的编译|的标签库|—存放样式列表1—系统的样式列表文件|—存放系统所需的图片文件|—存放页面中公用的文件|—存放与用户相关的页面1—存放与用户相关的页面|—存放与用户相关的页面—为登录页面随机生成验证码|一登录页面系统的整体框架结构可由图5-1所示:考试页面考试页面成果查询页面个人信息管理页面考生信息查看页面在线阅卷页面试题管理页面个人信息管理页面在线监考页面考试公告管理页面考试管理页面考生组管理页面老师管理页面个人信息管理页面管理员主页老师主页考生主页登录页面图5-1系统的整体框架结构试题管理模块用于完成试题的录入、查看、修改和删除。本节依据节中该模块的设计,对该模块进行5.2.1.创建长久化类和数据库访问相关类试题管理模块所需的长久化类主要包括:和,为它们创建相应的配置文件以及,并在添加相应配置内容。同时,创建类用户封装对相应数据库表的操作。以下是类的主要代码,完成对试题的查看、添加、修获得试题}保存试题添加记录}修改试题+"'""","+""""',"保存修改记录}删除试题}为该模块设计的类包括:,(带有相应的)和(带有相应的),以响应来自用户的操作恳求。以下是类的方法的代码,其他类的设计与此类似:从相应的中获得用户提交的数据m”,假如试题已经存在"该试题已经存在,请不要重复录入相同的试题!";"试题录入胜利!您可以接着录入新的试题或者退出试题录入。";}在表示层(显示图形界面),该模块包括了这几个文件:、、和,分别显示试题列表、试题详情、添加新试题和修改试题的用户界面。以下是的主要内容,其他文件的设计与此类似:O("")获得试题列表("<"[1]+">多选题>");("<"[2]+">推断题>");("<"[3]+">填空题>");诚题管理添加试题编号出题人发布时间单选题下列不属于结构化程序设计方法诚题管理添加试题编号出题人发布时间单选题下列不属于结构化程序设计方法李强李强李强李强李强李强李强李强单选题单选题单选题单选题单选题单选题单选题单选题单选题单选题单选题单选题单选题两个或两个以上模块之间关联2010-04-1921:28:31.0查看修改删除 2010-04-1922:19:31.0查看修改删除2010-04-2022:02:25.0查看修改删除查看修改删除2010-04-2511:46:39.0查看修改删除23456789李强李强李强李强查看修改删除2010-04-2511:52:52.0尾页第1页共13页("<"[4]+">难>");("<><>试题简述:<><><"'81'"""O+"/><>")显示试题简述("<"><>试题内容:><><"'80''15'">")+"><>>")显示试题内容("<><">参考答案:<><><"'80''10'">")+"<><><>")显示试题参考答案该模块的部分运行截图如下:图5-2试题列表试题管理类型:鼻选是难度:健单√分值:简述:在线阅卷考生信息查看个人信息管理保存试题您好!季强人退出系统返回上级图5-3添加试题5.3.考试管理模块的实现考试管理模块下分为自动组卷、考试信息管理和考试公告管理三个子模块。由于对试卷、考试以及公告信息的操作类似于试题管理中对试题的操作,因此本节主要论述自动组卷子模块核心算法的实现。交叉和变异操作。算法的目标是产生符合用户对题型和难度比例要求的试卷。以下各个小节将分别给出相本文中,初始种群是随机产生的,种群中的每个个体(染色体)只包含两种基因,即题型和难度。题型和难度都是三种,因此可以用整数进行编码,即用1、2、3分别表示三种类型中的一种。以下是初始种群生成代码(O):;种群总数为三种类型的试题数)(*);加上交叉操作的个体数之和□类型的数组存放个体的适应度值[i][i](O(O*3)+1);随机产生每个试题的类型[i][i](O(O*3)+1)随机产生每个试题的难度}}在本文中,适应度值是由种群中题型和难度比例同用户要求之差的肯定值乘以相应的权重计算得来的。以下是计算各个个体适应度值的源代码(O):;类型适应度值;难度适应度值;试题类型;试题难度0;个体中选择题数0;个体中填空题数0;个体中程序设计题数0;个体中简洁题数0;个体中中等题数0个体中难题数;个体中试题总数(0<){统计个体中各个题型试题数,各个难度级别的试题数}}}()计算类型适应度值(*100)计算难度适应度值*10*10返回个体的适应度值}本文中,选择算法比较简洁,即对种群中的个体依据适应度值进行排序,再依据交叉比率选择排在前面的若干个体进行下一步的交叉操作。以下是源代码(O):(O<*(1)){选择法排序([j]O<[]0){}}}本文中,交叉操作采纳的是单点交叉,交叉点在个体(染色体)中心。对选择操作完成后获得的个体进行两两随机配对,交叉后产生一对后代。以下是源代码(O):[];随机数组,数组中的数字各不相同,用于个体随机两两配对();生成随机数组单点交叉生成下一代(0<){生成第一个子女[[]O][p].([[[i]])][p]O);[[]O][p].[[]()][p].[[](][p].([[[1]]0][p]O);}(O<){生成其次个子女[[1]0][p].([[[1]]O][p]O);[[1]0][p].[[1]]][p].[[1]0][p].本文中变异随机产生,变异的个体数由变异率和种群数确定,产生变异的个体只有一个基因发生突变。变异操作的主要目的是防止求得的解(试卷)是局部最优解。以下是源代码(O):[;随机数组,保存若干互不相同的随机数O(*);变异个体数;为变异点(基因所在位置)();生成随机数组(0<){进行变异(0(O*2)+1)%3;}在线考试模块下有三个子模块,分别是倒计时子模块,试卷提交子模块和试卷的显示和作答子模块。本节将论述倒计时子模块和试卷提交子模块的具体实现。倒计时子模块并不困难,通过可以较简洁地实现,以下是关键代码,在在线考试页面加载时调用,之后以悬浮窗的形式显示:){计算剩余时间}){倒计时();获得当前时间考试结束,自动提交试卷(“O”,1000)每一秒种刷新一次,产生倒计时效果}故障延时子模块主要实现的功能是暂停某考生的考试,保存剩余时间,当考生再次登录系统进行考试时接着倒计时。该子模块的核心代码如下:(((""))O获得考试编号类分装了对成果表的数据库访问操作获得该考生在该考试中的成果表(O){考生没有提交试卷时才能进行暂停考试操作(O){考试处于非暂停状态时才能暂停"";}{考试处于暂停状态时返回错误信息"请不要重复操作!";}H考试已经提交试卷,返回错误信息”该考生已经提交试卷!";"".{跳转至操作结果显示页面}在线考试模块运行截图如下所示:1小时52分钟0秒C1小时52分钟0秒C考生组(1)C语言小测试考试日期:2010年5月18日共35题1.单选题对程序段"x=-1;do{x=x*x;}while(!x)"描述正确的是:A.是死循环B.循环执行两次C.循环执行一次D.有语法错误A.◎B.OD.图5-4在线答题否否否否否否否否否否否否您好!张亮人退出系统您好!张亮人退出系统暂停人数:0线监考生名线监考生名朱茱是否暂停答题是否暂停答题暂停考试暂停考试暂停考试图5-5在线监考在本系统中试卷评分模块分为客观题评分和程序设计题评分两部分。客观题的评分主要实现的是将考生选择、填空题答案和参考答案进行比较,看两者是否相同,其实现比较简洁。程序设计题自动评分相对困难,为了降低问题的困难性,在本文中,程序设计题都设计为运行只输出特定单行字符串结果。这样的话,就可以通过编译、运行考生的程序得到结果,再和标准答案相比较看是否相同,来推断考生的程序是否正确。试卷评分模块只供应应老师用户运用,以便批量批阅考试答卷。封转了对数据库中答题表的操作();批阅选择填空题()获得考生的程序代码(O){对某场考试每个考生的每个程序设计题代码进行编译、运行将从数据库中获得的代码进行处理,主要留意斜杠和单引号的问题/*将代码以C语言源程序(*)的形式保存于特定书目下,文件名由考试编号、考生编号和试题编号组成*/类封装了文件输出操作类封装了调用6.0限制台程序来编译、运行C程序的操作{编译通过后才执行程序运行结果同标准答案相同则考生得分((0O)(0O)){}}();填写成果单(;对一题未答,交白卷考生,成果置0{返回结果页首页首页试题管理在线阅卷考生信息查者个人信息管理该模块的运行截图如下:您好!李强退出系统返回上级考试结果统计考试:考生组(1)C语言小测试考试日期:2010年5月18日考生总数:2人平均分:76分90分以上:0人80~90分:1人70~80分:0人60~70分:人60分以下:0人DesisnImplementedbyLuJunNUIST2010图5-6考试结果统计6.系统的测试任何工程化的产品(以及大多数其他东西)都可以采纳以下两种方式之一进行测试:(1)了解已设计的产品所完成的指定功能,可以执行测试以显示每个功能是可操作的,同时,查找在每个功能中的错误; (2)了解产品的内部运行状况,可以执行测试以确保“全部的齿轮吻合”即内部操作依据规格说明执行,而且对全部的内部构件已进行了充分测试。第一种测试方法称为黑盒测试,其次种方法称为白盒测试[141。本章论述的是对系统主要模块或功能的黑盒测试(用等价划分方法),其他模块都已通过黑盒测试,运行C语言在线考试系统测试的硬件和软件环境如下:内存:2硬盘:可用空间大小应用软件:5.1,(6.0限制台程序)本小节依据等价划分方法,给出了系统主要模块或功能的等价类划分和测试用例设计。测试试题管理模块时,主要看试题是否能够录入、修改和删除。表6-1给出了试题输入的等价类划分,表6-2是在此基础上的测试用例设计表。6-3给出了试题修改、试题删除的测试用例设计。表6-1试题输入等价类划分输入等价类合理等价类不合理等价类试题内容、答案的输入格式1.500个字符以内的字符串2.多于500个字符的字符串表6-2试题输入测试用例设计测试数据期望结果覆盖范围500字符以内的字符串输入有效1多于500字符的字符串输入无效2表6-3试题修改、删除测试用例设计测试操作期望结果修改某试题的难度试题难度被修改修改某试题的题型试题题型被修改修改某试题的内容试题内容被修改修改某试题的参考答案试题参考答案被修改删除某试题试题被删除测试自动组卷功能时,主要看在设定合法组卷参数时,组卷是否胜利。表6-4给出了组卷参数输入的等价类划分,表6-5给出了组卷测试用例设计。表6-4组卷参数输入等价类划分输入等价类合理等价类不合理等价类各题型试题数目1.各题型数目都不超过30题2.选择题超过30题3.填空题超过30题4.程序设计题超过30题续表6-4输入等价类合理等价类不合理等价类试卷难度比例分布5

温馨提示

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

评论

0/150

提交评论