基于VB的机房管理系统设计与开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类型:课程设计
题目:基于VB的机房管理系统设计与开发
第一章系统需求分析
1.1系统的初步调查
系统的初步调查是系统分析的第一项活动,初步调查阶段的主要目标是从分析人员和管理人员的角度来研究新项目开发有无必要和可能。
随着信息化社会的到来,计算机及其网络技术已日益成为现代教学活动中必不可少的学习内容和使用工具,越来越多的单位购置了大量的计算机设备并实现了连网,为教师和学生的学习创造了良好的学习环境,极大地改善了学习条件。
目前我院计算中心机房管理采用人工管理,机房的排课相当繁琐,需要准确了解每个班的人数,机房的容纳数,对每门课程的课时数有所了解,同时还要注意班级、教师的冲突情况,防止出现安排一个班(教师)在同一时间,不同机房有课,防止出现班级人数大于机房容纳人数.管理老师为此常常需要查阅大量的表单,且易出错。
另外对新班级,新开课程的添加和修改,对毕业班级信息的大批量的删除也比较繁琐。
所以开发一个机房管理系统用来实现教学安排的任务是可以满足这种情况的需求的。
机房管理教学安排的主要内容如图:
以下是机房常用的一些表格
表(一)班级信息表
1.2系统可行性分析
本阶段主要进行可行性分析,可行性分析的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
可行性分析的目的不是解决问题,而是确定问题是否值得去解决。
以及对相关方法的对比。
在系统初步调查的基础上,明确了计算中心现有手工操作的主要问题和建立机房综合管理系统的初步设想,进一步对系统目标等因素进行分析研究,根据分析,该系统的开发是切实可行的。
1.3系统详细调查
1.3.1教学安排(机房排课)
排课人员从由教务处印发的班级课程教学安排中获取本学期的教学计划和教学安排情况,根据课程情况、班级人数和机房情况选择机房,在排课的过程中,机房管理人员需要处理以下几个问题:
1.同一班级在同一时间不能有两门及以上的课程安排,否则提示该班级已有安排.
2.同一名教师不能在同一时间给两个不同的班级(即在不同的机房)上课,否则提
示该教师已有安排.
3.班级人数不能大于机房的可容纳人数,否则提示机房人数过多.
1.3.2信息操作
机房管理人员在班级信息表中对班级可以进行班级人数的查询功能,班级信息的修改功能,对新增班级的班级编号、班级名称、班级人数的添加功能;在课程信息表中对课程进行课程的查询课时数功能,课程信息的修改功能,对新开课程的课程编号、课程名称、课程学时的添加功能;在班级信息表中对班级编号为某一特定值的毕业班的班级信息进行统一的删除功能.
1.4数据字典
在数据字典中建立的一组严密一致的定义有助于改进分析员和用户之间的通信,将消除许多可能的误解。
数据字典中包含的每个数据元素的控制信息都是很有价值的,它是开发数据库的第一步。
第二章系统设计
2.1系统的总体设计
根据系统分析的结果,按照结构化的系统设计方案,本机房管理系统从功能上可划出子系统:教学安排。
2.1.1系统功能分析
系统开发的总体任务是实现信息关系的系统化、规范化和自动化。
系统功能分析是在系统开发的总体任务的基础上完成的。
开发的机房管理系统之教学安排模块需要完成的功能主要有:
(1)班级信息的查询,通过输入班级编号来查询该班的班级级名称、该班班主任及
该班人数。
(2)班级信息的修改,先输入需要修改的班级编号,查询到该班的班级信息,再进
行信息的修改。
(3)新班级信息的添加,先查询是否有该班级编号,如果没有则可以进行新班级信
息的添加,添加新班级编号、新班级名称、新班级班主任和班级人数。
(4)班级信息的删除,输入需要删除的班级编号,再进行信息的删除。
(5)毕业班级信息的整批删除,输入要删除毕业班级的年级号,再进行删除操作。
(6)机房信息的查询,通过输入机房编号来了解机房的容纳人数。
(7)机房信息设置,包括机房信息的修改, 机房信息的添加和机房信息的删除。
(8)课程信息的设置包括课程信息的查询(通过输入课程编号来查询课程名称、任课
老师、课程学时),课程信息的修改,新课程信息的添加和课程信息的删除。
(9)机房排课录入,输入课程名称、相应地显示教课老师名称;再依次输入年份、
学期、周次、星期及节次;再输入机房编号,则相应地显示机房容纳人数;输入班级名称则相应地显示班级人数。
(10)机房排课,避免排课中的冲突情况,修改及删除已排好课程。
2.2系统详细设计
详细设计的任务不是具体的设计地编写程序,而是设计出程序的“蓝图”,以后将根据这个蓝图写出实际的程序代码。
因此详细设计的结果基本上决定了最终的程序代码质量。
2.2.1开发工具的选择
2.2.1.1软件开发工具与数据库的选择
微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。
Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。
故而,实现本系统VB是一个相对较好的选择。
2.2.1.2数据库的选择
关系型数据库的实现
Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
Access 的优点在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。
另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。
Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。
如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
二者的结合(DBA)
微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic 来访问数据库并对其进行各种操作。
Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。
DATA 控件在数据库中的信息与将信息显示给用户看的Visual Basic程序之间架起了一座桥梁。
我
们可以设置DATA控件的各个属性,告诉它要调用那个数据库的哪个部分。
缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。
一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。
DATA控件还提供了用来浏览不同记录的各种跳转按钮。
将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。
2.2.1.3规范化设计方法
构造数据库时,必须遵循一定的规则。
在关系数据库中,这种规则就是范式(Normal Form)。
或者说,满足一定条件的关系模式,称为范式。
在1971年至1972年,E.F.Codd 系统提出了第一范式(1NF)、第二范式(2NF)、第三范式(3NF)的概念。
1974年Codd 和Boyce共同提出了BCNF范式,为第三范式的改进。
1.第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。
所谓的第一范式是指数据库中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的每个属性不能有多个值或者不能有重复的属性。
2.第二范式(2NF)
第二范式是在第一范式的基础上建立起来的,即满足第二范式的必定满足第一范式。
第二范式要求数据库表中的每个实例或行必须可以被唯一区分。
在有些时候可以被唯一区分。
在有些时候,为了实现唯一的区分,往往需要为表加上一列,一个实例的只占一个标识。
第二范式要求实体的属性必须完全依赖于主关键字。
所谓的完全依赖是指不能存在仅依赖于主关键字的一部分的属性。
如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新的实体与原实体丰在一对一的关系。
3.第三范式(3NF)
第三范式是建立在第二范式的基础上的,即满足第三范式的必定要满足第二范式。
第三范式要求一个数据库中不包含已在其他表中包含的非主关键字。
简单的说,第三范式就是属性不依赖于其他非主属性。
2.2.1.4系统涉及到的实体
机房综合管理系统所涉及到的主要实体及其属性有:
➢机房排课{年份,学期,教学周次,星期,节次,班级,课程,教师,机房} ➢学期{课程开始日期 }
➢课程{课程编号,课程名称,任课老师,总学时 }
➢班级{班级编号,班级名称,班主任,班级人数}
➢机房{机房编号,机房容纳人数}
2.2.1.5数据库的物理设计
表的结构设计
2.2.2软件过程设计
软件过程设计的目标不仅仅是在逻辑上实现每个模块的功能,更重要的是设计出的处理过程应该尽可能的简明易懂。
结构程序设计技术是实现上述目标的关键技术,因此是软件过程详细设计的逻辑基础。
结构程序设计是一种设计程序的技术,它采用单入口单出口的控制结构。
由上面对数据流图和实体及其属性的分析现在可以确定此系统中的实体,属性和实体之间的关系,以下就画出各个模块的用户E-R图。
下面介绍转化所需要遵守的几条准则:
1.E-R模型中的每一个实体都转化成一个同名的关系,实体的属性就是关系的属性,实体集的码就是关系的码
2.E-R模型中的每一个联系也用一个关系表示,与该联系相连的各实体集的码以及联系的属性转化为关系的属性。
该关系的码有三种情况:
①若联系为1:1,则每个实体的均是该关系的候选码。
②若联系为1:N,则关系的码为n端实体集的码。
③若联系为M:N,则关系的码为各实体集码的组合。
3.具有相同码的关系模式可以合并
2.2.2.1数据库概念结构设计
得到上面的数据项和数据结构后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
本实例根据上面设计规划出的实体有:班级实体、机房实体、课程实体、教学安排(机房排课实体、班级排课实体)。
各个实体具体的描述。
E-R图如下:
图2-2 机房实体E-R图
图2-3 课程实体E-R图
图2-4 机房排课实体E-R图
2.2.2.2教学排课
机房排课的模块有几个重要的控件,一个是排课录入控件,在此模块中,管理员按照年份、学期、课程名称、机房编号、班级名称等依次录入信息。
一个是排课修改控件,在机房排课界面中,选择要修改的排课信息再进行修改。
一个是排课删除控件,选择要删除的排课信息进行删除。
输入的有效性的验证,要求报错教师安排冲突(如同一个教师在同一时间不同机房上课),还要求报错班级安排冲突(如同一班级在同一时间在不同机房上课),要求报错机房和班级人数的冲突(如上机班级人数大于机房容纳人数)。
2.2.2.3信息操作
在班级信息表中对班级可以进行班级人数的查询功能,班级信息的修改功能,对新增班级的添加功能;在课程信息表中对课程进行课程的查询课时数功能,课程信息的修改功能,对新开课程的添加功能;在班级信息表中对班级编号为某一特定值的毕业班的班级信息进行统一删除。
查询教学表,如果有新班级则进入到班级信息中进行班级信息的录入;如果有新开课程则进入到课程录入信息中进行课程信息的录入;如果有要删除的毕业班则进入班级信息中进行对毕业班信息的删除;
添加新增班级信息如图所示:
添加新开课程如图所示:
毕业班信息的删除如图所示:
第三章系统实施
3.1代码编制规范
在从事软件开发过程中,代码编制的规范很重要。
特别是在后期的软件维护工作中,若软件编制规范的好,能节省软件维护人员大量的时间。
在此所指的代码编制规范一般包括如下两个方面的含义。
3.1.1 命名规范
在代码的编制过程中,我力求采用匈牙利表示法,但由于是初次进行软件开发,所以对此认识不够深,在开发过程中有时不能够坚持,这对我在开发后期的测试和维护中带来了很大麻烦。
下面是我采用的部分命名前缀:
3.1.2代码编制思想规范
整个代码的编制过程,我们应首先保证其实现过程合乎人的思维方式,在编写组件或类的时候我们应尽量让其自身的数据成员对外屏蔽。
同时,在程序的外在表现上,努力采用层进式结构,使代码的层次结构清晰。
3.2代码实施
3.2.1与数据库的连接
db_path = App.Path & "\Wonderful1.mdb"
Set db = OpenDatabase(db_path)
Set record = db.OpenRecordset("密码表")
db_path = App.Path & "\ Wonderful1.mdb"
Set db = OpenDatabase(db_path)
Set record = db.OpenRecordset("班级信息表")
db_path = App.Path & "\ Wonderful1.mdb"
Set db = OpenDatabase(db_path)
Set record = db.OpenRecordset("课程信息表")
以上语句用来与数据库连接
3.2.2公用模块部分
Private Sub Command1_Click()
If Text1.Text = "" Then
MsgBox ("您没有输入用户名,请重新输入!") Text2.Text = ""
Text1.SetFocus
'计算机机房管理教学安排.Show
Exit Sub
End If
If Text2.Text = "" Then
MsgBox ("您没有输入密码,请重新输入")
Text1.Text = ""
Text1.SetFocus
Exit Sub
End If
record.MoveFirst
Do While Not record.EOF
If Text1.Text = record.Fields(0) Then
If Text2.Text = record.Fields(1) Then
user_id = Text1.Text
username = Trim$(Text1.Text)
userpsd = Trim$(Text2.Text)
Unload Me
计算机机房管理教学安排.Show
Exit Sub
Else
MsgBox "您的密码错误!请重新输入...", vbCritical
Text2.Text = ""
Text2.SetFocus
Exit Sub
End If
End If
record.MoveNext
Loop
MsgBox "用户名错误!", vbCritical
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
End Sub
3.2.3系统设置
Private Sub Command1_Click()
Dim wonderful As Boolean
wonderful = False
'判断是否为空
If Trim(Text1.Text) = "" Then
MsgBox "请输入用户名称!", vbCritical Exit Sub
Text1.SetFocus
End If
If Trim(Text2.Text) = "" Then
MsgBox "请输入用户密码!", vbCritical Exit Sub
Text2.SetFocus
End If
If Trim(Text3.Text) = "" Then
MsgBox "请输入确认密码!", vbCritical
Exit Sub
Text1.SetFocus
End If
If Text2.Text <> Text3.Text Then
MsgBox "两次输入密码不相符!", vbCritical Text2.Text = ""
Text3.Text = ""
Text2.SetFocus
Exit Sub
End If
record.MoveFirst
Do While Not record.EOF
If Text1.Text = record.Fields(0) Then
wonderful = True
Exit Sub
End If
record.MoveNext
Loop
If wonderful = False Then
record.MoveFirst
record.AddNew
record.Fields(0) = Text1.Text
record.Fields(1) = Text2.Text
record.Update
MsgBox ("用户添加成功!")
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End If
End Sub
以上实现的是添加用户功能
3.2.4班级管理模块
Private Sub cmdAdd_Click()
record.MoveFirst
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "请填写完整信息!", vbCritical
Exit Sub
End If
Do While Not record.EOF
If Val(Text1.Text) = record.Fields(0) Then
MsgBox "班级编号已存在,请重新输入!", vbCritical
Text1.Text = ""
Exit Sub
End If
record.MoveNext
Loop
record.MoveFirst
record.AddNew
record.Fields(0) = Text1.Text
record.Fields(1) = Text2.Text
record.Fields(3) = Text3.Text
record.Fields(2) = Text4.Text
record.Update
MsgBox ("班级信息已添加成功!")
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
以上代码实现的是对新增班级信息的添加功能以下代码实现的是对班级信息的查询功能Private Sub Command5_Click()
Dim wonderful As Boolean
wonderful = False
If Text1.Text = "" Then
MsgBox "请输入班级编号!", vbCritical
Exit Sub
End If
record.MoveFirst
Do While Not record.EOF
If Val(Text1.Text) = record.Fields(0) Then
MsgBox ("该班级信息已找到!")
Text2.Text = record.Fields(1)
Text3.Text = record.Fields(3)
Text4.Text = record.Fields(2)
wonderful = True
Exit Sub
End If
record.MoveNext
Loop
wonderful = False
MsgBox "不存在该班级!", vbCritical
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text1.SetFocus
End Sub
以下代码实现的是对班级信息的修改功能Private Sub Command4_Click()
If Text2 = "" Or Text2 = "" Then
MsgBox "请先执行查询操作!", vbCritical
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End If
record.MoveFirst
Do While Not record.EOF
If Val(Text1.Text) = record.Fields(0) Then
record.Edit
record.Fields(0) = Text1.Text
record.Fields(1) = Text2.Text
record.Fields(3) = Text3.Text
record.Fields(2) = Text4.Text
record.Update
MsgBox ("班级信息已修改成功!")
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Exit Sub
End If
record.MoveNext
Loop
End sub
以下代码实现的是班级信息删除功能
Private Sub Command2_Click()
If Text1.Text = "" And Text2.Text = "" Then
MsgBox "请先进行查询操作!", vbCritical
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Exit Sub
End If
record.MoveFirst
Do While Not record.EOF
If record.Fields(0) = Text1.Text Then
record.Edit
record.Delete
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
MsgBox ("记录已删除!")
Exit Sub
End If
record.MoveNext
Loop
End Sub
3.2.5毕业班级信息删除模块
Private Sub Command1_Click()
Dim count, i As Integer
count = 0
Dim Msg, style, TITLE, Help, Ctxt, Response, MyString
Msg = "Do you want to continue ?" ' 定义信息
style = vbYesNo + vbCritical + vbDefaultButton2 ' 定义按钮
TITLE = "删除提示框" ' 定义标题
Help = "DEMO.HLP" ' 定义帮助文件。
Ctxt = 1000 ' 定义标题
If Text1.Text = "" Then
MsgBox ("请输入删除的年级编号!")
Exit Sub
End If
mfg1.Clear
mfg1.Cols = 4
mfg1.TextMatrix(0, 0) = record.Fields(0).Name
mfg1.TextMatrix(0, 1) = record.Fields(1).Name
mfg1.TextMatrix(0, 2) = record.Fields(2).Name
mfg1.TextMatrix(0, 3) = record.Fields(3).Name
mfg1.FixedRows = 1
mfg1.Rows = 2
record.MoveFirst
Do While Not record.EOF
If Val(Left(record.Fields(1), 2)) = Val(Text1.Text) Then
mfg1.TextMatrix(mfg1.Rows - 1, 0) = record.Fields(0)
mfg1.TextMatrix(mfg1.Rows - 1, 1) = record.Fields(1)
mfg1.TextMatrix(mfg1.Rows - 1, 2) = record.Fields(2)
mfg1.TextMatrix(mfg1.Rows - 1, 3) = record.Fields(3)
mfg1.Rows = mfg1.Rows + 1
End If
record.MoveNext
Loop
End Sub
Private Sub Command2_Click()
If MsgBox("真的需要删除当前记录?", vbYesNo, "信息提示") = vbYes Then record.MoveFirst
Do While Not record.EOF
If Val(Left(record.Fields(1), 2)) = Val(Text1.Text) Then
record.Edit
record.Delete
End If
record.MoveNext
Loop
mfg1.Clear
End If
End Sub
3.2.6机房信息管理模块
Private Sub Command3_Click()
record.MoveFirst
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "请填写完整的信息!", vbCritical
Exit Sub
End If
Do While Not record.EOF
If Val(Text1.Text) = record.Fields(0) Then
MsgBox "机房编号已存在,请重新输入!", vbCritical
Text1.Text = ""
Text2.Text = ""
Exit Sub
End If
record.MoveNext
Loop
record.MoveFirst
record.AddNew
record.Fields(0) = Text1.Text
record.Fields(1) = Text2.Text
record.Update
MsgBox ("机房信息已添加成功!")
Text1.Text = ""
Text2.Text = ""
End Sub
以上代码实现的是机房信息的添加功能
Private Sub Command2_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox "请先执行查询操作!", vbCritical
Text1.Text = ""
Text2.Text = ""
End If
record.MoveFirst
Do While Not record.EOF
If Val(Text1.Text) = record.Fields(0) Then
record.Edit
record.Fields(0) = Text1.Text
record.Fields(1) = Text2.Text
record.Update
MsgBox ("机房信息已修改成功!")
Text1.Text = ""
Text2.Text = ""
Exit Sub
End If
record.MoveNext
Loop
End Sub
以上代码实现的是机房信息修改功能
Private Sub Command5_Click()
Dim wonderful As Boolean
wonderful = False
If Text1.Text = "" Then
MsgBox "请输入机房编号!", vbCritical
Exit Sub
End If
record.MoveFirst
Do While Not record.EOF
If Val(Text1.Text) = record.Fields(0) Then
MsgBox ("该机房已找到!")
Text2.Text = record.Fields(1)
wonderful = True
Exit Sub
End If
record.MoveNext
Loop
wonderful = False
MsgBox "不存在该机房编号!", vbCritical Text1.Text = ""
Text2.Text = ""
End Sub
以上代码实现的是对机房信息的查找功能
以下代码实现的是机房信息删除功能
Private Sub Command1_Click()
If Text1.Text = "" And Text2.Text = "" Then
MsgBox "请先进行查询操作!", vbCritical
Text1.Text = ""
Text2.Text = ""
Exit Sub
End If
record.MoveFirst
Do While Not record.EOF
If record.Fields(0) = Text1.Text Then
record.Edit
record.Delete
Text1.Text = ""
Text2.Text = ""
MsgBox ("记录已删除!")
End If
record.MoveNext
Loop
End Sub
3.2.7课程设置模块
Private Sub Command4_Click()
Dim wonderful As Boolean
wonderful = False
If Text1.Text = "" Then
MsgBox "请输入课程编号!", vbCritical
Exit Sub
End If
record.MoveFirst
Do While Not record.EOF
If Val(Text1.Text) = record.Fields(0) Then
MsgBox ("该课程已找到!")
Text2.Text = record.Fields(1)
Text4.Text = record.Fields(2)
Text3.Text = record.Fields(3)
wonderful = True
Exit Sub
End If
record.MoveNext
Loop
wonderful = False
MsgBox "不存在该课程!", vbCritical
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
以上代码实现的是课程查询功能
Private Sub Command3_Click()
If Text2 = "" Or Text2 = "" Then
MsgBox "请先执行查询操作!", vbCritical
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End If
record.MoveFirst
Do While Not record.EOF
If Val(Text1.Text) = record.Fields(0) Then
record.Edit
record.Fields(0) = Text1.Text
record.Fields(1) = Text2.Text
record.Fields(2) = Text4.Text
record.Fields(3) = Text3.Text
record.Update
MsgBox ("课程已修改成功!")
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Exit Sub
End If
record.MoveNext
Loop
End Sub
以上代码实现的是课程修改功能
Private Sub Command1_Click()
record.MoveFirst
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "请填写完整的信息!", vbCritical
Exit Sub
End If
Do While Not record.EOF
If Val(Text1.Text) = Val(record.Fields(0)) Then
MsgBox "课程编号已存在,请重新输入!", vbCritical
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Exit Sub
End If
record.MoveNext
Loop
record.MoveFirst
record.AddNew
record.Fields(0) = Text1.Text record.Fields(1) = Text2.Text record.Fields(2) = Text4.Text record.Fields(3) = Text3.Text record.Update
MsgBox ("课程信息已添加成功!") Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
以上代码实现的是课程添加功能
第四章系统测试
软件测试贯穿整个系统,测试的目的是查找错误,而不是证明软件没明错误。
包括模块测试和系统测试,模块测试采用“白盒”的路径测试技术,而集成测试采用基于“黑盒”的事务处理流程测试技术。
4.1模块测试
模块测试也叫单元测试,它的依据是详细设计描述,模块测试应对模块内所有重要的控制路径设计测试用例。
4.1.1用户登录模块
1)在登录窗体中,当输入错误用户信息时,显示结果:给出提示“您输入的帐号
不存在,请检查后重新输入!”。
测试通过
2)当在登陆窗体写错密码,显示结果:给出提示“密码错误,请重新输入密码”。
测试通过
4.1.2系统设置模块
1)添加用户模块中,当输入用户名,没有输入密码时,则显示结果:给出提示“请输入用户密码”。
测试通过
2)在添加用户模块中,当输入用户名,输入用户密码没有输入用户确认密码时,则显示结果:给出提示“请输入确认密码”。
测试通过
3)当输入了用户名输入了密码和确认密码后,但两次密码不正确,则显示结果:给出提示“两次输入密码不相符”
测试通过
4)当添加用户成功后,用此用户名和此用户密码重新登录,测试结果:正确
1)查询班级信息模块中,输入班级编号,点击“查询”按纽,显示该班级信息。
测试结果:正确
输入不存在的班级编号,则显示结果:给出提示“不存在该班级”
测试通过
2)修改班级信息模块中,先输入班级编号再执行查询操作,修改班级信息后,点击“修改”按纽,再执行查询操作,测试结果:正确
3)添加新班级信息模块中,录入新班级信息后,点击“添加”按纽,再执行查询操作,测试结果:正确
添加新班级信息时,如果没有添写完信息,则显示结果:给出提示“请添写完
整信息”
测试通过
4)毕业班级信息管理模块中,输入要删除的毕业年级,点击“确定”按纽,提示“是否真要删除信息”对话框,点击“是”按纽,再执行查询操作,测试结果:正确
4.1.4机房信息管理模块
1)查询机房信息模块中,输入机房编号,点击“查询”按纽,显示机房容纳人数信息。
测试结果:正确
2)修改(删除)机房信息模块中,如先点击修改或删除按钮,则显示结果:给出提示“请先执行查询操作”。
测试通过
输入机房编号再执行查询操作,修改机房信息后,点击“修改”按纽,再执行
查询操作,测试结果:正确
输入机房编号再执行查询操作,再点击“删除”按钮,给出提示“记录已删除”
测试结果:正确
3)添加新机房信息模块中,录入新机房信息后,点击“添加”按纽,给出提示“机房信息已添加成功”
测试结果:正确
1)查询课程信息模块中,输入课程编号,点击“查询”按纽,显示课程其他信息。
测试结果:正确
2)修改课程信息模块中,先输入课程编号再执行查询操作,修改课程信息后,点击“修改”按纽,再执行查询操作,测试结果:正确
3)添加新课程信息模块中,录入新课程信息后,点击“添加”按纽,再执行查询操作,测试结果:正确
4)删除课程信息模块中,输入要删除的课程编号,再点击“删除”按纽,测试结果:正确
4.1.6机房排课录入模块
1)排课录入模块中,如果同一时间,把教师安排在不同机房,则显示“该教师已有安排”,测试结果:正确
2)排课录入模块中,如果同一时间,把班级安排在不同机房,则显示“该班级已有安排”,测试结果:正确
3)排课录入模块中,如果班级名称为99计算机2班,则班级人数显示为(38人),3号机房容纳人数为(30人),如果把该班级安排在3号机房,则显示“机房人
数太多”,测试结果:正确
4)排课删除模块测试,显示结果:给出提示“是否删除此信息”
测试结果:正确
4.2集成测试
由于各模块有较强的独立性,所以集成测试比较简单,重点测试了各模块共用的几个变量和与主窗体的接口,并对整体功能进行了测试。
主要测试了以下几个方面:
●点击菜单能否正确响应
✓依次点击每个菜单
正确响应
测试通过。