VB课程设计论文自测考试管理系统.doc
《VB课程设计论文自测考试管理系统.doc》由会员分享,可在线阅读,更多相关《VB课程设计论文自测考试管理系统.doc(22页珍藏版)》请在冰点文库上搜索。
VB课程设计
自测考试管理系统
——VB课程设计
目录
第一章绪论 1
1.1课题背景 1
1.2开发工具 1
1.2.1VisualBasic6.0简介 1
第二章可行性分析 2
2.1技术可行性分析 2
2.1.1技术支持 2
2.1.2软件资源 2
第三章需求分析 3
3.1系统需求分析 3
3.1.1功能需求 3
3.1.2性能需求 3
第四章系统设计 4
4.1前台模块设计:
4
4.1.1功能描述:
4
4.1.2系统功能模块设计:
4
4.1.2系统功能流程设计:
5
第五章详细设计 7
5.1系统的一些主要编码和界面:
7
5.1.1启动窗口 7
5.1.2系统登录窗口 8
5.1.3系部信息管理 8
5.1.4班级信息管理 12
5.1.4学生信息管理 12
5.1.5阅卷教师信息管理 13
5.1.6判断题、单项选择题、填空、程序阅读题库管 13
5.1.7手工选题窗口 15
5.1.8试卷评阅 16
5.1.9成绩查询 16
5.1.10考试客户端登录 17
第六章结束语 18
参考文献 19
第一章绪论
1.1课题背景
今世界是21世纪,在工农业不断发展的同时,Internet也迅速发展起来,而且已经飞速改变了人们的生活和工作。
有一些个人和单位现在根本是离不开Internet。
如大专院校以及各种培训机构,为了提高教学质量,开发了自测考试管理系统,学生可以自己检测自己,及时发现自己的不足,提高成绩!
同时教师也可以运用检测学生提高工作效率.同时建立学生考试管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自主化。
1.2开发工具
本系统前台使用VisualBasic6.0开发,后台使用强大的数据库软件SQLServer2000。
1.2.1VisualBasic6.0简介
VisualBasic是Microsoft公司推出的一种Windows应用程序的开发工具。
由于它具有使用方便,简单易学、功能丰富等特点,迅速成为最流行的Windows应用程序的开发工具之一,数据访问特性允许对包括MicrosoftSQLServer和其他企业数据库在内的大部分数据库格式建立数据库和前端应用程序,以及可调整的服务器端部件。
作为数据库系统的开发,VisualBasic是一个非常理想的选择,该开发工具具有很多长处:
VisualBasic是一种可视化的、面向对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的各种应用程序。
它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不
必具有C/C++编程基础。
在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
第二章可行性分析
2.1技术可行性分析
技术可行性分析主要包括四个方面:
目前有关的技术能否支持所开发的新系统;新系统开发人员的数量和水平,即人力资源;硬件和软件资源。
2.1.1技术支持
首先根据新系统的目标,考虑目前有关的技术能否支持所开发的新系统。
这里讨论的技术必须是已经普遍使用的,而不是待研究的或正在研究的,本系统用VisualBasic6.0和SQLServer进行开发,VisualBasic是Microsoft公司推出的一种Windows应用程序的开发工具,是目前最流行的Windows应用程序的开发工具之一.
2.1.2软件资源
软件资源的可行性分析主要考虑以下几点是否满足用户的要求:
①操作系统的选择;
Windows2000/2003/xp/vista
②开发工具的选择;
VisualBasic6.0
③数据库管理系统的选择;
SQLServer2000
④高级编程语言的选择;
VisualBasic
⑤汉字处理系统的选择;
Microsoftoffice2003
第三章需求分析
3.1系统需求分析
系统需求分析是开发管理信息系统的关键性阶段,是一个从不断认识和逐步细化的过程,是下一阶段的工作基础,是为下一阶段进行物理方案设计、解决“怎么做”提供依据,基关键性主要体现在“理解需求”和“表达需求”两方面,本系统的需求分析如下:
用户登录窗体
学生用户
教师用户
参加考试
查询成绩、答案及试卷解析
管理界面
试卷管理
用户管理
3.1.1功能需求
自测考试管理系统主要涉及的信息数据主要包括系统管理员、系部信息、班级信息、班级信息、学生信息、阅读教师信息和成绩信息等基本信息,以及考试试题和各种题库等数据,涉及的操作主要包括各种信息数据的管理,为考试定制试卷、题库管理、学生考试、试卷评阅和成绩查询等管理操作。
3.1.2性能需求
考虑到目前该系统正处于课程设计阶段,所以对该系统没有什么严格要求。
但该系统今后可能投入到商业化运营中,故系统的总体性能应该有一定的严格要求,具体如下:
联机系统对用户请求的响应时间不应超过10S,以免产生等待感;系统需要的存储容量:
硬盘不应该少于40G,内存不少于128M;作为服务器的计算机,CPU最好在PIII733以上。
而在安全性方面采用WindowsNT安全认证机制。
第四章系统设计
4.1前台模块设计:
4.1.1功能描述:
经考察与分析,典型的自测考试管理系统主要应具有以下功能:
1.基本信息管理:
包括对系统管理员登录信息、系部信息、班级信息、学生信息、阅卷教师信息的录入、修改、删除等功能。
2.考试试题管理:
包括对历届试题的删除、定制考试试卷、选择题考试试题等功能。
3.题库管理:
包括对判断题、选择题、程序阅读题、程序填空题等题库的管理功能。
4.考试管理:
学生考试、试卷评阅、考试成绩查询功能。
4.1.2系统功能模块设计:
对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到系统功能模块图。
系统功能模块图如下:
图4.1自测考试管理系功能模块图
4.1.2系统功能流程设计:
根据系统功能模块结构图和自测考试管理流程,绘制出4.2自测考试管理系数据流图
图4.2自测考试管理系数据流图
第五章详细设计
5.1系统的一些主要编码和界面:
5.1.1启动窗口
图5.1系统登录
启动屏幕在启动屏幕时测试是否能够正确连接数据库服务器,如果不能正确连接数据库服务器,显示相应的提示信息,不再继续启动系统。
主要代码如下:
PrivateSubForm_GotFocus()
OnErrorGoToDealError
'测试是否可联接到SQLServer服务器
Me.Enabled=False'在测试完成之前,禁止窗体响应用户操作
'创建与数据库的联接
DimobjCnAsNewConnection'定义并实例化联接对象
WithobjCn'建立数据库联接
.Provider="SQLOLEDB"
.ConnectionString="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=exam1;DataSource=MICROSOF-88DEE5"
.Open'打开数据库联接
.Close'关闭数据库联接
EndWith
SetobjCn=Nothing'释放数据库联接
Label1(4)="已联接到数据库服务器"'提示联接到数据库服务器
Timer1.Interval=3000'启动计数器,定时为三秒
Me.Enabled=True'允许窗体响应用户操作
ExitSub
DealError:
'在不能正确联接数据库服务起伏时显示提示信息
MsgBox"不能正确联接数据库服务器,请与系统管理员联系!
",vbCritical
UnloadMe'关闭窗体
EndSub
5.1.2系统登录窗口
图5.2用户登录
主要代码(略)
5.1.3系部信息管理
图5.3系部管理
主要代码如下:
PrivateSubcmdMove_Click(IndexAsInteger)
WithobjDepart
SelectCaseIndex'切换当前记录
Case0'使第一个记录成为当前记录
If.RecordCount>0AndNot.BOFThen.MoveFirst
Case1'使上一个记录成为当前记录
If.RecordCount>0AndNot.BOFThen
.MovePrevious
If.BOFThen.MoveFirst
EndIf
Case2'使下一个记录成为当前记录
If.RecordCount>0AndNot.EOFThen
.MoveNext
If.EOFThen.MoveLast
EndIf
Case3'使最后一个记录成为当前记录
If.RecordCount>0AndNot.EOFThen.MoveLast
EndSelect
If.RecordCount<1Then
txtNews="记录:
无"'显示无记录提示
txtNum=""
txtName=""
Else
'显示当前记录数据
txtNum=.Fields("编号")
txtName=.Fields("名称")
'显示当前记录编号和记录总数
txtNews="记录:
"&.AbsolutePosition&"/"&.RecordCount
EndIf
EndWith
IfisAddingThenisAdding=False
EndSub
PrivateSubcmdAdd_Click()
txtNews="添加新记录"
txtNum=""
txtName=""
isAdding=True
txtNum.SetFocus
EndSub
PrivateSubcmdDelete_Click()
'根据是否处于添加记录状态执行不同的操作
IfisAddingThen
'退出添加记录状态,显示当前记录
isAdding=False
IfobjDepart.BOFAndobjDepart.EOFThen
txtNews="记录:
无"'显示无记录提示
Else
'显示当前记录数据
txtNum=objDepart.Fields("编号")
txtName=objDepart.Fields("名称")
'显示当前记录编号和记录总数
txtNews="记录:
"&objDepart.AbsolutePosition&"/"&objDepart.RecordCount
EndIf
Else
IfobjDepart.RecordCount>0Then
'检查在教师信息和学生信息表中是否使用了当前记录的编号
'如果被使用,则不执行删除操作
DimobjTempAsNewRecordset
WithobjTemp
Set.ActiveConnection=objCn'设置数据库联接
.CursorLocation=adUseClient'指定使用客户端器游标
.CursorType=adOpenStatic'指定使用静态游标
'获取使用了该编号的第一条记录
.Open"SELECTTOP1*FROM学生信息WHERE系部='"&Trim(txtNum)&"'"
If.RecordCount>0Then
MsgBox"编号被《学生信息》表使用,不能删除当前记录!
",,"系部信息管理"
ExitSub
EndIf
.Close
EndWith
SetobjTemp=Nothing
'可以删除,请求确认执行删除操作
IfMsgBox("是否删除当前记录?
",vbYesNo+vbQuestion,"系部信息管理")=vbYesThen
'执行删除当前记录操作
objDepart.Delete
'显示下一记录数据
cmdMove
(2).Value=True
Else
'显示当前记录数据
txtNum=objDepart.Fields("编号")
txtName=objDepart.Fields("名称")
'显示当前记录编号和记录总数
txtNews="记录:
"&objDepart.AbsolutePosition&"/"_
&objDepart.RecordCount
EndIf
EndIf
EndIf
EndSub
PrivateSubcmdSave_Click()
IfLen(Trim(txtNum))<>8Then
MsgBox"系部编号必须为8位字符串!
",vbCritical,"系部信息管理"
txtNum.SetFocus
txtNum.SelStart=0
txtNum.SelLength=Len(txtNum)
ExitSub
EndIf
IfTrim(txtName)=""Then
MsgBox"系部名称不能为空!
",vbCritical,"系部信息管理"
txtName.SetFocus
txtName=""
ExitSub
EndIf
'在进一步保存添加的新记录或修改的当前记录之前,检查编号是否重复
DimobjCopyAsNewRecordset
SetobjCopy=objDepart.Clone
IfobjCopy.RecordCount>0Then
objCopy.MoveFirst
objCopy.Find"编号='"&Trim(txtNum)&"'"
If(isAddingAndNotobjCopy.EOF)Or(NotisAddingAndNotobjCopy.EOFAnd_
objCopy.AbsolutePosition<>objDepart.AbsolutePosition)Then
MsgBox"编号:
"&Trim(txtNum)&"已被使用,请使用其他编号!
",_
vbCritical,"系部信息管理"
txtNum.SetFocus
txtNum.SelStart=0
txtNum.SelLength=Len(txtNum)
ExitSub'编号重复,直接退出
EndIf
EndIf
'编号不重复,执行下一步保存操作
WithobjDepart
IfisAddingThen
'添加新记录
.AddNew
Else
'保存被修改的当前记录
IfobjDepart.Fields("编号")<>Trim(txtNum)Then
IfMsgBox("修改编号将影响《教师信息》和《学生信息》表中的相关记录,是否继续?
",_
vbYesNo+vbQuestion,"系部信息管理")=vbNoThen
'取消保存操作,还原当前记录
txtNum=.Fields("编号")
txtName=.Fields("名称")
ExitSub'退出过程
EndIf
EndIf
EndIf
'修改记录
.Fields("编号")=Trim(txtNum)
.Fields("名称")=Trim(txtName)
'执行更新操作
objDepart.Update
MsgBox"数据保存成功!
",vbInformation,"系部信息管理"
isAdding=False
'显示当前记录编号和记录总数
txtNews="记录:
"&objDepart.AbsolutePosition&"/"&objDepart.RecordCount
EndWith
EndSub
5.1.4班级信息管理
图5.3班级信息管理
主要代码:
代码类似系部信息管理(略)
5.1.4学生信息管理
图5.4学生信息管理
主要代码:
代码类似系部信息管理(略)
5.1.5阅卷教师信息管理
图5.5阅卷信息管理
主要代码:
代码类似系部信息管理(略)
5.1.6判断题、单项选择题、填空、程序阅读题库管
图5.6单项选择题
图5.7程序阅读题
图5.8判断题
图5.9填空题
主要代码:
代码类似系部信息管理(略)
5.1.7手工选题窗口
图5.10手工选题
主要代码(略)
5.1.8试卷评阅
图5.11试卷评阅
主要代码(略)
5.1.9成绩查询
图5.12成绩查询
5.1.10考试客户端登录
图5.13考试系统客户端登录
(2)数据库设计
学生信息表数据结构
字段名
数据类型
备注
学号
数字
具备单一性
姓名
文本
与学号对应
照片
OLE对象
与学号对应
密码
文本
学生教师均可修改
总分
数字
每次答题后更新
数据来源:
通过教师用户登录进入用户管理模块进行添加、修改、删除。
教师教师信息表数据结构
字段名
数据类型
备注
登陆账号
文本
可添加、修改、删除
密码
文本
教师用户可修改
数据来源:
通过教师用户登录进入用户管理模块进行添加、修改、删除。
题库表数据结构
字段名
数据类型
备注
套卷
文本
标明试题所属卷
试题类型
文本
表明试题类型
题号
文本
每套试题号分别编写
题干
文本
A选项
文本
只录入选择题选项,填空题此字段为空
B选项
文本
C选项
文本
D选项
文本
正确答案
文本
选择题答案为选项,填空题为内容
详解
文本
答案解析
学生答案
文本
每次答题保存后更新