首页 在线考试系统毕业论文abrw

在线考试系统毕业论文abrw

举报
开通vip

在线考试系统毕业论文abrw在线考试系统毕业论文abrw 四川师范大学经济职业学院(论文) 题 目: 在线考试系统 指导教师: 职称: 学生姓名: X X X 学号: C2010300XXXX 专 业: 软件工程 院(系): 计算机科学一系 完成时间: 2012—03—01 2012年03月01日 目录 摘要 ...................................................................... IV 1 前言 ...................................

在线考试系统毕业论文abrw
在线考试系统毕业论文abrw 四川师范大学经济职业学院(论文) 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目: 在线考试系统 指导教师: 职称: 学生姓名: X X X 学号: C2010300XXXX 专 业: 软件工程 院(系): 计算机科学一系 完成时间: 2012—03—01 2012年03月01日 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 摘要 ...................................................................... IV 1 前言 ..................................................................... 1 1.1 系统开发意义和前景.................................................... 1 1.2 在线考试系统的现状以及发展............................................ 1 1.3 在线考试系统研究的意义................................................ 3 1.4 在线考试系统的优势.................................................... 3 5 系统的最终目标................................1......................... 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.1 C++MVC ............................................................ 8 2.3.2 事件驱动软件和词汇 ................................................ 9 2.3.3 C++常用技术和类库 ................................................. 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 使用STL ...................................................... 10 2.3.4 VISUAL C++6.0简介 ............................................... 10 2.3.5 SQL SERVER 2005简介 ............................................. 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 I 3.3 数据流程图........................................................... 18 3.3.1 科目管理数据流程图 ............................................... 18 ............................................... 19 3.3.2 试题管理数据流程图 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 7 考试界面 ......................................................... 314.1. 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 II 5.5.1系统总体运行测试 ................................................. 36 5.5.2主机平台系统测试 ................................................. 36 5.5.3应用系统功能测试 ................................................. 37 5.6 测试结论............................................................. 37 6 总结 .................................................................... 39 致谢 ...................................................................... 40 III 摘要 考试这个词语早在中国的汉代就已经出现,经历中国几千年的发展和人类进步,考试也从过去的单一模式发展到现在的多种形式,但是在以前我们都没有跳出老师手工出题,学生手写卷子,然后老师再一一的收回,然后老师在逐一批阅。 但是,随着计算机网络技术和网络教育的不断发展,传统的基于纸笔的考试形式已不能适应现在的发展需要,计算机在线考试正在逐步取代传统考试。计算机在线考试利用网络实现在线考试、评分等环节,实现教考分离,在一定程度上减少了影响考试的人为主观因素,同时减少了教师的工作量。在线考试系统的设计就是基于上述目的开发设计的。 这样在无形中给教师增加更大的课业和工作压力,同时也给学生增加了更多的不必要的等待,但是随着网络和软件的发展,这个问题在逐渐的解决,所以我们这次要做出一个在线考试系统,以计算机为平台,这样不仅可以大大的降低教师的工作压力,同时也可以大大减少资源的浪费,更好地建设我们的“和谐社会”,“环保社会”等。 本系统自动抽提,自动计分,并且提供了各种查询模块,教师只需要录入考试题目即可,学生也只是需要一台PC机即可,从而大大的减轻教师的负担和资源浪费。 在论文中,严格按照软件工程中的开发 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 对系统进行了需求、分析、设计、编码、调试和初步试运行等六大阶段,并对各个阶段进行详细的阐述。首先对系统需求进行了分析。其次对该系统的技术可行性、经济可行性、社会可行性、法律可行性以及开发方案可行性进行分析和研究;而后对该系统进行了设计,分析得到了功能模块,建立系统工作流程图,总结了使用的主要技术、分析了系统用途以及开发特点等。阐述了系统架构中的系统各个功能模块的实现和主要的技术支持,最后陈述了个人项目实现和编写毕业论文过程中的心得体会与收获。特别地,对辛勤的指导老师表示衷心的感谢~ 关键词:visual C++ 6.0/ VS2008,GDI,SQL SERVER 2005 IV 1 前言 1.1系统开发意义和前景 随着计算机技术和互联网的快速发展,人类已经进入了信息时代,也有人称为数字化时代。在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学习,同时也希望能够得到科学的评价,老师希望有效改进现有的考试模式,提高考试的[1]效率;教育机构也希望给网上的学生提供更全面、灵活的服务,全面准确地对学生进行跟踪和评论。网络考试系统正是迎合这一时代需求而开发的,它旨在探索一种以互联[2]网为基础的考试模式。通过这种新的模式,为学校创造一种新的考试环境,提高考试工作效率和标准化水平,使学校管理者、教师和学生可以随时随地通过网络进行考试。 在线考试系统与传统的考试相比,由于传统的考试相比涉及到组织命题、试卷印[3]刷、考场安排、组织阅卷等诸多环节,考试试卷周期长、效率下;同时人工批卷等主观因素也影响到考试的公正性。随着网络技术在教育领域应用的普及,应用现代信息技术构架的网络在线考试系统展现出了越来越多的优越性。 在线考试系统利用网络手段将考试资源整合,实现了一定程度的无纸化考试,从而使考试这项常规而繁琐的任务变得更加方便,避免了以往学校里考试纸张、笔、监考和巡考等各种资源的浪费,并且后台管理是管理员单一的管理,确保了程序的安全性。在线考试系统管理员登录后,对考试内容、专业、科目和考试题目等都作了详细的分类,只要考生通过自己的学生编号和密码进入前台,按步骤依次进行选题和答题,答题完毕后系统会自动判断考卷,并核对出最后考卷的分数,解决了在学校考试后等待考卷分数通知的问题。 1.2 在线考试系统的现状以及发展 世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,采取措施推进教育信息化[5]。美国政府在1996年提出了“教育技术规划(Educational Technology Initiative)”,指出到21世纪初让全美国的每间教室和每个图书馆都将联上信息高速公路,让每个孩子都能在“21世纪教师”网络服务。澳大利亚国家公共资源管理局已于1995年4月建立“澳大利亚教育网”,并联通Internet,该网络不仅包括全部高等院校,而且还覆盖全澳大利亚所有的中小国家。 网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国外一些发达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。特别是Internet业务的普及,构筑高性能、低成本的计算机网络化在线考试,从技术条件和经济条件上己经成熟。例如在美国,一些著名的考试就采用了网上在线考试的形式包括Microsoft公司的MCSE(微软系统工程师认证考试)GMAT(工商管理硕士入学考试)、托福考试、GRE(美国研[7]究生入学考试)等等,并己在全范应用。 在国内,普遍地看绝大多数远程教育的考试还停留在传统考试方式。在此方式下,组织一次考试至少要经过5个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成绩评估。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且这样工作将是一件十分烦琐和非常容易出错的事情。但是对互联网的真正 1 应用仅限于网上报名工作和网上成绩查询,还没有真正形成上网考试的规模。而在国外一些国家,网上提交作业和网上考试已经相当普及了。所以说传统的考试方式已经不能适应现代考试的需要。 到1998年后,随着国内网络教育的兴起,各高校纷纷开发了自己的网络教学平台[8]。作为网络课程重要组成部分的网络考试系统也相继问世,如北京师范大学的网络教学平台、上海交大的网络考试平台。 近几年来,借鉴发达国家的成功经验,结合我国的实际情况,伴随着网络应用的不断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。人们迫切要求利用网络技术进行在线考试,来提高了考试的质量,突出公正和客观性,减轻组织及保障工作[9]的负担,提高工作效率。于是许多教育教学类的课程在线考试软件应运而生,高等学校,企事业单位也都纷纷组织研究此类应用的解决方案,并研制开发了大量的不同类型计算机在线考试软件,也推出了一批优秀的在线考试软件产品。比如全国计算机等级考试软件、职称计算机能力考试等等。有力地推动了我国网络化在线考试的发展水平,并积累了大量有价值的经验。 1.3 在线考试系统研究的意义 在线考试系统提高了考试的可靠性、有效性和工作效率,降低了考试成本,顺应了社[4]会的网络化趋势,必将成为一种不可或缺的考试方式。本文研究的目的是设计一个易于管理和维护的面向教学的考试系统,具有一定的通用性,能够满足多门课程的测试与考核要求。为教师开展平时考核及期末考核提供一个考核平台;为学生利用网络自主学习提供条件;为不同课程的网上考试提供平台。 为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于B/S的三层体系结构:用户层、业务逻辑层、数据库层。要求建立后台数据库,内含一个试题样库,教师可以在题库中添加、编辑和删除试题;教师可以增加新的考试科目;可以充分利用题库中的试题由系统随机组卷,并能在指定时间内发布试卷;学生参加完考试能立即得到答案,并分析考试中答错的题目;教师能得到学生考试后传送到系统的反馈信息,可方便的对成绩进行查询和分析,同时对学生考试中出现的错误进行统计以便今后的教学。此外,还应具有良好的用户界面,操作方便,尽量减少误操作率。具有安全保密机制。 1.4 在线考试系统的优势 在线考试系统是利用计算机网络组织考试的综合性应用系统。在线考试系统与传统的纸介质试卷考试相比具有以下优势: 1.4.1(高效节约 传统考试在编写试卷、阅卷、成绩统计等方面需耗费大量的资源。而采用计算机考试,答题完毕后系统会自动判断考卷,并核对出最后考卷的分数,从而可节约大量的人、财、物力及时间资源。 1.4.2(准确公正 计算机考试系统主要处理的是标准化试题及试卷,它不但高效迅速而且准确避免人为因素,从而在一定程度上避免人为误差及人情分等问题,保证考试的公平公正。 1.4.3(可有效杜绝考试的作弊现象 2 利用计算机考试各考生的试卷现场随机生成,可以试卷不同也可试卷相同而顺序不同,由此可在一定程度避免互相参看抄袭等作弊现象,从而达到考试成绩的公平性。 1.5 系统最终目标 通过本系统的完成,我们要实现的是考试简单化,个性化和灵活化。同时希望在不久的将来随着人工智能的发展,我相信,在线考试将成为一种时尚,或者说可以成为人类考试的一种全新的形式。 1.6 我所完成的工作 我在开发这款“在线考试”系统前,我做过大量的调查,我走访了很多老师,来询问,那些老师们是如何对待学生考试这个问题的,很多老师都对我说起,出卷子的麻烦和改卷子的劳累等等这些问题。 因此我觉得这个“在线考试”系统无论从它的实际意义或者是社会价值来讲都具有重要和深远的意义。所以我才动手来完成这个系统的调研和开发。 在本系统的开发前期,我曾寻找多个有多年教师经验的资深教师写出“在线考试”系统的需求,我进行了详细的分析和设计,从而得出了系统的可行性和可拓展性等。 我是本着开发一个实用,简洁,功能强大和拓展性强的目标来开发这款“在线考试”系统。 在开发过程中,我进行了系统有效性和开发费用的评估和预算,同时也做好一切测试的准备,坚持按照需求-》分析-》开发-》测试-》部署-》维护来完成,并且将大部分精力放在分析和测试上面尽量满足客户和系统的要求上面来,尽可能的开发出一款实用性强,性价比高的软件。 在后期的测试中,我采用不同的测试平台来测试,在Windows下面的不同版本来测试(因为,我们一般老师使用的系统都是Windows,所以没有在Linux和unix下面测试。)得出了系统完全可以在现在市面上常见的系统和硬件下面可以正常运行。 在“在线考试”系统的开发中,全部工作全部在张老师的指导下由我本人来完成。 2 系统可行性研究和关键技术介绍 在客观世界中,并不是所有的问题都可以有明显的解决方法。实际上,有许多问题不可能在设定系统的规模有解。还有一些问题在当时的技术条件下是无解的,因为工程中的问题并不是都有明显的解决办法,所以就不可能在预期的时间、费用之内解决这些问题。为了有效地防止这些情况的发生,在项目开始设计之前,我做了有关系统可行性的细致研究,针对该项目是否值得去开发,其中的关键技术难点是什么,问题能否得到解决,怎样达到、实现客户所提出的要求做了具有价值意义的分析。总之,在系统可行性研究中,我达到了如何在尽可能短的时间内用最小的代价确定该项目是否值得去开发的目的。 3 2.1可行性研究 2.1.1 技术可行性研究 根据客户针对基于“在线考试”系统的设计与实现所提出的系统功能、性能以及系统必须是可靠、安全、先进、开放、实用和可扩展的等其他实现的各项约束条件,从技术的角度研究实现系统的可行性: (1)开放性 考虑到在线考试是一个循序渐进、逐步深化的过程,因此,系统既要考虑到现行管理工作的情况,又要放眼长远,坚持高标准、留有接口,为日后根据信息技术发展的最新动态和业务发展的需要进行升级打下基础。在项目的产品技术选型中,将尽量避免采用专有技术,而是全部采用符合国际标准和工业标准的软硬件产品,从而使项目中的软硬件平台具有充分的开放性。 (2)可靠性 在数据处理中,采用严格的事务控制,保证对数据库中多个表的操作同时提交(Commit)或回滚(Rollback),维护数据的一致性和完整性。 (3)扩展性 在系统设计中,所有的网络、服务器、存储、应用软件的设计都将遵循可扩充的原则,利用企业现有的软硬件资源,提供最大的软硬件选择余地。系统采用易于扩展的框架结构,使应用系统的客户化和二次开发变得简单。 (4)灵活性 系统融合了各个行业的考试需求,支持不同类型类型在线考试的选择性。可以提供针对不同课程和考试的要求,在客户的要求下,本系统一般可以支持现在我国的不同类型考试,同时也在系统上面曾加了很多潜在的功能,随着社会的发展,可以起到相应的作用,并且在不同的时间我们都可以使用本系统,可以在不同的环境下面运行本系统,这样就大大增大了系统的灵活性。 (5)可维护性 系统采用CS架构的应用软件开发,可以保证系统的不被攻入和系统的维护,数据库采用现在社会上面常采用的sql service2005来开发,可以更好的维护。 (6)安全性 系统应采用先进而成熟的技术。系统对外必须有完备的安全防范措施,必须建立符合安全要求的防火墙,能够严格有效地防止外来非法用户入侵,能够避免遭受攻击或遭到攻击能报警。系统必须具有完备的用户权限管理功能,禁止越权操作。 同时,本系统是CS架构下的桌面应用程序的开发,这样我们就可以避免外网的入侵,可以更好的增加“在线考试”系统的安全性。 (7)支持多种数据库 保证系统尽可能支持不同类型的后台数据库。在数据库设计过程中,尽量保证数据库表、字段等与具体的后台数据库管理系统无关,这样可以方便数据在不同的数据库系统之间迁移。 (8)结构模块化 软件系统在设计和开发过程中要保证各子系统、子系统中的各项功能,甚至每一个应用程序的高度模块化。 (9)系统高度集成 4 进入系统的数据能根据事先的设定以及管理工作的内在规律和内在联系,传递到相 关的功能模块中,从而实现数据高度共享和系统的高度集成。 2.2开发方案的选择以及开发进程计划 2.2.1 开发方案的选择 系统目标: (1)提高教师工作效率和减轻教师工作量。 (2)具有严肃性和公正性,系统自动交卷。 (3)系统自动交卷、自动阅卷,保证成绩真实、准确。 (4)考生可随时查看考试成绩。 (5)对考生、教师信息进行管理。 软硬件要求: 软件配置 浏览器端要求: (1)操作系统: Windows XP 硬件配置:无 (2)浏览器端要求:无 处理器:酷睿双核 内存:256MB 数据库 接入 方案特点 易于部署。 前瞻性。 充分利用现有资源。 各中类型的考试都可以使用,只需要教师来增加试题,维护方便。 数据集中管理。 2.2.2 开发进程计划 开发进程计划,如表1所示: 表1 开发进程计划 5 阶段目标:完成计划进程表~完成需求调研。 (2010年9工作内容:1、了解我国现在经常用的考试制度和类型,2、搜集论文月——2010设计的相关资料~并确定毕业论文题目,3、收集相关技术的参考书籍,年12月) 4、了解给予MVC架构下的开发~同时参考一些成熟的在线考试系统。 阶段目标:学习并掌握相关技术~构造基本设计雏形。 (2010年12工作内容:1、搜集并确定Windows c++下的开发,2、掌握vc的基础月——2011语法结构,3、学会运用SVN软件进行版本控制管理~维护任意文档的开年1月底) 发和使用,4、深入了MVC架构模式的意义和应用。 (2011年2阶段目标:提交系统设计报告~完成系统设计。 月——2011工作内容:1、完成系统功能概要设计、详细设计,2、运用sql 年2月底) service2005版本的SQL语言进行建立数据库~建立数据表~查询、修 改、计算、增添数据信息~修改数据表的格式~并进行用户权限管理, 3、根据“在线考试”的业务管理和业务流程~设置权限管理程序构架, 4、设计整体系统的风格、明确“在线考试”系统的设计与实现系统的具 体功能~并绘制功能树状图模型, (2011年3 月——4月阶段目标:系统开发实现 底) 工作内容:1、根据不同的功能用途~将系统划分为不同的模块~使用 MFC中的不同类库完成该系统建设的编码工作,2、在编码的过程中~使 用SVN对软件版本进行跟踪管理~不断对代码的 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 性等进行修改完善~ 使代码具有健壮性。 3、在编码完成以后~编写源代码的目录~为后期系 统的维护提供方便, (2011年5 月) 系统试运行~测试~部署。 2.3关键技术及开发工具简介 2.3.1 C++MVC Visual C++ 不仅仅是一个编译器。它是一个全面的应用程序开发环境,使用它你充分 利用具有面向对象特性的 C++ 来开发出专业级的 Windows 应用程序。为了能充分利用这些 6 特性,你必须理解 C++ 程序设计语言。掌握了C++,你就必须掌握 Microsoft 基本类库 (MFC) 的层次结构。该层次 结构包容了 Windows API 中的用户界面部分,并使你能够很容易地以 面向对象的方式建立 Windows 应用程序。这种层次结构适用于所有版本的 Windows 并彼此 兼容。你用 MFC 所建立的代码是完全可移植的。 2.3.2事件驱动软件和词汇 所有基于窗口的 GUI 都包含相同的基本元素,它们的操作方式都是相同的。在屏幕上,用户所看到的是一组窗口,每个窗口都包含有控制、图标、对象以及一些处理鼠标和键盘的元素。从用户角度来看,各系统的界面对象都是相同的:按钮、滚动条、图标、对话框以及下拉菜单等等。尽管这些界面元素的"外部特性可能有些不同,但这些界面对象的工作方式都是相同的。例如,滚动条对于Windows、Mac和Motif可能有些不同,但他们的作用完全是一样的。从程序员的角度来看,这些系统在概念上是相似的,尽管它们可能有很大的不同。为了建立 GUI程序,程序员第一步要把所有需要的用户界面控制都放到窗口上。例如,如果程序员要建立一个从摄氏到华氏的转换的简单程序,则程序员所选择的用户界面对象来完成并在屏幕上把结果显示出来。在这个简单的程序中,程序员可能需要用户在一个可编辑的编辑框中输入温度值,在一个不可编辑的编辑框中显示转换结果,然后让用户可以单击一个标有"退出"的按钮来退出应用程序。 因为是用户来操作应用程序的控制,所以程序必须作出响应。所做的响应依赖于用户使用鼠标或键盘在不同控制上的操作。屏幕上的每个用户界面对象对事件的响应是不同的。例如,如果用户单击退出按钮,则该按钮必须更新屏幕、加亮它自己。然后程序必须响应退出。Windows 所用的模式也是类似的。在一个典型的应用程序中,你将建立一个主窗口,并且在其中放置了一些用户界面控制。这些控制通常被称为子窗口--它们就象一些在主窗口中的更小更特殊的子窗口。作为程序员,你应该通过函数调用来发送信息操作这些控制、通过把信息发送给你到代码来响应用户的操作。 2.3.3 c++常用技术和类库: 2.3.3.1使用inline内联函数替代宏调用 对于频繁使用的函数,C语言建议使用宏调用代替函数调用以加快代码执行,减少调用开销。但是宏调用有许多的弊端,可能引起不期望的副作用。所以在C++中应该使用inline内联函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。 使用内联函数只须把inline关键字放在函数返回类型的前面。这样编译器在遇到Add()函数时,就不再进行函数调用,而是直接嵌入函数代码以加快程序的执行。 2.3.3.2使用函数重载 在C++中,函数名相同而参数数据类型不同的两个函数被解释为重载。 使用函数重载可以帮助程序员处理更多的复杂问题,避免了使用诸如intabs()、fabs()、dabs()等 7 繁杂的函数名称;同时在大型程序中,使函数名易于管理和使用,而不必绞尽脑汁地去处理函数名。同时必须注意,参数数据类型相同,但是函数返回类型不同的两个函数不能重载。 2.3.3.3用引用(reference)代替指针进行参数传递 对于复杂的程序,使用指针容易出错,程序也难以读懂。在C++中,对于上述情况 可以使用引用来代替指针,使程序更加清晰易懂。引用就是对变量取的一个别名,对引用进行操作,这就相当于对原有变量进行操作。 2.3.3.4使用缺省参数 在C++中函数可以使用缺省参数,可以有三种方式调用函数PutHzxy(),通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。否则当你省略其中一个参数的时候,编译器无法知道你是自定义了这个参数还是利用了缺省参数而定义了非缺省的参数。 2.3.3.5使用STL STL(Standard Template Library,标准模板库), STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),并包括一些工具类如auto_ptr。几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会 2.3.4 visualC++ 6.0简介 Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000、 Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。VC++6.0 Visual C++6.0不仅是一个C++ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。 visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。 虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。 Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development 8 environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。 2.3.5 sql 2005简介 SQL Server2000技术 SQL Server是Microsoft公司在原来和Sybase公司合作的基础上推出的一款面向高端的数据库系统,它推出后,得到了广大用户的积极响应并迅速占领NT下的数据库应用市场,成为数据库市场上一支不容忽视的重要力量。经过不断的更新换代,SQL Server已经发展[18]到了SQL Server2000,这是Microsoft公司在推出Windows2000之后的又一力作。SQL Server是客户,服务器系统的一个完美示例,它提供了安装到服务器系统的服务器软件和安装在客户系统上的客户端软件,连接客户和服务器计算机的网络软件组件由Windows系统提供。 SQL Server2000进一步增强了SQL Server7的高性能、可靠性和方便应用的特点,并包含了一些新的特性,这些对大规模的在线事务处理、数据仓库等应用是非常有用的。SQL Server2000具有丰富的XML和Internet标准支持,它支持通过XML的数据插入、删除、更新和检索操作,还提供了一个间接的模型供开发者开发应用程序。SQL Server2000还支持基于HTTP连接的数据访问,并以新的过滤机制实现了对格式化文档的高性能全文检索功能,简化了自然语言查询解决方案的开发过程。SQL Server2000还具有高度的可伸缩性和可靠性,使其成为Web的首选数据库。其提供了对超大规模数据的分析处理能力,支持上千维数据库。SQL Server2000的可靠性主要表现在对错误的自动恢复和提前预测。简化了错误恢复的操作和配置。SQL Server一贯追求性能的提升,它对数据具有高效的处理能力。它提供高度集成并扩展的数据分析服务,它对管理工具进行了进一步简化,它通过一系列的向导来辅助系统管理员完成对SQL Server的管理,有效地减轻了系统管理员的负担,并大大减少了出现错误操作的几率。同时针对频繁的数据库调整工作,它提供了一系列的向导。SQL Server2000的高效性增强了T-SQL语言的功能并简化了对SQL程序的设计和调试。 [19]SQL Server 2000具有以下优点: (1)完全的浏览器/服务器体系结构 这一结构可以有效地使用网络,提高网络带宽的利用率。因为在浏览器服务器运算模式下,数据库操作都集中在服务器上进行,在网络上传输的是用户的请求命令和数据库服务器的操作结果,而不是整个数据库文件,这样可以减少网络上的信息流量,从而提高网络的使用效率。简单的图形化管理工具使系统管理更为宣直观方便。 SQL Enterprise Manager是一个基于Windows图形用户接口的集成管理工具,利用它可完成SQL Server的许多配置管理工作。 (2)隐含的并发控制能力 SQL Server利用锁定功能防止用户在查询和更新并发操作瞄相互发生冲突,锁定是隐含的,用户不必操心锁定过程。 (3)丰富的编程接口工具 SQL Server提供了多种专用开发工具,其中Transact SQL与工业标准SQL语言兼容,并在其基础上加以扩充,使得它更适合事务处理方面工作的需要。此外他还支持ODBC规范,可以使用ODBC访问SQL Server数据库。 (4)多线程体系结构 9 SQL Server支持多线程操作,多篇户并发访问时,系统在发生较小额外负担的情况下能够进行并行处理,从而减少内存需求,提高系统的吞吐量。在用户数量增加时,SQL Server的运行速度也不会明显变慢。 2.3.6 常用的windows下C++开发环境 它大概可以分成三个主要的部分: 1( Developer Studio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Microsoft Visual C++”,所以很多人理所当然的认为,那就是Visual C++了。其实不然,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,Developer Studio并不是专门用于VC的 2( MFC。从理论上来讲,MFC也不是专用于Visual C++,Borland C++,C++Builder和Symantec C++同样可以处理MFC。同时,用Visual C++编写代码也并不意味着一定要用MFC,只要愿意,用Visual C++来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,Visual C++本来就是为MFC打造的,Visual C++中的许多特征和语言扩展也是为MFC而设计的,所以用Visual C++而不用MFC就等于抛弃了Visual C++中很大的一部分功能。但是,Visual C++也不等于MFC。 3( Platform SDK。这才是Visual C++和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,Platform SDK是以Microsoft C/C++编译器为核心(不是Visual C++,看清楚了),配合MASM,辅以其他一些工具和文档资料。NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio的基石。 2.4系统实现的关键技术和代码 2.4.1 随机抽题算法 随机抽题功能是随机不重复地抽取学生选择的考试科目的题号,并将题号保存到数组。随机抽题抽取选择题号、判断题题号和填空题题号。 算法步骤如下:首先获得选择题数据库的最大题号,在这些题号中堆积抽取数;然后判断抽取的的随机数所对应的题目是否是学生选择的考试科目、是否不重复;是否大于0;最后把满足这3个条件的数保存到数组。这样循环抽取,直到抽满10道题目的题号为止。 填空题和选择题的抽题算法与之相同,只是在填空题抽取的时候要注意对性相应的字段的长度,以防止出现段错误等不可未知的错误。 同时在随机算法的抽取中,我们采用了数组存放的方式,并且会去不同的算子来分开计算,这样就可以避免在相同的时间内和相邻的客户端上出现相同的试题,从而增加了考试的公正性和系统的可靠性。 2.4.2 计时算法 总所周知,在任何的考试中,时间往往是决定成败的关键,本系统中采取了相对完善的记时算法,当学生开始选择考试开始的时候,这时候,界面自动转到考题界面,这 10 时候计时器开始使用,定时为1秒,这里采用的是CPU时钟的方式计时,绝对的准确,从而使得本系统在时间方面可以没有任何的外界干扰因素。 在时间为0的时候,这时候,所有的试题都会自动上船,并且页面自动锁死,任何操作都将失去效果,考生只能选择退出,这样就增加了本系统的公正和理性。 2.4.3 图标按钮的实现 在按钮控件属性窗口选择Icon属性可以让按钮显示图标,不过这种方法只能显示图标不能显示文本,因为我在这里设计了一个以CButton类为基类的CButtonBmp类,通过该类绘制按钮,可以显示图标,并且使按钮背景透明。 在绘制按钮时需要改写DrawItem方法,该方法用于绘制控件。当按钮控件包含BS_OWNWEDRAW风格时,程序将自动调用DrawItem方法绘制按钮。 DrawItem函数定义如下: Virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); 其中lpDrawItemStruct是一个LPDRAWITEMSTRUCT结构的指针。此结构体包含了控件的一些信息。实现步骤如下: 创建一个以CButton类为基类的派生类CButtonBmp。 选择工作区窗口的RecourceView选项卡,想对话框中导入图标资源。 在CButtonBmp累得头文件中声明变量; 在构造函数中加载图标; 添加SetImageIndex函数,设置图像索引; 添加SetText函数设置按钮文本; 添加DrawItem虚方法,用于绘制图标按钮; 处理WM_LBUTTONDOWN消息,在按钮被按下时将IsPressed的值设置为TRUE; 处理WM_BUTTONUP消息,在按钮被按下时将IsPress的值设置为FALSE; 添加OnEraseBkgnd消息响应函数,让其直接TRVE。 2.5系统特点 2.5.1 程序特点 系统功能模块化:采用模块化结构,使用户可以根据管理要求和规模对系统功能进行剪裁、组合。 灵活性和可扩展性:系统可根据客户需求规模的不断扩大,在不影响用户日常工作的前提下,对服务器和数据库服务器等设备进行扩展。 简易性:操作直观、简单。 维护成本低:数据集中管理,方便管理。 在线考试系统是利用计算机网络组织考试的综合性应用系统。在线考试系统与传统的纸介质试卷考试相比具有以下优势: 高效节约 传统考试在编写试卷、阅卷、成绩统计等方面需耗费大量的资源。而采用计算机考试,答题完毕后系统会自动判断考卷,并核对出最后考卷的分数,从而可节约大量的人、财、物力及时间资源。 准确公正 11 计算机考试系统主要处理的是标准化试题及试卷,它不但高效迅速而且准确避免人为因素,从而在一定程度上避免人为误差及人情分等问题,保证考试的公平公正。 可有效杜绝考试的作弊现象 利用计算机考试各考生的试卷现场随机生成,可以试卷不同也可试卷相同而顺序不同,由此可在一定程度避免互相参看抄袭等作弊现象,从而达到考试成绩的公平性。 2.5.2 系统创新点 系统完全采用信号与槽设计模式,达到低耦合性、高重用性和可适用性、快速的部署、可维护性、有利于软件工程化管理等特点。 系统融合了教师对考试的不同需求,可以根据客户需求及时满足客户对系统的要求和改进,具有很强的易用性和维护性。 采用MFC底层类库,提供灵活的操作功能。 关键数据加密处理,安全性高。根据用户的不同采用不同的加密算法,保证数据的安全。 12 3 系统的需求分析和概要设计 3.1 系统的需求分析 系统功能需求如下: 1(试题管理:对试题库进行管理。包括增加、修改、删除试题。 2(试卷管理:生成考试用的试卷,可自动组卷,还可手动组卷。 3(考试管理:为某次考试选择试卷,并设定考试时间,参考人员等信息。 4(成绩管理:评客观题和主观题,并进行成绩分析。 5(自动阅卷管理:系统对客观题自动评分,并为教师提供主观题的批阅界面,并统计最终得分。 3.1.1技术可行性 现在可以采用Microsoft SQL 2005进行后台数据库的管理、操作和维护,用mfc和QT进行前台界面设计、与后台数据库的接口、数据的录入、查询、浏览等功能。根据C++的特点和vs2008强大的方便快捷的开发工具,以及他们当前的广泛实际应用,充分说明系统在技术方面可行。 3.1.2 经济可行性 [10] 经济可行性研究主要是预估费用支出和对项目的经济效益进行评价。在科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,一般的硬件平台完全能满足此系统的需要。考试系统减轻了客户端的负担,只要支持浏览器就可以进行在线考试与测试,大降低了成本,且考生只需掌握简单的操作即可;其次,考试、批卷、试卷分析都由电脑自动完成,使教师从繁忙的工作中解脱出 [11]来,减少了开销,提高了效率;再次,系统的运行和维护相对简单,专业人员可进行远程维护,也减少了不必要的开销。所以本系统在经济上是可行的。 3.1.3 操作可行性 现在的系统具备很好的人机交互界面,操作者只需具备初步的Windows2000 /Windows XP使用经验即可熟练地操作本系统。在系统中大部分的操作均可用鼠标的单击来完成,从而简化了繁琐的输入、输出工作。 13 3.2 模块业务流程图 开始 教师登录 是 账号、密码 否 阅卷 题目删除 评卷 科目管理 自动阅卷 试题管理 题目修改 成绩处理 题目添加 科目信息显示 输入题目名称 科目修改 科目查询 科目添加 科目删除 是 是否已存在 修改科目名称 输入科目名称 否 否 是否已存在 添加 添加 是 退出系统 开始 图3-1 教师模块业务流程图 14 15 3.3数据流程图 3.3.1 科目管理数据流程图 1(第二层数据流程图,如图3-3、3-4所示: 账号、密教师登录信 码 息 教师 登录 科目管 理 图3-3 科目管理第二层数据流 程图 账号、密教师登录信 码 息 学生 登录 个人考 试科目 管理 图3-4 科目管理第二层数据流 程图 2(第三层数据流程图,如图3-5、3-6所示: 删除科 目 教师登录信 教师 息 添加科输入科科目信 目 目 息 修改科 目 图3-5科目管理第三层数据流程 图 16 修改个人信 息 教师登录信学生 息 科目信 息 查找科 目 图3-6 科目管理第三层数据流 程图 3.3.2 试题管理数据流程图 1(第二层数据流程图,如图3-7所示: 账号、密教师登录信 教师 登录 码 息 试题管 理 图3-7 试题管理第二层数据流 程图 2(第三层数据流程图,如图3-8所示: 教师登录信教师 科目 息 删除试添加 修改 题 添加处 理 科目试 题信息 图3-8 试题第三层数据流程 图 17 3.3.3 试卷管理数据流程图 1(第二层数据流程图,如图3-9所示: 账号密 教师登录信 教师 登录 码 息 试卷管 理 账号密 学生登录信 学生 码 登录 息 试卷选 择 图3-9 试卷管理第二层数据流 程图 2(第三层数据流程图,如图3-10,、3-11所示: 教师登录信教师 选科目 试题 息 科 试卷信抽题处理 息 查阅试查阅试 卷 卷 图3-10 试卷管理第二层数据流程 图 18 学生登录信选学生 科目 试题 息 科 开始答题 试个人 信息 提交试查询成 卷 绩阅试 卷 图3-11 试卷管理第二层数据流程 图 3.4数据库设计 3.4.1 数据库设计的基本原则 在进行数据库的数据结构分解和设计时,应遵循数据规范化理论进行设计,以减少数据冗余,保证数据的完整性、一致性。数据库设计的基本原则是在管理信息系统总体信息方案的指导下,各个数据库应当为它所支持的管理目标服务,在设计数据库系统时: 3.4.1.1应当重点考虑以下几个因素 1(数据库必须层次分明,布局合理。 2(数据库必须高度结构化,保证数据的结构化,规范化和标准化,这是建立数据库和进行信息交换的基础。数据结构的设计应该遵循国家标准和行业标准,尤其要重视编码的应用。 3(在设计数据库的时候,一方面要尽可能地减小冗余度,减小存储空间降低数据一致性问题发生的可能性,另一方面,还要考虑适当的冗余,以提高和降低开发难度。 4(必须维护数据的正确性和一致性。在管理信息系统中,多个用户共享由于并发操作,可能影响数据的一致性,因此必须用“锁”等办法保证数据的 5(设定相应的安全机制,由于数据库的信息对特定的用户有特定的安全机制必不可少。 3.4.1.2在实际的数据库设计过程中,判断所设计的数据库结构是否合理主要是根的数据库是否具有下列的特性来定 1(系统是否具有相应的灵活性、适应性和可理解性; 2(系统是否具有与其它系统的兼容性; 3(系统是否具有对新环境的可改变性; 4(系统的存储成本低; 5(数据库的设计是否有利于数据库系统的实现; 6(是否具有良好的数据库结构,易于维护,易于理解,效率较高。 19 3.4.2数据库概念设计 通过对系统进行的需求分析、系统设计,规划出系统中使用的数据库实体对象分别为“教师信息”、“考生成绩信息”、“试卷信息”、“教师信息”、“试卷答案信息”、“试题信息”等实体,以下只列出部分实体E-R图。 3.4.2.1教师,学生信息实体 教师信息实体包括教师登录账号、教师姓名、性别、登录密码、所在部门等信息,如图4-4所示。 教师 姓名 性别 登录账登录密所在部 号 码 门 图 教师信息实体E-R图 学生 学号 姓名 性别 登录账登录密所在专 号 码 业 图4-4 教师信息实体E-R图 3.4.2.2(考生成绩信息实体 考生成绩信息实体包括考生证号、科目号、科目名称、单选成绩、多选成绩、总成绩,如图4-5所示 考生成绩 考生证总成绩 号 科目号 多选成 科目名单选成绩 称 绩 图4-5 考生成绩实体E-R图 3.4.2.3(试卷信息实体 试卷信息实体包括科目号、科目名称、所在部门、考试时间、出卷人、试卷难度、单选题数、多选题数、简答题数、填空题题数、单选题分值、多选题分值、填空题分值、简答题分值、总分,如图4-6所示 20 科目名所在部 考试时称 门 科目号 间 出卷人 总分 试卷信息 单选题填空题分 数 值 多选题分多选题 值 数 单选题分填空题简答题 值 数 数 图4-6 试卷信息实体E-R图 3.4.2.4(试卷答案信息实体 试卷答案信息实体包括学生证号、科目号、试题号、考生答案、正确答案、分数、考生得分、题目类型,如图4-7所示 科目号 学生证试题号 正确答 号 案 试卷信 息 分数 考生答考生得题目类 案 分 型 图4-7 试卷答案信息E-R图 3.4.2.5(试题信息实体 试题信息实体包括试题编号、科目号、题目内容、题型、题目难度、答案A、答案B答案C、答案D、答案E、正确答案、随机值,如图4-8所示 21 题目内题型 科目号 题目难容 度 试题编 随机值 号 试题信息 答案A 正确答 案 答案B 答案C 答案D 图4-8 试卷信息E-R图 3.5 数据库表设计 3.5.1(教师,学生信息表 教师信息表用于保存教师的基本信息,tb_teacher表的结构如表4-1所示。 表4-1 教师信息表 字段名称 数据类型 长度 主键 描述 T_Id nvarchar 20 是 教师登录密码 T_Name nvarchar 10 否 姓名 T_sex nvarchar 2 否 性别 Password nvarchar 20 否 登录密码 T_dep nvarchar 20 否 所在部门 表4-1 教师信息表 字段名称 数据类型 长度 主键 描述 S_Id nvarchar 20 是 学生登录密码 S_Name nvarchar 10 否 姓名 S_sex nvarchar 2 否 性别 Password nvarchar 20 否 登录密码 S_dep nvarchar 20 否 所在专业 S_num int 11 否 学生学号 22 3.5.2(考生成绩表 考生成绩表用于保存考生的成绩,tb_score表的结构如表4-2所示。 表4-2 考生成绩表 字段名称 数据类型 长度 主键 描述 S_num nvarchar 20 是 学生证号 S_num nvarchar 20 否 科目号 S_bnum nvarchar 50 否 科目名称 Res_singlint 5 否 单选成绩 e Res_more int 5 否 多选成绩 Judgecounint 5 否 判断成绩 t Res_total int 5 否 总成绩 3.5.3(试卷信息表 试卷信息表用于保存试卷的基本信息,tb_subject表的结构如表4-3所示。 表4-3 试卷信息表 字段名称 数据类型 长度 主键 描述 S_bnum int 5 是 科目号 S_bname nvarchar 60 否 科目名称 S_dep nvarchar 5 否 所在部门 Time int 60 否 考试时间 Autor nvarchar 60 否 出卷人 Level nvarchar 5 否 试卷难度 Danxuan int 5 否 单选题题数 Duoxuan int 5 否 多选题题数 Tiankong int 5 否 填空题题数 Jianda int 5 否 简答题题数 Mark1 int 5 否 单选题分值 Mark2 int 5 否 多选题分值 Mark3 int 5 否 填空题分值 allscore int 5 否 总分 3.5.4(试卷答案表 23 试卷答案表用来存储考生考试的一些相关的信息,以及自动判卷后个体的得分,tb_answer表结构如表4-4所示。 表4-4 试卷答案表 字段名称 数据类型 长度 主键 描述 S_num nvarchar 20 否 学生证号 S_bnum int 5 否 科目号 Q_num int 5 否 试题号 Keys ntext 20 否 考生答案 Goodkeys ntext 20 否 正确答案 Mark int 5 否 分数 Studentmarint 5 否 考生得分 k type nvarchar 20 否 题目类型 3.5.5(试题表 试题表用于储存相关试题信息, tb_queston的表结构如表4-5所示。 表4-5 试题表 字段名称 数据类型 长度 主键 描述 Q_num int 5 是 试题编号 S_bnum nvarchar 20 否 科目号 Question ntext 20 否 试题内容 Type nvarchar 20 否 题型 Diff nvarchar 10 否 试题难度 Option a nvarchar 50 否 答案A Option b nvarchar 50 否 答案B Option c nvarchar 50 否 答案C Option d nvarchar 50 否 答案D Keys ntext 20 否 正确答案 3.5.6(单项选择题表 单项选择题表tb_danxuan表结构如表4-6所示。 表4-6 单项选择题表 字段名称 数据类型 长度 主键 描述 Q_num int 5 是 题目编号 24 Question varchar 100 否 题目 Option a nvarchar 50 否 A选项 Option b nvarchar 50 否 B选项 Option c nvarchar 50 否 C选项 Option d nvarchar 50 否 D选项 Option e nvarchar 50 否 E选项 Keys ntext 20 否 正确答案 Diff nvarchar 100 否 难度 S_bnum nvarchar 50 否 科目 3.5.7(判断题表 判断题表tb_pandan表结构如表4-7所示。 表4-7 判断题表 字段名称 数据类型 长度 主键 描述 Q_num int 5 是 题目编号 Question varchar 100 否 题目 Keys ntext 50 否 正确答案 Type nvarchar 200 否 题目类型 Q_Score int 200 否 题目分值 Diff nvarchar 50 否 难度 Sebum nvarchar 100 否 科目 3.5.8(填空题表 填空题表tb_tiankong表结构如表4-8所示。 表4-8 填空题表 字段名称 数据类型 长度 主键 描述 Q_num int 5 是 题目编号 Question varchar 100 否 题目 Tks varchar 100 否 填空数 Keys ntext 50 否 正确答案 Q_Score int 200 否 题目分值 Diff nvarchar 50 否 难度 3.5.9. 学生分数表 表4-1 学生分数表 字段名称 数据类型 长度 主键 描述 25 S_Id nvarchar 20 是 学生学号 Name nvarchar 10 否 姓名 S_sum Int 5 否 分数 Object nvarchar 20 否 已考科目 S_dep nvarchar 20 否 所在专业 4 系统的详细设计与实现 4.1在线考试系统模块的设计与实现 4.1.1功能描述 在线考试系统主要是应用在不同类型的考试中,主要应用的在桌面应用程序当中,同时具有强大的可拓展空间和再开发性,是一个与时俱进的考试系统。 4.1.2工作流程图 在线考试系统模块的各个小模块的工作具体流程如图所示: 26 4.1.3代码实现 在线考试模块的部分实现代码: 4.1.4效果图 在线考试系统登录模块实现的效果图如图所示: 图 在线考试系统登录购界面 4.1.5 在线考试系统欢迎窗口界面 27 4.1.6 操作界面 4.1.7 考试界面 28 4.2在线考试系统模块设计与实现 4.2.1随机数算法模块说明 随机抽题功能是随机不重复地抽取学生选择的考试科目的题号,并将题号保存到数组。随机抽题抽取选择题号、判断题题号和填空题题号: 4.2.2计时算法说明 计时算法是根据考试不同的开始时间来确定的,这样可以使得考试的公平性得到最大的体现。 代码实现如下: SetTimer(1,1000,NULL); Void CTeSysDlg::OnTimer(UNIT nIDEvent){ Static int H=0,M=0,S=0; S++; If(S==60){ S=0; M++; If(M==0){ M=0; H++; PosrMessage(WM_QUIT); } } } 4.2.3 登录界面 登录界面可以根据用户不同的输入来确定是谁在登录,并且跳转到不同的界面上,从而进行操作: 代码实现: void CLogin::OnOK() { // TODO: Add extra validation here UpdateData(); CString user; m_User.GetWindowText(user); m_CtlSubject.GetWindowText(Subject); if(user=="学生") { if(Subject=="") 29 { AfxMessageBox("请选择考试科目"); return; } if(!m_Name.IsEmpty()&&!m_Password.IsEmpty()&&true) { _bstr_t sql="select*from StuInformation where 姓名='"+m_Name+"' and 考号="+m_Password+""; m_pRecordset.CreateInstance(__uuidof(Recordset)); m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptim istic,adCmdText); if(m_pRecordset->adoEOF) { AfxMessageBox("用户名和密码错误"); m_Name=""; m_Password=""; UpdateData(false); } else { Password=m_Password; Name=m_Name; m_IsLogin=1; //学生登录 CDialog::OnOK(); } } else { AfxMessageBox("用户名和密码不能为空"); } } else if(user=="教师") { if(!m_Name.IsEmpty()&&!m_Password.IsEmpty()&&true) { _bstr_t sql="select*from Administrator where 用户名='"+m_Name+"'and 密码='"+m_Password+"'"; m_pRecordset.CreateInstance(__uuidof(Recordset)); m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText); 30 if(m_pRecordset->adoEOF) { AfxMessageBox("用户名和密码错误"); m_Name=""; m_Password=""; UpdateData(false); } else { m_IsLogin=2; CDialog::OnOK(); } } else { AfxMessageBox("用户名和密码不能为空"); } } else { MessageBox("请选择用户类型"); }} 效果图: 5 系统测试 5.1 测试原则 软件测试从不同的角度出发会派生出两种不同的测试原则:从用户的角度出发,就是 希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品; 31 从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户 的需求,确立人们对软件质量的信心。 5.2 测试目的 验证基于在线考试系统的设计与实现系统所具备的功能和性能。 验证基于在线考试系统的设计与实现系统各小的模块功能实现的正确性。 保证系统的健壮性、主机平台的稳定性和数据库管理的安全性。。 验证基层数据网络化自动传送功能的正确性。 保证整个软件开发过程是高质量的。 5.3 测试时间人员分配 网络、主机平台系统综合测试: 测试时间:2010(12 测试人员:由项目开发人员参加。 应用软件系统测试: 测试时间:从2010. 12月上旬起逐步完成 测试人员:由项目开发人员参加。 5.4 测试环境 系统测试环境即基于在线考试系统运行环境,如表9所示: 表10 系统运行环境 操作系统及设备 系统主要配数量 主要用服务器型号 系统软件版类型 置 ,台, 途 本 CPU: 信息中Itanium*2 Windows XP 数据库 IBM x Series 心MIS系内存:2G 1 服务器 455 统数据硬盘:MySQL 平台 4.3G*4 应用服CPU:700 应用 务器 IBM X250 内存:512M Windows XP 1 服务器 文件服硬盘:40 务器 5.5系统测试 5.5.1系统总体运行测试 连通性测试 用PING命令测试,全部通过。 32 通过VPN专线测试,全部通过。 功能测试 服务器: AS(正常)动态输出内容。 网络性能测试 工作站与工作站之间通信速度:10M网卡,720KB/每秒。 100M网卡,9.5MB/每秒。 工作站与服务器之间通信速度:9.65MB/每秒。 网络系统运行正常、稳定、可靠。网络系统达到了设计目标。 5.5.2主机平台系统测试 主机系统 平台测试内容: 硬件测试 网络操作系统测试 Intranet服务功能及性能测试 开发平台测试 实测项目 硬件部分测试: 采用目前的一般配置或者偏低(586以上),分为笔记本和台式机。 操作系统 操作系统采用微软的WINDOWS系列: WINDOW XP:测试正常; WINDOW 2003:测试正常。 软件平台系统测试 开发平台主要指以下几个支撑软件和工具软件[17],即: MySQL数据库系统 IIS服务 SQLserver数据系统 start up (正常) stop(down) (正常) 建立数据库用户及删除 (正常) 用户的密码设置 (正常) SQLserver环境的SQL语言运行 (正常) 数据库的建立 (正常) 数据表的建立 (正常) 数据库的输入 (正常) 数据库的修改 (正常) 数据库的删除 (正常) 数据库的插入 (正常) IIS应用服务器软件 start up (正常) stop(down) (正常) 建立用户及删除 (正常) 用户的密码设置 (正常) 33 域的建立 (正常) 应用的监视 (正常) 性能调试 (正常) 集成测试 (正常) 数据库的维护 (正常) 安全性测试,抵御非法用户进入 (性能好) 5.5.3应用系统功能测试 测试对象 系统所有组件 系统所有子系统 系统所有子系统集成联机 测试内容 组件功能 子系统功能 子系统集成功能 测试方法 组件及子系统单机白盒测试 子系统联机网络黑盒测试 实际数据联机综合B测试 测试结果 整体测试结果:所有功能测试,符合系统设计要求。 所有子系统和组件的功能测试,符合系统设计要求。 5.6 测试结论 根据测试报告可得出如下结论: 主机平台运行稳定。 网络响应速度和主机响应速度符合系统设计要求。 数据库管理安全措施完备,具有较高的安全性。 各组件与子系统功能正确,达到设计要求。 基层数据文件格式接收传递正确。 系统整体性能达到职称管理的计算机管理信息系统实用化测试导则所规定的要求。 基于在线考试系统的设计与实现系统的功能和性能符合设计要求,具有较好的可管理 性、安全性和稳定性。 34 6 总结 计算机网络技术的日益成熟及校园网的逐步普及,都为考试信息化提供了良好的基础。利用计算机和网络技术对考试进行管理,具有人工管理无法比拟的优点。 在这次的毕业设计中主要设计一个易于管理和维护的面向教学的在线考试系统,具有一定的通用性,能够满足多门课程的测试与考核要求。为教师开展平时考核及期末考核提供一个考核平台;为学生利用网络自主学习提供条件;为不同课程的网上考试提供平台。 在本文中对在线考试系统研究的背景、目的、现状进行了详细的阐述。通过对系统的规划、需求分析以及详细的设计,完成了本次的设计要求。但是由于毕业设计时间较短,所以其中还存在一些问题,比如说这次的只是设计系统,还没能实现。同时在本系统设计中,教师在评阅主观题中的名词解释和简答时,首先从考生答案中查找得分点,与标准答案进行比较,对于考生答案和标准答案进行比较,利用贴近度的方法表示,从而得出考生的分数,但是这样的方法并不是很准确,这是本系统的一个缺陷。希望随着技术的改进,能够找到有效的解决方案。 这次毕业设计是我从理论走向实践迈出的坚实的一步,使我对系统开发设计有了较清楚的认识,通过此次毕业设计,使我认识到了其中有很多不足的地方。并且需要进一步学习和加强的方面还很多。通过这次毕业设计,我深深体会到,要真正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。 致谢 时间匆匆如流水,转眼间便是大学生活结束之时,大学生活的点点滴滴仍历历在目。当毕业论文接近尾声,恍然大悟,大学即将与我告别。心中不禁感慨万千。 回首奋战毕业设计与毕业论文的几个月的生活,虽然遇到不少的困难与挫折,但更多的是收获的喜悦。从开始选题到毕业论文的顺利完成,一直都离不开老师,同学,朋友给予我的帮助和支持,在这里请接收我诚挚的谢意~ 35 36 37 38
本文档为【在线考试系统毕业论文abrw】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_180829
暂无简介~
格式:doc
大小:220KB
软件:Word
页数:55
分类:工学
上传时间:2017-09-18
浏览量:87