浙江工业大学之江学院毕 业 论 文题 目: 计算机自动出卷系统设计开发 学生姓名: 陈 静 学 号: 200202371204 系(部): 信息工程系 专业班级: 计算机0203班 指导教师(姓名及专业技术职务): 评阅者(姓名及专业技术职务): 06 年 月 杭州中 文 摘 要一般情况教师想出一份试卷,要么到庞大的题库里一道一道的把题找出来,或是从几本相关的书里把题一道一道挑出来。这样即费时又费力,而且很难保证试题的覆盖面和把握好试卷的难度。正是为了能够帮助教师轻松的出一份高质量的试卷而开发了本软件。为了达到预期的目标我们最终选择了Microsoft Office DocumentImaging做为本软件的终端输出。本软件是在对现有控件的改进和VBA编程的研究的基础上开发的。本软件实现了以下主要功能:1.手动生成试卷;2.自动生成试卷;3.抽取现有试卷;4.数据库管理。大量的测试表明本软件在Windows 98/me/2000/XP平台配合Office 系列 的环境下程序运行稳定且各项功能运行得都很正确,基本达到了预期的要求!!关键词:题库系统;试卷生成;数据库;VBA外 文 摘 要Title: computer atuomatic construction test paper system Abstract:The general situation teacher thinks out a paper,reach huge exam pool each finds out the question, or shoulder the question together out from several relevant books. Time-consuming and also strenuous like this, and very difficult to guarantee coverage rate and paper degree of difficulty of examination question. Helping the teacher thinks out a higt quality paper is the destination of develop this Software. In the cause of this we select the terminal is Microsoft Office Word. This Software’s base of develop is improve on control in existence and study the VBA programing. These functions of this software are as follows: One. Manual create paper; Two. Auto create paper; Three. Select from existential papers; Four. User manage; Five. Database manage. The result of many test is that this software is runing steady and these funtions of it is runing right in the environment which make up of Windows 98/me/2000/XP and Office 2000/XP/2003, it is basic reach the requests. Keywords:Exam;Problem pool;VBA;word目 录 TOC \o "1-3" \z HYPERLINK \l "_Toc128569192" 1 . 简述 128569192 5 HYPERLINK \l "_Toc128569193" 1.1 开发工具简介 128569193 5 HYPERLINK \l "_Toc128569194" 1.1.1 Visual Basic 6.0的特点 128569194 5 HYPERLINK \l "_Toc128569195" 1.1.2 主要的控件及其基本属性,事件简介 128569195 6 HYPERLINK \l "_Toc128569196" 1.1.3 数据库连接方式选择 128569196 10 HYPERLINK \l "_Toc128569197" 1.2 程序运行环境 128569197 12 HYPERLINK \l "_Toc128569198" 2 . 需求分析 128569198 12 HYPERLINK \l "_Toc128569199" 2.1 负责的功能模块 128569199 12 HYPERLINK \l "_Toc128569200" 2.2 软件功能分析 128569200 12 HYPERLINK \l "_Toc128569201" 3 . 设计阶段 128569201 16 HYPERLINK \l "_Toc128569202" 3.1 概要设计 128569202 16 HYPERLINK \l "_Toc128569203" 3.1.1 系统数据库设计 128569203 16 HYPERLINK \l "_Toc128569204" 3.2 详细设计 128569204 19 HYPERLINK \l "_Toc128569205" 3.2.1 程序流程图 128569205 19 HYPERLINK \l "_Toc128569206" 3.2.2 窗体功能简介 128569206 22 HYPERLINK \l "_Toc128569207" 4 . 软件实现 128569207 27 HYPERLINK \l "_Toc128569208" 4.1 OOP简介 128569208 27 HYPERLINK \l "_Toc128569209" 4.2 开发的关键技术 128569209 28 HYPERLINK \l "_Toc128569210" 5 . 软件测试及其维护 128569210 32 HYPERLINK \l "_Toc128569211" 5.1 系统测试平台简介 128569211 32 HYPERLINK \l "_Toc128569212" 5.2 测试方法 128569212 33 HYPERLINK \l "_Toc128569213" 5.3 系统维护 128569213 34 HYPERLINK \l "_Toc128569214" 6 . 开发总结 128569214 34 HYPERLINK \l "_Toc128569215" 参 考 文 献 128569215 35 HYPERLINK \l "_Toc128569216" 致 谢 128569216 36 HYPERLINK \l "_Toc128569217" 译 文 128569217 37 HYPERLINK \l "_Toc128569218" 原 文 128569218 40绪论在开发本软件之前,正是我努力提高自己的VB开发水平的时期。因此我选择了VBi做为我的开发工具,然而这次开发的软件和以前不一样。最主要的区别在于这个软件要以Microsoft Office DocumentImaging做为试卷的终端输出。而它们又是两个不同公司的产品。因而,刚一开始我特别担心这个技术能否得到比较圆满的解决。在开发的过程中我不断的对VBA技术进行研究,并且将它应用于这次的软件开发中。因而比较好的解决了Microsoft Office DocumentImaging的接口编程问题。还有一个比较棘手的问题就是VB提供的控件都是很基本的,而这次开发中要用到一个可以标记选中状态的树型控件,把本软件在多达4种操作系统和3个不同版本的Office上进行测试。测试表明:在Windows 98/me/2000/XP平台配合Office XP/2003 下程序运行稳定且各项功能运行.. 简述开发工具简介Visual Basic 6.0的特点Visual Basic 6.0是Micrsoft公司出品的开发工具,Visual Basic是一种可视化的,面向对象的Windows开发语言,它具有易用,通用和开发效率高的特点。随着微软对它不断地改进以及计算机本身性能的提高,使得Visual Basic越来越适合一般的应用程序开发。正如Bill Gate所说,世界上绝大多数的Windows应用程序是用Visual Basic编写的。在众多的开发工具中,我们为什么要选择Visual Basic6.0呢?因为VB具有众多其它开发工具所没有的优点!具体介绍如下: 开发的高效语言的高效编译的高效执行的高效维护的高效基于以上理由,我们毫不忧郁的选择了VB6.0做为我们的开发工具!!主要的控件及其基本属性,事件简介命令按钮类的控件:Caption属性:用来显示在控件上的标题。Enable属性:控制控件的激活状态灰色或可用。Appearance属性:值为1时,则以3D效果显示该控件,0则不然。Backcolor属性:用来改变在按钮上显示图像的背景色。Cancel属性:该属性决定按钮是否为一个”取消”按钮。Default属性:决定哪一个命令按钮控件是窗体的缺省命令按钮.Font属性:控制各种文字字体类型.Left,top,height,width属性:设定控件的位置与大小.Style,picture属性:决定按钮的显示方式是否为图像形式出现.Visible属性:确定控件运行时是否为可见.Index属性:当控件为一控件数组时,此属性值为该控件在数组的下标值.DownPicture属性:设置/返回一个对图片的引用,该图片在按钮被单击处于压下状态时显示。DisabledPicture属性:设置/返回一个对图片的引用,该图片在控件无效时显示在控件中。MaskColor属性:设置/返回一个在按钮的图片中作为“掩码“的的颜色Picture属性:设置返回commandButton控件中要显示的图片。命令按钮类的事件:单击事件――Click事件触发与适用此事件是在一个命令按钮对象上按下然后释放一个鼠标按钮时发生。命令按钮的Click事件仅对当单击鼠标时发生。事件处理过程按钮单击事件的处理过程为: Private Sub object-Click(Index As Integer)其中Object为引发该事件的对象名称。如果是命令按钮的控件是数组,则需要使用Index参数标识该控件。获得焦点――GotFocus事件触发与适用 当命令按钮获得焦点产生该事件,获得焦点可以通过诸如Tab切换或单击对象之类的用户动作,或在代码中用SetFocus方法改变焦点来实现。事件处理过程命令按钮GotFoucs事件处理过程为:Private Sub Object-GotFocus(Index As Integer)LostFocus事件:当一个对象失去焦点时发生KeyDown事件:当命令按钮具有焦点时按下一个键时发生KeyUp事件:当命令按钮具有焦点时释放一个键时发生。KeyPress事件:当用户按下或松开一个ANSI键时发生。MouseDown事件:当在命令按钮上按下鼠标按钮时发生。MouseMove事件:当命令按钮上移动鼠标时发生。MouseUp事件:当在命令按钮上释放鼠标按钮时发生。 标签框类的控件类的控件:Caption属性:在应用程序界面上加入说明。Autosize属性:决定控件是否自动改变大小以显示其全部内容。Backstyle属性:用以指示标签是否透明.Bordstyle属性:用以设定控件是否有边框。文本框类的控件:Text属性:通过像text属性赋值的方法来改变该属性的值。Maxlength属性:该属性设定在文本框控件中能够输入的最大字符数。Multline属性:该属性设定text字符串中是否接受换行符。Scrollbars属性:该属性决定是否为文本框加滚动条。Passwordchar属性:该属性设定输入文本的特殊显示字符,在设计密码程序时非常有用。Change事件属性:文本框的内容发生改变时,相应的控件之间发生相应的改变,具有即时性。Keypress:事件由用户在文本框控件中按任意键触发。Alignment属性:设定控件中的文本对其方式Appearance属性:设定一个对象在运行时是否可以3D效果显示。BackColor属性:设置返回背景色BorderStyle属性:设置对象的边框样式DataField属性:设定数据使用者将被绑定到的字段名DataFormat属性:设定DataFormat对象,用于数据绑定DataMember属性:从数据供应程序提供的几个数据成员中返回/设定一个特定的数据成员DataSource属性:设定控件绑定的一个数据源DragIcon属性:设定图标,它将在拖放操作中作为指针显示DragMode模式:设定一个值,确定在拖放操作中所用方式Enabled属性:设置/返回运行时TextBox是否相应用户事件Font属性:设置/返回字体属性ForeColor属性:设置/返回文本的前景色Height属性:设置/返回TextBox的高度IMEMode属性:设置/返回数值用来确定输入方法编辑器的状态Index属性:设置/返回唯一的标识控件数组中该控件的编号Left属性:设置/返回TextBox控件的水平位置Locked属性:设置/返回TextBox中文本是否可编辑LinkItem属性:设置/返回DDE与另一个应用程序会话时,传给接受端的数据MaxLength属性:设置/返回一个值,指定在TextBox控件中能够输入的字符最大值MouseIcon属性:设置/返回自定义鼠标的图标Top属性:设置/返回TextBox控件的垂直位置Tag属性:存储过程所需的附加数据文本框类的事件:Change事件:当改变文本框内容时发生Click事件:鼠标单击控件时发生DblClick事件:用鼠标左键双击控件时发生DragDrop事件:在一个完整的拖放动作完成或使用Drag方法,并将其Action参数设置为2时发生DragOver事件:在拖放操作正在进行时发生GotFocus事件:当一个命令按钮获得焦点时发生LinkClose事件:当一个DDE对话结束时发生LinkError事件:当一个DDE对话框过程中出现错误时,该事件发生KeyDown事件:当命令按钮具有焦点时按下一个键时发生Validate事件:在焦点转换到另一个控件之前发生,此时该控件的Causes Validation 属性值设置为True 单选按钮类的控件:Caption属性:显示在控件上的文本,是单选按钮的标题。Alignment属性:决定单选按钮的标题在控件上的位置。Enable属性:该控件为灰色时为false,表示运行时不可用。Index属性:属性值表示为单选按钮组成的控件中某个按钮的索引值。Tabindex属性:建立控件时,vb自动为其分配一个tabindex值,利用tab键可以在控件之间切换焦点。Value属性:反映控件状态的属性,返回true表示已选择了该按钮。Appearance 属性:设置/返回一个对象在运行时是否以3D效果显示。BackColor 属性:设置/返回背景色。Container 属性:设置/返回Form上的控件属性。DataField 属性:设置/返回数据使用者将被绑定到的字段名。DataFormat 属性:设置/返回DataFormat对象,一个绑定对象将附加到它。DisabledPicture 属性:设置/返回一个对图像的引用,该图片在控件无效时显示在控件中。DownPicture 属性:设置/返回一个对图片的引用,该图片在控件单击下处于压下状态时显示。DragMode 属性:设置/返回一个值,确定在拖放操作中所用的方式。Font 属性:设置/返回字体属性。FontBold 属性:设置/返回字体粗体样式。FontItalic 属性:设置/返回字体斜体样式。 FontStrikethru 属性:设置/返回字体删除线样式。FontUnderLine 属性:设置/返回字体下划线样式。FontName 属性:设置/返回控件中显示文本所用的字体大小。FontSize 属性:设置/返回控件中显示文本所用的字体大小Height 属性:设置/返回控件的高度。MaskColor 属性:设置/返回一个在控件的图片中作为掩码的颜色。MousePointer 属性:设置/返回一个值,该值指示在运行时当鼠标移动到对象上时显示的指针类型。单选按钮类的常用事件:Click 事件:鼠标单击控件时发生。DbClick事件: 当在一个对象上按下和释放鼠标按钮并再次按下和释放按钮时,该事件发生。DragDrop事件:在一个完整的拖放动作或使用Drag方法,并将其Action参数设置位2时,该事件发生。DragOver事件: 在拖放操作正在进行时发生。GotFocus事件: 当获的对象焦点时发生。LostFocus事件:当对象失去焦点时发生。KeyDown事件:当控件具有焦点时按下一个键时发生。KeyUp事件: 当控件具有焦点时释放一个键时发生。KeyPress事件:当用户按下或释放ANSI一个键时发生。MouseDown事件:当在控件上按下鼠标键时发生。MouseMove事件:在控件上移动鼠标时发生。MouseUp事件:在控件上释放鼠标时发生。复选按钮类的控件:Caption属性:缺省为check1…。Index属性:该属性值为复选框控件数组的下标.Value属性:value为0表空白,为1表勾号,为2表示灰色勾号.Container属性:Form控件上的容器。DataChangeed属性:设置/返回一个值,指出被绑定的控件中的数据已经被某进程修改。DataField属性:设置或返回数据使用者将被绑定到的字段名。DataFormat 属性:设置或返回DataFormat对象,用于数据绑定。Datasource属性:设置或返回控件绑定的一个数据源。DisabledPicture属性:设置或返回一个对图片的引用,该图片在控件无效时显示在控件中。DownPicture 属性:设置或返回一个对图片的引用,该图片在控件被单击处于压下状态时显示。DragIcon属性:设置或返回图标,它将在拖放操作中做为指针显示。DragMode属性:设置返回一个值,确定在拖放操作中所用方式。Font属性:设置或返回字体的属性。Name属性:设置或返回控件的标识名。Value属性:设置或返回控件的状态。复选按钮类的控件的基本事件:Click事件:鼠标单击控件时发生。DragDrop事件:在一个完整的拖放动作完成或使用Drag方法,并将其Action参数设置为2时发生。DragOver事件:在拖放操作正在进行时发生。GotFocus事件:在对象获的焦点时发生。,OLECompleteDrag事件:当源部件被放到目标时发生,并通知源部件拖放操作被执行或取消。OLEDragDrag事件:当源部件决定放操作能发生,却源部件被放到目标部件时,此事件发生。框架类的控件:1) List属性:列表框控件的表项是使用数组的方式保存,数组的每一个元素存储列表控件的一个表项Listcount属性:控件列表部分项目的个数。Mutselect属性:可以设置列表框为单选或允许多选属性.Selectd属性:标示一个数组,数组各元素为:Selected(0),selected(1)…滚动条类的控件:Value属性:滚动条上滑块所在位置由value值所决定。Max和min属性:对value值的最大,最小进行限制。Largechange属性:用户点击滚动条与键头之间的区域时,value的改变量。4) OnClick事件:用来添加按钮的单击事件所执行的程序代码。定时器类类的控件:Interval属性:表示定时的时间间隔,以毫秒为单位。Enable属性:为true时(缺省值),激活定时器开始计时;为false时处于休眠状态.数据库连接方式选择Visual basic6.0连接数据库的主要方式以下几种方式:一是:用data控件进行数据库链接 ,二是利用adodc(ADO Data Control)进行数据库链接 。三是: 利用DataEnvironment进行数据库链接.四是利用ADO(ActiveX Data Objects)进行编程:现在我们来大致对这几种技术应用介绍:用data控件进行数据库链接. 第一步:给窗体添加一个Data控件。第二步:用Access建立一个名为Pad的数据库,在库中建立一个表Myset,给表添加四个字段:backcolor(数据),forecolor(文本),fontname(文本),fontsize(文本)。注意:请将库文件存入程序所在目录。 如果你的机器没安装有Access,可通过VB建库。利用adodc(ADO Data Control)进行数据库链接:使用adodata控件访问数据库可以完全不用编写代码,只需要通过简单的设置和操作其属性就可以实现与数据库的连接,通过绑定数据感知控件,就能提供一个访问数据库的界面,用来实现对数据库的浏览,贴加,删除,修改等操作.利用DAO对数据库进行操纵:在visual basic 中提供了两种与jet数据引擎接口的方法:data控件与数据访问对象(DAO)DAO是database object的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持.DAO模型是设计关系数据库系统结构的对象类的集合.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等.关系数据库介绍:关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。 关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言 Microsoft Access介绍:使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。 如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。 如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。 如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。 如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。程序运行环境操作系统:Windows 9x/Me/Windows 2000/Windows XP办公软件:Office XP/Office 2003/ Office 2000. 需求分析负责的功能模块设计试题生成功能,试题能分布整个教学内容具有试题的答案生成功能数据库设计及维护程序的其它选项设置软件功能分析根据我负责的功能模块,主要是在试卷的生成上。1.要显示书本章节信息以供用户使用。而在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。但是在显示章节信息的时候必须按照书本的章节顺序来显示。所以特别设置如下的数据类型:Public Function AddQuestion(ByVal iCount As Long, ByVal QID As Long, ByVal QType As QuestionType, ByVal Score As Single) As Boolean On Error Resume Next DataEnv.rsQstPaper.Open DataEnv.rsQstPaper.Filter = "QuestionID = " & CStr(QID) & " and QuestionType = " & CStr(QType) & " " If DataEnv.rsQstPaper.RecordCount > 0 Then AddQuestion = False Else DataEnv.rsQstPaper.Filter = "" DataEnv.rsQstPaper.AddNew DataEnv.rsQstPaper.Fields("PaperSerial") = iCount DataEnv.rsQstPaper.Fields("QuestionID") = QID DataEnv.rsQstPaper.Fields("QuestionType") = QType DataEnv.rsQstPaper.Fields("Score") = Score DataEnv.rsQstPaper.Update AddQuestion = True End If DataEnv.rsQstPaper.Filter = "" DataEnv.rsQstPaper.CloseEnd Function2.手动生成试卷时要不断的将用户选择的题目临时存储起来,由于记录一道题所包含的信息不是很多,再因为这些信息一会儿还要在“保存答案”里使用,所以我设置了4个的全局变量,定义如下:Public Function AddQuestion(ByVal iCount As Long, ByVal QID As Long, ByVal QType As QuestionType, ByVal Score As Single) As Boolean On Error Resume Next DataEnv.rsQstPaper.Open DataEnv.rsQstPaper.Filter = "QuestionID = " & CStr(QID) & " and QuestionType = " & CStr(QType) & " " If DataEnv.rsQstPaper.RecordCount > 0 Then AddQuestion = False Else DataEnv.rsQstPaper.Filter = "" DataEnv.rsQstPaper.AddNew DataEnv.rsQstPaper.Fields("PaperSerial") = iCount DataEnv.rsQstPaper.Fields("QuestionID") = QID DataEnv.rsQstPaper.Fields("QuestionType") = QType DataEnv.rsQstPaper.Fields("Score") = Score DataEnv.rsQstPaper.Update AddQuestion = True End If DataEnv.rsQstPaper.Filter = "" DataEnv.rsQstPaper.CloseEnd Function 3.在自动生成试卷里最主要的一点就是如何生成一个覆盖知道点广且试题不重复的试卷。其中的关键算法在于如何生成一个不重复的随机数序列。其中变量定义如下: Public Function Create() As Boolean On Error Resume Next If Created Then Create = False Exit Function End If DataEnv.DelQuestion Dim iCount As Long Dim QID As Long Dim Score As Single For iCount = 1 To FillingNum QID = GetQID(1, Score) AddQuestion iCount, QID, 1, Score Next For iCount = 1 To RightWrongNum QID = GetQID(2, Score) AddQuestion iCount + FillingNum, QID, 2, Score Next For iCount = 1 To SingleSelNum QID = GetQID(3, Score) AddQuestion iCount + FillingNum + RightWrongNum, QID, 3, Score Next For iCount = 1 To MultiSelNum QID = GetQID(4, Score) AddQuestion iCount + FillingNum + RightWrongNum + SingleSelNum, QID, 4, Score Next For iCount = 1 To EssayQuesNum QID = GetQID(5, Score) AddQuestion iCount + FillingNum + RightWrongNum + SingleSelNum + MultiSelNum, QID, 5, Score Next Created = True Create = TrueEnd Function. 设计阶段概要设计系统数据库设计根据任务书的规定,现设计如下的数据库表格:表1:用户表(UserTable)字段中文名字段英文名字段类型字段长度主键编号UserID数字10是姓名UserName文本20密码Password文本18 表2:题型(Type)字段中文名字段英文名字段类型字段长度主键编号TypeID自动编号是名称TypeName文本20分值FZ数字长整型 表3:单项选择题(SingleSel)字段中文名字段英文名字段类型字段长度主键题号QuestionID自动编号是选项AChoice1文本255选项BChoice2文本255选项CChoice3文本255选项DChoice4文本255正确答案Answer文本1 表4:多项选择题(SingleSel)字段中文名字段英文名字段类型字段长度主键题号QuestionID自动编号是选项AChoice1文本255选项BChoice2文本255选项CChoice3文本255选项DChoice4文本255选项EChoice5文本255选项FChoice6文本255正确答案Answer文本1表5:填空题(Filling)字段中文名字段英文名字段类型字段长度主键题号QuestionID自动编号是题目Question备注答案Answer文本100分数Score文本3表6:简答题(JianDaTi)字段中文名字段英文名字段类型字段长度主键题号QuestionID数字是题目Question文本答案Answer备注分数Score数字长整型表7:判断题(XiTongCZ)字段中文名字段英文名字段类型字段长度主键题号QuestionID数字是题目Question文本分数Score数字答案Answer是/否详细设计程序流程图1.自动生成试卷的流程图:2.下图是手动生成试卷的流程窗体功能简介下图软件的登陆界面在这里输入用户名及密码就可以进行入软件的主界面了!!下图是软件的主界面:在以上的软件主界面的左边是各个功能模块的调用接口!!如:自动生成试卷:点击后进入自动生成试卷的功能界面。手动生成试卷:点击后进入手动生成试卷。题库管理:在这里可以往数据库里添加删处试题。软件的右上角有“帮助”和“关于”按钮!!在这里可以得到软件的使用帮助,和有关此软件的一些开发信息!!下图是自动生成试卷的界面:上图中标为“设定组卷方式”中我们选择“自动出卷”即可进入自动出卷方式界面。上图中标为“设定各种题型的数量”的是用来设置各种题型的在试卷中出现的量数。下图是手动生成试卷的界面图:上图中标为“第一部分”选择挑选已有题库中的题目到试卷中。上图中标为“第二部分”的是用来设置关键字从而查询欲加入试卷的题目。上图中标为“第三部分”的是用来设置题型。上图中标为“第四部分”的是用浏览已经加入试卷的题目。“试卷报表”是用来生成试卷的按钮。. 软件实现OOP简介每一个软件开发人员都会经常听到,看到“面向对象”这个词,程序员也时常把它挂在嘴上。那么什么还是真正的“面向对象”?什么是面向对象的编程?是不是写几个类就算面向对象了?为什么要面向对象??“面向对象是一种思维方式,一种方法论!”“结构化编程”(SP)是一种编程方法,是从计算机的视角来抽象问题的方法。而“面向对象编程”(OOP)也是一种编程方法,只不过它是从更接近真实世界的视角来分析问题,使用更接近人们理解真实世界的方法来抽象问题,这种方法称为“面向对象”(OO)!!“面向对象”这个词代表的是一种认识世界,分析问题,解决问题的方法,因此它是一种方法论。而面向对象编程则是将这种方法应用于程序设计的方法。当你会使用面向对象的方法去思考,用面向对象的模式支分析和解决问题的时候,才是真正的“面向对象”了!!“面向对象”最主要的特性有三个:继承性。Visual Basic提供大量的可被二次开发的类。每个类都可被继承。封装性。Visual Basic的封装性主要由类的私有域和保护域来实现的。多态性。Visual Basic的多态性主要是通过虚拟方法和动态方法来实现的。开发的关键技术1.VBA编程技术Visual Basic for Applications(简称VBA)是新一代标准宏语言。在没有VBA 以前,一些应用软件如Excel, Word, Access 等都采用自己的宏语言供用户开发使用,但每一种宏语言都是相互独立的并且它们之间是互不兼容的。这导致了应用软件之间不能在程序上互联。找到一种可被所有的Microsoft 可编程应用软件所共享的通用宏语言是Microsoft 公司长期追求的目标。VBA 作为新一代的标准宏语言具有了跨越多种OFFICE 应用软件并且控制应用软件对象的能力。 Public Sub ReportToFile(ByVal FileName As String) On Error Resume Next Dim txtFile As String Dim iCount As Long If Dir(FileName, vbNormal) <> "" Then Kill FileName End If Open FileName For Output As #1 Print #1, " 试卷样稿 " Print #1, "------------------" For iCount = 1 To LastQSerial txtFile = GetQuestion(iCount) If txtFile <> "" Then Print #1, txtFile End If txtFile = GetAnswer(iCount) If txtFile <> "" Then Print #1, txtFile End If txtFile = GetChoice(iCount) If txtFile <> "" Then Dim s() As String s = Split(txtFile, ",") Dim i As Byte For i = 0 To UBound(s) txtFile = Space(3) & Chr(Asc("A") + i) & "." & s(i) Print #1, txtFile Next End If NextClose #1End Sub. 软件测试及其维护系统测试平台简介硬件平台CPUIntel P4 1.5G主板Intel 850芯片组的GA-8TX-C内存2×128M的三星Rambus内存硬盘Seagate Barracuda 7200.7 80G显卡Unika 小妖G9800显示器美格770PF,17寸纯平显示器软件环境操作系统Microsoft WindowsXP简体中文专业版+SP1办公软件Microsoft Office 2003显卡驱动nVIDIA ForceWare驱动56.72版For Win2000/XP测试方法测试在软件开发过程中一直都是备受关注的,即使在传统的软件工程中,也有一个明确、独立的测试阶段。随着软件危机的频频出现以及人们对于软件本质的进一步认识,测试的地位得到了前所未有的提高。测试已经不仅仅局限于软件开发中的一个阶段,它已经开始贯穿于整个软件开发过程,人们已经开始认识到:测试开始的时间越早,测试执行的越频繁,所带来的整个软件开发成本的下降就会越多。Extreme Programming更是把测试推到了极限的位置,一切软件开发活动都要从首先编写测试代码开始。为了使本软件运行更加稳定,我对它进行了全面的测试,测试分为二部分来进行,一是:界面测试;二是功能测试。首先是界面测试,为了使软件在不同的的操作系统平台上运行界面能保持原来的风格。我的开发平台如上介绍。我把完整程序拷贝到我同学的机子,同学机子的相关配置如下:Windowsxp+15寸显示器;程序运行界面正常,但由于我同学的显示器是15寸的显示的范围比较小外,界面上的字体等设置都保持得相当好。没有出现类似字体变形的情况!第二个平台:Windows Me +17显示器,测试结果:字体有些不正常了。后来在网查找了很多相关的资料,得出这是由于Window Me或Windows 98和我的开发平台的操作系统Window XP的字体集不一样造成的。解决方案是:把软件的字体设置成:宋体+9号,字符集使用:CHINASE_GB2312。至此软件的界面测试顺利完成。二是进行功能的测试。我的功能模块主要是试卷生成。而试卷生成后都是输出到Microsoft Office Word里。而Office的版本又那么的多,因此,我一直很担心在不同的Office平台下软件会有不同的运行结果!!实际测试结果如下:在Windows 2000+Microsoft Office 2000的平台下,试卷功能里的预览功能不能用了。界面停留在“正在链接Microsoft Office Word ......”这里,一看就知道没有办法和Microsoft Office Word链接了。换平台测试,这回是在Windows 2000+Office XP,程序正常运行了包括试卷预览等功能都正常运行。再换平台:Windows XP+Office 2003程序同样完全正常运行,由此可以总结出在低于Office XP的平台下程序无法和办公软件交互。本来我想把程序换成能支持Office 2000的,可后来一想Office 2000距离现在已经有4年之久了。支持了它反而支持不了最新的Office平台,所以决定让程序运行在Office XP 或是Office 2003平台上。至此到这里在功能的测试上也已经比较圆满的完成了!系统维护由于在开发本程序的时候我就特别注意软件的后续维护和再开发上。因此极努力的想把它开发成一个强内聚、弱耦合、接口明确、意图明晰的软件。对于程序里的功能我尽力把它们封装在类的私有过程或私有函数里,这样可以大大提高软件的内聚性,在各个功能模块和窗体之间尽可能减少它们之间的调用关系,以减少软件的耦合性。在软件设计初期我就预留了接口用于调用另一个同学的模块。为了保证两人开发出的功能模块能在最后能顺利地联合。在一开始我就预先编了一个公共的“数据模块”以提高软件连接数据库能高效共享。并且给他规定一些如控件的命名规则,代码的规范等。这些都大大提高了软件后续的可维护性。. 开发总结本软件的设计目的是在题库建立管理维护和试卷生成方面为教学单位和人员提供方便和帮助。通过这几个月的毕业设计,我学到很多以前没有学到的Delphi开发技术,在软件工程学上更是取得了很大的进步。经过大量的测试和试用,作者深信本软件达到了方便和实用的设计目的,并在软件界面和易用实用等方面有着独到之处。虽然软件基本达到设计要求并且达到同行的先进水平,但由于作者水平有限,软件存在bug也是在所难免的 ,您的意见和建议将极大的帮助我改进并完善软件。真诚的希望你的参与。 参 考 文 献11陈明 . 软件工程学教程 .科技出版社,20022 萨师煊,王珊 . 数据库系统概论 . 第三版 . 高等教育出版社,20003 飞思科技产品研发中心 . visual basic 6.0数据库应用开发 .电子工业出版社,20034 飞思科技产品研发中心 . visual basic 6.0开发者手册 . 电子工业出版社, 2002 5 申旻 . visual basic 6.0高手突破 . 清华大学出版社,2002,3026 Steve Teixeira,Xaviver Pacheco著,龙劲松,王瑜,谢尚书译 . visual basic 6.0开发人员指南 . 机械工业出版社 .2003 7 乔林 .参透Delphi/Kylix . 中国铁道出版社 .20038 李维 .Inside 深入核心 VCL 架构剖析 . 电子工业出版社 .2004 9 张立科编写组 .Windows API 函数参考手册 .人民邮电出版社 .2002 严蔚敏,吴伟民 .数据结构 .第二版 .清华大学出版社 .2001 10 王珍玲 。实用软件工程教程 高等教育出版社 200411 (英)Ian Sommerville 机械工业出版社 200312 美Cantu,U. 王辉等译visual basic 6.0 从入门到精通 电子工业出版社 200313 李维 面向对象开发实践之路(visual basic 6.0版)(BORLAND资深顾问著名visual basic 6.0专家李维最新力作) 电子工业出版社 2005.414 秦斌 等 visual basic 6.0数据库系统开发与应用 中国水利水电出版社 2006 .115 刘艺 visual basic 6.0面向对象编程思想 机械工业出版社 200316.visual basic 程序设计第二版 谭浩强 清华大学出版社 200317. visual basic6.0 程序设计教程. 胡同森 赵剑锋等. 浙江科学技术出版社,2002.118.软件工程学教程 (第二版) 周苏 王文 著 科学出版社 200319.Visual Basic 6.0 程序设计与开发技术 求是科技 人民邮电出版社 2004.9致 谢我首先感谢我的指导老师吕老师,在他严格的要求下我懂得了开发软件要有一种极其认真负责的态度。无论做什么事都要大胆的去想去做,这样会有好的创意,才能更有作为。在这里我还要感谢我们宿舍的其它5个同学。他们和我共同生活了四年,在生活和学习上给了我很大的帮助。程序开始输入题目类型与数量预览试卷打印试卷修改试卷程序退出程序开始选择题型与数量生成试卷报表预览试卷修改试卷打印试卷
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。