在线考试系统毕业论文.docx
- 文档编号:11935178
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:52
- 大小:985.88KB
在线考试系统毕业论文.docx
《在线考试系统毕业论文.docx》由会员分享,可在线阅读,更多相关《在线考试系统毕业论文.docx(52页珍藏版)》请在冰豆网上搜索。
在线考试系统毕业论文
目录
摘要IV
1前言1
1.1系统开发意义和前景1
1.2在线考试系统的现状以及发展1
1.3在线考试系统研究的意义2
1.4在线考试系统的优势3
1.5系统的最终目标4
1.6我所完成的工作4
2系统可行性研究和关键技术介绍4
2.1可行性研究5
2.1.1技术可行性研究5
2.2开发方案的选择以及开发进程计划6
2.2.1开发方案的选择6
2.2.2开发进程计划6
2.3关键技术介绍及开发工具简介8
2.3.1C++MVC8
2.3.2事件驱动软件和词汇9
2.3.3C++常用技术和类库9
2.3.3.1使用inline内联函数替代宏调用9
2.3.3.2使用函数重载9
2.3.3.3用引用(reference)代替指针进行参数传递9
2.3.3.4使用缺省参数10
2.3.3.5使用STL10
2.3.4visualc++6.0简介10
2.3.5sqlserver2005简介10
2.3.6常用的Windows下C++开发环境12
2.4系统实现的关键技术和代码12
2.4.1随机抽题算法12
2.4.2计时算法13
2.4.3图标按钮的实现13
2.5系统特点13
2.5.1程序特点13
2.5.2系统创新点14
3系统的需求分析和概要设计15
3.1系统的需求分析15
3.1.1技术可行性15
3.1.2经济可行性15
3.1.3操作可行性15
3.2模块业务流程图16
3.3数据流程图18
3.3.1科目管理数据流程图18
3.3.2试题管理数据流程图19
3.3.3试卷管理数据流程图20
3.4数据库设计21
3.4.1数据库设计的基本原则21
3.4.1.1应当重点考虑因素21
3.3.1.2在实际的数据库设计过程中,判断所设计的数据库结构是否合理主要是根的数据库是否具有下列的特性来定21
3.4.2数据库概念设计22
3.4.2.1教师,学生信息实体22
3.4.2.2.考生成绩信息实体22
3.4.2.3.试卷信息实体23
3.4.2.4.试卷答案信息实体23
3.4.2.5.试题信息实体24
3.5数据库设计24
3.5.1教师,学生信息表24
3.5.2考生成绩表25
3.5.3试卷信息表25
3.5.4试卷答案表26
3.5.5试题表26
3.5.6单项选择题表27
3.5.7判断题表27
3.5.8填空题表28
3.5.9学生分数表28
4系统的详细设计与实现29
4.1在线考试系统模块的设计与实现29
4.1.1功能描述29
4.1.2工作流程图29
4.1.3代码实现29
4.1.4效果图30
4.1.5在线考试系统欢迎窗口界面30
4.1.6操作界面30
4.1.7考试界面31
4.2在线考试系统模块设计与实现31
4.2.1随机数算法模块说明31
4.2.2计时算法说明31
4.2.3登录界面32
5系统测试34
5.1测试原则34
5.2测试目的35
5.3测试时间人员分配35
5.4测试环境35
5.5系统测试36
5.5.1系统总体运行测试36
5.5.2主机平台系统测试36
5.5.3应用系统功能测试37
5.6测试结论37
6总结39
致谢40
摘要
考试这个词语早在中国的汉代就已经出现,经历中国几千年的发展和人类进步,考试也从过去的单一模式发展到现在的多种形式,但是在以前我们都没有跳出老师手工出题,学生手写卷子,然后老师再一一的收回,然后老师在逐一批阅。
但是,随着计算机网络技术和网络教育的不断发展,传统的基于纸笔的考试形式已不能适应现在的发展需要,计算机在线考试正在逐步取代传统考试。
计算机在线考试利用网络实现在线考试、评分等环节,实现教考分离,在一定程度上减少了影响考试的人为主观因素,同时减少了教师的工作量。
在线考试系统的设计就是基于上述目的开发设计的。
这样在无形中给教师增加更大的课业和工作压力,同时也给学生增加了更多的不必要的等待,但是随着网络和软件的发展,这个问题在逐渐的解决,所以我们这次要做出一个在线考试系统,以计算机为平台,这样不仅可以大大的降低教师的工作压力,同时也可以大大减少资源的浪费,更好地建设我们的“和谐社会”,“环保社会”等。
本系统自动抽提,自动计分,并且提供了各种查询模块,教师只需要录入考试题目即可,学生也只是需要一台PC机即可,从而大大的减轻教师的负担和资源浪费。
在论文中,严格按照软件工程中的开发方法对系统进行了需求、分析、设计、编码、调试和初步试运行等六大阶段,并对各个阶段进行详细的阐述。
首先对系统需求进行了分析。
其次对该系统的技术可行性、经济可行性、社会可行性、法律可行性以及开发方案可行性进行分析和研究;而后对该系统进行了设计,分析得到了功能模块,建立系统工作流程图,总结了使用的主要技术、分析了系统用途以及开发特点等。
阐述了系统架构中的系统各个功能模块的实现和主要的技术支持,最后陈述了个人项目实现和编写毕业论文过程中的心得体会与收获。
特别地,对辛勤的指导老师表示衷心的感谢!
关键词:
visualC++6.0/VS2008,GDI,SQL SERVER2005
1前言
1.1系统开发意义和前景
随着计算机技术和互联网的快速发展,人类已经进入了信息时代,也有人称为数字化时代。
在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学习,同时也希望能够得到科学的评价,老师希望有效改进现有的考试模式,提高考试的效率[1];教育机构也希望给网上的学生提供更全面、灵活的服务,全面准确地对学生进行跟踪和评论。
网络考试系统正是迎合这一时代需求而开发的,它旨在探索一种以互联网为基础的考试模式[2]。
通过这种新的模式,为学校创造一种新的考试环境,提高考试工作效率和标准化水平,使学校管理者、教师和学生可以随时随地通过网络进行考试。
在线考试系统与传统的考试相比,由于传统的考试相比涉及到组织命题、试卷印刷、考场安排、组织阅卷等诸多环节,考试试卷周期长、效率下[3];同时人工批卷等主观因素也影响到考试的公正性。
随着网络技术在教育领域应用的普及,应用现代信息技术构架的网络在线考试系统展现出了越来越多的优越性。
在线考试系统利用网络手段将考试资源整合,实现了一定程度的无纸化考试,从而使考试这项常规而繁琐的任务变得更加方便,避免了以往学校里考试纸张、笔、监考和巡考等各种资源的浪费,并且后台管理是管理员单一的管理,确保了程序的安全性。
在线考试系统管理员登录后,对考试内容、专业、科目和考试题目等都作了详细的分类,只要考生通过自己的学生编号和密码进入前台,按步骤依次进行选题和答题,答题完毕后系统会自动判断考卷,并核对出最后考卷的分数,解决了在学校考试后等待考卷分数通知的问题。
1.2在线考试系统的现状以及发展
世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,采取措施推进教育信息化[5]。
美国政府在1996年提出了“教育技术规划(EducationalTechnologyInitiative)”,指出到21世纪初让全美国的每间教室和每个图书馆都将联上信息高速公路,让每个孩子都能在“21世纪教师”网络服务。
澳大利亚国家公共资源管理局已于1995年4月建立“澳大利亚教育网”,并联通Internet,该网络不仅包括全部高等院校,而且还覆盖全澳大利亚所有的中小国家。
网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国外一些发达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。
特别是Internet业务的普及,构筑高性能、低成本的计算机网络化在线考试,从技术条件和经济条件上己经成熟。
例如在美国,一些著名的考试就采用了网上在线考试的形式包括Microsoft公司的MCSE(微软系统工程师认证考试)GMAT(工商管理硕士入学考试)、托福考试、GRE(美国研究生入学考试)等等,并己在全范应用[7]。
在国内,普遍地看绝大多数远程教育的考试还停留在传统考试方式。
在此方式下,组织一次考试至少要经过5个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成绩评估。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且这样工作将是一件十分烦琐和非常容易出错的事情。
但是对互联网的真正应用仅限于网上报名工作和网上成绩查询,还没有真正形成上网考试的规模。
而在国外一些国家,网上提交作业和网上考试已经相当普及了。
所以说传统的考试方式已经不能适应现代考试的需要。
到1998年后,随着国内网络教育的兴起,各高校纷纷开发了自己的网络教学平台[8]。
作为网络课程重要组成部分的网络考试系统也相继问世,如北京师范大学的网络教学平台、上海交大的网络考试平台。
近几年来,借鉴发达国家的成功经验,结合我国的实际情况,伴随着网络应用的不断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。
人们迫切要求利用网络技术进行在线考试,来提高了考试的质量,突出公正和客观性,减轻组织及保障工作的负担,提高工作效率[9]。
于是许多教育教学类的课程在线考试软件应运而生,高等学校,企事业单位也都纷纷组织研究此类应用的解决方案,并研制开发了大量的不同类型计算机在线考试软件,也推出了一批优秀的在线考试软件产品。
比如全国计算机等级考试软件、职称计算机能力考试等等。
有力地推动了我国网络化在线考试的发展水平,并积累了大量有价值的经验。
1.3在线考试系统研究的意义
在线考试系统提高了考试的可靠性、有效性和工作效率,降低了考试成本,顺应了社会的网络化趋势,必将成为一种不可或缺的考试方式[4]。
本文研究的目的是设计一个易于管理和维护的面向教学的考试系统,具有一定的通用性,能够满足多门课程的测试与考核要求。
为教师开展平时考核及期末考核提供一个考核平台;为学生利用网络自主学习提供条件;为不同课程的网上考试提供平台。
为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于B/S的三层体系结构:
用户层、业务逻辑层、数据库层。
要求建立后台数据库,内含一个试题样库,教师可以在题库中添加、编辑和删除试题;教师可以增加新的考试科目;可以充分利用题库中的试题由系统随机组卷,并能在指定时间内发布试卷;学生参加完考试能立即得到答案,并分析考试中答错的题目;教师能得到学生考试后传送到系统的反馈信息,可方便的对成绩进行查询和分析,同时对学生考试中出现的错误进行统计以便今后的教学。
此外,还应具有良好的用户界面,操作方便,尽量减少误操作率。
具有安全保密机制。
1.4在线考试系统的优势
在线考试系统是利用计算机网络组织考试的综合性应用系统。
在线考试系统与传统的纸介质试卷考试相比具有以下优势:
1.4.1.高效节约
传统考试在编写试卷、阅卷、成绩统计等方面需耗费大量的资源。
而采用计算机考试,答题完毕后系统会自动判断考卷,并核对出最后考卷的分数,从而可节约大量的人、财、物力及时间资源。
1.4.2.准确公正
计算机考试系统主要处理的是标准化试题及试卷,它不但高效迅速而且准确避免人为因素,从而在一定程度上避免人为误差及人情分等问题,保证考试的公平公正。
1.4.3.可有效杜绝考试的作弊现象
利用计算机考试各考生的试卷现场随机生成,可以试卷不同也可试卷相同而顺序不同,由此可在一定程度避免互相参看抄袭等作弊现象,从而达到考试成绩的公平性。
1.5系统最终目标
通过本系统的完成,我们要实现的是考试简单化,个性化和灵活化。
同时希望在不久的将来随着人工智能的发展,我相信,在线考试将成为一种时尚,或者说可以成为人类考试的一种全新的形式。
1.6我所完成的工作
我在开发这款“在线考试”系统前,我做过大量的调查,我走访了很多老师,来询问,那些老师们是如何对待学生考试这个问题的,很多老师都对我说起,出卷子的麻烦和改卷子的劳累等等这些问题。
因此我觉得这个“在线考试”系统无论从它的实际意义或者是社会价值来讲都具有重要和深远的意义。
所以我才动手来完成这个系统的调研和开发。
在本系统的开发前期,我曾寻找多个有多年教师经验的资深教师写出“在线考试”系统的需求,我进行了详细的分析和设计,从而得出了系统的可行性和可拓展性等。
我是本着开发一个实用,简洁,功能强大和拓展性强的目标来开发这款“在线考试”系统。
在开发过程中,我进行了系统有效性和开发费用的评估和预算,同时也做好一切测试的准备,坚持按照需求-》分析-》开发-》测试-》部署-》维护来完成,并且将大部分精力放在分析和测试上面尽量满足客户和系统的要求上面来,尽可能的开发出一款实用性强,性价比高的软件。
在后期的测试中,我采用不同的测试平台来测试,在Windows下面的不同版本来测试(因为,我们一般老师使用的系统都是Windows,所以没有在Linux和unix下面测试。
)得出了系统完全可以在现在市面上常见的系统和硬件下面可以正常运行。
在“在线考试”系统的开发中,全部工作全部在张老师的指导下由我本人来完成。
2系统可行性研究和关键技术介绍
在客观世界中,并不是所有的问题都可以有明显的解决方法。
实际上,有许多问题不可能在设定系统的规模有解。
还有一些问题在当时的技术条件下是无解的,因为工程中的问题并不是都有明显的解决办法,所以就不可能在预期的时间、费用之内解决这些问题。
为了有效地防止这些情况的发生,在项目开始设计之前,我做了有关系统可行性的细致研究,针对该项目是否值得去开发,其中的关键技术难点是什么,问题能否得到解决,怎样达到、实现客户所提出的要求做了具有价值意义的分析。
总之,在系统可行性研究中,我达到了如何在尽可能短的时间内用最小的代价确定该项目是否值得去开发的目的。
2.1可行性研究
2.1.1技术可行性研究
根据客户针对基于“在线考试”系统的设计与实现所提出的系统功能、性能以及系统必须是可靠、安全、先进、开放、实用和可扩展的等其他实现的各项约束条件,从技术的角度研究实现系统的可行性:
(1)开放性
考虑到在线考试是一个循序渐进、逐步深化的过程,因此,系统既要考虑到现行管理工作的情况,又要放眼长远,坚持高标准、留有接口,为日后根据信息技术发展的最新动态和业务发展的需要进行升级打下基础。
在项目的产品技术选型中,将尽量避免采用专有技术,而是全部采用符合国际标准和工业标准的软硬件产品,从而使项目中的软硬件平台具有充分的开放性。
(2)可靠性
在数据处理中,采用严格的事务控制,保证对数据库中多个表的操作同时提交(Commit)或回滚(Rollback),维护数据的一致性和完整性。
(3)扩展性
在系统设计中,所有的网络、服务器、存储、应用软件的设计都将遵循可扩充的原则,利用企业现有的软硬件资源,提供最大的软硬件选择余地。
系统采用易于扩展的框架结构,使应用系统的客户化和二次开发变得简单。
(4)灵活性
系统融合了各个行业的考试需求,支持不同类型类型在线考试的选择性。
可以提供针对不同课程和考试的要求,在客户的要求下,本系统一般可以支持现在我国的不同类型考试,同时也在系统上面曾加了很多潜在的功能,随着社会的发展,可以起到相应的作用,并且在不同的时间我们都可以使用本系统,可以在不同的环境下面运行本系统,这样就大大增大了系统的灵活性。
(5)可维护性
系统采用CS架构的应用软件开发,可以保证系统的不被攻入和系统的维护,数据库采用现在社会上面常采用的sqlservice2005来开发,可以更好的维护。
(6)安全性
系统应采用先进而成熟的技术。
系统对外必须有完备的安全防范措施,必须建立符合安全要求的防火墙,能够严格有效地防止外来非法用户入侵,能够避免遭受攻击或遭到攻击能报警。
系统必须具有完备的用户权限管理功能,禁止越权操作。
同时,本系统是CS架构下的桌面应用程序的开发,这样我们就可以避免外网的入侵,可以更好的增加“在线考试”系统的安全性。
(7)支持多种数据库
保证系统尽可能支持不同类型的后台数据库。
在数据库设计过程中,尽量保证数据库表、字段等与具体的后台数据库管理系统无关,这样可以方便数据在不同的数据库系统之间迁移。
(8)结构模块化
软件系统在设计和开发过程中要保证各子系统、子系统中的各项功能,甚至每一个应用程序的高度模块化。
(9)系统高度集成
进入系统的数据能根据事先的设定以及管理工作的内在规律和内在联系,传递到相关的功能模块中,从而实现数据高度共享和系统的高度集成。
2.2开发方案的选择以及开发进程计划
2.2.1开发方案的选择
系统目标:
(1)提高教师工作效率和减轻教师工作量。
(2)具有严肃性和公正性,系统自动交卷。
(3)系统自动交卷、自动阅卷,保证成绩真实、准确。
(4)考生可随时查看考试成绩。
(5)对考生、教师信息进行管理。
软硬件要求:
软件配置
浏览器端要求:
(1)操作系统:
WindowsXP
硬件配置:
无
(2)浏览器端要求:
无
处理器:
酷睿双核
内存:
256MB
数据库接入
方案特点
易于部署。
前瞻性。
充分利用现有资源。
各中类型的考试都可以使用,只需要教师来增加试题,维护方便。
数据集中管理。
2.2.2开发进程计划
开发进程计划,如表1所示:
表1开发进程计划
(2010年9月——2010年12月)
(2010年12月——2011年1月底)
(2011年2月——2011年2月底)
(2011年3月——4月底)
(2011年5月)
阶段目标:
完成计划进程表,完成需求调研。
工作内容:
1、了解我国现在经常用的考试制度和类型;2、搜集论文设计的相关资料,并确定毕业论文题目;3、收集相关技术的参考书籍;4、了解给予MVC架构下的开发,同时参考一些成熟的在线考试系统。
阶段目标:
学习并掌握相关技术,构造基本设计雏形。
工作内容:
1、搜集并确定Windowsc++下的开发;2、掌握vc的基础语法结构;3、学会运用SVN软件进行版本控制管理,维护任意文档的开发和使用;4、深入了MVC架构模式的意义和应用。
阶段目标:
提交系统设计报告,完成系统设计。
工作内容:
1、完成系统功能概要设计、详细设计;2、运用sqlservice2005版本的SQL语言进行建立数据库,建立数据表,查询、修改、计算、增添数据信息,修改数据表的格式,并进行用户权限管理;3、根据“在线考试”的业务管理和业务流程,设置权限管理程序构架;4、设计整体系统的风格、明确“在线考试”系统的设计与实现系统的具体功能,并绘制功能树状图模型;
阶段目标:
系统开发实现
工作内容:
1、根据不同的功能用途,将系统划分为不同的模块,使用MFC中的不同类库完成该系统建设的编码工作;2、在编码的过程中,使用SVN对软件版本进行跟踪管理,不断对代码的规范性等进行修改完善,使代码具有健壮性。
3、在编码完成以后,编写源代码的目录,为后期系统的维护提供方便;
系统试运行,测试,部署。
2.3关键技术及开发工具简介
2.3.1C++MVC
VisualC++不仅仅是一个编译器。
它是一个全面的应用程序开发环境,使用它你充分
利用具有面向对象特性的C++来开发出专业级的Windows应用程序。
为了能充分利用这些
特性,你必须理解C++程序设计语言。
掌握了C++,你就必须掌握Microsoft基本类库(MFC)的层次结构。
该层次结构包容了WindowsAPI中的用户界面部分,并使你能够很容易地以
面向对象的方式建立Windows应用程序。
这种层次结构适用于所有版本的Windows并彼此
兼容。
你用MFC所建立的代码是完全可移植的。
2.3.2事件驱动软件和词汇
所有基于窗口的GUI都包含相同的基本元素,它们的操作方式都是相同的。
在屏幕上,用户所看到的是一组窗口,每个窗口都包含有控制、图标、对象以及一些处理鼠标和键盘的元素。
从用户角度来看,各系统的界面对象都是相同的:
按钮、滚动条、图标、对话框以及下拉菜单等等。
尽管这些界面元素的"外部特性可能有些不同,但这些界面对象的工作方式都是相同的。
例如,滚动条对于Windows、Mac和Motif可能有些不同,但他们的作用完全是一样的。
从程序员的角度来看,这些系统在概念上是相似的,尽管它们可能有很大的不同。
为了建立 GUI程序,程序员第一步要把所有需要的用户界面控制都放到窗口上。
例如,如果程序员要建立一个从摄氏到华氏的转换的简单程序,则程序员所选择的用户界面对象来完成并在屏幕上把结果显示出来。
在这个简单的程序中,程序员可能需要用户在一个可编辑的编辑框中输入温度值,在一个不可编辑的编辑框中显示转换结果,然后让用户可以单击一个标有"退出"的按钮来退出应用程序。
因为是用户来操作应用程序的控制,所以程序必须作出响应。
所做的响应依赖于用户使用鼠标或键盘在不同控制上的操作。
屏幕上的每个用户界面对象对事件的响应是不同的。
例如,如果用户单击退出按钮,则该按钮必须更新屏幕、加亮它自己。
然后程序必须响应退出。
Windows所用的模式也是类似的。
在一个典型的应用程序中,你将建立一个主窗口,并且在其中放置了一些用户界面控制。
这些控制通常被称为子窗口--它们就象一些在主窗口中的更小更特殊的子窗口。
作为程序员,你应该通过函数调用来发送信息操作这些控制、通过把信息发送给你到代码来响应用户的操作。
2.3.3c++常用技术和类库:
2.3.3.1使用inline内联函数替代宏调用
对于频繁使用的函数,C语言建议使用宏调用代替函数调用以加快代码执行,减少调用开销。
但是宏调用有许多的弊端,可能引起不期望的副作用。
所以在C++中应该使用inline内联函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。
使用内联函数只须把inline关键字放在函数返回类型的前面。
这样编译器在遇到Add()函数时,就不再进行函数调用,而是直接嵌入函数代码以加快程序的执行。
2.3.3.2使用函数重载
在C++中,函数名相同而参数数据类型不同的两个函数被解释为重载。
使用函数重载可以帮助程序员处理更多的复杂问题,避免了使用诸如intabs()、fabs()、dabs()等繁杂的函数名称;同时在大型程序中,使函数名易于管理和使用,而不必绞尽脑汁地去处理函数名。
同时必须注意,参数数据类型相同,但是函数返回类型不同的两个函数不能重载。
2.3.3.3用引用(reference)代替指针进行参数传递
对于复杂的程序,使用指针容易出错,程序也难以读懂。
在C++中,对于上述情况可以使用引用来代替指针,使程序更加清晰易懂。
引用就是对变量取的一个别名,对引用进行操作,这就相当于对原有变量进行操作。
2.3.3.4使用缺省参数
在C++中函数可以使用缺省参数,可以有三种方式调用函数PutHzxy(),通常的情况下,一个函数应该具有尽可能大的灵活性。
使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。
需要说明的是,所有的缺省参数必须出现在不缺省参数的右
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 在线 考试 系统 毕业论文