e
EndIf
DataEnv.rsQstPaper.Filter=""
DataEnv.rsQstPaper.Close
EndFunction
3.在自动生成试卷里最主要的一点就是如何生成一个覆盖知道点广且试题不重复的试卷。其中的关键算法在于如何生成一个不重复的随机数序列。其中变量定义如下:
PublicFunctionCreate()AsBoolean
ResumeNext
IfCreatedThen
Create=False
ExitFunction
EndIf
DataEnv.DelQuestion
DimiCountAsLong
DimQIDAsLong
DimScoreAsSingle
ForiCount=1ToFillingNum
QID=GetQID(1,Score)
AddQuestioniCount,QID,1,Score
Next
ForiCount=1ToRightWrongNum
QID=GetQID(2,Score)
AddQuestioniCount+FillingNum,QID,2,Score
Next
ForiCount=1ToSingleSelNum
QID=GetQID(3,Score)
AddQuestioniCount+FillingNum+RightWrongNum,QID,3,Score
Next
ForiCount=1ToMultiSelNum
QID=GetQID(4,Score)
AddQuestioniCount+FillingNum+RightWrongNum+SingleSelNum,QID,4,Score
Next
ForiCount=1ToEssayQuesNum
QID=GetQID(5,Score)
AddQuestioniCount+FillingNum+RightWrongNum+SingleSelNum+MultiSelNum,QID,5,Score
Next
Created=True
Create=True
EndFunction
3. 设计阶段
3.1概要设计
3.1.1系统数据库设计
根据任务书的规定,现设计如下的数据库表格:
表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
是/否
3.2详细设计
3.2.1程序流程图
1.自动生成试卷的流程图:
2.下图是手动生成试卷的流程
3.2.2窗体功能简介
下图软件的登陆界面
在这里输入用户名及密码就可以进行入软件的主界面了!!
下图是软件的主界面:
在以上的软件主界面的左边是各个功能模块的调用接口!!
如:
自动生成试卷:点击后进入自动生成试卷的功能界面。
手动生成试卷:点击后进入手动生成试卷。
题库管理:在这里可以往数据库里添加删处试题。
软件的右上角有"帮助"和"关于"按钮!!在这里可以得到软件的使用帮助,和有关此软件的一些开发信息!!
下图是自动生成试卷的界面:
上图中标为"设定组卷方式"中我们选择"自动出卷"即可进入自动出卷方式界面。
上图中标为"设定各种题型的数量"的是用来设置各种题型的在试卷中出现的量数。
下图是手动生成试卷的界面图:
上图中标为"第一部分"选择挑选已有题库中的题目到试卷中。
上图中标为"第二部分"的是用来设置关键字从而查询欲加入试卷的题目。
上图中标为"第三部分"的是用来设置题型。
上图中标为"第四部分"的是用浏览已经加入试卷的题目。
"试卷报表"是用来生成试卷的按钮。
4. 软件实现
4.1OOP简介
每一个软件开发人员都会经常听到,看到"面向对象"这个词,程序员也时常把它挂在嘴上。那么什么还是真正的"面向对象"?什么是面向对象的编程?是不是写几个类就算面向对象了?为什么要面向对象??
"面向对象是一种思维方式,一种方法论!"
"结构化编程"(SP)是一种编程方法,是从计算机的视角来抽象问题的方法。而"面向对象编程"(OOP)也是一种编程方法,只不过它是从更接近真实世界的视角来分析问题,使用更接近人们理解真实世界的方法来抽象问题,这种方法称为"面向对象"(OO)!!
"面向对象"这个词代表的是一种认识世界,分析问题,解决问题的方法,因此它是一种方法论。而面向对象编程则是将这种方法应用于程序设计的方法。当你会使用面向对象的方法去思考,用面向对象的模式支分析和解决问题的时候,才是真正的"面向对象"了!!
"面向对象"最主要的特性有三个:
*继承性。VisualBasic提供大量的可被二次开发的类。每个类都可被继承。
*封装性。VisualBasic的封装性主要由类的私有域和保护域来实现的。
*多态性。VisualBasic的多态性主要是通过虚拟方法和动态方法来实现的。
4.2开发的关键技术
1.VBA编程技术
VisualBasicforApplications(简称VBA)是新一代标准宏语言。在没有VBA以前,一些应用软件如Excel,Word,Access等都采用自己的宏语言供用户开发使用,但每一种宏语言都是相互独立的并且它们之间是互不兼容的。这导致了应用软件之间不能在程序上互联。找到一种可被所有的Microsoft可编程应用软件所共享的通用宏语言是Microsoft公司长期追求的目标。VBA作为新一代的标准宏语言具有了跨越多种OFFICE应用软件并且控制应用软件对象的能力。
PublicSubReportToFile(ByValFileNameAsString)
ResumeNext
DimtxtFileAsString
DimiCountAsLong
IfDir(FileName,vbNormal)<>""Then
KillFileName
EndIf
OpenFileNameForOutputAs#1
Print#1,"试卷样稿"
Print#1,"------------------"
ForiCount=1ToLastQSerial
txtFile=GetQuestion(iCount)
IftxtFile<>""Then
Print#1,txtFile
EndIf
txtFile=GetAnswer(iCount)
IftxtFile<>""Then
Print#1,txtFile
EndIf
txtFile=GetChoice(iCount)
IftxtFile<>""Then
Dims()AsString
s=Split(txtFile,",")
DimiAsByte
Fori=0ToUBound(s)
txtFile=Space(3)&Chr(Asc("A")+i)&"."&s(i)
Print#1,txtFile
Next
EndIf
Next
Close#1
EndSub
5. 软件测试及其维护
5.1系统测试平台简介
硬件平台
CPU
IntelP41.5G
主板
Intel850芯片组的GA-8TX-C
内存
2×128M的三星Rambus内存
硬盘
SeagateBarracuda7200.780G
显卡
Unika小妖G9800
显示器
美格770PF,17寸纯平显示器
软件环境
上一篇:
VB计算机维修管理系统源代码(论文和程序)
下一篇:
关于森林资源保护的思考