VB学生信息管理系统毕业设计论文.docx
《VB学生信息管理系统毕业设计论文.docx》由会员分享,可在线阅读,更多相关《VB学生信息管理系统毕业设计论文.docx(93页珍藏版)》请在冰豆网上搜索。
![VB学生信息管理系统毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-1/4/cc79df45-b2c3-4ab9-9ccf-0040fbb50ba7/cc79df45-b2c3-4ab9-9ccf-0040fbb50ba71.gif)
VB学生信息管理系统毕业设计论文
学生信息管理系统论文
1.1摘 要
信息管理系统就是我们常说的MIS(ManagementInformationSystem),它是一个计算机软硬件资源以及数据库的人-机系统。
它能提供信息支持企业或组织的运行、管理和决策功能。
学生信息管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起资料一致性和完整性强、资料安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
经过分析如此情况,我们使用Microsoft公司的VisualBasic6.0开发工具,由于它给我们提供了用于从数据库中访问数据的强大工具集,使用它可以建立开发比较完善的数据库操作应用程序,并利用SQLServer2000提供数据库。
尤其是VisualBasic6.0可视化设计窗口这一方便而简洁的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成学校管理者满意的可行系统。
关键词:
原型法,面向对象,资料窗口,信息管理系统。
1.2前 言
学生信息管理系统是一个学校不可缺少的部分,它的内容对于学校管理者来说是至关重要,所以学生信息管理系统应该能够为学校管理者提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理学生档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间长了,将产生大量的文件和资料,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生档案进行管理,具有手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高的效率,也是学校科学化、正规化管理的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套学生信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
1.3开发学生信息管理系统相关问题
1.3.1学生信息管理系统的简介
学生信息管理系统是针对学校学生档案管理的大量工作而开发的管理软件,并以重庆市松桥中学作为本软件的开发背景。
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成信增加。
面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。
通过这样的系统,可能做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作。
系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化。
1.4系统的实现以及相关问题
1.4.1 VisualBasic6.0总概括
VisualBasic6.0是美国Microsoft公司推出的一个可视化程序开发软件。
它是完全按照面向对象结构研制设计。
采用图形化的应用开发环境。
是面向对象开发工具的前端产品。
它与其它的开发工具软作相比,有其自己独立的特点,其主要表现在:
所见所得的界面设计;基于对象的设计方法;极短的软件开发周期;较易维护的生成代码。
在有关数据库的应用中,VisualBasic6.0具有描述多个数据库连接与检索的功能,特别是VisualBasic6.0能提供ADO(ActiveDataObjects)作为应用程序和OLE-DB连接的桥梁。
它能从大多数流行的数据库系统中提取资料,而且不管资料存放在什么地方。
另外,各种应用程序也可以独立于数据库系统运行,因而VisualBasic6.0可以使用数据库更简单。
VisualBasic6.0正在成为面向对象开发工具的标准。
它为应用开发提供了全面、综合性的支持,可以分别概括为如下几点:
1.应用程序的事件驱动
2.VisualBasic6.0语言与函数
3.面向对象的编程
4.与数据库的连接性
1.4.2实施环境与工具的比较选择
系统的实施是在系统设计的基础上,用VisualBasic6进行程序设计开发。
VisualBasic6是新一代的程序语言,它提供了开发MicrosoftWindows(R)应用程序的最迅速、最简捷的方法。
与系统管理系统常用的开发工具PowerBuilder相比,Visualbasic6主要有以下优势:
1.支持ADO(ActiveX数据对象):
这项新的数据访问技术的特性包括:
更简单的对象模型;与其它Microsoft和非Microsoft的技术更好的集成;为本地和远程数据数据提供的通用接口;可远程访问的和断开的记录集;用户可访问的数据绑定接口;以及层次结构的记录集。
2.完整的编程语言:
同PowerBuilder只提供脚本不同,VisualBasic6提供了一套完整的编程结构和语言元素。
丰富的数据类型也提高了程序的性能。
2.用对象编程:
VisualBasic6是一种基于对象的编程语言。
VisualBasic6使得对象的使用变得很容易,它使在程序性编码和使用对象的程序设计之间进行平稳转换成为可能。
1.4.3编程环境、工具、实现与数据准备概况
本系统是在VisualBasic6自带的IDE下开发,数据库设计工具使用了SQLServer2000。
所有开发工具都是在Windows2000操作系统使用,并考虑了系统程序在其他Windows版本操作系统下运行的要求。
程序代码是以对象的观点来编写,整个系统所有的基本功能都封装在4个对象中,系统的功能实现都是通过调用这4个对象提供的接口实现。
这样便提高了程序代码的模块化,有助于程序代码的调试及以后的功能扩展。
1.4.4学校管理者对学生信息管理系统的需求
1.4.4.1总体功能需求
学生信息管理系统是针对学校管理的大量工作,用计算机进行全面现代化管理。
主要包括成绩信息管理、课程信息管理、班级信息管理、学籍信息管理和系统管理等几个方面的功能,以实现学校管理者方便的输入、查询、修改和删除等工作需求。
1.4.4.2具体系统功能需求描述
◇有关学籍等信息的输入,包括学生基本信息、所在班级、所学课程和成绩表等。
◇学生信息的查询,包括学生基本信息、所在班级、已学课程和成绩等。
◇学生信息的修改。
◇班级管理信息的输入,包括班级设置、年级信息等。
◇班级管理信息的查询。
◇班级管理信息的修改。
◇学校基本课程信息的输入。
◇基本课程信息的修改。
◇学生课程的设置和修改。
◇学生成绩信息的输入。
◇学生成绩信息的修改。
◇学生成绩信息的查询。
◇学生成绩信息的统计。
1.5学生信息管理系统功能模块设计、数据库的设计和功能实现
1.5.1学生信息管理系统的功能模块设计
通过对上述的各项系统功能进行集中、分块,按照程序设计的要求,得到如图2-1所示的系统功能模块图。
1.5.2数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,图2-1
保证数据的完整和一致。
同时,合理的数据库结构也将有利于程序的实现。
图2-1
1.5.2.1数据库需求分析
用户的需求体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
在仔细分析调查有关学生信息需要的基础上,将得到如图2-2本系统所处理的数据流程。
图2-2
针对一般学生信息管理系统的需求,通过对学生学习过程的内容和数据流程分析,设计
如下所示的数据项和数据结构:
◇学生基本信息:
包括的数据项有:
学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭住址、备注等。
设计结果如下表:
student_Info学生基本信息表
列名
数据类型
可否为空
说明
student_ID
Int(4)
NOTNULL
学生学号(主键)
student_Name
CHAR(10)
NULL
学生姓名
student_Gender
CHAR
(2)
NULL
学生性别
Born_Date
DATETIME(8)
NULL
出生日期
Class_NO
INT(4)
NULL
班号
Telt_Number
CHAR(10)
NULL
联系电话
Ru_date
DATETIME(8)
NULL
入校日期
Address
VARCHAR(50)
NULL
家庭住址
Comment
VARCHAR(200)
NULL
注释
◇班级信息:
包括的数据项有:
班号、所在年级、班主任姓名、所在教室等。
设计结果如下表:
class_info班级信息表格
列名
数据类型
可否为空
说明
Class_NO
INT(4)
NOTNULL
班号(主键)
Grade
CHAR(10)
NULL
年级
Director
CHAR(10)
NULL
班主任
Classroom_no
CHAR(10)
NULL
教室
◇课程基本信息:
包括的数据项有:
课程号、课程名称、课程类别、课程描述等。
设计结果如下表:
course_info课程基本信息表
列名
数据类型
可否为空
说明
Course_NO
INT(4)
NOTNULL
课程编号(主键)
Course_name
CHAR(10)
NULL
课程名称
Course_type
CHAR(10)
NULL
课程类型
Course_des
CHAR(10)
NULL
课程描述
◇课程设置信息:
包括的数据项有:
年级信息、所学课程等。
设计结果如下表:
gradecourse_info课程设置表
列名
数据类型
可否为空
说明
grade
CHAR(10)
null
年级
Course_name
CHAR(10)
null
课程设置
◇学生成绩信息:
包括的数据项有:
考试编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。
Result_info学生成绩信息表
列名
数据类型
可否为空
说明
Exan_NO
CHAR(10)
NOTNULL
考试编号
Student_ID
INT(4)
NOTNULL
学生学号
Student_Name
CHAR(10)
NULL
学生姓名
Class_NO
Int(4)
NULL
学生班号
Course_Name
CHAR(10)
NULL
课程名称
result
FLOAT(8)
NULL
分数
User_info系统用户表
列名
数据类型
可否为空
说明
User_id
CHAR(10)
NOTNULL
用户名称(主键)
User_PWD
CHAR(10)
NULL
用户密码
User_des
CHAR(10)
NULL
用户描述
有了如上的数据结构、数据项和数据流程,我们就能进行数据库设计。
1.5.2.2数据库概念结构设计
根据前面的设计规划出的实体有:
学生实体、班级实体、年级实体、年级实体、课程实体。
各个实体
的具体描述E-R图如下:
图2-3图2-4
其中,图2-3为学生实体E-R图,图2-4为班级实体E-R图。
图2-5图2-6
图2-5为课程实体E-R图,图2-6为年级实体E-R图。
实体和实体之间的关系如图2-7所示。
1.5.2.3数据库逻辑结构设计
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,形成数据库的表格以及各个表格之刘的关系。
1.5.2.4数据库结构的实现
经过需求分析和概念结构设计之后,得到数据库的逻辑结构。
现在在SQLServer2000数据库系统中实现该逻辑结构,利用SQLServer2000数据库系统中的SQL查询分析器来实现。
创建系统用户表格user_Info的SQL语句如下:
CREATETABLE[dbo].[user_Info](
[user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,
[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
1.6学生信息管理系统的具体实现
上面的的SQL语句在SQLServer2000中的查询分析器中执行后,将产生所需要的表格,下面将使用VisualBasic6.0来编写数据库系统的客户端程序。
1.6.1学生信息管理系统主窗体的创建
在本系统开发中,我们使用MDI(即多文档界面),这样可以使程序更加的美观、整齐有序。
学生信息管理系统的主窗体如图4-1所示。
1.6.1.1创建公用模块
在VisualBasic中可以用公用模块来存放整个工程项目公用的函数、全局变量等。
整个项目中的优任何地方都可以调用公用模块中的函数,这样就可以极大地提高代码的效率。
由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公用的数据操作函数,用以执行各种SQL语句。
添加函数ExecuteSQL,代码如下:
PublicFunctionExecuteSQL(ByValSQL_
AsString,MsgStringAsString)_
AsADODB.Recordset
'executesSQLandreturnsRecordset
DimcnnAsADODB.Connection
DimrstAsADODB.Recordset
图4-1程序主窗体
DimsTokens()AsString
OnErrorGoToExecuteSQL_Error
sTokens=Split(SQL)
Setcnn=NewADODB.Connection
cnn.OpenConnectString
IfInStr("INSERT,DELETE,UPDATE",_
UCase$(sTokens(0)))Then
cnn.ExecuteSQL
MsgString=sTokens(0)&_
"querysuccessful"
Else
Setrst=NewADODB.Recordset
rst.OpenTrim$(SQL),cnn,_
adOpenKeyset,_
adLockOptimistic
'rst.MoveLast'getRecordCount
SetExecuteSQL=rst
MsgString="查询到"&rst.RecordCount&_
"条记录"
EndIf
ExecuteSQL_Exit:
Setrst=Nothing
Setcnn=Nothing
ExitFunction
ExecuteSQL_Error:
MsgString="查询错误:
"&_
Err.Description
ResumeExecuteSQL_Exit
EndFunction
ExecuteSQL函数共有两个参数:
SQL和MsgString。
其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。
函数执行时,首先判断SQL语句中包含的内容:
当执行查询操作时,MsgStringSQL函数将返回一个与函数同名的记录集对象(Recordset),所有满足条件的记录包含在对象中;当执行如删除、更新、添加等操作时,不返回记录对象。
在MsgStringSQL函数中使用了ConnectString函数,这个函数用来连接数据库,代码如下:
PublicFunctionConnectString()_
AsString
'returnsaDBConnectString
ConnectString="FileDSN=studentinfo.dsn;UID=sa;PWD="
EndFunction
由于在后面的过程中,需要频繁检查各促文本框的内容是否为空,这里还需要定义Testtxt函数代码,代码如下:
PublicFunctionTesttxt(txtAsString)AsBoolean
IfTrim(txt)=""Then
Testtxt=False
Else
Testtxt=True
EndIf
EndFunction
由于学生信息管理系统启动后,需要对用户进行判断。
如果登陆者是授权用户,将进入系统,否则停止程序的执行。
这个判断在系统运行的最初进行,因此代码应该放在公手模块中。
代码如下:
SubMain()
DimfLoginAsNewfrmLogin
fLogin.ShowvbModal
IfNotfLogin.OKThen
'LoginFailedsoexitapp
End
EndIf
UnloadfLogin
SetfMainForm=NewfrmMain
fMainForm.Show
EndSub
过程Main将在系统启动时首先执行,保证对用户的管理。
系统需要知道登陆用户的信息,定义全局变量UserName。
PublicUserNameAsString
1.6.2系统用户管理模块
系统用户管理模块主要实现:
◇用户登陆
◇添加用户
◇修改用户密码
1.6.2.1用户登陆窗体的创建
系统启动后,将首先出现如图6-2所示的用户登陆窗体,用户首先输入用户名,然后输入密码。
如果连续3次输入密码不正确,将退出程序。
图6-2
用户登陆窗口中放置了两个文本框(TextBox),用来输入用户名和密码;两个按钮(CommanmdButton)用来确定和取消登陆;四个标签(Label)用来标示窗体的信息。
并为之设置属性。
1.6.2.2添加用户窗体的创建
进入系统后,选择菜单”系统—添加用户”就可以添加用户,出现如图6-3所示的窗体。
这个窗体中放置了3个文本框,用来输入用户和密码;两个按钮用来确定是否添加用户;3个标签用来标示文本框的提示。
图6-3
1.6.2.3修改用户密码窗体的创建
用户可以修改自己的密码,选择菜单“系统—修改密码”出现如图6-4所示的窗体。
图6-4
1.6.3学籍管理模块的创建
学籍管理模块主要实现如下功能:
◇添加党籍信息
◇修改学籍信息
◇查询学籍信息
1.6.3.1添加学籍信息窗体的创建
选择“学籍管理—添加学籍信息”菜单,将出现图6-5所示的窗体。
图6-5
1.6.3.2修改学籍信息窗体的创建
选择“学籍管理--修改学籍信息”菜单,将出现如图6-6所示的窗体。
本修改学籍窗口,不但能够修改学籍信息而且能够查看相关的学知信息。
当窗口中出现某一学生的学籍信息后,可以点“上一条记录”、“下一条记录”、“第一条记录”和“最后一条记录”来分别查找相关记录。
由于查找课程信息和班级信息等窗口中与此大致相同,以下不再累述。
图6-6
1.6.3.3查询学籍信息窗口
选择“学籍管理—查询学籍信息”菜单。
将出现如图6-7所示的窗体,在这里可以按照各种组合方式进行查询。
图6-7
1.6.4班级管理模块的创建
班级管理模块主要实现如下功能:
◇添加班级信息
◇修改班级信息
1.6.4.1添加班级信息窗口模块
进入系统后,选择“班级管理—添加班级信息”菜单,将出现如图6-8所示的窗体。
图6-8
1.6.4.2修改班级信息窗体的创建
进入系统后,选择“班级管理—修改班级信息”菜单,将出现如图6-9所示的窗体。
图6-9
1.6.5课程设置模块的创建
课程设置模块主要实现如下功能:
◇添加课程信息
◇修改课程信息
◇设置年级课程
1.6.5.1添加课程信息窗体的创建
选择“课程设置—添加课程信息”菜单,将出现如图6-10所示的窗体。
图6-10
1.6.5.2修改课程信息窗口的创建
选择“课程设置—修改课程信息”菜单,将出现如图6-11所示的窗体。
图6-11
1.6.5.3设置年级课程表
选择“课程设置—设置年级课程”,将出现如图6-12所示的窗体。
图6-11
1.6.6成绩管理模块的创建
成绩管理模块主要实现以下功能:
◇添加成绩信息
◇修改成绩信息
◇查询成绩信息
1.6.6.1添加成绩信息窗体的创建
选择“成绩管理—添加成绩信息”菜单,将出现如图6-12所示的窗体。
图6-12
1.6.6.2修改成绩信息窗体的创建
选择“成绩管理—修改成绩信息”菜单。
将出现如图6-13所示的窗体。
图6-13
1.6.6.3
查询成绩信息窗体
选择“成绩管理—查询成绩信息”菜单。
将出现如图6-14所示的窗体。
图6-14
1.6.7帮助模块的设计
一个良好的WINDOWS应用程序应该提供一个ABOUT窗口,基中包括系统的名称、所有权等。
学生信息管理系统的ABOUT窗口如图6-15。
图6-15
1.7系统测试概况
鉴于本系统规模不是很大,因此系统的测试主要集中在4个封装基本功能的对象的代码测试和最后系统的总体测试。
代码测试主要是测试对象提供的接口运行是否正常,测试运行结果是否与期望相同。
以及对象的接口的容错性。
总体测试主要是测试整个系统的运行正确性、可靠性和稳定性,其中正确性最主要。
总体测试的内容包括使用本系统进行大量数据的录入,特别是边缘数据的录入测试。
其次测试系统的查询和打印功能,测试其结果是否与预期相符。
由于测试项目内容较多,无法在此一一罗列,故将几个在测试中发现的主要问题列出。
1.系统开发过程中与数据库的连接情况出现问题
由于一开始没有注意到数据库连接的相关问题,所以在刚开始开发的过程中,比如一输入用户名和密码的时候,就出现错误,这是由于在与数据库的连接中出现了问题。
通过对代码的单步跟踪及有关文档,以及指导教师的指导,找到了错误的原因。
经过调整某些参数以后,操作运行正常。
2.ComboxBox的使用
在程序许多对话框中都要用到改变一个ComboBox的选择项,其他的相关ComboBox的内容要进行相应的改变,如在学院的ComboBox中选定了某个年级,则相应的专业ComboBox的内容应变为这个学院的专业项。
开始,这一更新相关ComboBox的代码是放在ComboBox的Change事件中,认为Comb