VB实训 报告.docx
《VB实训 报告.docx》由会员分享,可在线阅读,更多相关《VB实训 报告.docx(30页珍藏版)》请在冰豆网上搜索。
VB实训报告
扬州工业职业技术学院实习报告
实习项目:
VB实训
实习地点:
教学楼C402
实习时间:
10/12/20~10/12/31
系部:
经济管理系
班级:
0901电子商务
姓名:
夏云
学号:
0909030137
指导教师:
范爱华
Ⅰ系统设计
在每个学校的一般日常工作中都需要一套学生信息管理系统,以便于对学校的学生进行管理。
因此,开发制作学生信息管理系统具有较大的社会现实意义,同时,学生信息管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,它具有典型的数据库应用系统的特征,往往是数据库应用开发中经常进行例证的好例子,它的开发应用简单,而又不失一般性。
在本课题中包括学生信息管理、课程管理、数据备份、用户信息管理和退出系统等主要功能模块,全面系统地实现了学生信息管理系统的功能。
一、系统功能描述
系统开发的总体任务是实现学生信息关系的系统化、规范化和自动化,以此来提高学校的工作效率。
本系统所述的学生信息管理系统的主要功能包括:
1、学生基本资料管理功能
●添加学生信息。
●查询学生信息。
●修改学生信息。
●删除学生信息。
2、学生成绩管理功能
●添加学生成绩信息。
●查询学生成绩信息。
●修改学生成绩信息。
●删除学生成绩信息。
3、课程管理功能
●添加学生成绩信息。
●查询学生成绩信息。
●修改学生成绩信息。
●删除学生成绩信息。
4、数据信息备份功能
●数据信息备份功能主要是完成学生基本资料信息、学生成绩资料信息、课程资料信息和用户信息的备份。
5、系统管理功能
●用户信息管理。
●用户密码管理。
●用户权限管理
6、退出系统功能
二、功能模块划分
本系统高级用户可以实现5个完整的功能,普通用户实现3个完整的功能。
根据这些功能,设计出系统的功能模块,如图所示
在功能模块示意图的树状结构中,每一个叶子结点都是一个最小的功能模块,都是对数据库进行相应的操作,即添加记录、修改记录、删除记录以及查询显示记录信息。
三、系统流程分析
系统流程,就是指用户在使用系统时的工作过程。
本系统的流程分析,如下图所示。
Ⅱ数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高存储的效率,保证数据的完整性和一致性。
另外,合理的数据库结构将非常有利于程序的实现。
一、数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能够充分满足各种信息的输入和输出。
收集基本数据、数据结构和数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础,设计如下所示的数据项:
●学生基本信息:
学号(是必填字段)、姓名、性别、年龄、家庭住址。
●学生成绩表基本信息:
学号(是必填字段)、课程号、成绩。
●课程表基本信息:
学课程号(是必填字段)、课程名。
●数据备份:
备份用户输入的数据,防止丢失。
●系统管理:
给用户提供添加用户和修改密码的功能。
字段包括:
用户名(是必填字段)、密码(是必填字段)和权限(是必填字段)。
一、数据库逻辑结构
数据库包含以下5个表:
学生基本资料表、学生成绩表、班级情况表、用户表和课程表。
●学生基本资料表用来保存学生的基本信息。
●学生成绩表用来保存学生成绩的基本信息。
●班级情况表用来保存班级的基本信息。
●课程表用来保存学生课程的基本信息。
●用户表用来保存用户名、密码和权限的基本信息。
学生基本资料表表的结构下表所示:
字段名称
数据类型
字段属性
字段大小
标题
必填字段
索引
学号
文本
50
学号
是
有
姓名
文本
50
姓名
否
无
性别
文本
50
性别
否
无
班级号
文本
50
班级号
否
无
年龄
文本
50
年龄
否
无
家庭地址
文本
50
家庭地址
否
无
Ⅲ系统主窗体的建立:
一、系统的主窗体
系统的主窗体完成的功能如下:
当单击“学生基本资料管理”标签时,弹出“学生基本资料管理”窗体,进行“学生基本资料管理”。
当单击“课程管理”标签时,弹出“课程管理”窗体,进行“课程管理”。
当单击“学生成绩管理”标签时,弹出“学生成绩管理”窗体,进行“学生成绩管理”。
当单击“用户管理”标签时,弹出“用户管理”窗体,进行“用户管理”。
当单击“数据信息备份”标签时,弹出“数据信息备份”窗体,进行“数据备份”。
当单击“退出系统”标签时,退出本系统。
Ⅳ登录模块设计
用户要使用本系统,首先必须通过系统的身份认证,这个过程叫登录。
登录过程主要就是根据用户名和密码来判断用户是否可以进入系统。
一、设计登录窗体
它由3个Label控件、2个Textbox控件和2个CommandButton控件组成。
图1登入窗体
登录窗体的代码如下:
DimnAsInteger
PrivateSubCommand1_Click()
DimsqlsAsString
n=n+1
Ifn<=3Then
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimcmdAsNewADODB.Command
DimstrdbAsString
DimstrsqlAsString
strdb="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\DocumentsandSettings\夏云\桌面\学生信息管理系统\97夏云数据表.mdb;PersistSecurityInfo=False"
strsql="select*from用户表where用户名='"&Text1&"'and密码='"&Text2&"'"
conn.Openstrdb
Setcmd.ActiveConnection=conn
cmd.CommandText=strsql
cmd.CommandType=adCmdText
rs.Opencmd,,adOpenDynamic,adLockOptimistic
Ifrs.EOF=TrueThen
Ifn=3Then
MsgBox"对不起,您无权访问该系统!
"
UnloadMe
End
EndIf
MsgBox"用户名或口令错误请重新输入!
"
Text1.Text=""
Text2.Text=""
Text1.SetFocus
ExitSub
Else
MsgBox"欢迎使用学生管理系统"
userleve1=rs.Fields("权限")'取出该用户级别
Ifuserleve1=1Then
Me.Hide
B1高级用户.Show
Else
Me.Hide
B2一般用户.Show
UnloadMe
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
当输入用户名和密码后,进入高级用户的主窗体,
图2高级用户
进入企业人事管理的主窗体后,单击鼠标左键,显示6个LABEL控件,
图3高级用户界面
在主窗体中添加代码如下:
PrivateSubForm_Click()
Label1.Visible=True
Label2.Visible=True
Label3.Visible=True
Label4.Visible=True
Label5.Visible=True
Label6.Visible=True
EndSub
PrivateSubLabel2_Click()
UnloadMe
C1成绩管理.Show
EndSub
PrivateSubLabel3_Click()
UnloadMe
C3学生信息管理.Show
EndSub
PrivateSubLabel4_Click()
UnloadMe
C2课程管理.Show
EndSub
PrivateSubLabel5_Click()
UnloadMe
C4用户管理.Show
EndSub
PrivateSubLabel6_Click()
End
EndSub
数据备份:
对于一个完整的系统,必须有数据备份功能,以便恢复错误操作时所丢失的数据,在这个函数中,用到了一个控件即commondialog控件。
PrivateSubLabel1_Click()‘数据备份
Dimfilename1,filename2AsString
OnErrorGoToA1
CommonDialog1.Filter="*.mdb|*.mdb"
CommonDialog1.ShowOpen
filename1=CommonDialog1.FileName'被备份的文件名
CommonDialog1.ShowSave'备份后的文件名
filename2=CommonDialog1.FileName
A1:
IfErr.Number=75OrErr.Number=53Then
ExitSub
Else
IfErr.Number=70Then
Iffilename1=filename2Then
MsgBox"文件已经存在,请更改文件名!
",vbOKOnly+vbExclamation
ExitSub
Else
ExitSub
EndIf
Else
FileCopyfilename1,filename2'完成备份工作
EndIf
EndIf
EndSub
Ⅶ学生基本资料模块的设计
学生基本资料模块完成的功能如下:
当单击“查询”标签控件时,进入查询信息窗体,可以查询所有学生信息。
当单击“录入”标签控件时,进入录入信息窗体,可以输入所有学生信息。
当单击“修改”标签控件时,进入修改信息窗体,可以修改所有学生信息。
当单击“删除”标签控件时,进入删除信息窗体,可以删除任一学生信息。
当单击“退出”标签控件时,可以返回上级菜单。
一、技术人才管理主窗体的建立
图4主窗体布局
学生基本资料窗体的代码如下。
PrivateSubLabel10_Click()
Me.Hide
C3C删除窗体.Show
EndSub
PrivateSubLabel12_Click()
Me.Hide
B1高级用户.Show
EndSub
PrivateSubLabel7_Click()
Me.Hide
C3A查询窗体.Show
EndSub
PrivateSubLabel8_Click()
Me.Hide
C3B录入窗体.Show
EndSub
PrivateSubLabel9_Click()
Me.Hide
C3D修改窗体.Show
EndSub
二、学生基本资料录入窗体的建立料。
图5录入窗体
学生基本资料录入窗体的代码如下。
PrivateSubCommand3_Click()
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimconnstringAsString
DimrsstringAsString
1、窗体的初始化
初始化窗体时,先建立和数据库的连接,建立一个连接之前,必须得到数据库的绝对路径,然后建立记录集对象
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\DocumentsandSettings\夏云\桌面\学生信息管理系统\97夏云数据表.mdb;PersistSecurityInfo=False"
rsstring="select*from学生基本资料表where学号='"&Text1.Text&"'"
Setrs=conn.Execute(rsstring)
IfText1=""Then
MsgBox"请输入学号!
"
Text1=""
Text1.SetFocus
ExitSub
ElseIfText2=""Then
MsgBox"请输入姓名!
"
Text2=""
Text2.SetFocus
ExitSub
ElseIfText4=""Then
MsgBox"请输入班级号!
"
Text4=""
Text4.SetFocus
ExitSub
ElseIfText3=""Then
MsgBox"请输入性别!
"
Text3=""
Text3.SetFocus
ExitSub
EndIf
Ifrs.EOF=FalseThen
MsgBox"信息重复,请重新输入"
rs.Close
Text1.SetFocus
Else
rs.Close
rsstring="select*from学生基本资料表"
rs.Openrsstring,conn,adOpenKeyset,adLockPessimistic
rs.AddNew
rs.Fields("学号").Value=Text1.Text
rs.Fields("姓名").Value=Text2.Text
rs.Fields("性别").Value=Text3.Text
rs.Fields("年龄").Value=Text4.Text
rs.Fields("班级号").Value=Text5.Text
rs.Fields("家庭地址").Value=Text6.Text
rs.Update
MsgBox"添加信息成功"
rs.Close
EndIf
conn.Close
EndSub
PrivateSubCommand4_Click()
Me.Hide
C3学生信息管理.Show
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
EndSub
当单击Command3(保存)按钮时,首先必须先判断“学号”文本框中是否为空,如果为空,则不能保存,因为“学号”是表中的关键字;其次必须判断所输入的记录是否已经存在。
代码如下。
PrivateSubCommand3_Click()
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimconnstringAsString
DimrsstringAsString
conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\DocumentsandSettings\夏云\桌面\学生信息管理系统\97夏云数据表.mdb;PersistSecurityInfo=False"
rsstring="select*from学生基本资料表where学号='"&Text1.Text&"'"
Setrs=conn.Execute(rsstring)
IfText1=""Then
MsgBox"请输入学号!
"
Text1=""
Text1.SetFocus
ExitSub
ElseIfText2=""Then
MsgBox"请输入姓名!
"
Text2=""
Text2.SetFocus
ExitSub
ElseIfText4=""Then
MsgBox"请输入班级号!
"
Text4=""
Text4.SetFocus
ExitSub
ElseIfText3=""Then
MsgBox"请输入性别!
"
Text3=""
Text3.SetFocus
ExitSub
EndIf
Ifrs.EOF=FalseThen
MsgBox"信息重复,请重新输入"
rs.Close
Text1.SetFocus
Else
rs.Close
rsstring="select*from学生基本资料表"
rs.Openrsstring,conn,adOpenKeyset,adLockPessimistic
rs.AddNew
rs.Fields("学号").Value=Text1.Text
rs.Fields("姓名").Value=Text2.Text
rs.Fields("性别").Value=Text3.Text
rs.Fields("年龄").Value=Text4.Text
rs.Fields("班级号").Value=Text5.Text
rs.Fields("家庭地址").Value=Text6.Text
rs.Update
MsgBox"添加信息成功"
rs.Close
EndIf
conn.Close
EndSub
三、学生基本资料查询窗体的建立:
图6学生基本资料查询窗体
技术人才查询窗体主要完成学生信息的查询,可根据“学号”来查询学生的信息。
当查询工作完成以后,可以返回上一级菜单。
学生基本资料查询窗体的代码如下所示。
DimrsstringAsString
DimconnAsADODB.Connection
DimrsAsADODB.Recordset
Dimrs2AsADODB.Recordset
初始化窗体时,需要建立一个连接对象和记录集对象,打开记录集以后通过绑定函数来显示,代码如下。
PrivateSubForm_Load()
rsstring="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:
\DocumentsandSettings\夏云\桌面\学生信息管理系统\97夏云数据表.mdb;PersistSecurityInfo=False"
Setconn=NewADODB.Connection
conn.CursorLocation=adUseClient
conn.Openrsstring
Setrs=NewADODB.Recordset
rs.CursorType=adOpenStatic
rs.CursorLocation=adUseClient
rs.ActiveConnection=conn
rs.Source="select*from学生基本资料表"
rs.Open
Callbind
Text1.Enabled=False
Text2.Enabled=False
Text3.Enabled=False
Text4.Enabled=False
Text5.Enabled=False
Text6.Enabled=False
EndSub
2、bind()、bind1()过程
2个绑定函数如下所示,其中bind()是让文本框和记录集关联来帮助显示原始的记录,bind1()是让文本框和记录集关联来帮助显示查询后的记录,具体代码如下。
PrivateSubbind()
SetText1.DataSource=rs
Text1.DataField="学号"
SetText2.DataSource=rs
Text2.DataField="姓名"
SetText3.DataSource=rs
Text3.DataField="性别"
SetText4.DataSource=rs
Text4.DataField="班级号"
SetText5.DataSource=rs
Text5.DataField="年龄"
SetText6.DataSource=rs
Text6.DataField="家庭地址"
EndSub
PrivateSubbind1()
SetText1.DataSource=rs2
Text1.DataField="学号"
SetText2.DataSource=rs2
Text2.DataField="姓名"
SetText3.DataSource=rs2
Text3.DataField="性别"
SetText4.DataSource=rs2
Text4.DataField="班级号"
SetText5.DataSource=rs2
Text5.DataField="年龄"
SetText6.DataSource=rs2
Text6.DataField="家庭地址"
EndSub
3、Command1_Click()过程
当进行学号查询时,先输入学号,然后进行查询。
查询后的结果存放在rs2中,显示时调用绑定函数bind1()帮助查询结果。
查询以后让“查询”按钮和“下一条记录”按钮变灰,因为查询后的结果只有惟一的一条记录,因此不需要“下一条记录”按钮来帮助显示结果。
PrivateSubCommand1_Click()
Setrs=NewADODB.Recordset
rs.ActiveConnection=conn
rs.Source="select*from学生基本资料表"
rs.Open
rs.Find"学号='"&Text7.Text&"'"
Ifrs.EOF=TrueThen
MsgBox"没有找到要查询的信息",vbOKOnly
EndIf
Callbind
EndSub
4、command2_click()过程
如果不需要查询,直接单击“下一条记录”按钮将显示下一条记录,代码如下。
PrivateSubCommand2_Click()
Ifrs.EOF=FalseThen
rs