VB学生学籍管理系统.docx
- 文档编号:5172247
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:58
- 大小:325.55KB
VB学生学籍管理系统.docx
《VB学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《VB学生学籍管理系统.docx(58页珍藏版)》请在冰豆网上搜索。
VB学生学籍管理系统
毕业论文(设计)
题目学生学籍管理系统
英文题目Student'sstudentstatusmanagessystem
院系信息科学与技术学院
专业计算机网络技术
姓名张羽
年级
指导教师
目录
摘要-3-
Abstract-4-
第一章系统需求分析-5-
第二章可行性分析-6-
第三章系统设计-7-
3·1.系统功能分析-7-
3·2.系统流程图-8-
第四章、数据库设计-9-
4·1.数据库需求分析-9-
4·2.数据库概念结构设计-10-
4·3.数据库结构的实现-13-
第五章、详细设计-16-
5·1主窗体的创建-16-
5·2.用户管理模块的创建-21-
5·3学籍管理模块的创建-28-
5·4班级管理模块的创建-46-
5·5课程设置模块的创建-50-
5·6成绩管理模块的创建-58-
第七章总结-63-
参考文献-64-
致谢-65-
摘要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本文介绍了在VisualBasic6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。
通过分析访客管理的不足,创建了一套行之有效的计算机管理学生的方案。
文章介绍了访客管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统面友好,操作简单,比较实用。
关键词:
SQL2000server,VB程序设计,软件工程
第一章系统需求分析
伴随社会的高速发展,全国各高校的学生数量一直在增加,在这样的形式下,必须要求学校有一种高效有序的方法来管理学生的信息。
通过调查,要求系统需要有以下功能:
⑴由于操作人员的计算机知识普遍较差,要求有良好的人机界面;
⑵由于该系统的使用对象多,要求有较好的权限管理;
⑶原始数据修改简单方便,支持多条件修
⑷方便的数据查询,支持多条件查询;
⑸在相应的权限下,删除数据方便简单,数据稳定性好;
⑹数据计算自动完成,尽量减少人工干预;
第二章可行性分析
由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。
因此,比较适合于采用数据库管理。
在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
本系统的设计是在Windowsxp操作系统环境下,使用VisualBasic6.0中文版开发成功的。
数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,本系统选用的数据库语言介绍如下:
VisualBasic具有以下特点:
(1)可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。
如果对界面的效果不满意,还要回到程序中修改有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。
VisualBasic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。
只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。
VisualBasic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。
(2)面向对象的程序设计
4.0版以后的VisualBasic支持面向对象的程序设计,是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。
在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VisualBasic自动生成对象的程序代码并封装起来。
每个对象以图形方式显示在界面上,都是可视的。
第三章系统设计
3·1.系统功能分析
系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。
学生管理系统需要完成的功能主要有:
●学生信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。
●学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩等。
●学生信息的修改。
●班级管理信息的输入、查询、修改,包括输入班级设置,年级信息等。
●基本课程信息的输入、查询、修改。
●学生成绩信息的输入、查询、修改。
对上述各功能进行集中、分块、按照结构化程序设计的要求。
图3-1系统功能模块图
3·2.系统流程图
图3-2系统流程图
第四章、数据库设计
4·1.数据库需求分析
●用户信息:
包括的数据项有:
用户名、密码、用户描述。
●学生基本信息:
包括的数据项有:
学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭地址、备注等。
●班级信息:
包括的数据项有:
班号、所在年级、班主任姓名、所在教室等。
●课程基本信息:
包括的数据项有:
课程号、课程名称、课程类别、课程描述等。
●课程设置信息:
包括的数据项有:
年级信息、所学课程等。
●学生成绩信息:
包括的数据项有:
考试编号、所在班号、学生学号、学生
姓名、所学课程、考试分数等。
图4-1学生管理系统数据流程图
4·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系统用户表
4·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
)ON[PRIMARY]
GO
(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
)ON[PRIMARY]
GO
(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
)ON[PRIMARY]
GO
(5)创建年级课程设置信息表gradecourse-info
CREATETABLE[dbo].[gradecourse_Info](
[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(6)创建学生成绩信息表result-info
CREATETABLE[dbo].[result_Info](
[exam_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[student_ID][int]NOTNULL,
[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[class_No][int]NULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[result][float]NULL
)ON[PRIMARY]
GO
第五章、详细设计
5·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:
MsgString="查询错误:
"&_
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="
EndFunction
由于在后面的程序中,需要频繁检查各种文本框的内容是否为空,这里定义了Testtxt函数,代码如下:
PublicFunctionTesttxt(txtAsString)AsBoolean
IfTrim(txt)=""Then
Testtxt=False
Else
Testtxt=True
EndIf
EndFunction
由于学生管理系统启动后,需要对用户进行判断。
如果登录者是授权用户,将进入系统,否则将停止程序的执行。
这个判断需要在系统运行的最初进行,因此将代码放在公用模块中,代码如下:
PublicfMainFormAsfrmMain
PublicUserNameAsString
SubMain()
DimfLoginAsNewfrmLogin
'显示登陆窗体
fLogin.ShowvbModal
'判断是否授权用户
IfNotfLogin.OKThen
LoginFailedsoexitapp
End
EndIf
UnloadfLogin
SetfMainForm=NewfrmMain
fMainForm.Show
EndSub
过程Main将在系统启动是首先执行,这就保证对用户的管理。
5·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=""
Else
txtUserName.Text=vbNullString
EndIf
OK=False
miCount=0
EndSub
OptionExplicit是用来规定所有变量使用前必须定义。
这样可以避免由于输入错误而产生的新变量。
当用户输入完用户名和用户密码,单击cmdOK按钮将对用户输入信息进行判断。
用户单击该按钮,将触发按钮cmdOK的Click事件,代码如下:
PrivateSubcmdOK_Click()
'用来存放SQL语句
DimtxtSQLAsString
'用来存放记录集对象
DimmrcAsADODB.Recordset
'用来存放返回信息
DimMsgTextAsString
UserName=""
'判断输入用户名是否为空
IfTrim(txtUserName.Text="")Then
MsgBox"没有这个用户,请重新输入用户名!
",vbOKOnly+vbExclamation,"警告"
txtUserName.SetFocus
Else
txtSQL="select*fromuser_Infowhereuser_ID='"&txtUserName.Text&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
Ifmrc.EOF=TrueThen
MsgBox"没有这个用户,请重新输入用户名!
",vbOKOnly+vbExclamation,"警告"
txtUserName.SetFocus
Else
'判断输入密码是否正确
IfTrim(mrc.Fields
(1))=Trim(txtPassword.Text)Then
OK=True
mrc.Close
Me.Hide
UserName=Trim(txtUserName.Text)
Else
MsgBox"输入密码不正确,请重新输入!
",vbOKOnly+vbExclamation,"警告"
txtPassword.SetFocus
txtPassword.Text=""
EndIf
EndIf
EndIf
'记载输入密码次数
miCount=miCount+1
IfmiCount=3Then
Me.Hide
EndIf
ExitSub
EndSub
用户如果没有输入用户名和用户密码,将出现消息框给予提示。
如果输入的用户名在用户表格中没有找到,将提示重新输入用户名,文本框txtUserName将重新获得输入焦点。
如果用户输入的密码不正确,文本框txtPassword将重新获得输入焦点。
用户登陆成功,全局变量OK将被赋值为True。
一旦三次输入密码均不正确,全局变量OK将被赋值为False。
公用模块中的Main过程将根据OK的值决定是退出,或者进入系统。
如果用户取消登陆,单击“取消”按钮,将触发按钮的Click事件,代码如下:
PrivateSubcmdCancel_Click()
OK=False
Me.Hide
EndSub
2.添加用户窗体的创建
进入系统后,选择菜单“系统添加用户”就可以添加用户,出现如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 学生 学籍 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)