• 678.00 KB
  • 2022-04-22 11:41:59 发布

信息与计算科学毕业论文计算机等级考试系统的设计和实现(1).doc

  • 40页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'江苏文理学院学士学位论文计算机等级考试系统的设计和实现——学科专业:信息与计算科学研究方向:数据库技术提交论文日期:2013年5月22日论文答辩日期:2013年6月10日学位授予单位:重庆文理学院  2014.6.22II 目录中文摘要I英文摘要II1引言11.1课题的背景和提出11.2研究的目的和意义11.3国内外研究现状11.3.1国内研究现状11.3.2国外研究现状21.4关键问题21.5开发环境及人员分工情况21.5.1开发环境21.5.2人员分工情况32系统需求分析52.1可行性分析52.1.1经济可行性52.1.2技术可行性52.1.3时机可行性52.1.4管理可行性52.1.5用途可行性52.1.6安全可行性62.2考试系统功能分析62.2.1考试策略62.2.2系统的数据流图72.2.3用户界面分析72.2.4系统安全性分析73系统设计83.1设计思想83.2模块的划分与功能84ACCESS数据库的建立104.1构建数据库解决方案104.2设计考试系统数据库10II 4.2.1数据表的建立104.2.2数据表的关系144.3Access数据库的安全性155系统的实现175.1计算机等级考试系统应用程序框架175.1.1服务端管理程序框架175.1.2客户端考试程序框架175.1.3建立VisualBasic和数据库的接口185.1.4引用ADO库文件185.1.5建立数据库的连接185.1.6创建数据源195.2服务端主程序的建立195.2.1统一功能模块与主程序界面195.2.3系统锁定功能215.3实现考试和题库管理235.3.1实现考试管理模块235.3.2实现题库的管理245.3.3生成考卷265.4考试系统客户端的建立265.4.1验证考生准考证号码265.4.3启动考试过程275.4.4题目显示285.4.6记录考生的题目答案和题目状态295.4.7提交试卷295.4.8实现实时计时功能295.4.9答案汇总显示305.4.10试卷的评阅与成绩计算306结语32致谢33参考文献34致谢33参考文献34II 计算机等级考试系统的设计和实现——考试管理信息与计算科学专业一班指导教师李祥摘要:本文以开发一个计算机等级考试系统为背景,介绍了考试方式的历史、现状以及使用VisualBasic6.0设计前台控制程序和用Access2003建立后台数据库的概况。详细介绍了在计算机等级考试系统中,实现机式考试的功能模块的设计,包括本地服务系统中的考试管理和本地考试系统中的激活考试、随机生成试卷、答题系统、自动计时、自动阅卷、考试分析等。该系统通过权限控制,面向普通学生和考试管理员。通过改变传统的考试模式,利用在线式考试系统,可以节约考试成本,提高考试工作的效率。关键词:等级考试;Access数据库;VisualBasic6.0II DesignandImplementationOfComputerRankExaminationSystem——ExaminationManagementMajor:InformationandComputingScienceClass:1Author:YangGuoSupervisor:GuoJingAbstract:ThisthesisintroducesbrieflythepastandpresentwaysoftheCRE(ComputerRankExamination)System,thedesignoftheforegroundcontrolprogramwithVisualBasic6.0andthebuildingofabackgrounddatabasewithAccess2003,thepurposeofwhichistodevelopaCREsystem.Therefore,itdescribesthedesignoffunctionalmoduleforoperationalexamination,whichincludestheexaminationmanagementinlocalserversystem,activatingtest,randomgeneratingpaper,answeringsystem,automatictimingandpaper-checking,examinationanalysis,andsoon.Thissystemisappliedtostudentsandexaminationadministratorsbylimitingtheauthority.Itmayhelptoreducethecostandimprovetheefficiencybyhavingtheexaminationonline,notinthetraditionalway.Keyword:RankExamination,Access2003,VisualBasic6.0II 2013级信息与计算科学专业毕业论文1引言1.1课题的背景和提出在当今的信息社会中,学校与社会上的各种考试仍大都采用传统的纸质考试方式。在此方式下,组织一次考试至少要经过五个步骤,即人工出卷、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分繁琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。目前,计算机和网络应用在各行各业广泛应用,特别在高校,所以大多数学生也已经具备了利用网络进行交流和学习的能力。可是在教学这个环节上,对于传统的教学模式仍然过分依赖,而对于网络的开发和应用程度还远远不够。注意到这一点,本人决定开发一个基于网络的计算机等级考试系统,希望充分利用现有的计算机和网络资源。1.2研究的目的和意义鉴于社会的客观需求,计算机等级考试系统将针对传统考试的弊端,更省时更省力更准确地测试考生计算机水平,并方便之后的阅卷,查分和试卷分析工作。考生通过登陆界面进行有效的身份验证登录,包括考号的输入。考生按要求在规定的时间内进行答题。当到达规定的时间后,系统将自动予以提交,且其答案和分数将被记入库中以供审核和查阅,并作为成绩评估和试卷分析的历史数据。另外,还可完全由计算机自动抽取试题库中的各类试题组成各种试卷,其内容会随着库中试题的改变而改变,不妨把它称之为实时的互动的试卷。用计算机进行标准化考试,极大地减轻了出题者、应试者和试卷评阅者的劳动,也减轻了由于人为因素造成的错误。同时,计算机标准化考试,也使得考试更加公平、公正。1.3国内外研究现状1.3.1国内研究现状现阶段,学校与社会上的各种考试大都采用传统的纸质考试方式。在此方式下,组织一次考试至少要经过五个步骤,即出卷、考生考试、阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分繁琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,从而提高考试的质量,使考试更趋于公证、客观、激发学生的学习兴趣。33 2013级信息与计算科学专业毕业论文理论方面,近几年来有较大发展,尤其在在线等级考试系统的建设理论方面有较大进展,技术也日渐成熟,目前国内有很多公司团体研究开发了基于Web的考试系统,基本上是传统教学中的考试向网络方向的迁移。虽然现在有一些基于Web的考试系统,但是计算机等级考试系统的研究却比较少。1.3.2国外研究现状当今许多国家都十分注重计算机教育事业的发展,特别是在线考试系统的研究。在发达国家,在线考试系统已经趋于成熟,不仅学校运用计算机考试系统来测试评估学生的计算机水平,还有许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。例如,著名的SylvanPromentic国际考试中心和VUE(虚拟大学)是实行计算机化考试的考试中心。目前流行的MCP(MicrosoftCertifiedProfessional),微软认证专家)系列考试、CCCP系列考试、HP-UX系列考试,以及熟悉的TOFEL、GRE等,都是通过上面提到的两个国际考试中心实行的“机考”。1.4关键问题(1)人机界面的设计和考试的管理(2)对数据库数据的操作控制(3)前台VB应用程序与后台Access数据库的关联1.5开发环境及人员分工情况1.5.1开发环境(1)选择VisualBasic6.0作为前台开发工具VisualBasic6.0能够成为当今最流行的软件开发工具之一,是与其卓越的性能是分不开的,它汇集了Microsoft公司的技术精华,不仅全面使用了面向对象的技术,而且在编译技术也作了优化。与其它开发工具相比,VisualBasic6.0具有明显的优势:●使用Basic6.0作为基础,开发难度低,开发工作量小。●VisualBasic6.0开发环境十分友好,强大的可视化开发方式能够帮助用户轻松地开发出多种类型的应用程序。●使用微软发行的编程软件能够提供与Windows操作系统的最大兼容性。●微软公司开发的编程环境VisualBasic,不仅能够提供强大的图形支持,而且能够是应用程序与硬件相对独立。●WindowsAPI为实现应用程序提供了强大的扩展功能的支持。●为用户提供了许多有用的调试和分析工具,能够帮助用户寻找错误和提高应用程序效率。●拥有解释方式和编译方式两种运行方式,使得应用程序的调试更加方便、轻松。鉴于以上优点,选择了VisualBasic6.0作为“计算机等级考试系统”项目的开发工具。33 2013级信息与计算科学专业毕业论文(2)选择了Access2003建立后台数据库最新版本的Access2003除了保持原有的Access2002数据库的功能特性之外,在数据库的应用上进行了一定程度的扩张,支持更加灵活和智能的操作,并支持XML文档数据源进行处理。Access虽然是小型捉摸数据库管理系统,但是它提供的数据库功能却非常强大,不仅包括了一般数据库管理系统中的SQL(StructureQueryLanguage,结构化查询语言)语言查询,而且支持数据的完整性和约束(包括:主键约束和实体完整性、外键约束和参照完整性、CHICK约束、UNIQUE等)。虽然Access也并不是十全十美。但是对于小型企业和小型数据库而言,这些功能已经足够了。如果要追求那些复杂的数据库管理机制,还是应该使用大型、基于数据仓库技术的企业级数据库管理系统(如,MicrosoftSQLServer和Oracle等)。现在Access2003已经成为了功能强大、操作简单的关系数据库管理软件,而且由于它集成在OfficeXP组件中,更容易获得,只要安装OfficeXP,就可以在安装过程中选择安装Access2003了。1.5.2人员分工情况计算机等级考试系统的功能模块主要为本地服务系统、本地考试系统、远程查询系统三部分,每个主要功能模块下又具体分为若干个小模块,系统整体功能结构如图1.1所示。本人负责的考试系统主要是对本地服务系统中的考试管理和本地考试系统中激活考试、答题系统、自动计时、自动阅卷几个模块的设计。另一同学负责的考务系统主要是对本地服务系统中的考生管理、本地考试系统中的输出成绩单和远程查询系统的设计。33 2013级信息与计算科学专业毕业论文考试系统本地考试系统激活考试答题系统自动计时自动阅卷输出成绩单本地服务系统考生管理注册考生禁用考生删除考生修改考生信息考试管理增加科目删除科目禁用科目远程查询系统有效的考试项目考生信息考试成绩考试状态(正在考试的人数等)数)准考生号(管理员)某一天的考试进程修改科目信息增加题目删除科目修改题目禁用题目数据查询某一天的考试进程考生成绩准考证号图1 系统整体功能结构图33 2013级信息与计算科学专业毕业论文2系统需求分析2.1可行性分析可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。2.1.1经济可行性经济可行性主要是对项目的经济效益进行评价。考试系统的设计作为一个毕业设计,无需开发经费,对于学院在经济上是可以接受的,并且本系统实施后可以显著提高考试效率,有助于学院完全实现网络化管理。所以本系统在经济上是可行的。2.1.2技术可行性技术可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。考试系统的设计采用了当前较流行的VisualBasic6.0进行开发,而数据库服务器选用微软公司的Access2003数据库,它是功能强大、操作简单的关系数据库管理软件,它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。2.1.3时机可行性目前,大学的校园网路覆盖了教学区和学生区的主要建筑物,从而满足学院内各系,各职能部门,各直属单位上网需求。学校良好的网络设施为开发使用计算机等级考试系统提供了坚实的基础。2.1.4管理可行性管理可行性主要是教务处管理人员大力支持,系领导认同,现有的管理制度和方法科学,规章制度齐全,原始数据正确等。规章制度和管理方法为系统的建设提供了制度保障。2.1.5用途可行性用途可行性主要是此考试系统的应用范围较广,并不局限于计算机等级考试,其它同类型考试也可使用该系统。同时,在考试系统中,大量的工作是输入数据和选择答案,所以考试系统主要是通过键盘和鼠标进行人机交互,并不需要附加的交互方式。所以在用途上是可行的。综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少,见效快,因此考试系统的开发是完全可行的。33 2013级信息与计算科学专业毕业论文2.1.6安全可行性安全可行性主要是该系统对操作人员进行了权限设置。通过设置权限密码的形式,使拥有权限的人员才能对系统进行相关操作。Access2003对数据库的安全设置较简单,VisualBasic6.0也能实现密码功能的设计。所以该系统在安全性上是可行的。2.2考试系统功能分析2.2.1考试策略考试系统主要是用VisualBasic和Access2003实现本地考试系统和本地服务系统中考试管理的设计。一个完整的计算机考试,要经过注册考生、注册考试、考试、取得成绩单等步骤。考试流程如图2.1所示开始考生拥有准考证号号?号?已注册考试在指定时间开始考试?开始考试输出成绩单考试结束注册考生信息注册考试考试过期NNNYYYN。33 2013级信息与计算科学专业毕业论文图2 考试流程图首先,考生要使用考试系统进行考试,就必须要进行考生注册。确认考生身份,考生会获得一个在整个考试系统中唯一的考试证号。接下来,考生要参加某一科目的考试时,必须提前注册。否则,考生不能参加考试。在规定的考试日期中,考生在考试系统上作答。系统会自动记录考生的考试时间,死机并不会影响到考生的考试。当考生完成考试后,系统会自动对考生的试卷进行评阅,并且参照题库中的标准答案,为考生打分。最后,考试系统会向考生出示考试成绩单。从考试流程图2.1中可以看出,参加考试必须要在考试系统中拥有准考证号码,提前注册考试,而且在规定的时间内完成考试。2.2.2系统的数据流图数据流图,即DFD图(DataFlowDiagram),主要描述考生从激活考试到结束考试的数据流向,如图2.2所示。考生登陆抽题错误数据库答题题目考号答案阅卷数据库答案输出成绩数据库库图3 数据流图2.2.3用户界面分析标准的Windows应用程序应该包括:标题栏、菜单栏、工具栏、状态栏、工作区域等部分。在考试系统中,由于操作很简单,而且使用菜单和工具并不一定能提高操作的效率,所有在考试系统应用程序中,使用了最简单的基于对话框的窗口,并且使用简单的按钮完成功能的切换,界面虽然简单,但是它涵盖了考试系统的全部功能,操作非常方便。2.2.4系统安全性分析由于本系统采用Access2003进行数据库的制作,在安全性方面不如SQL,Oracle等大型数据库,但在访问时也可对访问权限进行设置,而且设置方便。同时由于本系统将采用VisualBasic进行管理员密码的设计,所以说安全性方面还是有保障的。33 2013级信息与计算科学专业毕业论文3系统设计3.1设计思想考试系统的设计是以软机周期模型为基础来建立的。众所周知,既然是工业产品,都有其生命周期,即要经过分析要求、设计、制造、测试、运行(此时需要不断的维护)等几个阶段。本系统的设计严格遵守软件周期模型,经历了可行性研究与计划阶段、需求分析阶段、设计阶段、编程阶段、测试阶段、运行阶段。3.2模块的划分与功能经过对计算机等级考试步骤的分析,计算机等级考试系统的模块将进行以下划分。考试系统的模块可以大体分为2个部分:本地服务端管理程序、本地客户端考试程序,其中每一部分都可以细分为多个模块,如图3.1所示。考试系统本地考试系统激活考试答题系统自动计时自动阅卷本地服务系统考试管理增加科目删除科目禁用科目修改科目信息增加题目删除科目修改题目禁用题目图4 系统功能结构图(1)考试管理33 2013级信息与计算科学专业毕业论文考试管理这个模块中包括了增加、删除、修改考试科目、修改考试科目的状态,增加、删除、修改考试题目,修改考试题目的状态等几种功能。增加、删除、修改考试科目:用于维护考试系统中的考试科目信息,包括科目的名称、题目数量、考试时间、通过分数等。修改考试科目的状态:用于设置科目有效或无效的状态,当科目处于无效状态时,考生将不能注册这个科目的考试。增加、删除、修改考试题目:用于维护考试系统题库的信息。修改考试题目状态信息可以设置题目是否可以被选入考生的考卷。(2)激活考试激活考生实际上是将考生考试的状态设置为“正在考试”,并在开始考试前,向考生提示考试的相关信息。当考试被激活后,该考试的注册信息将不能被修改,更不能删除。(3)答题系统答题系统将引导考生完成整个试卷,并记录考生的答案和题目的状态(是否完成、是否被标记)。在一般的标准化考试中,常见的题目包括:单项选择题、多项选择题、不定项选择题和填空题等。为了简便起见,该系统设计中将题目设置为:单项选择题、多项选择题和填空题三个类型。标记题目状态和传统考生中的“打标记”一样。如果考生对于某题目不确定,或者暂时不想回答这道题目,就可以为题目“作标记”。做过标记的题目会在答案汇总页面上突出显示出来。(4)自动计时自动计时将在考试开始后自动启动,用于在整个考试过程中提示考生考试时间,并在考试时间结束后自动中止考生的考试。在考试中途出现死机的情况时不会影响考生的考试。考试的所有答案都会被实时地记录进时间库,同时,考生剩余的考试时间也会被记录进去。当考试的剩余时间小于15分钟时,屏幕上的计时钟会变为红色,以提示考生剩余的考试时间不多了。(5)自动阅卷自动阅卷功能将把考生的试卷与题库中的标准答案进行对比,并记录考生的考试成绩。33 2013级信息与计算科学专业毕业论文4Access数据库的建立4.1构建数据库解决方案数据库是依照某种数据模型组织起来并存放在存储器中的数据集合。这些数据为了多个应用程序服务,独立于具体的应用程序,数据库由数据库管理系统(DBMS,DataBaseManagersystem)统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据库管理系统是一种系统软件,它的这样功能是维护数据库并有效地访问数据库中的数据,对数据库的维护包括保持数据的完整性、一致性和安全性等几项内容。数据管理员负责创建、监控和维护整个数据库,是数据可以被任何有权使用数据库的人访问。4.2设计考试系统数据库本考试系统使用一个Access数据库文件,文件名称为:考试.mdb。在使用VisualBasic时,需要建立数据库连接。在考试数据库系统中,所包含的数据应该包括考生的基本信息、所以考试科目的基本信息、全部题目的信息、考试注册考试的信息和考试状态、考试成绩以及考生的试卷。这样根据数据库存储的内容,建立多个数据库表。4.2.1数据表的建立(1)考生信息表(StudentInfo)考生信息表用于存放考生的基本注册信息。它唯一确定了一名考生的身份,因此应该包括考生的准考证号码、姓名、性别、身份证号码等证明考生身份的信息。按照考试系统项目的需求分析。在考生信息表中,包括了可以确定考试身份的全部信息(包括准考证号码、姓名、性别、身份证号码、联系电话、电子邮件),以及考生的当前状态(是否允许考生注册考试)。另外,还需要建立一个字段(SNum),这个字段用于记录考生已经注册,但是还没有完成考试的考试数目。设置这个字段是为了维护表的完整性。比如,如果考生已经注册了一个科目的考试,但是还没有进行考试。假如这时删除了用户就会在考生考试的过程中和成绩单输出的工程中出现无法找到考生姓名的错误。设置这个字段,就可以避免这个问题,当此字段的值不为0,说明考生还有没有完成的考试,这时删除考生的操作就不好进行。在考生信息表中,同一个准考证号码只能对应一个考生,也就是,准考证号码时唯一的,把它标记为主键。考生信息结构图如图4.1所示。33 2013级信息与计算科学专业毕业论文图5 考生信息结构图(2)考试科目表(ExamInfo)考试科目表记录了考试系统中可以进行的所以科目信息。一个考试科目应该包括考试的名称、时间、题目的数量等信息,为了增加考试系统的兼容性,还设计了总分数和通过分数两个字段。初次之外,在考试科目表中,可以使用一个7位长的考试科目号用于唯一确定一个科目的考试,所以把考试科目号码作为主键。在考试科目表中的ENum字段也是为了维护数据库的完整性而设置的。在删除表中的数据时,只有此字段为0时才能进行。另外,在这个表结构中,虽然从下表看都是数字型,但是实际上是长整型,单精度,整型。考试科目表结构图如图4.2所示。图6 考试科目表结构图(3)考生注册信息表(RegInfo)按照考试系统的分析,一个考生在参加考试前必须进行注册。注册的作用是生成考生的试卷并确定考试的日期。考试注册信息表中,包括考生的准考证号码、注册日期、考试日期、考试科目号、考卷编号等信息。这里把考生准考证号码作为主键。特别地,为了避免同一个考试试卷号码在多个考试终端上参加考试,还增加了考试状态字段,该字段描述了考生当前的考试状态。当考生成功地注册了一个考试后,此值会自动设置0;而当考生完成考试时(不论是否通过考试),此值会置1;此值为2时说明考生进行这个科目的考试;如果考试没有在考试日期指定的时间内考试,此值为4;在考试注册信息表中,由于在进行注册信息查询时,很少会根据试卷编号(试卷编号唯一确定时)查询,所以它没有设置主键。这个表无主键。使用试卷编号可以确定考试的注册信息,它的生成规则是:33 2013级信息与计算科学专业毕业论文Exam_[准考证号码]_[科目编号]_[考试日期]上面的斜体字的部分将在程序运行时,以实际的编号代替。考试注册信息表结构如图4.3所示。图7 考试注册信息表结构图(4)系统信息表(SysInfo)系统信息表用于存放一些维持系统正常运行的所必须的数据,比如管理员密码、当前考试的人数等,系统信息表结构如图4.4所示。图8系统信息表结构图系统信息表只有在管理操作时才会访问,所以的数据的查找速度没有要求。在设计这个表时,没有设置主键。(5)题库表(Quention)题库表,顾名思义是存放全部考试题目的地方。在题库表中,应该包括考试的题目编号、题目、标准答案、类型等信息,题库表结构如图4.5所示。图9 题库结构图表中的QNum字段和前面一样,都是为了维护数据库完整性而设置的。在生成考生试卷时,如果该考生使用了这道题目,这个字段的值就会加1。也就是说,它存放了这道题目的人数,只有当此值为0时,才能删除这道考试题目。另外,题库表通过QID字段唯一确定考试题目,所以这个字段将作为题库表的主键。考试题目编号的前7位表示这个题目归属哪个考试题目,剩下的10位记录题目的标号,通过这17字符长度的字段就可以判断这道题目是哪个科目的哪道题目。33 2013级信息与计算科学专业毕业论文(6)考卷表(Paper)考卷表是在考生完成考试注册后,记录考生的考卷题目的表。在这个表中,通过试卷编号可以确定一个考试注册项目,题目的ID号用于记录考生应该回答的问题,考生的答案用于考生的答案,考卷表结构如图4.6所示。图10 考卷表结构图这个表没有一个字段可以唯一确定一条记录,所以也不需要设置主键。为了方便考生作答,在考试界面中增加了“标记”按钮,考生可以对某一道题目进行标记(仅仅是为了醒目),系统也会自动判断考生的答案是否完整。这两个记录标记就使用QMarked和QFinished表示。创建过程是:首先启动AccessXP,选择“开始”→“程序”→“MicrosoftAccess”选项,这时就进入了AccessXP的工作界面。在Access工作界面右侧的任务窗格中直接单击“空数据库”项目,这时AccessXP中会出现“文件新建数据库”对话框,输入数据库文件的名称,然后单击“创建”按钮。这时,AccessXP工作界面中就会出现数据库工作窗口,这样,数据库文件就创建完成了,接下来创建各个数据库表。这里只以创建考生信息表为例。在鼠标双击数据库窗口中的“使用设计器创建表”项目,AccessXP会出现新建表的窗口,依次输入考生信息表的结构:在字段名称列的第一行输入“SID”;用鼠标单击第一行的数据类型,这时,数据类型中出现“文本”字样。单击“文本”右侧的下拉按钮,AccessXP弹出数据类型列表,可以从这个列表中选择相应的数据类型,对于这个字段也可以不选择。在字段属性部分单击“字段大小”右侧的输入框,清除原来的50,输入新的长度10。按同样的方法,依次输入所有的字段,并设置相关属性。需要说明的是:数字类型按字段长度还分为:整型,长整型和单精度数据类型。设置主键是用鼠标右键单击字段列表中的SID行,在出现的菜单中选择“主键”选项。这样,在字段列表中的SID行面前会出现一个钥匙的图标,表示这个地段是主键。单击保存按钮,在出现的“另存为”对话框中,输入表的名称“StudentInfo”,然后单击“确定”。按同样的方法,就可以建立其它表。33 2013级信息与计算科学专业毕业论文6个表创建完的界面如图4.7所示。图11 数据表图4.2.2数据表的关系关系(Relationship)描述了数据库中各个表之间的连带关系和一一对应关系。在上面设计的数据库的各个表中,每一个表都记录了一个特定的内容范围,但是这些内容之间也是有关联的。比如注册信息表(RegInfo)中记录的考生信息,要通过SID字段道相应的考生信息表(StudentInfo)中查找;而科目信息又要通过EID到考试科目信息表(ExamInfo)中查找,这些相互依赖的关联就叫做关系。在设计的考试系统数据库中,除了系统信息表(SysInfo)外,其它的各个表之间都是有联系的,这些表之间就是靠关系来描述它们的联系的,如4.8所示。图中用线画出了这些关系,用线连接在一起的两个字段就是相互关联的字段。创建关系的过程为:单击工具栏上的关系按钮,这时AccessXP会出现编辑关系对话框。同时AccessXP还会显示“显示表”窗口,用于向关系视图中添加要创建关系的表。图12 数据关系表33 2013级信息与计算科学专业毕业论文选择“表”选项卡,在其列表中选择第一个表,然后单击“添加”按钮,重复执行这个过程,直到所有的表都添加到“关系”窗口中。再单击“显示表”窗口中的“关闭”按钮。这时会在“关系”窗口中看到所有已经添加的表。接下来,将这些表稍加布局,可以看到关系的窗口。AccessXP会自动根据主键创建一些默认关系,这时可以用鼠标单击每一条关系线,然后按键盘上的“Delete”键,AccessXP会询问用法是否确定删除,单击是即可。接下来就要创建的是需要的关系了,首先用鼠标左键按住StudentInfo表中的SID字段,拖动到RegInfo表中的SID字段上面,释放鼠标按键。这时AccessXP中会出现“编辑关系”窗口。单击“编辑关系”窗口中的“创建”按钮即可创建一个关系。按照同样的方法创建其它关系。4.3Access数据库的安全性添加需要字段:首先在数据窗口中双击“SysInfo”表,这时AccessXP会弹出标题为“SysInfo”的窗口。在这个表中,创建的3个字段就列在表的第一行中,依次输入需要的数据,如图4.9所示。图13 系统信息表结构在输入的这些数据中,可以看出,每一行就是一条Access记录,其中Password是保存的管理员密码,ENum就是当前参加考试的人数。然后关闭这个窗口,AccessXP会自动保存输入的数据。对数据库安全的考虑:本系统使用了Access自身的加密功能对数据库的存取进行限制.具体方法如下:选择“工具”→“安全”→“设置数据库密码”。在出现的“设置数据库密码”窗口中输入密码,然后在“验证”文本框中重复输入一遍密码,最有单击“确定”。其实,Access也支持多用户管理,选择“工具”→“安全”→“用户与组帐户”可以设置用户和组的信息。在“用户与组帐户”对话框中,可以建立、删除、管理用户和组,并且可以更改用户和登陆密码。而使用“工具”→“安全”→“用户与组权限”选项,就可以设置用户和组权限了。33 2013级信息与计算科学专业毕业论文在“用户与组权限”对话框中,读者可以为已经建立的用户和组设置权限了,这些权限包括:是否允许插入、删除、修改、更新、读取数据,是否允许管理数据库等。通过这些权限的设置,可以显示出使用数据库和访问数据库的一部分人。33 2013级信息与计算科学专业毕业论文5系统的实现5.1计算机等级考试系统应用程序框架5.1.1服务端管理程序框架(1)创建工程首先选择了“开始”→“程序”→“MicrosoftVisualBasic6.0中文版”选项,进入VisualBasic的集成开发环境。VisualBasic会自动弹出一个“新建工程”对话框。这个对话框用于简化新建和打开工程的操作。选择了对话框下方的“不再显示这个对话框”复选框。开发环境中是空的,没有任何内容。选择“文件”→“新建工程”,这时VisualBasic就会弹出“新建工程”对话框。在这个对话框中选择“标准EXE”选项,然后点击“确定”按钮,就创建了一个新的VisualBasic工程。(2)命名工程选择开发环境右侧工程管理窗口,选择其中的“工程1(工程1)”选项,然后在下面“属性”窗口中输入“vbpExamServer”。比较好的命名方法,是使用一套标准、在整个开发过程中都遵循的命名方案。所以本系统中使用“类型名+对象名称“的方式命名文件和控件。举例来说,对于VisualBasic开发应用程序时,采用vbpExamServer,其中vbp表示这是一个VisualBasic工程(VisualBasicProject),ExamServer表示是考试系统服务端程序。(3)命名主窗体在新的工程中,VisualBasic会自动建立一个窗体,并命名为Form1。在VisualBasic开发环境右侧“属性”口中单击“(名称)”目,然后输入“frmMain”。这样,一个基本的工程就创建完成了。这个工作实际上是创建了两个文件:一个VisualBasic工程文件,另一个是窗体文件。5.1.2客户端考试程序框架(1)创建客户端工程在刚才建立工程基础上,在选择“文件”→“新建工程”选项,在“新建工程”中选择“标准EXE”选项,最后单击“确定”按钮。这时VisualBasic会在工程管理窗口中添加一个名为“工程1”的工程,这个新工程会与之前建立的服务端工程并列在工程管理器窗口中。(2)命名工程和窗体33 2013级信息与计算科学专业毕业论文与之前的操作方式相同,将刚刚添加的工程命名为“vbpExmaClient”,将窗口文件命名为“frmMain”。这样,客户端的程序框架也就创建完成了。5.1.3建立VisualBasic和数据库的接口为了方便用户大量地访问数据库,本人使用了ADO(ActiveDataObject,Active数据对象)数据访问技术。在VisualBasic中,可以通过很多方式连接数据库,比较常用的包括:DAO(DataAccessObject,数据访问对象)、ADO、数据控件和ODBCAPI。本人使用ADO,因为它使Microsoft公司开发的新的数据库访问方式,具有很多新的特性,并且程序的编写也比较简单。5.1.4引用ADO库文件ADO库在默认情况下,是不加载到VisualBasic工程中的,所以手动增加了这个库。选择“工程”→“引用”选用,这时VisualBasic会弹出“引用”对话框,选中“MicrosoftActiveDataObject2.1Library”选项前面的复选框,然后单击“确定”按钮。由于库文件只会加载到当前的工程中,所以另外一个工程中也增加这个库文件。5.1.5建立数据库的连接用鼠标右键单击工程管理器窗口中的“vbpExamServer”项目,然后选择“添加”→“添加模块”选项,在出现的“添加模块”窗口中选择“模块”选项,并单击“打开”按钮。在工程管理器窗口中选择这个模块,参照前面的方法,在属性窗口中,将它的“名称”属性修改为“DeclarVir:”。在模块的代码窗口中,输入下面代码:GlobalonExamAsNewADODB.ConnectionDimIsLockedAsBoolean用同样的方法再建立一个模块,命名为“GlobalFunction”。在这个模块的代码编辑窗体中,输入下面的代码:SubInitProgrm()"初始化系统"打开数据库连接,设置初始变量DataPath=App.Path&"Data"cnExam.Open"DSN=ExamSystem","","""打开数据库连接IsLocked=FalseEndSub这样就完成了一个初始化系统的函数。下面将它与主程序挂接。在主窗口中双击窗体的空白区域,进入代码编辑窗体。增加下面的一行:InitProg33 2013级信息与计算科学专业毕业论文保存工程后,就完成了VisualBasic和数据库的连接。当提示保存模块时,保持VisualBasic默认值即可。与上面的方法类似,为工程“vbpExamClient”也建立与数据库的连接。5.1.6创建数据源ODBC(OpenDataBaseConenction,开放数据库连接)数据源可以用来访问多种数据库管理系统的数据。为了在数据库中使用ADO技术,必须首先创建数据源。(1)打开数据源管理器在WindowsXP操作系统中,选择“开始”→“控制版面”→“管理工具”→“ODBC数据源(32位)”选项,即可打开“MicrosoftODBC数据源”对话框。(2)建立ODBCDSN数据源在“MicrosoftODBC管理器”对话框中,选定“用户DSN”选项卡,然后单击“添加”按钮,出现“创建新数据源向导对话框”,因为使用的是MicrosoftAccess数据库,则在驱动程序列表中选择了“MicrosoftAccessDriver(*.mdb)”选项,然后单击“完成”按钮。这时出现“ODBCMicrosoftAccess”安装对话框。在这个对话框中,指定了考试.mdb这个Access数据库。在“数据源名”中输入数据库源的名称“ExamSystem”,然后单击“选择”按钮,在弹出“选择数据库”对话框中选择考试系统数据库文件所在的文件夹,然后选定“考试.mab”文件,并单击“确定”按钮,返回到“ODBCMicrosoftAccess安装”对话框,单击确定,再连续单击“确定”按钮退出ODBC管理器,这样就完成了数据源的创建。5.2服务端主程序的建立5.2.1统一功能模块与主程序界面(1)设置窗体属性●窗体的大小使用的修改窗体大小的方法是使用“属性”窗口。首先确定已经选择了当前的窗体(可以通过属性窗口上方的对象列表查看当前的操作对象)。修改“Height”和“Width”属性。在这里设置的值为:Height=6150,Width=8505,作用是为了是窗体在不同的分辨率下都能保持一样的大小。●窗体的显示特性服务器程序具有考试监视器的功能,所以它的窗体内容相对固定,基本上不需要调整窗体的大小,所以就把窗体设置为不能修改大小。首先在长体属性窗口中,设置当前的操作对象为“frmMain”。接下来在属性窗口中把“BorderStyle”属性修改为“3-FixedDialog”,“Caption”属性修改为“管理计算机自动化考试系统—服务器”,“StarUpRosition”属性修改为“1—所有者中心”,其它属性没有修改。●设置功能按钮33 2013级信息与计算科学专业毕业论文作为程序主窗体,它应该包括应用程序中用于的全部功能。所以,在设计程序的窗口时,应该把所有功能都包括进去了。运行的窗体,如图5.1所示。图14 服务端管理界面设计过程如下:●绘制Frame上面窗体中左侧功能按钮外面的一圈就是Frame,Frame是一种Container,它可以用于盛放其它的控件,还可以对控件进行分组。首先单击开发环境左侧的控件工具的Frame工具,再在窗体上按住鼠标左键,然后拖出一个矩形框,最后释放鼠标即可。同时重复同样的过程2次,即可创建3个Frame控件。接下来就修改控件的属性,对于这3个控件。他们的功能只是用作显示,并不响应鼠标或键盘的事件,所以并没有修改它的名称“名称”属性。只是将它们的“Caption”属性设置为相应文字。●放置功能按钮在Frame控件里面放置了其它的控件。首先选择控件工具箱的命令按钮工具,在第一个Frame中拖动,形成一个按钮,按照同样的方法,在第一个Frame中放置3个按钮,第二Frame中放置3个按钮,第三个Frame中放置4个按钮控件。.设置功能按钮的属性接下来,为这些按钮设置了属性。按照图5.1依次修改设置按钮的“Caption”属性。5.2.2信息显示的完成(1)绘制PictureBoxPictureBox也是一种容器。它不仅可以用于显示图片(这也是它最初的功能),也可以象Frame一样作为其它控件的容器。33 2013级信息与计算科学专业毕业论文在此考试系统界面中,将右上方的“状态显示区”和右下方的“锁定提示区”,分别设置两个PictureBox的目的是不同的。前者用于显示日期、时间、考试人数的内容属于同一个整体;而后者则是由于锁定状态的信息提示和密码输入框不仅属于同一个整体,而且在操作时要整体进行动作,所以在这个区域中的控件放置到一个PictureBox中能使得程序的编写更加简单。首先在控件工具箱单击按钮PictureBox控件按钮,然后在窗体上按下鼠标左键并拖动,形成一个矩形,然后释放鼠标,就可以创建一个PictureBox。(2)设置PictureBox的属性由于这里创建的两个PictureBox要在程序代码中使用,为了使控件在程序代码的书写中更容易识别,使用了标准的对象命名方法为这两个PictureBox设置“名称”属性。将显示系统状态信息的PictureBox的“名称”属性设置为“picInfo”.首先用鼠标选中PictureBox控件,接着在“属性”窗口中选择“名称”属性,然后清除原来的“Picture1”,输入新的名称”picInfo”。现在的PictureBox是具有凹陷效果的,在考试系统中,这两个使用平面效果更为合适。所以设置了PictureBox的“BorderStyle”(边框样式)属性,只要单击选中PictureBox控件,在属性窗口中选择“BorderStyle”(边框样式)属性,单击“BorderStyle”项目右侧的下拉按钮,选择其中的”0-None”。(3)绘制PicInfo中的控件首先选择控件工具箱中的Label控件,在PictureBox中拖动,绘制出一个Label控件;接下来按照同样的方法在绘制6个;然后选择控件工具箱的Timer控件,在PicInfo容器中任意拖动,释放鼠标后,就会在拖动的位置上出现一个时钟样子的控件。接下来设置这些Label控件的“Caption”属性,将其中的4个Label控件分别设置为“当前考试信息:”、“日期:”、“时间:”、“正在参加考试的人数:”。由于这些Label控件在编写程序代码时并不会使用,所有没有设置它们的“名称”属性。然后又设置了Timer控件的属性:首先选中Timer控件,在“属性”窗口中设置它的属性,将“名称”属性设置为“tmrMain”,“Enabled”属性设置为“True”,“Interval”属性设置为“300”。Timer控件的作用就是当产生一定的时间间隔(由Interval属性决定,单位时ms),并到达规定的时间后,就会执行Timer事件中的语句。剩下的3个控件,分别设置它们的“名称”属性分别为“lblData”、“lblTime”、“lblNum”。把“lblData”控件移动到“日期:”的Lable控件右侧。按照同样的办法,把“lblTime”放置在“时间:”控件右侧,把“lblNum”放置在“正在参加考试人数:”控件右侧。5.2.3系统锁定功能系统锁定功能时用于在不使用管理系统的时候,将功能锁定。锁定后的管理系统将无法完成任何功能,包括退出系统。(1)使用PictureBox实现锁定功能●绘制PictureBox控件方法与前面设置picInfo类同。33 2013级信息与计算科学专业毕业论文●绘制picLockSys中的控件用同样的方法,在picLockSys容器右下方中,绘制2个Label控件、1个TextBox控件和1个CommandButton控件,界面如图5.2所示。图15 考试锁定界面在Label控件和CommandButton的Caption属性中输入如图5.2所示文字,且把文本框中的“名称”属性设置为“txtUnlock”,并删除Text属性中的文字,接下来将文本框的“PasswordChar”属性设置为“*”。(2)编写解锁功能的代码解锁实际上时锁定的逆操作,在锁定系统时,关闭了全部功能按钮的点击功能,并且使系统无法关闭;解锁时,首先要恢复按钮的点击功能,然后使系统可以关闭就可以了。(3)完成锁定功能与主程序的挂接●把锁定功能整合到程序中在主窗体界面编辑窗口主双击“锁定考试系统“按钮,在编辑窗口中,输入相应代码。这样,窗体的挂接基本上完成了。再双击“工程管理器”窗口中的“DeclareVir”,再出现的代码编辑窗口的开口加入一行:GlobalIsLockedAsBoolean接下来回到主窗体的窗体编辑窗口,双击窗体空白出,在Form_Load()过程中添加一行:IsLocked=False在代码编辑窗口中上方的两个下拉列表框中分别选择“Form”和“Unload”并输入相应代码。●系统密码的修改系统密码函数用于修改管理员密码新建一个窗体命名为“frmChgPasswd”,并放置相关控件,如图5.3所示修改。33 2013级信息与计算科学专业毕业论文图16 修改管理员密码界面编写代码,双击修改密码窗体中的“确定”按钮,输入所需代码。回到窗体编辑状态,双击“解锁”按钮。在编辑窗口中输入下面的所需代码。在主窗体编辑窗口中,双击“修改管理员密码”按钮,进入代码编辑窗口。在代码编辑窗口中输入下面代码:PrivateSubcmdChgPasswd_Click()frmChgPasswd.ShowvbModalEndSub5.3实现考试和题库管理5.3.1实现考试管理模块考试管理用于管理考试的科目和题库的题目。如图5.4所示。设置方式:新建一个窗体,在控件工具箱的ListBox控件,然后在窗体拖动,形成一个lishBox控件,命名为lstSbj。在lishBox控件上方设置4个Label控件,下方设置7个label控件,7个TextBox控件,7个CommandButton控件,如图5.4所示。图17 考试管理界面33 2013级信息与计算科学专业毕业论文●科目管理窗口的设计在详细新显示区完成的功能是显示在科目列表中选定科目的详细信息,也就是要求在ListBox中要响应Click事件。在ListBox的Click事件中,除了要完成详细信息的显示,还完成了按钮“有效(Enanbled)”属性的设置。●删除科目功能首先判断考试可以是否有效,如果已经处于“无效”状态,再判断维护参照完整性的,已注册但没有完成考试的考生的人数是否满足小于等于0,如果小于等于0,才可以删除。●设置科目的状态考试科目有两种状态:“有效”和“无效”,考试科目管理窗体上采用了2个功能按钮“启用科目”和“禁用科目”。●增加科目信息增加科目信息、修改科目信息用于增加和修改考试的科目信息,如图5.5所示。在增加考试科目对话框中,涉及到科目编号的问题,这个科目编号是由两个3位的随机数字符串构成,两个字符串中用“—”分割。从窗体设计上,考试科目号使用了两个TextBox控件,中间用“—”分割,每个TextBox存放3个字符。使用“生成科目号”按钮可以自动生成这两个3位数字符串。代码见附录1。图18 增加考试科目界面5.3.2实现题库的管理题库管理功能用于管理某一个考试科目中的题目信息。在考试系统中,题库管理使用了统一的界面,如图5.6所示。题目中还使用了RichText格式的文本,不仅可以设置字体、字号及颜色,而且还能插入图片,并且题目也可以使用Word等高级的编辑器进行编辑,只需要简单的复制粘贴即可。33 2013级信息与计算科学专业毕业论文图19 题库管理界面(1)题库窗口的设计新建一窗体,然后在上面添加各控件如图5.6。●RichText文本编辑功能RichText是多格式文本的编辑。它可以类似Word的编辑方法和现实效果。(2)字体颜色的修改通过SelColor属性设置来完成,但是需要添加CommonDialog控件,通过这个控件的Color属性,可以调出选择颜色对话框。然后就选择一个合适的颜色。●插入图片实现插入图片仍然使用了CommonDialog控件,这次调用了ShowOpen方法。选定的文件名将被存入CommonDialog控件的FileName属性中。(3)集成增加和修改功能在窗体界面中,增加和修改的功能都已经集成到同一个界面中了。在窗体级定义了一个变量,用于存放题目是否被修改。题目内容输入、类型选择、答案输入,都相应默认事件,且如果题目被修改,这个变量的值将被设置为True。此外,“上一题”、“下一题”、“增加题目”、“关闭”等按钮都要检测当前题目是否需要保存。如果需要保存,则弹出的对话框询问用户是否保存题目。●双击“下一题”按钮,进入代码编辑窗口,输入下面的代码:PrivateSubcmdNext_Click()IfIsChangeThenCheckSaveCurrentQ=CurrentQ+IIf(CurrentQ1)cmdNext.Enabled=(CurrentQ1,1,0)cmdPrev.Enabled=(CurrentQ>1)cmdNext.Enabled=(CurrentQ