VB知识自测题系统.docx
- 文档编号:23167676
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:23
- 大小:652.10KB
VB知识自测题系统.docx
《VB知识自测题系统.docx》由会员分享,可在线阅读,更多相关《VB知识自测题系统.docx(23页珍藏版)》请在冰豆网上搜索。
VB知识自测题系统
VB知识自测题系统
1.课程设计目的
运用所学知识创建一个VB知识自测题系统,该系统是一个使用户对系统随机给出的题目作出答案,并查看成绩,从而充分了解自己学习情况的系统。
利用VB做前台界面的设计,尽量用到所学过的所有控件进行布局、设置,把它们结合起来使用,而用小型的SQL2005数据库做后台数据管理来做一个VB知识自测题系统,虽然这个系统程序的设计比较简单,但通过这样一个小型的综合实例,就更加让我们了解VB语言程序设计的功能及特点。
这种系统能够方便、高效的用于大学生学习过VisualBasic6.0这门课程后,进行自我检测的需求。
我认为一个完善的VB知识自测题系统的功能主要包括以下几项:
判断题:
通过系统随机给出判断题,根据题目判断对错,然后单击下一题,最后查看成绩。
填空题:
通过系统随机给出填空题,根据题目在文字框中输入答案,然后单击下一题,最后查看成绩。
选择题:
通过系统随机给出选择题,根据题目从四个选项中选择出正确答案,然后单击下一题,最后查看成绩。
2.概要设计
2.1设计思想
①构想好本系统的功能,为迎合大众要求,本系统的主要功能主要有出题模块、记录用户答案模块、显示用户答案模块、判断答案正误模块、填空题模块、选择题模块。
②部署好各窗体及其控件,在主查询页面使用菜单控件使系统变得清晰易懂,方便用户使用。
③通过几个窗体间的转换进行查询,并连接数据库,进行程序的编写,完善不足的地方。
2.2VisualBasic的简介
近十几年网络技术在高速发展,并且也逐渐融入到了人们的生活当中,使我们的生活发生了很大的改变。
如果说三十年前我们是通过报纸和电视了解世界,那么我可以说当今世界是靠互联网这个大平台,让世界各国人民之间有了一个更深刻的了解。
首先,从VisualBasic这个名字开始,来认识这个软件。
所谓“Visual”指的是开发图形用户界面(GUI)的方法。
它不需编写大量的代码去描述界面元素的外观和位置,而只要把预先建立的对象添加到屏幕上的某一位置即可。
如果已使用过诸如Paint之类的绘图程序,则实际上已掌握了创建用户界面的必要技巧。
“Basic”指的是BASIC(BeginnersAll-PurposeSymbolistInstructionCode)语言,一种在计算技术发展历史上应用得最为广泛的编程语言。
VisualBasic在原有BASIC语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和WindowsGUI有直接关系。
专业人员可以用VisualBasic实现其它任何Windows编程语言的功能。
VisualBasic不仅是VisualBasic编程语言。
VisualBasic编程系统和VBA都使用这一语言。
VisualBasicScriptingEdition(VBScript)是广泛使用的脚本语言,它是VisualBasic语言的子集。
3详细设计
3.1数据库设计
本部分详细介绍系统主要包括哪些功能,各部分功能的作用。
依照本测试系统的功能要求需要首先建立一个题库,其中需要在数据库中输入填空题、选择题、判断题等题目,从而组成题库,使随机给出的题目都来自于这个数据库。
在安装完MSSQLServer系列的数据库服务器后,创建数据库,创建完成后,新建一个数据库,数据库名为“题库”,然后按照数据字典建立各个表。
下面是建立的数据库表:
表1判断题数据库
Type
Question
Option1
Option2
Option3
Option4
Answer
1
文本框中只能显示单行文字。
10
1
十进制数12转换成十六进制数为D。
10
1
十进制数13转换成十六进制数为D。
01
1
文本框中所显示内容是它的Text属性的值。
01
1
Byte数据类型占1字节内存。
01
1
Integer数据类型占2字节内存。
01
1
Long数据类型占4字节内存。
01
1
在VisualBasic中,一条语句只能写在同一行中。
10
1
在VisualBasic中,同一行上可写多条语句。
01
表2填空题数据库
Type
Question
Option1
Option2
Option3
Option4
Answer
2
文本框中所显示内容是它的_____属性的值。
Text
2
Byte数据类型占___字节内存。
1
2
Integer数据类型占___字节内存。
2
2
求表达式的值:
2=2=2。
False
2
求表达式的值:
3Or9And-1。
11
表3选择题数据库
Type
Question
Option1
Option2
Option3
Option4
Answer
3
byte数据类型占___字节内存。
1
2
4
8
1000
3
下列函数返回值不是字符串的是___。
Trim
Left
Rnd
Hex
0010
3
下列表达式错误的是___。
Dima%
Dima%asinteger
Static3aasInteger
a=b=3
0110
3
下面___对象有Caption属性。
Form
TextBox
CommandButton
Label
1011
3
在窗体模块的声明段中声明变量时,不可能使用下列___关键字。
Dim
Private
Public
Static
1100
3
下面的___可以在窗体模块的声明段中进行声明:
全局变量
全局常量
全局数组
全局变长字符串
1001
3.2主窗体设计
3.2.1创建工程
①打开VisualBasic6.0开发环境,在菜单栏中依次选择“文件”/“创建工程”菜单,弹出“新建工程”对话框。
②在列表中选择“标准EXE”图标以指定新建应用程序的类型为标准的Windows应用程序,然后单击确定按钮单击“确定”按钮即可。
③在工程资源管理器中选择“工程1”图标,然后在属性窗口中将工程名称设置为“自测题系统”。
这样自测题系统工程就创建完成了。
3.2.2建立数据连接
ADO就是是一组优化的访问数据库的对象集,ADO主要包Connection,Recordset和Command三个对象,主要功能如下:
(1)Connection对象:
打开或连接数据库或数据文件;
(2)Recordset对象:
存取数据库的内容;
(3)Command对象:
对数据库下达行动查询指令(SELECT,INSERT,UPDATE,DELETE),或调用存储过程。
本系统将采取ADO作为数据连接的手段,所以需要在工程中添加对ADO的引用,具体方法如下:
①在菜单中依次选择“工程”/“引用”菜单项,弹出“引用”对话框。
②在对话框的“可用的引用”列表中勾选“MicrosoftActiveXDataObjects2.0Library”项,然后单击“确定”按钮即可。
在使用ADO对象之前,首先要向当前工程中添加ADO的对象库。
方法是:
首先点击“工程”,再点击“部件”选项,在弹出的“部件”对话框中选择“控件”选项,会显示如图9所示的ActiveX控件列表界面。
在列表框中选中要添加的控件“MicrosoftADODataControl6.0”,单击控件名称左侧的复选框,然后单击“确定”按钮即可。
3.2.3创建系统主窗体
在VisualBasic中控件是应用程序界面中最基本的组成部分,我们可以使用这些控件快速地建立交互界面。
常用的内部控件有:
命令按钮、文本框、标签、单选旋钮、复选框、框架、下拉列表框、组合框等。
在项目资源管理器中为项目添加一个Form窗体作为系统主窗体,将其“Name”和“Caption”属性改为“自测题系统”,将其“StartUpPosition”和“WindowState”属性选择为“0-Manual”,其主要控件的属性如表4所示。
表4主要控件属性
属性
属性值
自测题系统
Name
自测题系统
Caption
自测题系统
StartUpPosition
0-Manual
WindowState
0-Normal
3.2.4出题模块
通过系统提示选择上一题或下一题进行答题,并且为了使系统高速有效的进行操作,需要将已选择过的题目进行标记,以免下次重复出现。
以此来提高系统性能。
3.2.5记录用户答案模块
本模块要求系统将用户所作出的答案进行储存,然后系统自动将用户的答案与系统进行比较,从而判断出答案。
3.2.6显示用户答案模块
本模块用来显示用户所作出的答案,如果用户未对题目作出回答,或者要另选题目或题型,这时系统会弹出“此题未作”的提示框。
3.2.7判断答案正误模块
本模块中系统将用户所作出的答案与系统正确答案进行比较,然后判断是否正确。
3.2.8判断题模块
当用户选择判断题模块后,系统会从题库中调出题目供用户进行回答。
然后系统会将用户的答案保存并进行判断。
本模块需要的控件如下:
(1)5个CommandButton控件,命令按钮控件被用来启动、中断或结束一个进程。
设置显示在命令按钮上的标题,也就是命令按钮上方出现的文本。
单击它时将调用已写入Click事件过程中的命令。
本课设的5个CommandButton控件供用户选择题目。
其Caption属性分别设置为“第一题”、“前一题”、“后一题”、“最后一题”、“查看成绩”。
(2)2个OptionButton控件,OptionButton控件有Caption属性、Value属性、Alignmeng属性、Aalue属性、Enable属性等。
OptionButton控件显示一个可以打开或者关闭的选项。
在选项组中用OptionButton显示选项,用户只能选择其中的一项供用户作出选择。
本课设的2个OptionButton控件的Caption属性分别设置为“对(√)”、“错(×)”。
(3)3个Label控件。
控件有Caption属性、Value属性、Alignmeng属性、Aalue属性、Enable属性和Style属性等。
Label控件的功能是只能显示文本,用户不能进行输入文本内容。
本部分将3个Label控件的Caption属性分别为“题号”、“请选择”,另一个用于显示随机显示的题目。
3.2.9填空题模块
当用户选择填空模块后,系统会从题库中调出题目供用户进行回答。
然后系统会将用户的答案保存并进行判断。
本模块需要的控件如下
(1)5个CommandButton控件,供用户选择题目。
其Caption属性分别设置为“第一题”、“前一题”、“后一题”、“最后一题”、“查看成绩”。
(2)1个TextBox控件,供用户填入答案。
其Caption属性设置为空。
(3)3个Label控件。
Caption属性分别为“题号”、“请填写”,另一个用于显示随机显示的题目。
3.2.10选择题模块
当用户选择选择题模块后,系统会从题库中调出题目供用户进行回答。
然后系统会将用户的答案保存并进行判断。
本模块需要的控件如下:
(1)5个CommandButton控件,供用户选择题目。
其Caption属性分别设置为“第一题”、“前一题”、“后一题”、“最后一题”、“查看成绩”。
(2)4个CheckBox控件,供用户做出选择。
其Caption属性分别为“A”、“B”、“C”、“D”。
(3)3个Label控件。
Caption属性分别为“题号”、“请选择”,另一个用于显示随机显示的题目。
4运行效果及存在问题
4.1运行效果
4.1.1主界面
在VB知识自测题系统的主界面中,通过主界面选择要执行的功能,包括判断题、填空题、选择题三大部分,每个部分有几道小题。
运行系统后直接默认首先进入判断题,系统主窗体如图1所示。
图1系统主窗体
4.1.2判断题模块
在界面的右侧,可以看到有判断题、填空题、选择题这样三个标签。
首先单击右侧标签,选择“判断题”进入填空题答题部分,在“请选择”下边的选择框中点击题目中的对错按钮,若用户想继续答题,然后可以单击后一题,界面上会出现一道新的题目,答题者就可以继续答题了。
选择对错后单击“后一题”按钮,然后再点击“查看成绩”按钮,此时可以通过成绩提示框,看到已做了几道题,做对了几道题,判断题做题显示结果如图2所示。
图2判断题模块界面
4.1.3填空题模块
在界面的右侧,可以看到有判断题、填空题、选择题这样三个标签。
首先单击右侧标签,选择“填空题”进入填空题答题部分,在“请填写”下边的文字框中输入题目中所缺的部分,答题者认为填写完整后,然后可以单击下一题,界面上会出现一道新的题目,答题者可以继续答题了。
若想查看成绩,再点击“查看成绩”按钮,此时可以通过成绩提示框,看到已做了几道题,做对了几道题,填空题做题显示结果将会出现在界面上,填空题界面如图3所示。
图3填空题模块界面
填写完一题的答案后,单击“后一题”,直至“最后一题”按钮无法被继续点击,便可单击“查看成绩”,查看答题情况。
4.1.4选择题模块
在界面的右侧的判断题、填空题、选择题这样三个标签中单击右侧标签,选择“选择题”进入填空题答题部分,选择“选择题”进入选择题答题部分,在“请选择”下边的方框中在正确的答案后面打对勾,填写完整后,然后可以单击后一题,界面上会出现一道新的题目,答题者可以继续答题了。
若想查看成绩,再点击“查看成绩”按钮,此时可以通过成绩提示框,看到已做了几道题,做对了几道题,选择题做题显示结果将会出现在界面上。
答题者可以单击后一题,直至答题结束,单击查看成绩,可以显示出答题情况,选择题界面如图4所示。
图4选择题模块界面
选择题模块支持对答案的多项选择,用户可选择认为正确的多个答案,增加了用户在答题过程中的难度,选择题选择多个答案的界面如图5所示。
图5选择题选择多个答案的界面
4.2存在问题
通过这个VB知识自测题系统的课程设计,现在所呈现的效果已基本达到预期效果,该VB基础知识自测系统提供了判断题、填空题和选择题3大功能模块,但是仍还存在许多不足之处,例如没有考虑到添加用户权限问题,使系统只面对被授权的用户。
我认为,完善的VB知识自测题系统不但要做到随机给出题目,还应该做到能对系统的题目进行维护,例如还应该有增加、修改、删除等的功能,这些操作只面向该系统的管理员,用户只能进行答题功能。
另外,在答题的最后还可以有这样一部分,就是用户可以向管理员提出意见和建议,然后提交上去,管理员可以参考使用这些意见和建议,使系统力争更加完整。
这些问题在以后的学习中我会更多注意。
5心得体会
VB课设是一门实践性很强的课设。
回想起做课设的过程,可以说既有欢乐又有烦恼。
本学期刚接触这门课程的时候其实是很迷茫的,因为我并不了解它究竟是怎样的。
但经过这一学期的学习以及老师的讲解,大体掌握了关于VB的基础知识。
而自从学习到各控件、数组、数据库等知识点时涉及到上机这一过程,当看到自己编写的程序在机器上一次次运行出结果时,渐渐地我对它产生了浓厚的兴趣。
恰巧此次课设给我提供了一次更深层次了解VB的机会。
在选择课设题目的时候,我是本着贴近生活的宗旨,所以经过深思熟虑,最后我的课设题目定为VB基础知识自测题系统。
在这次课程设计的过程中,不仅复习了课本上的知识,还通过查看资料、问同学学到了课本上没有的知识。
从而启发了我,想要写好代码,在学好课本知识的同时还要多读与专业有关的书籍,更加不可缺少的是多动脑子,尽量把所学的知识能够综合起来应用,力争写出完美的代码。
除此之外,我还得到了一些有用的经验:
写代码是必须要细心,再修改是也要有足够的耐心。
在做其他事情也一样。
经过这一周的课程设计,是我的编程能力和编程速度大大提升,同时我对VB等编程语言有了一个崭新的认识,它是一种可视化的、面向对象和采用事件驱动方式的结构化该机程序设计语言,这为我下一步学习编程语言打好基础。
这一周的学习使我对VB产生了很大的编程兴趣,虽然我们这次学习只是一些简单易懂的东西,不懂的地方也不少,但它仍然让我受益匪浅。
由于很少有机会编写大型程序其中一定会有许多不足,例如:
程序不够完善,设计时并没有考虑到重名的问题等。
我想这也是我今后该改进的地方。
在编写程序过程中自然会遇到许多麻烦,有时一个小小的变量都会导致程序运行不出结果。
在编写过程中最困难的就是各个模块的制作和区分,经过了周而复始的编译和修改最后终于完成了。
通过课程设计,把所学的软件开发工具及相关知识加以融会贯通,使用可视化开发工具的软件编程能力有一个较大的提高,使学生真正掌握面向对象程序设计的方法及面向对象的开发环境,为今后从事实际工作打下坚实的基础。
6.参考文献
[1]刘天恵.VisualBasic课程设计教程[M].北京:
清华大学出版社,2006.2:
156-185
[2]求是科技.VisualBasic6.0信息管理系统开发[M].北京:
人民邮电出版社,2006.6:
45-86
[3]刘文涛.数据库系统开发实例导航[M].北京:
清华大学出版社,2007.6:
80-100
[4]段兴,吴德胜.VisualBasic6.0数据库实用程序设计100例[M].北京:
邮电出版社,2009.11:
134-166
[5]田金兰等.VisualBasic6使用指南.北京:
电子工业出版社.1999.6
[6]Jeffrey.VisualBasic6数据库访问技术.北京:
机械工业出版社.1999.10
[7]王知强.管理信息系统入门与提高.北京:
清华大学出版社,2005.7
[8]王珊,萨师宣.数据库系统概论.北京:
高等教育出版社.2000.2
[9]KenNorth.面向对象的数据库程序设计.北京:
电子工业出版社,1996.11
[10]王建明编.面向对象程序设计——VisualBasic6.0.北京:
机械工业出版社,2002.1
7.附录
总代码如下:
OptionExplicit
DimcnnAsNewADODB.Connection
Dimrst(0To2)AsNewADODB.Recordset
DimintTypeAsInteger'当前题型(0判断题,1填空题,2选择题)
DimnoAsInteger'当前题号
Dimanswer()AsString'保存正确答案
Dimchoice()AsString'保存用户答案
Dimdone()AsBoolean'已做题的标志
PrivateSubcmdFirst_Click(IndexAsInteger)
rst(intType).MoveFirst
RecordChoice
no=1
ShowButtons
ShowQuestion
EndSub
PrivateSubcmdLast_Click(IndexAsInteger)
rst(intType).MoveLast
RecordChoice
no=rst(intType).RecordCount
ShowButtons
ShowQuestion
EndSub
PrivateSubcmdNext_Click(IndexAsInteger)
rst(intType).MoveNext
RecordChoice
no=no+1
ShowButtons
ShowQuestion
EndSub
PrivateSubcmdPrev_Click(IndexAsInteger)
rst(intType).MovePrevious
RecordChoice
no=no-1
ShowButtons
ShowQuestion
EndSub
PrivateSubcmdView_Click(IndexAsInteger)'查看成绩
DimiAsInteger,mAsInteger,nAsInteger
CallRecordChoice
Fori=1ToUBound(choice)
Ifchoice(i)=answer(i)Thenm=m+1
Ifdone(i)Thenn=n+1
Next
Form2.Label1="已做了"&n&"题;"
Form2.Label2="做对了"&m&"题。
"
Form2.Show1,Me
EndSub
PrivateSubForm_Load()
DimstrcnnAsString
DimiAsInteger
Image2.Picture=Image1.Picture
Image3.Picture=Image1.Picture
strcnn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\tiku.mdb;PersistSecurityInfo=False"
cnn.Openstrcnn'打开连接对象
Fori=0To2
rst(i).Open"Select*from表1whereType="&i+1,cnn,adOpenStatic'打开三个记录集对象,对应三个题型
Next
SSTab1.Tab=0
start
EndSub
PrivateSubForm_Unload(CancelAsInteger)
'关闭记录集和连接对象
rst(0).Close
rst
(2).Close
cnn.Close
EndSub
PrivateSubShowQuestion()
DimiAsInteger
lblNo(intType)="第"&no&"题(共"&rst(intType).RecordCount&"题)"'显示题号和总题数
Ifdone(no)ThenlblNo(intType).ForeColor=vbRedElselblNo(intType).ForeColor=vbBlack
done(no)=True'标示为已做
lblQuestion(intType)=rst(intType).Fields("Question")'显示题面
'刷新显示选择项
SelectCaseintType
Case0'判断题
optAnswer1.Value=False
optAnswer2.Value=False
Case1'填空题
txtAnswer.Text=""
Ca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 知识 自测 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)