VB学生学籍管理系统Word下载.docx
《VB学生学籍管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《VB学生学籍管理系统Word下载.docx(58页珍藏版)》请在冰豆网上搜索。
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本文介绍了在VisualBasic6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。
通过分析访客管理的不足,创建了一套行之有效的计算机管理学生的方案。
文章介绍了访客管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;
系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;
系统实现部分说明了几个主要模块的算法,本系统面友好,操作简单,比较实用。
关键词:
SQL2000server,VB程序设计,软件工程
第一章系统需求分析
伴随社会的高速发展,全国各高校的学生数量一直在增加,在这样的形式下,必须要求学校有一种高效有序的方法来管理学生的信息。
通过调查,要求系统需要有以下功能:
⑴由于操作人员的计算机知识普遍较差,要求有良好的人机界面;
⑵由于该系统的使用对象多,要求有较好的权限管理;
⑶原始数据修改简单方便,支持多条件修
⑷方便的数据查询,支持多条件查询;
⑸在相应的权限下,删除数据方便简单,数据稳定性好;
⑹数据计算自动完成,尽量减少人工干预;
第二章可行性分析
由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。
因此,比较适合于采用数据库管理。
在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
本系统的设计是在Windowsxp操作系统环境下,使用VisualBasic6.0中文版开发成功的。
数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,本系统选用的数据库语言介绍如下:
VisualBasic具有以下特点:
(1)可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。
如果对界面的效果不满意,还要回到程序中修改有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。
VisualBasic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。
只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。
VisualBasic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。
(2)面向对象的程序设计
4.0版以后的VisualBasic支持面向对象的程序设计,是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。
在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VisualBasic自动生成对象的程序代码并封装起来。
每个对象以图形方式显示在界面上,都是可视的。
第三章系统设计
1.系统功能分析
系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。
学生管理系统需要完成的功能主要有:
●学生信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。
●学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩等。
●学生信息的修改。
●班级管理信息的输入、查询、修改,包括输入班级设置,年级信息等。
●基本课程信息的输入、查询、修改。
●学生成绩信息的输入、查询、修改。
对上述各功能进行集中、分块、按照结构化程序设计的要求。
图3-1系统功能模块图
2.系统流程图
图3-2系统流程图
第四章、数据库设计
1.数据库需求分析
●用户信息:
包括的数据项有:
用户名、密码、用户描述。
●学生基本信息:
学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭地址、备注等。
●班级信息:
班号、所在年级、班主任姓名、所在教室等。
●课程基本信息:
课程号、课程名称、课程类别、课程描述等。
●课程设置信息:
年级信息、所学课程等。
●学生成绩信息:
考试编号、所在班号、学生学号、学生
姓名、所学课程、考试分数等。
图4-1学生管理系统数据流程图
2.数据库概念结构设计
本系统的实体有:
学生实体、班级实体、年级实体、课程实体。
各个实体具体的描述E-R图如图下所示。
图4-2学生实体E—R图
图4-3班级实体E—R图
图4-4课程实体E—R图
图4-5年级实体E—R图
图4-6实体之间关系E—R图
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
学生管理系统数据库中各个表格的设计结果如下面的几个表所示。
每个表表示在数据库中的一个数据表
表4-1student-info学生基本信息表
表4-2class-info班级基本信息表
表4-3course-info课程基本信息表
表4-4gradecourse-info年级课程设置表格
表4-5result-info学生成绩基本信息表
表4-6user-info系统用户表
3.数据库结构的实现
经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。
就可以在SQLServr2000数据库系统中实现该逻辑结构,利用SQLServer2000数据库系统中SQL查询分析器实现的。
(1)创建系统用户表格user_info
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]
GO
(2)创建学生基本信息表格student_info
CREATETABLE[dbo].[student_Info](
[student_ID][int]NOTNULL,
[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[student_Sex][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[born_Date][datetime]NULL,
[class_NO][int]NULL,
[tele_Number][char](10)COLLATEChinese_PRC_CI_ASNULL,
[ru_Date][datetime]NULL,
[address][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[comment][varchar](200)COLLATEChinese_PRC_CI_ASNULL
(3)创建班级信息表格class-info
CREATETABLE[dbo].[class_Info](
[class_No][int]NOTNULL,
[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,
[director][char](10)COLLATEChinese_PRC_CI_ASNULL,
[classroom_No][char](10)COLLATEChinese_PRC_CI_ASNULL
(4)创建课程基本信息表格course-info
CREATETABLE[dbo].[course_Info](
[course_No][int]NOTNULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Type][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Des][char](50)COLLATEChinese_PRC_CI_ASNULL
(5)创建年级课程设置信息表gradecourse-info
CREATETABLE[dbo].[gradecourse_Info](
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL
(6)创建学生成绩信息表result-info
CREATETABLE[dbo].[result_Info](
[exam_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[class_No][int]NULL,
[result][float]NULL
第五章、详细设计
1主窗体的创建
上面的SQL语句在SQLServer2000中查询分析器执行后,将自动产生需要的所有表。
有关数据库结构的所有后台工作已经完成。
现在将通过学生管理系统中各个功能模块的实现,来编写数据库系统的客户端程序。
1.创建工程项目——Student-MIS
为了用VisualBasic创建应用程序,应当使用工程。
一个工程是用来建造应用程序的文件的集合,它包括:
●跟踪所有部件的工程文件(.vbp)。
●每个窗体的文件(.frm)。
●每个窗体的二进制数据文件(.frx),它含有窗体上控件的属性数据。
对含有二进制属性的任何.frm文件都是不可编辑的,这些文件都是自动产生的。
●每个类模块的一个文件(.cls),该文件是可选项。
●每个标准模块的一个文件(.bas),该文件是可选项。
●一个或多个包含ActiveX控件的文件(.ocx),该文件是可选项。
●单个资源文件(.res),该文件是可选项。
启动VisualBasic后,单击File|NewProject菜单,如图所示的工程模块中选择StandardEXE,VisualBasic将自动产生一个Form窗体,属性都是缺省设置。
这里我们删除这个窗体,单击File|NewProject菜单,将这个工程项目命名为Student-MIS。
如图5-1:
创建Student-MIS项目
2.创建主窗体
VisualBasic创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。
在SDI的程序中,每个窗体之间是独立的。
而MDI的程序中,有一个窗体是主窗体,可以包含其她窗体,它的类型是MDIForm。
本系统采用多文档界面,这样可以使程序更加美观,整齐有序。
单击工具栏的“ADDMDIForm”按钮,生成一个如下所示的窗体,
图5-2程序主窗体
创建主窗体的菜单:
图5-3主窗体中菜单结构
3.创建公用模块
在VisualBasic中可以用共用模块来存放整个工程项目公用的函数、全局变量等。
整个工程项目中的任何地方都可以调用公用模块中的函数、变量,这样可以极大地提高代码的效率。
在项目资源管理器中为项目添加一个Module,保存为Module.bas。
下面就可以开始添加需要的代码。
由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公共的数据操作函数,用以执行各种SQL语句。
添加函数ExecuteSQL,代码如下:
PublicFunctionExecuteSQL(ByValSQL_
AsString,MsgStringAsString)_
AsADODB.Recordset
'
传递参数SQL查询语句,MsgString传递查询信息
自身以一个数据集对象的形式返回
DimCNnAsADODB.Connection
定义连接
DimrstAsADODB.Recordset
定义字符串
DimsTokens()AsString
异常处理
OnErrorGoToExecuteSQL_Error
用Split函数产生一个包含各个子串的数组
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:
查询错误:
"
Err.Description
ResumeExecuteSQL_Exit
EndFunction
ExecuteSQL函数有两了参数:
SQL和MsgString。
其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。
函数执行时,首先判断SQL语句中包含的内容。
当执行查询操作时,ExecuteSQL函数将返回一个与函数同名的记录名对象(Recordset),所有满足条件的记录包含在对象中。
当执行如删除、更新、添加等操作时,不返回记录集对象。
在ExecuteSQL函数中使用ConnectString函数,这个函数用来连接数据库,代码如下:
PublicFunctionConnectString()_
AsString
返回一个数据库连接
ConnectString="
FileDSN=studentinfo.dsn;
UID=sa;
PWD="
由于在后面的程序中,需要频繁检查各种文本框的内容是否为空,这里定义了Testtxt函数,代码如下:
PublicFunctionTesttxt(txtAsString)AsBoolean
IfTrim(txt)="
Then
Testtxt=False
Testtxt=True
由于学生管理系统启动后,需要对用户进行判断。
如果登录者是授权用户,将进入系统,否则将停止程序的执行。
这个判断需要在系统运行的最初进行,因此将代码放在公用模块中,代码如下:
PublicfMainFormAsfrmMain
PublicUserNameAsString
SubMain()
DimfLoginAsNewfrmLogin
显示登陆窗体
fLogin.ShowvbModal
判断是否授权用户
IfNotfLogin.OKThen
LoginFailedsoexitapp
End
UnloadfLogin
SetfMainForm=NewfrmMain
fMainForm.Show
EndSub
过程Main将在系统启动是首先执行,这就保证对用户的管理。
2.用户管理模块的创建
系统管理模块主要实现:
●用户登录。
●添加用户。
●修改用户密码。
1.用户登陆窗体的创建
系统启动后,将首先出现如下所示的用户登陆窗体,用户首先输入用户名,然后输入密码。
如果用户3次输入密码不正确,将退出程序。
图5-4用户登录窗体
用户登陆窗体中放置了两个文本框(TextBox),用来输入用户名和用户密码。
两个按钮(CommandButton)用来确定或者取消登陆。
2个标签(Label)用来标示窗体的信息。
为窗体定义全局变量OK,用来判断登陆是否成功。
定义miCount,用来记载输入密码的次数。
并且在载入窗体时初始化这两个全局变量,代码如下:
强制变量声明
OptionExplicit
PublicOKAsBoolean
记录确定次数
DimmiCountAsInteger
PrivateSubForm_Load()
DimsBufferAsString
DimlSizeAsLong
sBuffer=Space$(255)
lSize=Len(sBuffer)
CallGetUserName(sBuffer,lSize)
IflSize>
0Then
txtUserName.Text="
txtUserName.Text=vbNullString
OK=False
miCount=0
OptionExplicit是用来规定所有变量使用前必须定义。
这样可以避免由于输入错误而产生的新变量。
当用户输入完用户名和用户密码,单击cmdOK按钮将对用户输入信息进行判断。
用户单击该按钮,将触发按钮cmdOK的Click事件,代码如下:
PrivateSubcmdOK_Click()
用来存放SQL语句
DimtxtSQLAsString
用来存放记录集对象
DimmrcAsADODB.Recordset
用来存放返回信息
DimMsgTextAsString
UserName="
判断输入用户名是否为空
IfTrim(txtUserName.Text="
)Then
MsgBox"
没有这个用户,请重新输入用户名!
vbOKOnly+vbExclamation,"
警告"
txtUserName.SetFocus
txtSQL="
select*fromuser_Infowhereuser_ID='
txtUserName.Text&
Setmrc=ExecuteSQL(txtSQL,MsgText)
Ifmrc.EOF=TrueThen
没有这个用户,请重新输入用户名!
判断输入密码是否正确
IfTrim(mrc.Fields
(1))=Trim(txtPassword.Text)Then
OK=True
mrc.Close
Me.Hide
UserName=Trim(txtUserName.Text)
输入密码不正确,请重新输入!
txtPassword.SetFocus
txtPassword.Text="
记载输入密码次数
miCount=miCount+1
IfmiCount=3Then
ExitSub
用户如果没有输入用户名和用户密码,将出现消息框给予提示。
如果输入的用户名在用户表格中没有找到,将提示重新输入用户名,文本框txtUserName将重新获得输入焦点。
如果用户输入的密码不正确,文本框txtPassword将重新获得输入焦点。
用户登陆成功,全局变量OK将被赋值为True。
一旦三次输入密码均不正确,全局变量OK将被赋值为False。
公用模块中的Main过程将根据OK的值决定是退出,或者进入系统。
如果用户取消登陆,单击“取消”按钮,将触发按钮的Click事件,代码如下:
PrivateSubcmdCancel_Click()
2.添加用户窗体的创建
进入系统后,选择菜单“系统添加用户”就可以添加用户,出现如