毕业,课程设计,正文

3995
    


来源:
Licence:
联系:
分类:
平台:
环境:
大小:
更新:
标签:
联系方式 :
免费下载 ×

下载APP,支持永久资源免费下载

限免产品服务请联系qq:1585269081

下载APP
免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
下载 ×

下载APP,资源永久免费


如果出现不能下载的情况,请联系站长,联系方式在下方。

免费下载 ×

下载论文助手APP,资源永久免费

免费获取

如果你已经登录仍然出现不能下载的情况,请【点击刷新】本页面或者联系站长


浙江工业大学之江学院

毕 业 论 文
题 目: 计算机自动出卷系统设计开发  

 
学生姓名: 陈 静 学 号: 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.Close

End Function

2.手动生成试卷时要不断的将用户选择的题目临时存储起来,由于记录一道题所包含的信息不是很多,再因为这些信息一会儿还要在“保存答案”里使用,所以我设置了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.Close

End 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 = True

End Function

. 设计阶段

概要设计

系统数据库设计

根据任务书的规定,现设计如下的数据库表格:
表1:用户表(UserTable)

字段中文名

字段英文名

字段类型

字段长度

主键

编号

UserID

数字

10



姓名

UserName

文本

20
密码

Password

文本

18





表2:题型(Type)

字段中文名

字段英文名

字段类型

字段长度

主键

编号

TypeID

自动编号


名称

TypeName

文本

20
分值

FZ

数字

长整型




  表3:单项选择题(SingleSel)

字段中文名

字段英文名

字段类型

字段长度

主键

题号

QuestionID

自动编号


选项A

Choice1

文本

255
选项B

Choice2

文本

255
选项C

Choice3

文本

255
选项D

Choice4

文本

255
正确答案

Answer

文本

1 

表4:多项选择题(SingleSel)

字段中文名

字段英文名

字段类型

字段长度

主键

题号

QuestionID

自动编号


选项A

Choice1

文本

255
选项B

Choice2

文本

255
选项C

Choice3

文本

255
选项D

Choice4

文本

255
选项E

Choice5

文本

255
选项F

Choice6

文本

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

Next

Close #1

End Sub. 软件测试及其维护

系统测试平台简介

硬件平台

CPU

Intel 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也是在所难免的 ,您的意见和建议将极大的帮助我改进并完善软件。真诚的希望你的参与。


参 考 文 献

1

1陈明 . 软件工程学教程 .科技出版社,2002

2 萨师煊,王珊 . 数据库系统概论 . 第三版 . 高等教育出版社,2000

3 飞思科技产品研发中心 . visual basic 6.0数据库应用开发 .电子工业出版社,2003

4 飞思科技产品研发中心 . visual basic 6.0开发者手册 . 电子工业出版社, 2002

5 申旻 . visual basic 6.0高手突破 . 清华大学出版社,2002,302

6 Steve Teixeira,Xaviver Pacheco著,龙劲松,王瑜,谢尚书译 . visual basic 6.0开发人员指南 . 机械工业出版社 .2003

7 乔林 .参透Delphi/Kylix . 中国铁道出版社 .2003

8 李维 .Inside 深入核心 VCL 架构剖析 . 电子工业出版社 .2004

9 张立科编写组 .Windows API 函数参考手册 .人民邮电出版社 .2002

严蔚敏,吴伟民 .数据结构 .第二版 .清华大学出版社 .2001

10 王珍玲 。实用软件工程教程 高等教育出版社 2004

11 (英)Ian Sommerville 机械工业出版社 2003

12 美Cantu,U.  王辉等译visual basic 6.0 从入门到精通  电子工业出版社 2003

13 李维 面向对象开发实践之路(visual basic 6.0版)(BORLAND资深顾问著名visual basic 6.0专家李维最新力作) 电子工业出版社 2005.4

14 秦斌 等 visual basic 6.0数据库系统开发与应用  中国水利水电出版社 2006 .1

15 刘艺 visual basic 6.0面向对象编程思想 机械工业出版社 2003

16.visual basic 程序设计第二版 谭浩强 清华大学出版社 2003

17. visual basic6.0 程序设计教程. 胡同森 赵剑锋等. 浙江科学技术出版社,2002.1

18.软件工程学教程 (第二版) 周苏 王文 著 科学出版社 2003

19.Visual Basic 6.0 程序设计与开发技术 求是科技 人民邮电出版社 2004.9致  谢

我首先感谢我的指导老师吕老师,在他严格的要求下我懂得了开发软件要有一种极其认真负责的态度。无论做什么事都要大胆的去想去做,这样会有好的创意,才能更有作为。

在这里我还要感谢我们宿舍的其它5个同学。他们和我共同生活了四年,在生活和学习上给了我很大的帮助。

程序开始
输入题目类型与数量
预览试卷
打印试卷
修改试卷
程序退出
程序开始
选择题型与数量
生成试卷报表
预览试卷
修改试卷
打印试卷

免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。
扫描加我微信 ×

演示

×
登录 ×


下载 ×
论文助手网
论文助手,最开放的学术期刊平台
				暂无来源信息			 
回复
来来来,吐槽点啥吧

作者联系方式

×

向作者索要->