毕业设计-试卷生成系统论文.doc_第1页
毕业设计-试卷生成系统论文.doc_第2页
毕业设计-试卷生成系统论文.doc_第3页
毕业设计-试卷生成系统论文.doc_第4页
毕业设计-试卷生成系统论文.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

试卷生成系统目 录目 录1摘 要2abstract3第一章 前言4第二章系统分析6第三章 visual basic数据操作技术123.1数据库组件介绍123.1.1 data控件123.1.2 ado data控件133.1.3 datalist控件/datacombo控件133.1.4 datagrid控件133.1.5 mschart控件133.2 visual basic数据库操作方法133.2.1数据库打开/关闭方法133.2.2使用数据约束控件显示数据143.3 visual basic的历史153.4 visual basic常用术语解释153.5 visual basic的特点15第四章 使用visual basic开发排课系统164.1开发使用的过程模型164.2后台数据库的建立174.2 系统模块图214.3 功能实现214.3.1 登陆214.3.2 主窗体界面224.3.3 用户管理功能244.3.4 编辑试卷功能25第五章 开发总结30参考文献31致谢33摘 要随着现代计算机科学的发展,计算机信息系统越来越受到重视,对学生进行考试的考题的生成已经逐渐改为由计算机完成。本文首先介绍开发工具visual basic,接着介绍了visual basic的数据访问技术,最后详细讲解了用visual basic开发的试卷生成系统,这一部分主要包括数据库的建立和系统功能的实现,最后做了开发总结。关键词:试卷生成系统,数据库,visual basicabstractwith the development of modern computer science, computer information systems take more attention, carried on the test to students the examination question production already gradually to change by the computer completes. the first presentation development tool visual basic, and then introduced the visual basic data access technologies, finally in detail explained development the examination paper production system using visual basic. this part including database creation and the system function realization, and finally the development summary.keywords: examination paper production system, database, visual basic第一章 前言学校的出考题工作是每一个学校必须完成的工作,它是一项繁琐的工作,以前都由人工来完成,随着计算机科学技术的飞速发展,计算机的应用在全球范围内日益普及,出试卷已经由人工管转变为自动化,机器化。由计算机进行试卷生成的方式于传统的方式相比较,优势是显而易见的,首先,可以省去大量人工,加速现代化的进程;其次,避免了人工试卷生成出错,使试卷生成过程可以轻松进行。第三,可以充分发挥计算机在信息处理方面的优势,可以让繁琐的工作由计算机处理。因此,开发一个试卷生成系统是很有必要的。本文意在说明用微软的visual basic和access数据库技术如何进行排课系统的开发。现在全国无论是政府、企业、学校还是农村的信息化建设都在如火如荼的展开着。信息化建设的一个必然结果就是电脑越来越普及了,现在很多的高中、初中都已经拥有自己的微机房了,甚至发展的比较好的小学也已经配置了不错的电脑。随着计算机技术的不断普及,计算机工作者也越来越多,水平也越来越高 ,同时学校也肯花钱请专门的人员来管理机房,这些就为实行无纸化考试系统提供了硬件条件。随着计算机技术的发展,考试的方式也在不断的变化着。从最初的考试的时候,人工印刷试卷,到发考卷,然后收卷,然后改卷,然后发布成绩,整个流程相对的比较的复杂,而且涉及的人员较多,不容易协调。手工改卷,在主观题上是有他的优势的,毕竟电脑是没有评测主观题的能力,但是客观题也采用手工修改的话,对于评卷老师来说工作量就非常的大。面对几百份,甚至是上千份的试卷,精力在好、工作在认真的老师也会感觉头疼的。根据计算机的特点,我们该类试题正好可以使用计算机进行处理,于是在一套试题里,客观题和主观题同时存在的情况下,出现了另外一种考试的方法。那就是把主观体和客观题分开,主观题照样在原来的试卷上考试,而客观题则要求学生涂卡。这样客观题的评卷就变的简单了。但是如果考试纯粹考的是客观题,使用这种涂卡的方式,就暴露出了一些缺点了,比如,每回老师还是要下发试卷,上交试卷,封存试卷,这样操作对于老师来说比较的麻烦。还有一点就是考生还要花很长的时间来涂卡,无形间就增加了考试的时间,也就增加了考试的成本。所以现在全国比较流行的是使用无纸化考试系统,每回考试只要使用软盘等等存储介质带题库下来,在计算机上安装一个考试客户端(甚至有些就直接使用windows内置的浏览器就可以了),就可以考试了。考试完毕之后,学生交卷后,评分的时候只要带走一些数据,就可以完全使用电脑修改,评分过程可能也就在一两分钟左右。采取这种方法,不知不觉中就减少了考试时间,降低了考试成本,减少了老师的工作。而且一般情况下,该类考试系统都是使用随机组卷,电脑随机抽卷的,保证了公正性,即使是监考老师也无法干预电脑的随机抽卷。现在网络发展的非常的快,网络的无地域性也不停的拉近了我们之间的距离。宽带的资费也由刚开始的高不可攀,到现在的平民化。网络正在慢慢的影响着我们的生活方式。不知不觉网络办公,网上购物,都被人们所接受。那么通过internet网进行网络考试如何呢?答案是可能的。该类考试系统现在也已经冒出了很多,采取的基本上是b/s结构的。客户端只要在特定的时间通过浏览器登陆到考试服务器上面去,然后系统会在浏览器上显示出考试的题目,可以说这种模式真正的实现了在家考试。但是这种考试也有一些本身的问题,第一、客户端是通过internet访问服务器的,网络速度和稳定性方面就是个考验。第二、对服务器的要求非常的高,试问,如果有几百个人甚至上网个人同时在线考试的话呢?服务器的负荷是非常大的。网上考试是以后的发展趋势,但是现在还是有些问题存在的。从以上的调查我们可以总结出一个结论,现在的考试系统越来越简单,越来越网路化,无论是局域网还是internet网。而且无纸化的考试系统越来越流行。这更加坚定了我做这么个考试系统的决心。第二章系统分析参考了很多计算机考试系统,可以看到这些考试系统的特点如下:2 1 考试系统的特点1操作界面和操作方法简单。如果操作过于复杂化的化,老师培训学生考试操作就得很长得时间,这样使用无纸化考试系统可以说是得不偿失。所以操作界面一定要简单,操作方法也一定要简单。2、提示必须正确,没有歧异。对于参加考试得学生,通常都非常得紧张,可以说是非常得惶恐,非常的怕自己考不好,所以出现提示的时候,如果提示说不明确或者是有歧异,会马上问老师的,这样不但不利于考生的正常发挥 ,而且考场秩序也会非常的混乱。3、必须有很强的错误处理能力。参加考试的学生,其中可能有很大一部分计算机操作都不是很熟练,不熟练的意思就是可能会乱删文件,可能会做些正常情况下不会去使用的功能。所以一定要防止学生进行这种操作,即使是操作了,也该有相应的错误提示。4、稳定性。考试系统的稳定性非常非常的重要,必须能够保证正确得考试流程。这表现在考试数据不容易丢失,不会出现一些写入错误等等。总之除非发生硬盘损害等等非可抗的能力,否则必须得保证考生得数据不丢失。如果考试机意外重启,应该也运行考生能够继续做试题。而不是完全重新开始做。5 、考生考试数据集中管理。所谓考生考试数据集中管理是只一个考场里的考生数据最好是存放在一个地方,而不是存放于各自的考生计算机上。为什么要强调这一点呢?因为如果把考试的数据都存放在下面各自的机器上的时候,监考老师要一个一个的进行收卷,我想这样和下发试卷可能非常的类似,这样也没有发挥出计算机考试的优势。如果直接都存放在服务器上,那么数据采集就非常的简单了,只要直接从服务器上取得就可以了6 、网络化。现在考试系统的发展就是向网络化发展,从最初的单机,到局域网,到internet网。所以考试系统必须支持网络化操作。22 考试系统主要功能(我的毕业设计只是做了下面的一部分)一般情况下,整套的考试系统需要如下的模块。1 、 报名模块该模块的主要功能是记录每个考生的信息,比如报名日期等等。2 、 题库维护模块该模块的主要功能是制作题库使用的。3 、 考生考试模块该模块是提供给考生考试使用的,包括答题和交卷等等功能。4 、 考场数据采集模块该模块是导出考生的考试信息,评分模块依赖于该考试信息来评分。5 、 评分模块评出考生的成绩。6 、 学生成绩和分析模块对考生的成绩进行统计分析,比如及格人数是多少,通过率有多少等等。23 开发环境的选择231 操作系统的选择现在主流的操作系统有windows和linux,最近linux的发展很快,在界面上的友好度上面已经做的越来越好了,据说在稳定性上面已经超过了windows操作系统。但是linux操作系统用的比较多的还是服务器的版本,在桌面上的普及始终还是不如windows,而且windows的操作更加的傻瓜化,可以这么说windows操作系统更加的适合于入门的用户,而且我们也知道现在学校里几乎上使用的都是windows 操作系统,所以使用windows操作系统变成了我们的首选。windows操作系统也分为很多种,包括win95、win98、win2000、winxp、win2003。虽然win98操作系统发行已经很多年了,但是一直以它的操作方便性深受用户的喜爱,所以我们这里的操作系统当仁不让的选择win98操作系统232 开发工具的选择现在在市场上,流行的windows开发工具主要由两个供应商提供,一个是微软公司,另外一个是borland公司。而这两个公司的最有名的rad(快速开发工具)为visual basic 和delphi。因为visual basic是微软专门为开发windows程序而设计的,特点是简单易用,开发快速,和windows结合紧密,语言简单,试想学计算机的谁没有学过basic语言呢?虽然delphi功能也很强大,但是考虑到简单性,所以我决定使用visual basic。2421 visual basic介绍我们先来了解一下visual basic,经过总结我觉得visual basic有主要有如下的三个特点:1、visual basic提供可视化的编程工具 用传统的高级语言编程时,程序的各种功能、用户界面和显示的结果全要由程序语句来实现,这就增加了编程难度。而用visual basic开发应用程序,包括两部分工作:一是设计用户界面,二是编写程序代码。visual basic向程序设计人员提供图形对象(窗体、控件、菜单等)来进行应用程序的界面设计,例如程序人员可以根据用户的需要轻而易举地在屏幕上画出下图的用户界面。visual basic提供的“工具箱”内存放若干个“控件”,程序设计者可以自由地从工具箱中取出所需控件,放到窗体中的指定位置,而不必为此编写程序。也就是说,屏幕上的用户界面是用visual basic提供的可视化设计工具直接“画”出来的,而不是用程序“写出来的”。2、程序采用“事件驱动“方式 在设计好用户界面后,第二件事是编写程序。visual basic改变了程序的机制,它没有传统意义上的主程序,而由“事件”来驱动子程序的运行。一般来说,每个子程序要实现的功能是单一的,子程序的规模一般不会太大,也就是说,把原来一个统一控制的、包罗万象的大程序分解为许多个独立的、小规模的子程序,分别由各种“事件”来驱动执行,于是编程难度大大降低了。3、visual basic融入了最新的计算机技术 visual basic的设计者在visual basic中融入了最新的计算机技术,使得用visual basic编程能充分利用了这些最新的技术,例如在多媒体方面的应用、在internet 方面的应用等。总之,visual basic是面向对象的、结构化的计算机语言。visual basic的界面由一些对象组成,每个对象有若干个属性、方法和事件,程序人员的任务是设计这些对象的事件处理过程。visual basic是一种很容易学习并很快就可以熟练掌握的功能强大的编程语言。233 数据库的选择考试系统里有很多的地方需要存取数据,为了能够更好的组织数据,并且使编码更加的简单,决定使用数据库技术来组织所有的数据,包括题库数据和考生在考试的时候的数据。现在市场上主流的数据库分为网路型的数据库和桌面型的数据库。网络型的数据库一般情况下使面向企业级的用户,数据存储比较的稳定,而且安全,数据存储的容量也非常的巨大。而桌面型的数据库一般是面向一些中小型的用户,他们的数据量不是非常的庞大,由于一般情况下,不是通过网络来存取的,所以速度相对来说要快一点,而且价格方面要便宜的多,缺点是数据安全性方面稍差。而本次毕业设计使用的数据库access2000更是微软office2000中的一个套件。为了减少成本,而且对于一个考场的考生来说使用access数据库已经足够,而且减低了整个系统的造价。1 、 access简介作为microsoft的office套件产品之一,access已经卖出了近900万份,成为世界上最流行的桌面数据库系统。access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的pc数据库程序(如dbase,paradox,microsoft foxpro)和服务器、小型机、大型机上的许多sql数据库。access还完全支持microsoft的ole技术。 access还提供windows操作系统的高级应用程序开发系统。access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的!如果您能给它加上简短的vba代码,那么您的程序决不比专业程序员潜心开发的程序差。2 、 access的总体结构 access将所有具有名字的东西都成为对象(object),在access 2000中,最重要的对象有表,查询,窗体,报表,宏和模块。表 用户定义的存储资料的对象。每一个表都包含有关某个主体的信息。表包括存储不同种类资料的字段(列),而记录(行)则收集特定主体实例的所有信息。查询 为来自一个或多个表的资料提供定制视图的对象。在access中,可以利用图形化的实例查询机制(qbe)或通过sql语句来建立查询。你可以在查询中选择、更新、插入或删除资料,也可以用查询来建立新表。窗体 窗体是主要的人机接口。大量的操作(几乎所有)都要通过窗体完成。窗体通过运行宏(macro)或visual basic for applicatinns(vba)过程,来响应大量的事件。access 2000为我们提供了强大的(同时也是相当方便的向导)来建立标准的windows窗体。报表 为格式化、计算、打印选定资料而设计的对象。它是衡量一个优秀的数据库的重要标准(有时甚至是唯一的标准)。宏 为了响应已定义的事件,需要让access去执行一个或多个操作,而宏就是对这些操作的结构化的定义对象。它可以让你像堆积木一样建立一个功能强大的程序,而无须写大量的代码。模块 包括用vba编码的定制过程的一个对象。模块提供了独立的动作流以捕获错误,而宏做不到。模块能直接响应窗体或报表事件,也可以从应用程序的任何地方被调用。3 、为何要选择accessaccess 功能强大,使用方便,是开发桌面数据库的最优秀的工具之一。如果你具有下面的情况,就应该考虑选择access。1、 我要建立一个数据库系统,却不愿因此而去系统地区学习编程。2 、我略懂编程,希望能够建立一个专业的数据库系统。3 、我精通c+,但我发现要用它做许多复杂的报表是一件令人头疼的事。4 、我有大量的资料要处理,却不会写sql语句。5 、我精通多种数据库语言,但我希望工作更轻松一些。从上面的vb和access的介绍后,我们知道如果使用这两种软件来开发是个比较不错的选择,所以决定使用这两个软件进行本次的开发和设计。第三章 visual basic数据操作技术3.1数据库组件介绍在使用visual basic开发数据库应用程序的时候,会经常使用数据库访问控件。这些控件包括:data控件;ado data控件;datalist控件/datacombo控件;datagrid控件;mschart控件。下面将分别对这些控件的主要功能及使用方法进行介绍。3.1.1 data控件data控件是visual basic中最基本的数据库操作控件。它使用recordset对象提供对存储在数据库中数据的访问。data控件允许从一个记录移动到另一个记录,并显示和操纵来自被连接控件的记录的数据。许多其他的数据库操作控件都需要data控件或类似的数据源控件(比如ado data控件)。data控件可以执行大部分数据库访问操作,但是它并不能显示数据库中数据的内容。data控件通常需要与其他控件结合使用。这些与data控件结合使用的控件,可以称之为“数据觉察控件”。因为程序员无需编写任何代码,就可以在这些控件中显示当前记录的数据。当data控件中当前记录发生变化时,数据觉察控件的内容也会随之发生变化。当与data控件相连接时,datalist、datacombo、datagrid和mshflexgrid控件都能管理记录集合。所有这些控件都允许一次显示或操作几个记录。内部的picture、label、textbox、checkbox、image、ole、listbox和combobox控件也是数据觉察的,能和由data控件管理的recordset对象的某个字段相连接。3.1.2 ado data控件ado data控件与内部data控件以及remote data控件(rdc)相似。用户可以使用ado data控件快速地创建一个到数据库的连接。3.1.3 datalist控件/datacombo控件datalist控件是一个数据绑定列表框,它可以自动地由一个附加数据源中的一个字段充填,并且可选择地更新另一个数据源中一个相关表的一个字段。datacombo控件的功能与datalist控件完全相同,只不过datacombo控件是一个组合框。3.1.4 datagrid控件在许多情况下,需要使用表格形式来显示数据库中的数据。这时就要借助于daatgrid控件。用户可以设置datagrid控件的datasource属性为一个ado data控件,从而将ado data中的数据自动地填充到datagrid表格中。这个datagrid控件实际上是一个固定的列集合,每一列的行数都是不确定的。3.1.5 mschart控件mschart控件的功能是以图形方式显示数据的图表。这会使枯燥的数据变得更加生动直观,增加了程序的实用价值。mschart控件支持一下特性:1、真三维表示;2、支持所有主要的图表类型;3、数据网络成员支持随机数据,数据数组。3.2 visual basic数据库操作方法3.2.1数据库打开/关闭方法一般说来,有2种数据库打开关闭方法,下面将介绍这2种方法并对其进行比较。通常情况下,数据库的打开操作是在程序代码中使用opendatabase方法实现,其格式如下:set database=workspace.opendatabase(dbname,options,readonly,connect)可以通过指定数据库名字、打开方式、连接信息等参数打开一个现已存在的数据库,使用close方法即可关闭该数据库。由于涉及vb代码的编写,其软件编制工作比较复杂。另一方面,vb的数据控件(data control)也可以执行数据库的打用关闭操作。我们可以在数据控件的属性窗口中预先填好数据库打开的相关参数,一旦该数据控件启动,数据库便会自动以指定的方式打开,而当该数据控件终止时,对应的数据库也将自动关闭。对于按这二种方式打开的数据库,其后的数据库访问操作没有什么本质的区别。以上两种数据库打用关闭的方法各有千秋:使用opendatabase方法可以在程序运行中动态地设置数据库打开参数,并且可以多次以不同的方式打开和关闭同一个数据库,具有相当大的灵活性。而如果使用数据控件,则不需要另外编写vb代码,只要在程序编制时预先设置数据库的相关参数,程序开始运行后便会自动地以我们指定的方式打开数据库,并在程序终止时自动关闭该数据库,因此显得相当方便。在实际应用中,可以视情况的不同而采用不同的处理方法:如果要求数据库在程序运行中始终处于打开状态并且其打开方式保持不变(如一直处于只读状态),那么,可以采用数据控件方法打开数据库;如果要求数据库在程序运行中时而打开时而关闭,或者经常在只读和读写方式间来回切换,则只能采用opendatabase方法编写程序代码。3.2.2使用数据约束控件显示数据数据库中的数据要最终显示给用户,就要使用数据约束控件, vb中还提供了多种高级约束数据控件,其中包括:高级约束数据网格控件(dbgrid)、高级约束列表控件(dblist)和高级约束组合框控件(dbcombo)。高级约束数据网格控件显示并允许操作与其相连的记录集对象, dbgrid控件被称为“数据感知”的,即只要将其datasource属性设置为data控件(当然data控件的databasename和recordsourse属性必须已经被正确设置)就能利用记录集来自动填充控件的网格,并且列头也由记录集对象自动设置。换句话说,就是通过dbgrid控件所显示的二维网格,实际上可以形象地看到整个记录集的结构和内容。可以在代码中指定当前单元,或用户在运行时用鼠标或单元箭头键改变当前单元,然后进行单元内容的修改,单元可以单独或按行选中。用 dbgrid 控件的列 columns 集合的 count 属性和 recordset 对象的 recordcount 属性可以确定控件中的行和列的数目。约束数据列表控件(dblist)与约束数据组合框控件(dbcombo)dblist与dbcombo 控件是和数据相连的控件,它们能在列表中自动显示与之相连的 data 控件的字段值,并可以有选择地更新其它的 data 控件中相关表的字段。dblist 和dbcombo控件的列表是通过简单地设置一些属性由和它们相连的 data 控件的 recordset 对象中的字段中的数据自动填加数据项,并且控件有能力更新在不同的 data 控件的相关的 recordset 对象中的字段,即用一个记录集中的某个字段值去更新另一个记录集中指定的一个字段的值。dblist 与dbcombo常用的属性:rowsource:作为控件列表区段的项目源使用的一个 data 控件名,即用所指定的数据控件中的一个字段内容来填充列表控件的列表区;listfield :由 rowsource 指定的data控件创建的recordset 中的一个字段名,用于填充列表;selecteditem:由 rowsource 属性指定的在 recordset 中的选定项目的书签(即选定的字段项目所在的记录)。3.3 visual basic的历史visual basic是由basic演化而来的,basic是beginners all-purpose symbolic instruction code(初学者通用符号指令代码)的缩写,是国际上广泛使用的一种计算机高级语言。basic简单、易学,目前仍是计算机入门的主要学习语言之一。 basic语言的问世及发展到visual basic经历了以下四个阶段:第一阶段:(1964年70年代初) 1964年basic语言问世。 第二阶段:(1975年80年代中) 微机上固化的basic第三阶段:(80年代中90年代初) 结构化basic语言。第四阶段:(1991年以来) visual basic 自从1991年,微软推出了visual basic1.0版。这在当时引起了很大的轰动。许多专家把vb的出现当作是软件开发史上的一个具有划时代意义的事件。其实,以我们现在的目光来看,vb10的功能实在是太弱了。但在当时,它是第一个“可视”的编程软件。这使得程序员欣喜之极,都尝试在vb的平台上进行软件创作。微软也不失时机地在四年内接连推出vb20,vb30,40,三个版本。并且从vb3开始,微软将access的数据库驱动集成到了vb中,这使得vb的数据库编程能力大大提高。从vb4开始,vb也引入了面向对象的程序设计思想。vb功能强大,学习简单。而且,vb还引入了“控件:的概念,使得大量已经编好的vb程序可以被我们直接拿来使用,如今,vb已经有了6.0版,也就是此教师评测系统开发使用的版本。通过几年的发展,它已成为一种真正的专业化的开发语言和环境。用户认为可用visual basic快速创建windows程序,在现在还可以编写企业水平的客户服务器程序及强大的数据库应用程序,visual basic新版中还有更多可用新功能。3.4 visual basic常用术语解释在以下讨论visual basic时,经常可以听到这些术语,因此首先对这些术语进行理解,以下是visual basic中最常用到的几个术语:控件提供程序可见界面的可重用对象。控件的示例有文本框、标签和命令按钮。事件由用户或操作系统引发的动作。事件的示例有击键、单击鼠标、一段时间的限制,或从端口接收数据。方法嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法。 对象程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是visual basic中所有对象的示例。 过程为完成任务而编写的代码段。过程通常用于响应特定的事件。 属性对象的特征,如尺寸、位置、颜色或文本。属性决定对象的外观,有时也决定对象的行为。属性也用于为对象提供数据和从对象取回信息。3.5 visual basic的特点vb的重要特点之一是可视性。系统引进了窗体和控件的机制,用于设计应用程序界面。用户通过在屏幕上生成窗体,在窗体中绘制所需要的控件和按钮,设计菜单和对话框,vb会自动生成相应的代码。vb的另一重要特点是事件驱动。当窗体或控件上发生一个事件时,vb立即把控制权交给程序员。程序员不必担心如何判断事件是否已发生,只需要编写一段代码告诉计算机在事件发生以后应该做什么工作就可以了。这样,设计一个windows应用程序简化为用鼠标在屏幕上点击、拖拽并添加少量的代码就可以完成了,大大降低了对程序设计的要求,提高了应用程序的开发效率。利用vb的可视性特点,可方便的设计了程序的窗体界面,并在各个窗体中的合适位置绘制所需的每种控件。如要修改窗体或控件的某项属性,只需在相应的窗体或控件的属性窗口修改相应的参数便可达到需要的设计效果。利用vb的事件驱动性特点,只需在窗体或控件上的代码窗口中添加少量的代码,便可达到告诉当在相应的窗体或控件上发生某一事件时,它们在事件发生后应该做什么工作的目的。例如几个窗体上的添加、删除、返回按钮的作用,就是通过在各个相应按钮的代码窗口中输入相应的代码,来达到当在几个按钮上出现单击(click)事件后,相应按钮实现添加、删除、返回的功能的。第四章 使用visual basic开发排课系统4.1开发使用的过程模型在开发此套系统之前,首先要按照软件工程的方法确定所使用的开发模型,利用软件工程的相关知识,确定采用的过程模型是快速原型。快速原型是利用原型辅助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。 由于种种原因,在需求分析阶段得到完全、一致、准确、合理的需求说明是很困难的,在获得一组基本需求说明后,就快速地使其“实现”,通过原型反馈,加深对系统的理解,并满足用户基本要求,使用户在试用过程中受到启发,对需求说明进行补充和精确化,消除不协调的系统需求,逐步确定各种需求,从而获得合理、协调一致、无歧义的、完整的、现实可行的需求说明。又把快速原型思想用到软件开发的其他阶段,向软件开发的全过程扩展。即先用相对少的成本,较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用户试用,以便及早澄清并检验一些主要设计策略,在此基础上再开发实际的软件系统。快速原型的表示图如下: 原型表示图4.2后台数据库的建立利用数据库原理相关知识,对数据库设计和每个模块、每个界面的具体设计。此系统采用的数据库软件是microsoft access。access 5个方面的优势:activex数据对象(ado)、增强的sql server互操作性、visual basic for application(vba)和打包方面的改进、microsoft jet引擎的改进以及增强的web互操作性。activex数据对象 ado替代了以前数据访问对象(dao)所执行的几乎所有的数据访问功能。access 2000是通过了三个库来提供ado功能的:adodb、adox和jro。 activex data objects 2.1(adodb)库提供了核心的数据访问处理功能。主要的adodb 对象包括connection、recordset和command对象。可以使用这些对象及其属性和方法来连接和操作数据源。connection对象提供了与新的oledb提供者技术的接口,是微软统一数据访问(uda)结构的关键技术。uda可以高性能地访问企业间多种平台上的各种数据格式(包括关系的和非关系的)。uda便于集成化地处理传统的数据源(如jet和sql se rver数据源)和非传统的数据源(如电子邮件、文件目录和视频)。uda对当今标准的数据接口(如开放数据库互联odbc、远程数据对象rdo和dao)作了进一步的改进。 microsoft ado extensions 2.1 for ddl and security(adox)库提供了一种对数据定义和用户安全性的基于对象访问的方法。它提供了传统的jet的用户级集合:users和gr oups,将数据库文件中的权限与工作组信息文件中users和groups集合中的成员联系起来。adox模型用tables、columns、indexes、keys、views和procedures等对象对数据定义的复杂的任务进行处理。可以用这些对象动态地定义新表、索引以及表之间的关系,也可以根据表定义查询。 microsoft jet and replication objects 2.1 (jro)库的主要功能是通过ado接口提供jet引擎的同步复制服务。这个新的ado模型允许用户充分利用所有可编程的jet数据库同步复制的新特征,而且该模型还包括jet引擎的功能,如压缩数据库和刷新高速缓存。增强的sql server互操作性 利用access2000,用户可以像处理microsoft jet数据库那样容易地处理企业级数据库。 ado的连接性是其原因之一。然而,利用新的access工程,可以更紧密地与sql server 6.5和sql server 7集成。这个新的文件类型(.adp)操作sql server和微软数据引擎( msde)的方式与.mdb文件便于处理jet数据库的方式非常一致。msde是植入于sql serve r 7模型中的新数据库引擎,它是适用于小型工作组解决方案的、是对传统的jet数据库引擎的补充。你可以用jet或msde来开放解决方案。 access工程在熟悉的数据库容器框架中明确地展示视图和(存储)过程。采用简洁的、与jet数据库相同的图形化,你可以立即连接到远程sql server数据库,也可以用acces s的窗体和报表来使用sql server的数据(与处理jet数据的方式相同)。你也具有与sql server和其他后端数据源的无缝ole db的互操作性。使用ado的connect ion对象和ole db提供者,你可以连接到远程数据源,并能在自定义的应用程序中通过程序引用它们。vba和打包的增强 access继续保持了与其他office中的vba的一致性。access 2000引入了visual basic e ditor(vbe),它与microsoft word、excel和powerpoint中的vbe具有相同的用户界面。可以直接将自己的代码管理和开放技巧转移到这些软件包中,从而丰富非access应用程序的数据访问功能。 office 2000开发人员版改进了打包和分发选项。例如,你可以分发含有msde解决方案和依赖于与sql server类似的数据库的解决方案。你可以从图形界面和编程接口中获得大量的视图和过程。如果应用程序可能发展到需要成熟的sql server数据库的能力,这一点尤其重要。新的分发选项允许你通过internet来分发解决方案的自定义安装软件包,从而能极大地扩展你的客户范围。潜在的客户可以扩展到世界上通过internet连接的任何人。jet引擎的改进 access 2000封装了4.0版的jet数据库引擎。该引擎在若干方面作了改进。特别吸引人的是能够进行行级(row-level)页面锁定。引入行级锁定的一个原因是能够使unicode支持文本字符。现在,你可以在多语言应用程序中用不同的语言表示文本。新的基于文本的字段将每个字符的空间需求从1字节扩大到2字节,页面大小从2字节扩大到4kb。由于页面大小已经增大,微软采用了行级锁定,以便减少多用户应用程序中同一页面的并发锁定的可能性。数据库的同步复制也在几个方面得到了增强。一个增强是可以使用列级同步复制。在以前的jet版本中,只在行一级侦探冲突,所以即使用户改变同一记录的不同字段,也会产生同步冲突。列级同步复制消除了上述冲突,因而提高了性能。access 2000也引入了在 jet和sql服务器之间的双向同步复制,以前的版本只允许从sql server到jet的单向同步复制。另一个值得赞赏的改进是可以用程序来改变自动编号字段的值。在创建表时,你可以设置自动编号字段的初始值和步长值。也可以改变表中下一条记录的这些值。在access工程中,你可以在表的设计视图中设置自动编号字段,也可以在创建表之后修改这些值。 jet也提供了对视图和过程的sql级访问。jet sql的改进允许你创建和改变两种类型的数据库对象模型。增强的web互操作性 access 2000最重要的新特征之一是数据访问页。数据访问也就像是web上的access窗体和报表。你可以设计直接与jet或sql server数据源绑定的web页。对于像窗体一样的页面,用户可以从页面中以图形方式编辑、增加和删除记录。你可以使用设计工具,用程序控制这些特征及排序和筛选能力。虽然这些页面不能使用子窗体,但是你可以创建分组的数据访问页,根据用户的输入有条件地进行扩展。数据访问页也可以作为新的office 2000 web组件的服务器,office 2000 web组件可以用于创建包含交互式电子数据表、动态图表和数据透视表的页面。也可以将电子数据表和图表web组件与显示在分组和未分组数据访问页中的数据组合在一起。这意味着你可以展示随着记录移动而动态变化的计算值和图表。含有数据透视表的数据访问页不能与页面上的其他数据源进行交互,但它们提供了excel风格的透视为不同的视图图形化地移动数据的不同部分。另外,数据透视表还可以用于分析多种数据,包括sql server 、jet和在线分析处理(olap)数据源。进行数据的分析设计后,应该用access建立17张表。各表结构信息具体见如下表1表8。字段名称数据类型说明学号文本学生学号姓名文本学生姓名表1学生信息表字段名称数据类型说明user_name文本学生学号password文本学生姓名表2 用户表字段名称数据类型说明number文本习题题目编号chapter文本章节level文本难度系数value文本分值point文本考点contentole题目内容answerole答案picole题图questionfile文本问题文件answerfile文本回答文件picturefile文本图片文件表3计算题表(results)字段名称数据类型说明number文本习题题目编号chapter文本章节level文本难度系数value文本分值point文本考点contentole题目内容answerole答案picole题图表4 计算题继教考题表字段名称数据类型说明number文本习题题目编号chapter文本章节level文本难度系数value文本分值point文本考点contentole题目内容answerole答案picole题图表5 计算题例题表字段名称数据类型说明number文本习题题目编号chapter文本章节level文本难度系数value文本分值point文本考点contentole题目内容answerole答案picole题图表6计算题习题表字段名称数据类型说明number文本习题题目编号chapter文本章节value文本分值contentole题目内容answerole答案questionfile文本问题文件answerfile文本回答文件表7填空题表字段名称数据类型说明number文本习题题目编号chapter文本章节value文本分值contentole题目内容answerole答案questionfile文本问题文件answerfile文本回答文件表8问答题表字段名称数据类型说明number文本汉译英题目编号value文本单词个数contentole题目内容answerole答案表9问答题汉译英4.2 系统模块图本应用程序由6个窗体组成,主要的分别是:登陆窗体,软件信息窗体,主窗体,添加题目窗体,试卷窗体,学生信息窗体组成。4.3 功能实现4.3.1 登陆运行试卷生成系统,首先进入的是登陆窗体:如图4.1图4.1部分关键代码解释如下:判断密码正确与否 private sub cmdok_click() on error resume next 判断密码正确与否 if passwordistrue(me.combo1.text, me.txtpassword.text) then user = me.combo1.text unload me frmmain.show else msgbox 密码错误,请重新输入!, , 密码错误 txtpassword.text = txtpassword.setfo

温馨提示

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

评论

0/150

提交评论