VB课设实例.docx
《VB课设实例.docx》由会员分享,可在线阅读,更多相关《VB课设实例.docx(31页珍藏版)》请在冰豆网上搜索。
![VB课设实例.docx](https://file1.bdocx.com/fileroot1/2023-1/4/761ebda3-d38b-426c-82ee-06f0ae43ee12/761ebda3-d38b-426c-82ee-06f0ae43ee121.gif)
VB课设实例
参考文献:
1.《VisualBasic6.0编程案例精解》,张路平,电子工业出版社
2.《VisualBasic6.0数据库编程思想与实践》,谭小丹,冶金工业出版社
3.《VisualBasic+Access数据库项目开发实践》,周国民,中国铁道出版社
4.MSDN
一选题的意义
1.选该题的原因
从大的方面来讲,现在我国的部分高中及其以下级别的大部分中学,学生成绩的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
我选择这个题目,希望可以在信息管理方面有所提高。
改革的总设计师邓小平同志说过“科学技术是第一生产力”,我希望能用我一年的所学编制出一个实用的程序来帮助学校进行更有效的信息管理。
从小的方面来说,我感觉这个题目和我的学校生活密切相关,我也比较熟悉该系统,更容易学到对于我vb语言学习有用的知识。
2.完成此题目用到的数据结构和知识点。
2.1数据结构:
通过可视化数据管理器可以进行数据库操作。
建立数据库:
启动可视化数据管理器,创建数据库,创建数据库表,然后编辑数据库。
2.2知识点:
Access技术:
可以开发关系数据库,数据库能汇集各种信息以供查询、存储和检索。
数据库(Database)是由一些有意义和有关系的数据(data)所组合而成。
一个数据库中,包含了许多条记录(Record),而每条记录是由多个字段(Field)所组成,不同的字段存放这不同的数据。
所以数据库的严格定义是一组相关记录的集合,而字段则是最基本的数据项,也是数据库中最小的单位。
在计算机中用来帮我们管理数据库的系统,我们称之为数据库管理管理系统(DatabaseManagementSystemDBMS)。
数据库管理系统是架构在一个或多个数据库之上,并针对数据库中的数据进行管理运用。
Access的优点在于它能使用数据表示图或自定义窗体收集信息,数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。
另外,Access允许创建自定义报表用于打印或输出数据库中的信息。
Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
结构化查询语言SQL:
结构化查询语言(StructruedQueryLauguage,SQL)是访问数据库的标准语言,使用SQL语言可以从数据库中获取数据,建立数据库和数据库对象,增加,修改数据和实现复杂的查询功能。
它是本系统实现的基础。
使用data控件访问数据库:
主要使用的是data控件和数据绑定控件编写数据库应用程序的方法。
二.系统功能简介
1.系统概述
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
面对庞大的信息量,需要有学生管理系统来提高学生管理工作的效率。
通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
2.系统的组成以及各模块的功能
系统开发的总任务是实现学生信息关系的系统化、规范化和自动化。
系统主要由五部分组成:
系统用户的管理、学生成绩的管理、学生学籍信息的管理、信息的查询,其中还包括登录界面以及成绩的统计模块。
各模块的主要功能如下:
●系统用户的管理:
实现用户的添加、删除和密码的修改
●学生学籍信息的管理:
实现学生学籍信息的添加、删除和修改。
●学生成绩的管理:
实现学生成绩的录入,删除和修改。
●学生信息的查询:
实现学生学籍的查询、成绩的查询。
●学生成绩信息的统计:
实现学生男女生人数以及不及格人数的统计。
3.系统的运行环境
系统使用环境
操作系统:
windowsxp/2000/me/98
系统支持:
visualbasic6.0及以上版本
数据库:
access
系统开发环境
操作系统:
windowsxp/2000/me/98
系统支持:
visualbasic6.0
三系统设计
1.总体结构设计
对上述各项功能进行集中、分块,按照结构化层序设计的要求,得到如下所示的系统功能功能模块图。
小型成绩管理系统
成绩查询
成绩修改
成绩录入
成绩管理
信息查询
信息修改
信息添加
学生信息
项目统计
退出系统
修改密码
添加用户
统计信息
系统管理
2.数据库设计
数据库在本成绩管理系统中占有非常重要的地位,数据库结构的好坏将直接对应用系统的效率以及实现的效率产生影响。
合理的数据库及结构设计可以提高数据存储的效率,保证数据的完整和一致。
同时合理的数据库结构也将有利于程序的实现。
设计本系统的数据库应该充分满足用户的需求。
针对一般学生管理系统的需求,通过对学生学习过程的内容的分析,设计如下面所示的数据项和数据结构
●基本信息表:
包括的字段有:
学号,姓名,性别,年龄,联系电话,家庭住址。
●成绩表:
包括的字段有:
学号,姓名,性别,年龄,高数成绩,英语成绩,计算机成绩,平均成绩。
●密码表:
包括的字段有:
用户名,密码。
●教师密码表:
包括的字段有:
用户名,密码。
⑵得到上面的数据项就可以设计出能够满足用户需求的各种实体以及他们之间的关系。
由上面的设计规划出的实体有:
用户实体、信息实体、成绩实体。
按照以上实体进行设计:
(1)打开可视化数据管理器程序
(2)建立数据库(3)创建数据库表(4)添加字段(5)生成表⑹添加内容
基本信息表
字段名称
数据类型
字段大小
学号
文本
10
姓名
文本
10
性别
文本
2
年龄
数字
2
联系电话
数字
50
班级
文本
50
家庭住址
文本
50
等。
四系统实现
现在已经完成了程序各个功能模块的创建,现在可以进行系统的实现了
1登录界面实现
第一个登陆界面选择用户类型,分为教师和学生。
具体图形及相关代码如下所示:
核心代码:
PrivateSubCommand1_Click()
dl.Hide
xsdl.Show进入学生登陆界面
EndSub
PrivateSubCommand2_Click()
dl.Hide
jsdl.Show进入教师登陆界面
EndSub
PrivateSubForm_Load()
Label1.Width=dl.ScaleWidth
Label1.Left=dl.ScaleWidth设定标签(欢迎使用成绩管理系统)的起始值
EndSub
PrivateSubTimer1_Timer()
IfLabel1.Left+Label1.Width>=0Then
Label1.Left=Label1.Left-50
Else
Label1.Left=dl.ScaleWidth使上述标签以一定的时间运动
EndIf
EndSub
学生登陆界面
核心代码如下:
PrivateSubCommand1_Click()
UserName=""
IfTrim(Text1.Text)=""Then
MsgBox"用户名不能为空,请重新输入!
",vbOKOnly+vbExclamation,"警告"‘判断输入是否为空,若是,则弹出窗体警告!
Text1.SetFocus
Else
Data1.RecordSource="select*from密码表where用户名='"&Text1.Text&"'and密码='"&Text2.Text&"'"连接数据库,查找满足条件的记录。
Data1.Refresh刷新数据库
IfData1.Recordset.BOF=TrueAndData1.Recordset.EOF=TrueThen
MsgBox"用户名或密码输入错误,请重新输入!
",vbOKOnly+vbExclamation,"警告"
Text1.SetFocus
Text2.SetFocus判断所查找的记录是否存在,即输入的用户名和密码是否匹配
Else
UserName=Text1.Text
Text2.Text=""
Me.Hide
Form4.Show若是匹配,则当前窗体隐藏,进入学生成绩查询界面。
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
EndSub“取消”按钮,使两个文本框内容为空。
PrivateSubTimer1_Timer()
IfLabel1.Left+Label1.Width>=0Then
Label1.Left=Label1.Left-50
Else
Label1.Left=dl.ScaleWidth使标签按一定的时间运动,达到电子滚动的效果。
EndIf
EndSub
教师登陆界面:
核心代码如下所示;
该界面代码与上个界面基本一致。
PrivateSubCommand1_Click()
UserName=""
IfTrim(Text1.Text)=""Then
MsgBox"用户名不能为空,请重新输入!
",vbOKOnly+vbExclamation,"警告"
Text1.SetFocus
Else
Data1.RecordSource="select*from教师密码表where用户名='"&Text1.Text&"'and密码='"&Text2.Text&"'"
Data1.Refresh
IfData1.Recordset.BOF=TrueAndData1.Recordset.EOF=TrueThen
MsgBox"用户名或密码输入错误,请重新输入!
",vbOKOnly+vbExclamation,"警告"
Text1.SetFocus
Text2.SetFocus
Else
UserName=Text1.Text
Me.Hide
main.Show
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Text2.Text=""
Text3.Text=""
EndSub
PrivateSubTimer1_Timer()
IfLabel3.Left+Label3.Width>=0Then
Label3.Left=Label3.Left-50
Else
Label3.Left=jsdl.ScaleWidth
EndIf
EndSub
PrivateSubForm_Load()
Label3.Width=jsdl.ScaleWidth
Label3.Left=jsdl.ScaleWidth
EndSub
学生成绩查询界面:
使用一个data控件,一个MSFlexgrid控件,两个命令按钮。
代码如下:
PrivateSubCommand1_Click()
End
EndSub单击“退出系统”按钮,结束程序。
PrivateSubCommand2_Click()
Me.Hide
xiugaimima.Show单击修改“密码按钮”,进入学生修改密码界面。
EndSub
PrivateSubForm_Load()
Data1.RecordSource="select*from成绩表where学号='"&xsdl.Text1.Text&"'"
Data1.Refresh
EndSub当界面载入的时候,就连接数据库,并查找出满足学号等于学生登陆窗体中的用户名的记录。
学生密码修改界面:
代码如下:
PrivateSubCommand1_Click()
IfTrim(Text1.Text)<>Trim(Text2.Text)Then
MsgBox"密码输入不正确!
",vbOKOnly+vbExclamation,"信息提示"
Text1.SetFocus
Text1.Text=""判断两次输入地密码是否一致,若不一致,则弹出警告,重新输入!
Else
Data1.RecordSource="select*from密码表where用户名='"&xsdl.Text1.Text&"'"
Data1.Refresh
Data1.Recordset.Edit
Data1.Recordset.Fields("密码")=Text1.Text
Data1.Recordset.Update
MsgBox"密码修改成功!
",vbOKOnly+vbExclamation,"修改密码"
EndIf若是一致,则连接数据库,将所输入的新密码修改并加入数据库。
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
EndSub单击“取消”按钮,将文本框清空。
PrivateSubCommand3_Click()
Me.Hide
Form4.Show单击“返回”按钮,当前窗体隐藏,学生成绩查询界面出现。
EndSub
主窗体界面:
代码如下:
PrivateSubtcxt_Click()
End单击“退出系统”按钮,结束程序。
EndSub
PrivateSubtjyh_Click()
Me.Hide
tianjiayonghu.Show单击“添加用户”按钮,当前窗体隐藏,“添加用户窗体”出现。
EndSub
PrivateSubxgmm_Click()
Me.Hide
jiaoshimimaxiugai.Show单击“修改密码”按钮,当前窗体隐藏,“教师修改密码”窗体出现。
EndSub
PrivateSubxmtj_Click()
Me.Hide
xiangmutongji.Show单击“项目统计”按钮,进入“项目统计”界面
EndSub
PrivateSubxxcx_Click()
Me.Hide
xinxichaxun.Show单击“信息查询”按钮,进入“学生信息查询”界面。
EndSub
PrivateSubxxtj_Click()
Me.Hide
xueshengxinxitianjia.Show单击“信息添加”按钮,进入“学生信息添加”界面。
EndSub
PrivateSubxxxg_Click()
Me.Hide
xinxixiugai.Show单击“信息修改”按钮,进入“学生信息修改”界面。
EndSub
PrivateSubcjcx_Click()
main.Hide
chengjichaxun.Show
EndSub单击“成绩查询”按钮,进入“成绩查询”界面。
PrivateSubcjlr_Click()
Me.Hide
chengjiluru.Show
EndSubv单击“成绩录入”按钮,进入“成绩录入”界面。
PrivateSubcjxg_Click()
Me.Hide
chengjixiugai.Show单击“成绩修改”按钮,进入成绩修改界面。
EndSub
添加用户界面:
代码如下:
PrivateSubCommand1_Click()
IfTrim(Text1.Text)=""Then
MsgBox"请输入用户名!
",vbOKOnly+vbExclamation,"信息提示"
Text1.SetFocus判断用户名是否为空,若为空,则弹出警告,输入用户名!
ExitSub
Else
Data1.RecordSource="select*from教师密码表where用户名='"&Text1.Text&"'"
Data1.Refresh
IfNotData1.Recordset.EOFThen
MsgBox"用户已存在,请重新输入用户名!
",vbOKOnly+vbExclamation,"提示信息"
Text1.SetFocus
Text1.Text="":
Text2.Text="":
Text3.Text=""
ExitSub
EndIf
EndIf若不为空,连接数据库,判断该用户名是否已经存在,若已经存在,弹出警告,重新输入!
IfTrim(Text2.Text)<>Trim(Text3.Text)Then
MsgBox"两次输入的密码不一样,请确认!
",vbOKOnly+vbExclamation,"警告"
Text2.SetFocus
Text2.Text=""
Text3.Text=""若两次输入地密码不一致,则弹出警告,确认并重新输入密码。
ExitSub
Else
WithData1
.Recordset.AddNew
.Recordset.Fields(0)=Trim(Text1.Text)
.Recordset.Fields
(1)=Trim(Text2.Text)
.Recordset.Update
EndWith
MsgBox"添加用户成功!
",vbOKOnly+vbExclamation,"添加用户"
EndIf
EndSub若上述情况均没有,则连接数据库,将输入的用户信息添加到“教师密码表”中去。
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""单击“取消”按钮,将文本框清空。
EndSub
PrivateSubCommand3_Click()
Me.Hide
main.Show单击“返回”按钮,返回到主界面。
EndSub
修改密码界面:
代码如下:
PrivateSubCommand1_Click()
IfTrim(Text1.Text)<>Trim(Text2.Text)Then
MsgBox"密码输入不正确!
",vbOKOnly+vbExclamation,"信息提示"
Text1.SetFocus
Text1.Text=""判断两次输入的密码是否一致,若不一致,弹出警告,并重新输入。
Else
Data1.RecordSource="select*from密码表where用户名='"&xsdl.Text1.Text&"'"
Data1.Refresh
Data1.Recordset.Edit
Data1.Recordset.Fields("密码")=Text1.Text
Data1.Recordset.Update若一致,连接数据库,进行修改,将所输入密码保存到数据库中去。
MsgBox"密码修改成功!
",vbOKOnly+vbExclamation,"修改密码"
EndIf
EndSub弹出“修改成功”的窗体。
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
EndSub清空文本框。
PrivateSubCommand3_Click()
Me.Hide
Form4.Show
EndSub返回主界面。
添加学生信息界面:
代码如下:
PrivateSubCommand1_Click()
IfText2.Text=""OrText3.Text=""Then
MsgBox"学号和姓名不能为空!
",vbOKOnly+vbExclamation,"警告"
ExitSub判断“学号”和“姓名”是否为空,若是,则弹出警告,重新输入!
Else
Data1.RecordSource="select*from基本信息表where学号='"&Trim(Text2.Text)&"'"
Data1.Refresh
IfData1.Recordset.BOF=FalseAndData1.Recordset.EOF=FalseThen
MsgBox"输入的学号已经存在,请重新输入!
",vbOKOnly+vbExclamation,"警告"
Text2.Text=""
Text3.Text=""
Text2.SetFocus若不为空,连接数据库,判断输入的学号是否已经存在,若存在,弹出警告,重新输入!
Else
Data1.Recordset.AddNew
Data1.Recordset.Fields(0)=Text2.Text
Data1.Recordset.Fields
(1)=Text3.Text
Data1.Recordset.Fields
(2)=text4.Text
Data1.Recordset.Fields(3)=Text5.Text
Data1.Recordset.Fields(4)=Text6.Text
Data1.Recordset.Fields(5)=Text7.Text
Data1.Recordset.Fields(6)=Text8.Text
Data1.Recordset.Update
MsgBox"添加成功!
"若不为空,且输入的学号不存在,则连接数据库,将所输入的信息添加到“基本信息表”中。
Data2.RecordSource="select*from成绩表where学号='"&Trim(Text2.Text)&"'"
Data2.Refresh
Data3.RecordSource="select*from密码表where用户名='"&Trim(Text2.Text)&"'"
Data3.Refresh
Data2.Recordset.AddNew
Data2.Recordset.Fields(0)=Text2.Text
Data2.Recordset.Fields
(1)=Text3.Text
Data2.Recordset.Update
Data3.Recordset.AddNew
Data3.Recordset.Fields(0)=Text2.Text
Data3.Recordset.Fields
(1)=Text2.Text
Data3.Recordset.Update
EndIf同时,也将输入的学号添加到“成绩表”与“密码表”中,