在线考试系统毕业论文abrw.doc

上传人:来看看 文档编号:3979512 上传时间:2019-10-11 格式:DOC 页数:42 大小:1.03MB
返回 下载 相关 举报
在线考试系统毕业论文abrw.doc_第1页
第1页 / 共42页
在线考试系统毕业论文abrw.doc_第2页
第2页 / 共42页
在线考试系统毕业论文abrw.doc_第3页
第3页 / 共42页
在线考试系统毕业论文abrw.doc_第4页
第4页 / 共42页
在线考试系统毕业论文abrw.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《在线考试系统毕业论文abrw.doc》由会员分享,可在线阅读,更多相关《在线考试系统毕业论文abrw.doc(42页珍藏版)》请在三一文库上搜索。

1、 四川师范大学经济职业学院(论文) 题 目: 在线考试系统 指导教师: 职称: 学生姓名: X X X 学号: C2010300XXXX 专 业: 软件工程 院(系): 计算机科学一系 完成时间: 20120301 1 2012 年 03 月 01 日 目录 摘要 .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 开发方案的选择以

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 下

3、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 3.3.2 试题管理数据流程图 .19 3.3.3 试卷管理数据流程图 .20 3.4

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.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

6、 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 摘要 考试这个词语早在中国的汉代就已经出现,经历中国几千年的发展和人类进步, 考试也从过去的单一模式发展到现在的多种形式,但是在以前我们都没有跳出老师手工 出题,学生手写卷子,然后老师再一一的收回,然后老师在逐一批阅。 但是,随着计算机网络技术和网络教育的不断发展

7、,传统的基于纸笔的考试形式已 不能适应现在的发展需要,计算机在线考试正在逐步取代传统考试。计算机在线考试利 用网络实现在线考试、评分等环节,实现教考分离,在一定程度上减少了影响考试的人 为主观因素,同时减少了教师的工作量。在线考试系统的设计就是基于上述目的开发设 计的。 这样在无形中给教师增加更大的课业和工作压力,同时也给学生增加了更多的不必 要的等待,但是随着网络和软件的发展,这个问题在逐渐的解决,所以我们这次要做出 一个在线考试系统,以计算机为平台,这样不仅可以大大的降低教师的工作压力,同时 也可以大大减少资源的浪费,更好地建设我们的“和谐社会”,“环保社会”等。 本系统自动抽提,自动计分

8、,并且提供了各种查询模块,教师只需要录入考试题目 即可,学生也只是需要一台 PC 机即可,从而大大的减轻教师的负担和资源浪费。 在论文中,严格按照软件工程中的开发方法对系统进行了需求、分析、设计、编 码、调试和初步试运行等六大阶段,并对各个阶段进行详细的阐述。首先对系统需求进 行了分析。其次对该系统的技术可行性、经济可行性、社会可行性、法律可行性以及开 发方案可行性进行分析和研究;而后对该系统进行了设计,分析得到了功能模块,建立 系统工作流程图,总结了使用的主要技术、分析了系统用途以及开发特点等。阐述了系 统架构中的系统各个功能模块的实现和主要的技术支持,最后陈述了个人项目实现和编 写毕业论文

9、过程中的心得体会与收获。特别地,对辛勤的指导老师表示衷心的感谢! 关键词:visual C+ 6.0/ VS2008,GDI,SQL SERVER 2005 0 1 前言 1.1 系统开发意义和前景 随着计算机技术和互联网的快速发展,人类已经进入了信息时代,也有人称为数字 化时代。在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学 习,同时也希望能够得到科学的评价,老师希望有效改进现有的考试模式,提高考试的 效率1;教育机构也希望给网上的学生提供更全面、灵活的服务,全面准确地对学生进 行跟踪和评论。网络考试系统正是迎合这一时代需求而开发的,它旨在探索一种以互联 网为基础的考试

10、模式2。通过这种新的模式,为学校创造一种新的考试环境,提高考试 工作效率和标准化水平,使学校管理者、教师和学生可以随时随地通过网络进行考试。 在线考试系统与传统的考试相比,由于传统的考试相比涉及到组织命题、试卷印刷、 考场安排、组织阅卷等诸多环节,考试试卷周期长、效率下3;同时人工批卷等主观因 素也影响到考试的公正性。随着网络技术在教育领域应用的普及,应用现代信息技术构 架的网络在线考试系统展现出了越来越多的优越性。 在线考试系统利用网络手段将考试资源整合,实现了一定程度的无纸化考试,从而 使考试这项常规而繁琐的任务变得更加方便,避免了以往学校里考试纸张、笔、监考和 巡考等各种资源的浪费,并且

11、后台管理是管理员单一的管理,确保了程序的安全性。在 线考试系统管理员登录后,对考试内容、专业、科目和考试题目等都作了详细的分类, 只要考生通过自己的学生编号和密码进入前台,按步骤依次进行选题和答题,答题完毕 后系统会自动判断考卷,并核对出最后考卷的分数,解决了在学校考试后等待考卷分数 通知的问题。 1.2 在线考试系统的现状以及发展 世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教 育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于 教育,采取措施推进教育信息化5。美国政府在 1996 年提出了“教育技术规划 (Educational Techn

12、ology Initiative)”,指出到 21 世纪初让全美国的每间教室和每 个图书馆都将联上信息高速公路,让每个孩子都能在“21 世纪教师”网络服务。澳大利 亚国家公共资源管理局已于 1995 年 4 月建立“澳大利亚教育网”,并联通 Internet, 该网络不仅包括全部高等院校,而且还覆盖全澳大利亚所有的中小国家。 网络化在线考试作为网上远程教育的重要组成部分和发展分支,己经在国外一些发 达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。特别是 Internet 业务的 普及,构筑高性能、低成本的计算机网络化在线考试,从技术条件和经济条件上己经成 熟。例如在美国,一些著名的考试

13、就采用了网上在线考试的形式包括 Microsoft 公司的 MCSE(微软系统工程师认证考试)GMAT(工商管理硕士入学考试)、托福考试、GRE(美国研 究生入学考试)等等,并己在全范应用7。 在国内,普遍地看绝大多数远程教育的考试还停留在传统考试方式。在此方式下, 组织一次考试至少要经过 5 个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成 绩评估。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越 来越大,并且这样工作将是一件十分烦琐和非常容易出错的事情。但是对互联网的真正 1 应用仅限于网上报名工作和网上成绩查询,还没有真正形成上网考试的规模。而在国外 一些国家,网

14、上提交作业和网上考试已经相当普及了。所以说传统的考试方式已经不能 适应现代考试的需要。 到 1998 年后,随着国内网络教育的兴起,各高校纷纷开发了自己的网络教学平台8。 作为网络课程重要组成部分的网络考试系统也相继问世,如北京师范大学的网络教学平 台、上海交大的网络考试平台。 近几年来,借鉴发达国家的成功经验,结合我国的实际情况,伴随着网络应用的不 断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。人们迫切要求利用网 络技术进行在线考试,来提高了考试的质量,突出公正和客观性,减轻组织及保障工作 的负担,提高工作效率9。于是许多教育教学类的课程在线考试软件应运而生,高等学 校,企事业单

15、位也都纷纷组织研究此类应用的解决方案,并研制开发了大量的不同类型 计算机在线考试软件,也推出了一批优秀的在线考试软件产品。比如全国计算机等级考 试软件、职称计算机能力考试等等。有力地推动了我国网络化在线考试的发展水平,并 积累了大量有价值的经验。 1.3 在线考试系统研究的意义 在线考试系统提高了考试的可靠性、有效性和工作效率,降低了考试成本,顺应了社 会的网络化趋势,必将成为一种不可或缺的考试方式4。本文研究的目的是设计一个易于 管理和维护的面向教学的考试系统,具有一定的通用性,能够满足多门课程的测试与考 核要求。为教师开展平时考核及期末考核提供一个考核平台;为学生利用网络自主学习 提供条件

16、;为不同课程的网上考试提供平台。 为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面 的要求,系统总体架构设计采用先进的基于 B/S 的三层体系结构:用户层、业务逻辑层、 数据库层。要求建立后台数据库,内含一个试题样库,教师可以在题库中添加、编辑和 删除试题;教师可以增加新的考试科目;可以充分利用题库中的试题由系统随机组卷, 并能在指定时间内发布试卷;学生参加完考试能立即得到答案,并分析考试中答错的题 目;教师能得到学生考试后传送到系统的反馈信息,可方便的对成绩进行查询和分析, 同时对学生考试中出现的错误进行统计以便今后的教学。此外,还应具有良好的用户界 面,操作方便,尽

17、量减少误操作率。具有安全保密机制。 1.4 在线考试系统的优势 在线考试系统是利用计算机网络组织考试的综合性应用系统。在线考试系统与传 统的纸介质试卷考试相比具有以下优势: 1.4.1高效节约 传统考试在编写试卷、阅卷、成绩统计等方面需耗费大量的资源。而采用计算机考 试,答题完毕后系统会自动判断考卷,并核对出最后考卷的分数,从而可节约大量的人、 财、物力及时间资源。 1.4.2准确公正 计算机考试系统主要处理的是标准化试题及试卷,它不但高效迅速而且准确避免人 为因素,从而在一定程度上避免人为误差及人情分等问题,保证考试的公平公正。 1.4.3可有效杜绝考试的作弊现象 2 利用计算机考试各考生的

18、试卷现场随机生成,可以试卷不同也可试卷相同而顺序不 同,由此可在一定程度避免互相参看抄袭等作弊现象,从而达到考试成绩的公平性。 1.5 系统最终目标 通过本系统的完成,我们要实现的是考试简单化,个性化和灵活化。同时希望在不久的将来随 着人工智能的发展,我相信,在线考试将成为一种时尚,或者说可以成为人类考试的一种全新的形 式。 1.6 我所完成的工作 我在开发这款“在线考试”系统前,我做过大量的调查,我走访了很多老师,来询 问,那些老师们是如何对待学生考试这个问题的,很多老师都对我说起,出卷子的麻烦 和改卷子的劳累等等这些问题。 因此我觉得这个“在线考试”系统无论从它的实际意义或者是社会价值来讲

19、都具有 重要和深远的意义。所以我才动手来完成这个系统的调研和开发。 在本系统的开发前期,我曾寻找多个有多年教师经验的资深教师写出“在线考试” 系统的需求,我进行了详细的分析和设计,从而得出了系统的可行性和可拓展性等。 我是本着开发一个实用,简洁,功能强大和拓展性强的目标来开发这款“在线考试” 系统。 在开发过程中,我进行了系统有效性和开发费用的评估和预算,同时也做好一切测 试的准备,坚持按照需求-分析-开发-测试-部署-维护来完成,并且将大部分 精力放在分析和测试上面尽量满足客户和系统的要求上面来,尽可能的开发出一款实用 性强,性价比高的软件。 在后期的测试中,我采用不同的测试平台来测试,在

20、Windows 下面的不同版本来测 试(因为,我们一般老师使用的系统都是 Windows,所以没有在 Linux 和 unix 下面测试。 )得出了系统完全可以在现在市面上常见的系统和硬件下面可以正常运行。 在“在线考试”系统的开发中,全部工作全部在张老师的指导下由我本人来完成。 2 系统可行性研究和关键技术介绍 在客观世界中,并不是所有的问题都可以有明显的解决方法。实际上,有许多问题 不可能在设定系统的规模有解。还有一些问题在当时的技术条件下是无解的,因为工程 中的问题并不是都有明显的解决办法,所以就不可能在预期的时间、费用之内解决这些 问题。为了有效地防止这些情况的发生,在项目开始设计之前

21、,我做了有关系统可行性 的细致研究,针对该项目是否值得去开发,其中的关键技术难点是什么,问题能否得到 解决,怎样达到、实现客户所提出的要求做了具有价值意义的分析。总之,在系统可行 性研究中,我达到了如何在尽可能短的时间内用最小的代价确定该项目是否值得去开发 的目的。 3 2.1 可行性研究 2.1.1 技术可行性研究 根据客户针对基于“在线考试”系统的设计与实现所提出的系统功能、性能以及系 统必须是可靠、安全、先进、开放、实用和可扩展的等其他实现的各项约束条件,从技 术的角度研究实现系统的可行性: (1)开放性 考虑到在线考试是一个循序渐进、逐步深化的过程,因此,系统既要考虑到现行管 理工作的

22、情况,又要放眼长远,坚持高标准、留有接口,为日后根据信息技术发展的最 新动态和业务发展的需要进行升级打下基础。在项目的产品技术选型中,将尽量避免采 用专有技术,而是全部采用符合国际标准和工业标准的软硬件产品,从而使项目中的软 硬件平台具有充分的开放性。 (2)可靠性 在数据处理中,采用严格的事务控制,保证对数据库中多个表的操作同时提交 (Commit)或回滚(Rollback),维护数据的一致性和完整性。 (3)扩展性 在系统设计中,所有的网络、服务器、存储、应用软件的设计都将遵循可扩充的原 则,利用企业现有的软硬件资源,提供最大的软硬件选择余地。系统采用易于扩展的框 架结构,使应用系统的客户

23、化和二次开发变得简单。 (4)灵活性 系统融合了各个行业的考试需求,支持不同类型类型在线考试的选择性。可以提供 针对不同课程和考试的要求,在客户的要求下,本系统一般可以支持现在我国的不同类 型考试,同时也在系统上面曾加了很多潜在的功能,随着社会的发展,可以起到相应的 作用,并且在不同的时间我们都可以使用本系统,可以在不同的环境下面运行本系统, 这样就大大增大了系统的灵活性。 (5)可维护性 系统采用 CS 架构的应用软件开发,可以保证系统的不被攻入和系统的维护,数据 库采用现在社会上面常采用的 sql service2005 来开发,可以更好的维护。 (6)安全性 系统应采用先进而成熟的技术。

24、系统对外必须有完备的安全防范措施,必须建立符 合安全要求的防火墙,能够严格有效地防止外来非法用户入侵,能够避免遭受攻击或遭 到攻击能报警。系统必须具有完备的用户权限管理功能,禁止越权操作。 同时,本系统是 CS 架构下的桌面应用程序的开发,这样我们就可以避免外网的入 侵,可以更好的增加“在线考试”系统的安全性。 (7)支持多种数据库 保证系统尽可能支持不同类型的后台数据库。在数据库设计过程中,尽量保证数据 库表、字段等与具体的后台数据库管理系统无关,这样可以方便数据在不同的数据库系 统之间迁移。 (8)结构模块化 软件系统在设计和开发过程中要保证各子系统、子系统中的各项功能,甚至每一个 应用程

25、序的高度模块化。 (9)系统高度集成 4 进入系统的数据能根据事先的设定以及管理工作的内在规律和内在联系,传递到相 关的功能模块中,从而实现数据高度共享和系统的高度集成。 2.2 开发方案的选择以及开发进程计划 2.2.1 开发方案的选择 系统目标: (1)提高教师工作效率和减轻教师工作量。 (2)具有严肃性和公正性,系统自动交卷。 (3)系统自动交卷、自动阅卷,保证成绩真实、准确。 (4)考生可随时查看考试成绩。 (5)对考生、教师信息进行管理。 软硬件要求: 软件配置 浏览器端要求: (1)操作系统: Windows XP 硬件配置:无 (2)浏览器端要求:无 处理器:酷睿双核 内存:25

26、6MB 数据库 接入 方案特点 易于部署。 前瞻性。 充分利用现有资源。 各中类型的考试都可以使用,只需要教师来增加试题,维护方便。 数据集中管理。 2.2.2 开发进程计划 开发进程计划,如表 1 所示: 表 1 开发进程计划 5 (2010 年 9 月2010 年 12 月) (2010 年 12 月 2011 年 1 月 底) (2011 年 2 月2011 年 2 月底) (2011 年 3 月4 月 底) (2011 年 5 月) 阶段目标:完成计划进程表,完成需求调研。 工作内容:1、了解我国现在经常用的考试制度和类型;2、搜集论文 设计的相关资料,并确定毕业论文题目;3、收集相关

27、技术的参考书籍; 4、了解给予 MVC 架构下的开发,同时参考一些成熟的在线考试系统。 阶段目标:学习并掌握相关技术,构造基本设计雏形。 工作内容:1、搜集并确定 Windows c+下的开发;2、掌握 vc 的基础 语法结构;3、学会运用 SVN 软件进行版本控制管理,维护任意文档的开 发和使用;4、深入了 MVC 架构模式的意义和应用。 阶段目标:提交系统设计报告,完成系统设计。 工作内容:1、完成系统功能概要设计、详细设计;2、运用 sql service2005 版本的 SQL 语言进行建立数据库,建立数据表,查询、修改、 计算、增添数据信息,修改数据表的格式,并进行用户权限管理;3、

28、根 据“在线考试”的业务管理和业务流程,设置权限管理程序构架;4、设 计整体系统的风格、明确“在线考试”系统的设计与实现系统的具体功能, 并绘制功能树状图模型; 阶段目标:系统开发实现 工作内容:1、根据不同的功能用途,将系统划分为不同的模块,使用 MFC 中的不同类库完成该系统建设的编码工作;2、在编码的过程中,使 用 SVN 对软件版本进行跟踪管理,不断对代码的规范性等进行修改完善, 使代码具有健壮性。 3、在编码完成以后,编写源代码的目录,为后期系 统的维护提供方便; 系统试运行,测试,部署。 2.3 关键技术及开发工具简介 2.3.1 C+MVC Visual C+ 不仅仅是一个编译器

29、。它是一个全面的应用程序开发环境,使用它你充 分 6 利用具有面向对象特性的 C+ 来开发出专业级的 Windows 应用程序。为了能充分利用 这些 特性,你必须理解 C+ 程序设计语言。掌握了 C+,你就必须掌握 Microsoft 基本类 库 (MFC) 的层次结构。该层次 结构包容了 Windows API 中的用户界面部分,并使你能 够很容易地以 面向对象的方式建立 Windows 应用程序。这种层次结构适用于所有版本的 Windows 并 彼此 兼容。你用 MFC 所建立的代码是完全可移植的。 2.3.2 事件驱动软件和词汇 所有基于窗口的 GUI 都包含相同的基本元素,它们的操作方

30、式都是相同的。在屏幕 上,用户所看到的是一组窗口,每个窗口都包含有控制、图标、对象以及一些处理鼠标 和键盘的元素。从用户角度来看,各系统的界面对象都是相同的:按钮、滚动条、图标、 对话框以及下拉菜单等等。尽管这些界面元素的“外部特性可能有些不同,但这些界面对 象的工作方式都是相同的。例如,滚动条对于 Windows、Mac 和 Motif 可能有些不同,但 他们的作用完全是一样的。从程序员的角度来看,这些系统在概念上是相似的,尽管它 们可能有很大的不同。为了建立 GUI 程序,程序员第一步要把所有需要的用户界面控制 都放到窗口上。例如,如果程序员要建立一个从摄氏到华氏的转换的简单程序,则程序

31、员所选择的用户界面对象来完成并在屏幕上把结果显示出来。在这个简单的程序中,程 序员可能需要用户在一个可编辑的编辑框中输入温度值,在一个不可编辑的编辑框中显 示转换结果,然后让用户可以单击一个标有“退出“的按钮来退出应用程序。 因为是用户来操作应用程序的控制,所以程序必须作出响应。所做的响应依赖于用户 使用鼠标或键盘在不同控制上的操作。屏幕上的每个用户界面对象对事件的响应是不同 的。例如,如果用户单击退出按钮,则该按钮必须更新屏幕、加亮它自己。然后程序必 须响应退出。Windows 所用的模式也是类似的。在一个典型的应用程序中,你将建立一 个主窗口,并且在其中放置了一些用户界面控制。这些控制通常

32、被称为子窗口-它们就 象一些在主窗口中的更小更特殊的子窗口。作为程序员,你应该通过函数调用来发送信 息操作这些控制、通过把信息发送给你到代码来响应用户的操作。 2.3.3 c+常用技术和类库: 2.3.3.1 使用 inline 内联函数替代宏调用 对于频繁使用的函数,C 语言建议使用宏调用代替函数调用以加快代码执行,减 少调用开销。但是宏调用有许多的弊端,可能引起不期望的副作用。所以在 C+中应该 使用 inline 内联函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。 使用内联函数只须把 inline 关键字放在函数返回类型的前面。这样编译器在遇到 Add()函数时,就不再

33、进行函数调用,而是直接嵌入函数代码以加快程序的执行。 7 2.3.3.2 使用函数重载 在 C+中,函数名相同而参数数据类型不同的两个函数被解释为重载。 使用函数 重载可以帮助程序员处理更多的复杂问题,避免了使用诸如 intabs()、fabs()、dabs() 等繁杂的函数名称;同时在大型程序中,使函数名易于管理和使用,而不必绞尽脑汁地 去处理函数名。同时必须注意,参数数据类型相同,但是函数返回类型不同的两个函数 不能重载。 2.3.3.3 用引用(reference)代替指针进行参数传递 对于复杂的程序,使用指针容易出错,程序也难以读懂。在 C+中,对于上述情况 可以使用引用来代替指针,使

34、程序更加清晰易懂。引用就是对变量取的一个别名,对引 用进行操作,这就相当于对原有变量进行操作。 2.3.3.4 使用缺省参数 在 C+中函数可以使用缺省参数,可以有三种方式调用函数 PutHzxy(),通常的情况 下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和 灵活性问题提供了有效的方法,所以在 C+的代码中都大量地使用了缺省参数。 需 要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省 参数,就不可再说明非缺省的参数。否则当你省略其中一个参数的时候,编译器无法知 道你是自定义了这个参数还是利用了缺省参数而定义了非缺省的参数。 2.3.3

35、.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+是一个功能强大的可视化软 件开

36、发工具。自 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

37、environment,IDE)。Visual C+6.0 由许多组 件组成,包括编辑器、调试器以及程序向导 AppWizard、类向导 Class Wizard 等开发工 具。 这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发环境。 visual C+是一个功能强大的可视化软件开发工具。自 1993 年 Microsoft 公司推出 Visual C+1.0 后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件 8 开发的首选工具。 虽然微软公司推出了 Visual C+.NET(Visual C+7.0),但它的 应用的很大的局限性,只适用于

38、 Windows 2000,Windows XP 和 Windows NT4.0。所以实 际中,更多的是以 Visual C+6.0 为平台。 Visual C+6.0 不仅是一个 C+编译器, 而且是一个基于 Windows 操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0 由许多组件组成,包括编辑器、调试器以及程序向 导 AppWizard、类向导 Class Wizard 等开发工具。 这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发环境。 2.3.5 sql 2005 简

39、介 SQL Server2000 技术 SQL Server是Microsoft公司在原来和Sybase公司合作的基础上推出的一款面向高端 的数据库系统,它推出后,得到了广大用户的积极响应并迅速占领NT下的数据库应用市 场,成为数据库市场上一支不容忽视的重要力量。经过不断的更新换代,SQL Server已 经发展到了SQL Server2000,这是Microsoft公司在推出Windows2000之后的又一力作18。 SQL Server是客户服务器系统的一个完美示例,它提供了安装到服务器系统的服务器 软件和安装在客户系统上的客户端软件,连接客户和服务器计算机的网络软件组件由 Windows

40、系统提供。 SQL Server2000进一步增强了SQL Server7的高性能、可靠性和方便应用的特点,并 包含了一些新的特性,这些对大规模的在线事务处理、数据仓库等应用是非常有用的。 SQL Server2000具有丰富的XML和Internet标准支持,它支持通过XML的数据插入、删除、 更新和检索操作,还提供了一个间接的模型供开发者开发应用程序。SQL Server2000还 支持基于HTTP连接的数据访问,并以新的过滤机制实现了对格式化文档的高性能全文检 索功能,简化了自然语言查询解决方案的开发过程。SQL Server2000还具有高度的可伸 缩性和可靠性,使其成为Web的首选数

41、据库。其提供了对超大规模数据的分析处理能力, 支持上千维数据库。SQL Server2000的可靠性主要表现在对错误的自动恢复和提前预测。 简化了错误恢复的操作和配置。SQL Server一贯追求性能的提升,它对数据具有高效的 处理能力。它提供高度集成并扩展的数据分析服务,它对管理工具进行了进一步简化, 它通过一系列的向导来辅助系统管理员完成对SQL Server的管理,有效地减轻了系统管 理员的负担,并大大减少了出现错误操作的几率。同时针对频繁的数据库调整工作,它 提供了一系列的向导。SQL Server2000的高效性增强了T-SQL语言的功能并简化了对SQL 程序的设计和调试。 SQL

42、Server 2000 具有以下优点19: (1)完全的浏览器/服务器体系结构 这一结构可以有效地使用网络,提高网络带宽的利用率。因为在浏览器服务器运算 模式下,数据库操作都集中在服务器上进行,在网络上传输的是用户的请求命令和数据 库服务器的操作结果,而不是整个数据库文件,这样可以减少网络上的信息流量,从而 提高网络的使用效率。简单的图形化管理工具使系统管理更为宣直观方便。 SQL Enterprise Manager是一个基于Windows图形用户接口的集成管理工具,利用它 可完成SQL Server的许多配置管理工作。 (2)隐含的并发控制能力 SQL Server 利用锁定功能防止用户在

43、查询和更新并发操作瞄相互发生冲突,锁定是 隐含的,用户不必操心锁定过程。 (3)丰富的编程接口工具 9 SQL Server 提供了多种专用开发工具,其中 Transact SQL 与工业标准 SQL 语言兼 容,并在其基础上加以扩充,使得它更适合事务处理方面工作的需要。此外他还支持 ODBC 规范,可以使用 ODBC 访问 SQL Server 数据库。 (4)多线程体系结构 SQL Server 支持多线程操作,多篇户并发访问时,系统在发生较小额外负担的情况 下能够进行并行处理,从而减少内存需求,提高系统的吞吐量。在用户数量增加时,SQL Server 的运行速度也不会明显变慢。 2.3.

44、6 常用的 windows 下 C+开发环境 它大概可以分成三个主要的部分: 1 Developer Studio,这是一个集成开发环境,我们日常工作的 99%都是在它上面 完成的,再加上它的标题赫然写着“Microsoft Visual C+”,所以很多人理所当然的 认为,那就是 Visual C+了。其实不然,虽然 Developer Studio 提供了一个很好的编 辑器和很多 Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的 幕后英雄后面会介绍。我们也知道,Developer Studio 并不是专门用于 VC 的 2 MFC。从理论上来讲,MFC 也不是专用于

45、 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+和整个 Vi

46、sual Studio 的精华和灵魂,虽 然我们很少能直接接触到它。大致说来,Platform SDK 是以 Microsoft C/C+编译器为 核心(不是 Visual C+,看清楚了),配合 MASM,辅以其他一些工具和文档资料。 NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成 Visual Studio 的 基石。 2.4 系统实现的关键技术和代码 2.4.1 随机抽题算法 随机抽题功能是随机不重复地抽取学生选择的考试科目的题号,并将题号保存到数 组。随机抽题抽取选择题号、判断题题号和填空题题号。 算法步骤如下:首先获得选择题数据库的最大题号,在这些题号中堆积抽取数

47、;然 后判断抽取的的随机数所对应的题目是否是学生选择的考试科目、是否不重复;是否大 于 0;最后把满足这 3 个条件的数保存到数组。这样循环抽取,直到抽满 10 道题目的题 号为止。 填空题和选择题的抽题算法与之相同,只是在填空题抽取的时候要注意对性相应的 字段的长度,以防止出现段错误等不可未知的错误。 同时在随机算法的抽取中,我们采用了数组存放的方式,并且会去不同的算子来分 开计算,这样就可以避免在相同的时间内和相邻的客户端上出现相同的试题,从而增加 了考试的公正性和系统的可靠性。 10 2.4.2 计时算法 总所周知,在任何的考试中,时间往往是决定成败的关键,本系统中采取了相对完 善的记时

48、算法,当学生开始选择考试开始的时候,这时候,界面自动转到考题界面,这 时候计时器开始使用,定时为 1 秒,这里采用的是 CPU 时钟的方式计时,绝对的准确, 从而使得本系统在时间方面可以没有任何的外界干扰因素。 在时间为 0 的时候,这时候,所有的试题都会自动上船,并且页面自动锁死,任何 操作都将失去效果,考生只能选择退出,这样就增加了本系统的公正和理性。 2.4.3 图标按钮的实现 在按钮控件属性窗口选择 Icon 属性可以让按钮显示图标,不过这种方法只能显示图 标不能显示文本,因为我在这里设计了一个以 CButton 类为基类的 CButtonBmp 类,通过 该类绘制按钮,可以显示图标,

49、并且使按钮背景透明。 在绘制按钮时需要改写 DrawItem 方法,该方法用于绘制控件。当按钮控件包含 BS_OWNWEDRAW 风格时,程序将自动调用 DrawItem 方法绘制按钮。 DrawItem 函数定义如下: Virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); 其中 lpDrawItemStruct 是一个 LPDRAWITEMSTRUCT 结构的指针。此结构体包含了控 件的一些信息。实现步骤如下: 创建一个以 CButton 类为基类的派生类 CButtonBmp。 选择工作区窗口的 RecourceView 选项卡,想对话框中导入图标资源。 在 CButtonBmp 累得头文件中声明变量; 在构造函数中加载图标; 添加 SetImageIndex 函数,设置图像索引; 添加 SetText 函数设置按钮文本; 添加 DrawItem 虚方法,用于绘

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1