工程制图课程网上自学系统的系统设计.docx
《工程制图课程网上自学系统的系统设计.docx》由会员分享,可在线阅读,更多相关《工程制图课程网上自学系统的系统设计.docx(27页珍藏版)》请在冰豆网上搜索。
![工程制图课程网上自学系统的系统设计.docx](https://file1.bdocx.com/fileroot1/2023-6/4/5b94a4ab-e903-499a-81e4-cb3ce005dcf4/5b94a4ab-e903-499a-81e4-cb3ce005dcf41.gif)
工程制图课程网上自学系统的系统设计
1引言
工程制图是一门量大面广的技术基础课,对培养学生的形象思维能力和空间想象力是其它课程不能替代的,它不仅是工科学生的必修课,在不少院校,还相继对文理科学生开设了这门课。
考试是教学过程中的一个重要环节,也是检验教学效果的一个主要手段,随着计算机技术的发展,在计算机上进行各类考试越来越普遍,这有利于考试的科学化、规范化。
为了提高制图课教学质量、减轻制图教师劳动强度,本文对工程制图课程网上自学系统中考试模块的设计和实现进行了探讨。
2开发工具和数据库软件简介
2.1VisualBasic简介
VisualBasic是由微软公司推出的一套完整的Windows系统软件开发工具,可用于开发Windows环境下的各类应用程序,是一种可视化、真正面向对象、采用事件驱动方式的结构化高级程序设计语言和工具的完美集成。
它编程简单、方便、功能强大,具有与其它语言及环境的良好接口,不需要编程开发人员具备C/C++或者TurboPascal语言知识和特别高深的专业知识,只要懂得Windows的界面及其基本操作,就可以迅速上手。
而VB在程序界面设计、多媒体开发方面更是独具优势,因此特别适合初学者和业余人员使用。
VisualBasic具有以下几个特点:
1、可视化编程方法,以及向导功能,使得开发人员不需要编写大量的代码就可以开发标准的Windows程序。
2、真正的面向对象编程,加快了系统开发的速度,同时也使开发人员在维护系统时只需修改很少的代码。
3、数据访问特性,允许对包括MicrosoftSQLServer和其它企业数据库在内的大部分数据库格式建立数据库和前端应用程序。
2.2Access2003简介
Access2003是微软公司推出的办公自动化软件Office2003中的一个重要组件,广泛应用于中小企业的数据管理,其功能强大、灵活易用的特点深受用户好评。
在VB中通过数据访问控件或数据访问对像(ADO)可以访问Access数据库,一般来说,如果要开发小型数据库系统,用Access数据库比较合适,要开发大、中型的数据库系统用ODBC数据库更为适宜。
另外,由于Access使用简单、功能强大,就成为了VB开发数据库系统的最好的选择。
3工程制图课程网上自学系统的系统设计
自学在大学生活中占有举足轻重的地位,一个好的自学系统不仅可以在课外辅导学生进行学习还能激发学生的学习热情。
3.1工程制图课程网上自学系统的需求分析
1、功能需求:
本课题要求所开发的考试模块具有下述几方面的功能:
(1)登录模块:
要求使用该软件前由密码控制系统允许的使用人员,只有凭借密码才可以进入该软件的界面,并进行使用。
此外两类用户分两个等级:
管理员及学生用户。
管理员可以对用户进行添加、删除、查询等操作,以及对题库进行增加、删除、修改、查询等维护性操作。
(2)题库维护模块:
此模块在设计之初就仅对管理员级别的用户是可用的,主要分为4项内容:
增加试题、删除试题、查询试题和修改试题。
通过移动记录指针并进行相应的操作,可以间接地控制存放有试题内容的数据库。
(3)考试模块:
这是整个系统的重中之重,考试过程包括输入具体题型的具体信息和根据要求随机抽取试题号码,输出试题,即智能组卷和考试。
(4)信息管理模块:
这也是系统中不可缺少的一部分,这有助于管理员进行系统的维护工作。
2、用户界面需求:
软件与用户界面的友好性使用户能够方便有效地使用该软件,因此在需求分析时,要给用户界面做出细致的规定应该达到的要求。
软件的用户界面要求具有良好的可操作性、使用简单、菜单资源条理清楚。
3.2工程制图课程网上自学系统的功能模块设计
自学系统由登录模块、信息管理模块、自学模块、作业模块和考试模块等组成,具体如下:
登录模块:
该模块由用户注册、登录组成,它是确保系统只能被合法用户使用的屏障。
信息管理模块:
该模块由权限分配和信息查询组成,通过权限的分配,可以让普通用户拥有管理员权限。
自学模块和作业模块:
该模块由一个外部链接控件链接到指定的工程制图多媒体课件完成,在本课题中不涉及到课件的制作。
考试模块:
该模块由题库管理和考试组成,是本论文的重点,在整个自学系统中也是非常重要的组成部分,对于像工程制图这样的课程结构如何设计题库以及如何测试,本文都有相关的论述。
3.3工程制图课程网上自学系统的数据库设计
系统数据库名称为工程制图,其中包括:
学生基本信息表(学生);客观题题库表(客观题);客观题考试表。
各个表的数据结构如下表:
(1)学生表的数据结构:
学生信息表用来保存学生的基本信息,比如学号、姓名等重要信息。
表结构如下:
表1:
学生基本信息
字段名
数据类型
辅助说明
学号
文本
主键
姓名
文本
不能为空
性别
文本
默认值为男
学历
文本
默认值为本科
职业
文本
默认值为学生
密码
文本
不能为空,输入掩码为密码
使用权限
数字
1或0
(2)客观题表的结构:
客观题表用来保存选择题和判断题的基本信息,由于选择题和判断题答案的唯一性,将选择题和判断题保存在一个表中,表结构如下:
表2:
客观题
字段名
数据类型
长度
描述
题号
数字
整型
主键
问题
OLE对象
不能为空
答案
文本
4
不能为空
所在章节
文本
10
所考核知识点的章节
(3)客观题考试表:
客观题考试表用来临时保存考题的基本信息,由于考试时的考题是随机的,故客观题考试表中的记录是变化的,在每次考试时临时向其中添加记录。
表结构如下:
表3:
客观题考试表
字段名
数据类型
长度
描述
题号
数字
整型
主键
问题
OLE对象
不能为空
答案
文本
4
不能为空
考生答案
文本
4
4工程制图课程网上自学系统的程序开发
4.1工程制图自学系统的文件架构图
为了是本系统容易理解,这里给出文件构架图,用来表明VisualBasic程序中各个窗体的作用及其相互之间的关系。
否
是
图1主文件架构图
信息管理:
主要包括用户的增加、删除以及权限的分配。
题库管理:
主要包括试题的增加、删除、修改等一些基本操作。
信息查看:
主要包括用户对自己的一些基本信息的修改,比如修改密码等。
自学:
主要包括一些基本的自学资料以及课后作业的自我检测等。
考试:
主要包括智能组题和考试,是本文的重点。
5自学系统的主要功能模块程序设计
这里主要介绍登录窗体、操作主窗体、用户注册窗体、用户信息管理窗体、题库管理窗体和考试窗体的实现过程。
5.1注册与登录模块
5.1.1用户注册
当新用户想使用本系统时就必须先成为系统的合法用户,双击注册按钮会打开一个新的界面,即注册界面。
在注册界面中你可以填写你的其本资料来完成注册。
当用户注册时,搜索数据库有没有和用户要注册的账号一样的。
如果有,注册失败,提醒用户重新选择一个账号注册;如果没有,注册成功,将用户的信息存储到数据库中。
我们需要知道用户姓名、学号以及密码等用户真实的资料,其中最重要的就是用户注册的姓名和密码,这个是系统的通行证,我们能否登录成功主要取决于这两个数据。
因此我们在表中定义了七个字段,如表1,姓名、学号、密码不能为空;用户密码和密码确认两次输入密码必须相同,用户姓名不允许重复。
如果不合法,给出提示;如果合法,将用户信息添加到数据库,并向用户显示注册成功的信息。
通过注册的用户,其权限默认为学生,如果想成为系统管理员,那就需要管理员授予管理权限。
图2注册界面
5.1.2用户登录
在用户注册时,我们已经将成功注册的用户信息存储在数据库中。
在这里,我们需要的是用户姓名和用户密码这两个字段,它们是我们能否成功登录的关键数据。
当登录时,判断用户输入是否合法:
用户姓名、用户密码为必填项,不能为空。
如果不合法,给出提示;如果合法,验证输人的用户账户是否存在以及输入的用户姓名和密码是否匹配。
如果输入的用户姓名与密码相匹配,那么系统会提示用户登录成功,否则系统将提示用户重新登录。
图3登录界面
通过界面我们可以看到需要添加的控件,其控件和各属性值如下表
表4:
登录窗体的主要对象及其属性
对象
属性
设置
描述
Form1
name
frmdr
caption
欢迎使用
Label1
caption
姓名
Label2
caption
密码
Text1
name
txtuse
姓名
text
空
Text2
name
txtpsw
密码
text
空
PasswordChar
*
Command1
name
cmdOK
caption
登录
Command2
name
cmdEXIT
caption
取消
Command3
name
cmdCZ
caption
注册
Adodc1
连接到数据库中的学生表
部分代码及其解释说明如下:
PrivateSubcmdOK_Click()
DimSQLAsString,ConnectionstringAsString
Connectionstring="provider=Microsoft.Jet.oledb.4.0;"&_
"DataSource="&App.Path&"\数据库.mdb"
Conn.OpenConnectionstring//打开数据库
IfTrim(txtuse.Text)=""Then
MsgBox"请输入用户名",vbOKOnly+vbExclamation
txtuse.Text=""
EndIf//判断输入的用户名是否为空
Iftxtpsw.Text=""Then
MsgBox"请输入密码",vbOKOnly+vbExclamation
txtpsw.Text=""
txtpsw.SetFocus//判断输入的密码是否为空
Else:
SQL="select*from学生where姓名='"&txtuse.Text&"'"
rs_Login.OpenSQL,Conn,adOpenKeyset,adLockPessimistic
Ifrs_Login.EOF=TrueThen//判断输入的用户是否存在
MsgBox"对不起,没有这个用户,要想使用本系统请您双击注册按钮",vbOKOnly+vbExclamation
txtuse.Text=""
cmdZC.SetFocus
rs_Login.Close
Else//如果用户存在则检验密码是否正确
Ifrs_Login.Fields(5)<>txtpsw.TextThen
MsgBox"密码错误,请您重输",vbOKOnly+vbExclamation
txtpsw.Text=""
txtpsw.SetFocus
rs_Login.Close
Else:
rs_Login.Close//密码正确则成功登录
Me.Hide
frmmain.Show
EndIf
EndIf
EndIf
5.2主要功能模块
当主窗体在打开加载时要根据用户的权限进行显示,如果是管理员权限则显示系统用户管理、题库管理;如果是学生权限,则显示信息查询、自学、考试。
其部分代码如下:
SQL="select*from学生where姓名='"&frmdr.txtuse.Text&"'"
rss_Login.OpenSQL,ctr,adOpenKeyset,adLockPessimistic
If1=rss_Login.Fields(6)Then//等于1为管理员权限
Me.Caption="管理员界面"
Picture2.Visible=True
Picture1.Visible=False
Else:
Me.Caption="学生界面"//反之则为普通用户权限
Picture1.Visible=True
Picture2.Visible=False
EndIf
程序简要说明:
根据登录界面中用户输入的姓名,查询出用户所拥有的权限,根据不同的权限,用户所需的操作不一样,故主窗体界面样式也不一样。
如图4和5所示:
图4管理员操作界面
图5学生操作界面
5.2.1系统管理员主界面
通过管理员操作界面(图4)可知道,管理员拥有用户信息管理权限和题库管理权限,当双击信息管理按钮时进入信息管理界面,双击题库管理时进入题库管理界面。
其所需的控件和各属性值如下表:
表5:
管理员操作界面的主要对象及其属性
对象
属性值
设置
描述
form
name
Frmmain
caption
管理员界面
Command1
caption
信息管理
visable
False
Command2
caption
题库管理
visable
False
Adodc1
连接到数据库中的学生表
(1)信息管理
在信息管理界面中,系统管理员可以查看用户的信息,也可以给用户赋予管理员权限。
(2)题库管理
工程制图这门课程主要是培养学生的空间想象力,要求学生能读懂图形、绘制图形。
因此在考查学生这些能力的时候,对考试试题提出了特殊的要求。
与其它类型的考试试题(如数学、政治、英语等)相比,有其明显的特点:
①体现在题型的多样化:
一般的试卷大多只有5-6种类型的题目,有些考试甚至只有选择和填空两种试题(如计算机等级考试),可是工程制图还有大量的读图题、作图题,如:
立体、组合体、零件图、装配图等。
②一般试题库的信息主要是文字,图形很少或没有。
而工程制图试题库的信息主要是图形,信息量很大。
这就使工程制图试题库的设计和开发有其特殊性,不同于一般以文字为主的试题库。
对工程制图试题库而言,关键在于图形试题的存储格式是否合理,题库的查询、维护是否方便,自动组卷是否满足规定条件等,考虑到多方面的原因,我们将考题全部做成图片格式。
③试题库系统与其他数据库系统有着本质的区别,它不仅要求系统能完成数据库的日常维护和管理工作,其核心内容是系统能按用户要求随机抽取试题,组成试卷。
为此,设计试题库系统的主导思想是使系统具有尽可能完善、强大的随机抽题和组卷功能。
我们将每道试题的信息分成控制信息和内容信息两部分,控制信息包括试题的所属章节和题型等内容;内容信息则包括题目内容、图形(图形名)和答案等信息。
存放有试题信息和内容的试题数据表的设计是整个设计过程的重要部分,这一项内容设计得是否合理,将直接影响到所开发的软件开发周期的长短、开发是否会遇到更多的困难、利不利于维护、软件运行起来是否稳定等一系列的因素,数据库结构表如表2,其操作界面如下:
图6题库
图6题库管理的界面
表6:
题库录入窗体的主要对象及其属性
对象
属性值
设置
描述
Form
Name
frmtk
窗体名称
Text1
Name
txtda
Datasource
Adodc1
与控件Adodc1绑定
Datafield
答案
显示记录集中的“答案”字段
Combo1
text
空值
Datasource
Adodc1
与控件Adodc1绑定
Datafield
所在章节
显示记录集中的“所在章节”字段
Command1
Name
cmdADD
用于增加新纪录
Caption
增加新纪录
Command2
Name
cmdUpdate
用于修改记录
Caption
修改当前记录
Command3
Name
cmdNext
用于控制记录指针向前移动,当记录指针移动到第一条时,其值BOF=True
Caption
前一条记录
Command4
Name
cmdq
用于控制记录指针向后移动,当记录指针移动到最后一条时,其值EOF=True
Caption
后一天记录
CommonDialog1
名称
CommonDialog1
用于打开一个图片,并加载图片
Adodc1
连接数据库中的客观题表
部分参考代码如下:
Dimcou,aAsInteger
PublicccccAsNewADODB.Connection
//定义全局变量
PrivateSubcmdADD_Click()
Dimres
Me.Adodc1.Recordset.AddNew
//添加新纪录
cou=Adodc1.Recordset.RecordCount
//统计题库中记录的总条数
res=MsgBox("您确定要增加新纪录吗",vbOKCancel+vbQuestion,"录题")
Ifres=1Then
WithMe.CommonDialog1
.DialogTitle="录入问题"
.CancelError=True
.Filter="图片文件(*.bmp;*.gif;*.jpg)|*.bmp;*.gif;*.jpg"
//显示扩展名为.bmp;.gif;.jpg的文件
OnErrorGoTolin
.ShowOpen
IfLen(.FileName)=0Then
ExitSub
EndIf
ps=.FileName
.FileName=""
EndWith
//将图片保存到数据库中
Setc=NewADODB.Stream
c.Mode=adModeReadWrite
c.Type=adTypeBinary
c.Open
c.LoadFromFileps
Me.Adodc1.Recordset.Fields("问题").Value=c.Read
Picture1.Picture=LoadPicture(ps)
Adodc1.Recordset.Fields("题号")=cou
Adodc1.Recordset.Fields("所在章节")=Combo1.Text
c.Close
EndIf
ExitSub
//错误处理代码
lin:
IfErr.Number<>32755Then
MsgBoxErr.Description
EndIf
程序简要说明:
这是一段用于增加题目的程序代码,当我们点击增加新纪录按钮时,记录指针会自动移动最后一条记录的下一条记录上,等待录入新的记录。
题号是由系统自动添加的,这样能保证题号不重复,维护数据库的完整性约束;问题由一个选择对话项完成;答案和所在章节由已和表绑定的文本框和列表框录入。
5.2.2学生主界面
通过学生操作界面(图5)可看到,学生拥有查看信息、进入自学模块和考试等操作,双击按钮就可以进入不同的操作界面。
其所需的控件和各属性值如下表:
表7:
学生操作界面的主要对象及其属性
对象
属性值
设置
描述
Form
name
frmmain
窗体名称
caption
学生主界面
Command1
name
cmdxx
caption
信息查看
Command2
name
cmdzx
caption
自学
Command3
name
cmdks
caption
考试
当用户双击信息查询按钮时,用户进入个人信息界面,在个人信息界面中,用户可以修改个人的除学号外的其他信息;当用户双击自学模块按钮时,用户将进入一个用AUTHOWARE制作的多媒体自学课件;当用户双击考试模块时,用户将进入到考试环境中。
(1)信息查看模块:
图7个人信息查看界面
(2)考试模块
考试是教学过程中必不可缺的重要环节,是对学生所学课程知识掌握程度和灵活运用的综合考核。
整个软件操作应该一目了然、清楚明晰,使用户在操作时无须更多的提示。
如应考虑用户的使用习惯,既可以用鼠标操作也可用键盘操作,还应有考试时间的提示和错误操作警示等,以方便考生把握考试的时间进度。
随机出题且尽量做到不重复出题,这就要求系统的题库的题量要大,算法准确,这是本模块开发过程中的关键。
考试模块应做到自动批阅,还可以减少人为因素的干扰。
判题具体的实现过程是通过数据绑定控件属性设置,把每个学生的答案与试题数据库中的标准答案进行比较和分析,通过程序自动判断正误,并自动计算学生考试的总分。
本模块主要包括两部分:
1)系统组卷:
系统根据用户的组卷要求,能自动生成试题。
2)学生做题:
在考试界面中,考生点击开始考试,进入考试页面,系统默认的考试页面是客观题页面,考生即可进行客观题考试。
在考试过程中,系统会根据你选择的考试题目数量自动确定考试时间,并进行倒计时,当考试时间还剩下两分钟时,系统给出提示。
当你做完全部考题时,点击提交按钮,系统会计算出你答对了多少题,你可以查看答错的考题及其正确答案。
①智能组题:
图8智能组题界面
在组题界面中,我们可以自由组题,我们在各章节后面的文本框中输入考题数目(注:
数目为相应章节在本次考试中所占的比例),采用这种方式,我们可以根据自己的需要组成我们要求的试题。
当我们输入考题数目时,可以参考文本框后面的总数目提示,这个总数目是相应的章节所录入的题目总数,它能保证我们输入的考题数目的合法性。
当我们采用系统默认时,考试试题会采用系统的默认方案。
②考试:
图9考试初始化界面
图10
图10考试过程中界面
表8:
考试窗体的主要对象及其属性
对象
属性
设置
描述
Form
Name
frmks
窗体名称
caption
考试
Command1
Name
cmdks
控件名称
Caption
初始化时为“开始考试”,考试过程中为“下一题”
Label1
Caption
初始化为空,用于显示考试时的时间,双击“开始考试”按钮时激活
Label2
Caption
初始化为空,对考试时间进行倒计时
Label3
Caption
用于显示考生的姓名
在考试窗体加载的过程中,我们让它生成一系列随机数,每一个章节需要一组随机数,我们需要十组随机数。
并且每章节的随机数的个数是不一样的,其个数就是我们在组题界面中输入的题目数。
部分代码如下:
DimccAsNewADODB.Connection//标记数据库连接
DimrsAsNewADODB.Recordset
Connectionstring="provider=Microsoft.Jet.oledb.4.0;"&_
"DataSource="&App.Path&"\数据库.mdb"
cc.OpenConnectionstring//打开数据库
rs.Open"Delete*from客观题考试表",cc,adOpenKeyset,adLo