ACCESS数据库VB编程学生信息管理系统毕业论文.docx
《ACCESS数据库VB编程学生信息管理系统毕业论文.docx》由会员分享,可在线阅读,更多相关《ACCESS数据库VB编程学生信息管理系统毕业论文.docx(90页珍藏版)》请在冰豆网上搜索。
ACCESS数据库VB编程学生信息管理系统毕业论文
ACCESS数据库VB编程学生信息管理系统毕业论文
1.概述
该信息管理系统可以说是一个综合性的学校学生管理系统,它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统等多种功能,因而具有较强的实用性和先进性。
项目开发背景:
学生信息管理系统是一个教育单位不可缺少的部分,它的容对于学校的决策者和管理者来说都至关重要,对学生来说也可以轻松的查阅自己在校的成绩以及信息等.但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:
效率低,性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机对学生信息进行管理,有着手工管理所无法比拟的优点.例如:
检索迅速,查找方便,可靠性高,存储量大,性好,寿命长,成本低等。
这些优点能够极大地提高学生信息管理的效率,方便系统管理员对学生成绩等信息的添加,修改,删除,查询,留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。
项目开发的目标:
建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平.帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规化和自动化.
项目提出的意义:
现在我国的大中专院校的学生信息管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力。
在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。
如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率。
2.需求分析
2.1系统需求:
通过调查,要求系统需要有以下功能:
⑴要求有良好的人机界面;
⑵较好的权限管理;
⑶原始数据修改简单方便,支持多条件修改;
⑷方便的数据查询,支持多条件查询;
⑸相应的权限下,删除数据方便简单,数据稳定性好;
⑹数据计算自动完成,尽量减少人工干预;
2.2可行性分析:
由于本系统管理的对象单一,都是在校学生,且每个数据容具有较强的关联性,涉及的计算过程不是很复杂。
因此,比较适合于采用数据库管理。
且学校用于学生管理的微机都是奔腾3以上的机器,在存储量、速度方面都能满足数据库运行的要求。
在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用围,因此,在选择数据库时,应考虑数据库应用的特点及适用围,本系统选用的数据库语言介绍如下:
VisualBasic是一种可视化的、面对对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。
它简单易学、效率高,且功能强大。
在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
2.3业务流程分析
图1班级管理业务流程图
图2档案管理业务流程图
图3课程管理业务流程图
图4成绩管理业务流程图
2.4数据流程分析:
数据流程图:
图5学生成绩管理系统0层数据流程图
图6学生成绩管理系统1层数据流程图
3.数据库逻辑设计
3.1软件模块结构设计
3.1.1系统方案确定
通过对系统的调研与分析,系统主要应完成的功能有:
班级管理、学生档案管理、课程管理、成绩管理、奖惩信息管理、个人信息查询等功能。
3.1.2软件结构设计
本系统在执行时,先根据不同的操作人员的需要来进行相应的模块,然后可以输入数据或者进行其它的查询或浏览等操作;总体来说,本系统属于一个事务型管理系统。
图7事务型管理模块图
3.2数据库建模
数据模型设计。
首先来做出学生成绩管理系统的E-R图,分析这个问题的实体,从系统分析可以知道,学生的成绩是由任课教师按照课程给出的,学生、课程、教师组成了这个系统的三个实体。
再分析三个实体之间的联系。
首先,这三个实体不是一个统一体,学生成绩与教师没有在联系,教师必须通过课程实体才能与学生建立联系,因而先不考虑。
课程与学生这两个实体是多对多联系;一位学生要学习多门课程,一门课程有多位学生共同学习。
而学习成绩是这两个实体“学生”和“成绩”共有的属性,
应填在二者的联系“学习”边。
因为成绩既不是学生独有的,也不是课程独有的;“学生甲70分”或“英语70分”是不完全的,说“学生甲英语70分”才是正确的,因为70分是学生甲和英语课二者共有的。
这个E-R图可画成下图。
图8学生成绩管理系统中学生与课程的E-R图
教师与课程这两个实体之间,是一对多联系;一位教师可以教多门课程,而一门课程对于学生成绩来说只能有一位教师(英语、高等数学有多位教师教,但对某个固定的学生来说只能有一位教师)。
其E-R图,如下所示。
图9一对多E-R图
教师与课程的E-R图组合到一起,得到最后的E-R图,有了E-R图,就可以设计数据库。
下图为数据模型图。
图10教师与课程的E-R图
3.3数据库逻辑设计
数据库采用了Microsoft推出的Access数据库,这是微软集成到Office中的一个桌面数据库,能够快速方便的和Office的其他套件综合使用。
由于Access具有显著的简易性和有效性,大量的桌面数据库系统都采用Access作为后台数据库。
使用Access的好处还在于,如果你的系统扩展到Client/Server模式的时候,可以使用Microsoft的数据库服务器软件SQLServer,此时,程序只需要简单的修改一下(ADO的数据源)就可以,这样,为程序的平滑扩展提供了非常有力的条件。
本系统中所涉及到的主要实体共有八个数据表:
class_Cour班级课程表:
{class_NO班级编号,course_Name课程名}
class_Form班级表:
{class_NO班级编号,class_Name班级名称,class_Teacher导员,class_Remarks备注信息}
course_Form课程表:
{course_Name课程名,course_Rem备注}
prize_Form奖惩表:
{prize_Name奖惩名称,prize_Rem备注信息}
prize_Stud学生奖惩表:
{prize_NO奖惩编号,prize_Stu奖惩学生学号,prize_Dat奖惩日期,prize_Nam奖惩名称}
score_Form成绩表:
{score_NO成绩号,score_Per考试期号,score_Cla学生班号,
score_Stu学生编号,score_Cou考试课程,score_Sco考试分数}
student_Form学籍表:
{student_NO学号,student_Name,student_Sex性别,student_Bir出生日期,student_Cla学生编号,student_Tel练习,student_Esd入学日期,student_Add家庭住址,student_Rem备注信息}
user_Form用户表:
{user_ID用户名称,user_PWD用户密码,user_DATE创建日期}
3.4数据库的物理设计
表1班级课程表(class_Cour)
字段名称
数据类型
字段大小
允许空字符串
班级编号class_NO
文本
20
否
课程名course_Name
文本
20
否
表2班级表(class_Form)
字段名称
数据类型
字段大小
允许空字符串
班级编号class_NO
文本
20
否
班级名称class_Name
文本
10
否
导员class_Teacher
文本
10
否
备注信息class_Remarks
文本
60
表3课程表(course_Form)
字段名称
数据类型
字段大小
允许空字符串
课程名course_Name
文本
20
否
备注course_Rem
备注
表4奖惩表(prize_Form)
字段名称
数据类型
字段大小
允许空字符串
奖惩名称prize_Name
文本
20
否
备注信息prize_Rem
备注
表5学生奖惩表(prize_Stud)
字段名称
数据类型
字段大小
允许空字符串
奖惩编号prize_NO
文本
14
否
奖惩学生学号prize_Stu
文本
20
奖惩日期prize_Dat
日期/时间
短日期
奖惩名称prize_Nam
文本
20
表6成绩表(Score_Form)
字段名称
数据类型
字段大小
允许空字符串
成绩号score_NO
文本
14
否
考试期号score_Per
文本
20
学生班号score_Cls
文本
20
学生编号score_Stu
文本
20
考试课程score_Cou
文本
20
考试分数score_Sco
数字
单精度型
自动(小数位)
表7学生表(student_Form)
字段名称
数据类型
字段大小
允许空字符串
学号student_NO
文本
20
否
student_Name
文本
10
性别student_Sex
文本
2
出生日期student_Bir
日期/时间
短日期
学生编号student_Cla
文本
20
联系student_Tel
文本
13
入学日期student_Esd
日期/时间
短日期
家庭住址student_Add
文本
60
备注信息student_Rem
备注
表8user_Form用户表
字段名称
数据类型
字段大小
允许空字符串
用户名称user_ID
文本
20
否
用户密码user_PWD
文本
10
创建日期user_DATE
日期/时间
短日期
4.软件功能设计
图11功能模块图
4.1系统管理模块
该模块的主要任务是维护系统的正常运行和安全性设置,包括添加用户、修改密码、删除用户等等。
修改:
PrivateSubCommand2_Click()
Text1(0)=""
Text1
(1)=""
Text1
(2)=""
EndSub
Setmrc=ExecuteSQL(txtSQL,MsgText)
txtSQL="select*fromuser_Form"
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.AddNew
mrc.Fields(0)=Trim(Text1(3))
mrc.Fields
(1)=Trim(Text1(5))
mrc.Fields
(2)=Now
mrc.Update
mrc.Close
Fori=3To6
Text1(i)=""
Next
MsgBox"用户信息修改成功!
",vbOKOnly,"提示"
EndSub
4.2班级管理模块
该模块的功能是实现对全校班级的管理工作,包括:
班级游览、班级添加、班级修改等,这三个功能模块各自独立,完成学校的全部班级的管理。
PrivateSubCommand5_Click()
txtSQL="deletefromclass_Formwhereclass_NO='"&Trim(Text1(8))&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
Fori=8To11
Text1(i)=""
Next
MsgBox"班级信息以经删除!
",vbOKOnly,"警告"
ShowData
EndSub
4.3学生学籍管理模块
该模块的主要功能是实现对学生的个人信息的管理工作,包括学籍添加、学籍查询、学籍修改等功能,从而方便学校管理部门对学校的基本情况的快速查询和了解。
4.4课程管理模块
该模块对各个班级的课程进行设置,并可在其中设置各门课程的教材选用情况,方便了学校教材管理部门和教务处的教学管理人员的工作。
该模块包括基本课程设置和班级课程设置两个模块。
PrivateSubCommand2_Click()
DimtxtSQLAsString
IfList2.Text<>""Then
txtSQL="deletefromcourse_Formwherecourse_Name='"&Trim(List2.Text)&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
MsgBox"课程信息已经删除!
",vbOKOnly,"提示"
List2Text
EndIf
EndSub
4.5成绩管理模块
学校的成绩管理工作是检验学生学习情况的一个主要手段,本模块包括考试类型设置,共有期中考试和期未考试两种类型,还设置了成绩添加、成绩查询、成绩浏览、成绩修改等功能模块。
PrivateSubCommand7_Click()
DimjAsInteger
DimtxtSQLAsString
IfText4(0)=""Then
MsgBox"请选择要删除的纪录!
",vbOKOnly,"提示"
MSFlexGrid1.SetFocus
ExitSub
EndIf
txtSQL="Deletefromscore_Formwherescore_NO='"&Trim(Text4(0))&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
MsgBox"考试信息修改成功!
",vbOKOnly,"提示"
j=0
Fori=1ToMSFlexGrid1.Rows-1
IfMSFlexGrid1.TextMatrix(i,0)=Text4(0)Then
j=i
EndIf
4.6奖惩信息管理模块
奖惩信息是用来督促学习学习活动的一种手段,包括奖惩信息的添加和修改。
PrivateSubCommand1_Click()
DimtxtSQLAsString
mrc.Close
txtSQL="select*fromprize_Form"
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.AddNew
mrc.Fields(0)=Trim(Text1(0))
mrc.Fields
(1)=Trim(Text1
(1))
mrc.Update
mrc.Close
Text1(0)=""
Text1
(1)=""
MsgBox"奖惩信息添加成功!
",vbOKOnly,"提示"
List1Text
EndSub
4.8退出模块
此模块完成程序的退出。
5.界面设计
5.1系统登陆界面:
本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码保存在USE表中,本系统根据不同的用户而设置了不同的权限,可以用ID;PWD(大写)为用户名和密码来登陆本系统。
5.2系统主界面:
本模块是本系统的应用界面,在本界面上集成了本系统的所有功能,共有7个功能菜单,从而实现了本系统从用户管理、班级管理、学籍管理、课程管理、成绩管理、奖惩管理、个人信息查询等系统功能,同时,在系统管理模块中可以完成对本系统的安全性管理。
5.3用户管理模块:
本模块是本系统的安全性设置模块,实现了对用户帐户信息管理功能。
5.4班级信息管理模块:
班级信息管理模块用于实现班级信息的添加、删除、修改的功能。
包括班级编号,班级名称,导员,备注信息。
当对其中某个属性进行操作时,对其基本的信息进行填写完整。
否则会出现提示信息。
当班级编号,班级名称,导员为空时会自动的出现提示信息,提示某个属性列必须要填写,否则显示操作成功。
如图12所示班级信息管理模块
5.5学籍信息管理模块:
学籍信息管理模块是对学生的个人信息进行统计。
实现该模块的添加、查询、修改、删除功能。
例如点击添加时,系统弹出如图1-2所示的界面,当点击界面下方面的控件时,其所对应的位置会显示为输入形式,对信息进行输入。
输入完成后,点击添加时,系统会自动对信息进行验证,如果学号以存在时,则提示学号存在无法添加;如果除备注信息中有信息落填时,会提示某个属性列没有填写,否则提示信息添加成功,并对添加后的信息进行显示。
如图13所示学籍信息管理模块(添加功能)
5.6课程信息管理模块:
5.7成绩信息管理模块:
5.8奖惩信息管理模块:
5.9个人信息查询模块:
6.结束语
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。
因此,该系统必然会存在一些缺陷和不足。
因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
虽然网络在学生管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。
通过开发这个系统,我掌握了项目的基本开发过程,了解了的基本知识巩固了我对VisualBasic的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
7.参考文献
[1]周佩德.《数据库原理及应用》.电子工业
[2]炳文等,VISUALBASIC程序设计——数据库篇,1999
[3]光明.《VisualBasic编程实例大制作》.冶金工业
[4]红等编著,管理信息系统开发与应用,电子工业,2003
[5]软件工程,人民邮电,2002年3月第一版
[6]康博工作室,红军,王红等缟著《VisualBasic中文版高级应用与开发指南》,人民邮电,2001年4月第一版
[7]林立军,程斌,翁迪恩缟著《VisualBasic数据库开发指南》,电子科技大学,2000年2月第一版
[8]宋伟,吴建国等编著《中文VisualBasic编程基础》,北京,清华大学
8.源程序:
8.1系统登录界面:
OptionExplicit
PrivateDeclareFunctionGetUserNameLib"advapi32.dll"Alias"GetUserNameA"(ByVallpbufferAsString,nSizeAsLong)AsLong
PublicOKAsBoolean
DimtxtSQLAsString
DimmrcAsADODB.Recordset
DimMsgTextAsString
DimmiCountAsInteger
PrivateSubForm_Load()
DimiAsInteger
i=0
txtSQL="select*fromuser_Form"
Setmrc=ExecuteSQL(txtSQL,MsgText)
WithtxtUserName
DoWhileNotmrc.EOF
i=i+1
.AddItemTrim(mrc!
user_ID)
mrc.MoveNext
Loop
.ListIndex=i-1
EndWith
mrc.Close
OK=False
miCount=0
EndSub
PrivateSubcmdCancel_Click()
OK=False
Me.Hide
EndSub
PrivateSubcmdOK_Click()
txtSQL="select*fromuser_Formwhereuser_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
miCount=miCount+1
IfmiCount=3Then
Me.Hide
EndIf
ExitSub
EndSub
PrivateSubtxtPassword_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
EnterToTabKeyCode
EndSub
PrivateSubtxtPassword_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
CallcmdOK_Click
EndIf
EndSub
PrivateSubtxtUserName_Click()
txtPassword.Text=""
EndSub
PrivateSubtxtUserName_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
EnterToTabKeyCode
EndSub
8.2系统主界面:
DimiAsLong
PrivateSubForm_Load()
Label1.ForeColor=&H8000000E
Label1.FontSize=12
Label1.AutoSize=True
i=Image2.Width
EndSub
PrivateSubForm_Resize()
Image1.Top=0
Image1.Left=0
Image1.Height=Me.Height
Image1.Width