基于VB学生信息管理系统设计.docx
《基于VB学生信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《基于VB学生信息管理系统设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于VB学生信息管理系统设计
第一章VisualBasic概述
1.1VisualBasic语言的特点
VisualBasic语言用其设计应用程序时具有两个基本特点:
可视化设计和事件驱动编程。
(1)可视化设计:
表现在VB在设计应用于程序界面时有“所见即所得”的处理功能。
(2)事件驱动编程:
在设计应用程序时,把对象添加到窗体中,在用户与程序进行交互时,用户基本上是通过鼠标、键盘与应用程序进行交互的,那些对象就必须对鼠标和键盘操作所引发的事件做出响应,来执行一段应用程序。
1.2VisualBasic系统几个在程序应用中的常用名词
VisualBasic系统除了一般高级语言所具有的一些名词术语外,还有几个系统常用的名词。
其基本含义如下:
视窗是进行人机交互的界面或接口,也叫窗体。
VB系统的人机交互界面或接口,无论是在设计时或是在运行时,都是Windows系统的标准视窗。
(1)对象
对象是VB系统内部提供给设计者可以直接使用的处理输出的控制工具。
本程序所应用到的对象类型有标签框(LabelBox),文本框(TextBox),命令按扭(CommandButton),网格(DataGrid),ADO控件(Adodc1)等。
当把这些工具放置到用户界面对应的窗体上时,被称为对象或控件。
用户可以通过设置对象的“属性”和“方法”,便于对象适应自己所设计应用程序的输入输出内容,对象的生成过程及结构都被封装起来。
正确使用对象可以减少程序和开发时间,提高程序设计者的工作效率。
(2)属性
属性是VB系统提供的有关对象的参数或数据接口。
用户通过适当地设置或改变对象的属性来确定对象的外观及性能特征,从而有效地使用系统提供的对象。
比如,对象的名称、在屏幕上显示的位置、大小、颜色、接收或容纳的数据内容及数据的表现格式等。
(3)事件
事件是指用户或操作者对计算机进行的某一操作(如击键、单击或移动鼠标等)的行为或系统状态发生的变化。
VB系统常用事件来引导计算机执行一段程序。
程序所用的键盘事件有KeyPress(按键)事件,KeyDown事件和KeyUp事件;鼠标事件有Click(单击鼠标)事件,DbDlicd(双击鼠标)。
(4)方法
方法主要是指对一个对象使用某种作用的过程。
它是在程序执行的过程中要计算机执行的某种操作。
其程序的方法有Show(显示)方法,Hide(隐藏)方法,Refresh(刷新)方法。
(5)过程
过程是指经过定义或说明的,或基于某一对象对应的事件所引发的程序段。
(6)模块
模块是指一些运算量或过程进行声明或定义的一个集合。
系统程序大体可分成四个模块:
数据输入、根据查询、数据打印和通讯。
第二章Windows下的VisualBasic编程环境简介
2.1面对对象的编程
面向对象的设计方法(OOP,ObjectedProgramming)从应用领域内的问题着手,以直观自然的方式描述客观世界的实体。
VisualBasic作为一种面向对象的编程方法,把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性。
在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,由VisualBasic自动生成对象的程序代码并封装起来。
VisualBasic应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和方法)。
开发人员可以最有效利用所创建的每一个对象。
使用应用程序具有可通用性可说扩展性和强有力的功能。
VisualBasic应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。
2.2实现菜单选项
菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,VisualBasic也提供了强大的创建菜单功能是程序更加标准。
本系统使用VisualBasic的菜单编辑器建立菜单或者修改已经存在的菜单,您也可以使用VisualBasic的ApplicationWizard来操作。
2.3实现工具栏
CoolBar控件与Office2000中看到的CoolBar是类似的。
CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。
通过在CoolBar中迁入其他空间你也可以向用户提供更好的灵活性和义用性。
选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。
在“控件”选项卡列表中选择“MicrosoftWindowsCommonControls6.0”后工具相中增加改控件。
本系统就用了Cool工具中的Statubar控件,在系统这一界面中,添加了状态栏,在第一个栏中,在样式这一栏中选择了文本,在第二个栏中,选择了系统日期,第三个栏中选择了系统时间,这样,任何时候操作本系统,都可以看到当前的时间和日期。
第三章怎样开发一个学生信息管理系统的查询模块?
3.1查询模块的设计分析
根据实际情况,我们使用原型法(RapidPrototyping)即以少量代价快速地构造一个可执行的软件模型。
使用户可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。
此时模块也发展成为最终产品了。
3.2编程环境的选择
微软公司的VisualBasic6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。
VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应
用程序的运行效率和可靠性。
故而,实现本系统VB是一个相对较好的选择。
3.3关系型数据库的实现
Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
Access的优点在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。
另外,Access允许创建自定义报表用于打印或输出数据库中的信息。
Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他用户共享数据库。
Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。
如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包同时拥有桌面数据库的便利和关系数据库的强大功能。
3.4二者的结合(DBA)
微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及VisualBasic来访问数据库并对其进行各种操作。
VisualBasic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。
ADODC控件在数据库中的信息与将信息显示给用户看的VisualBasic程序之间架起了一座桥梁。
我们可以设置ADODC控件的各个属性,告诉它要调用那个数据库的哪个部分。
缺省情况下,ADODC控件根据数据库中的一个或多个数据库表建立一个dynaset-type(动态集合)类型的记录集合。
一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。
将ADODC控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。
第4章使用Access2000创建数据库
4.1数据库的概念
数据库是一种存储数据并对数据进行操作的工具。
数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。
计算机的数据库可以分为两类:
非关系数据库(flat-file)和关系数据库(relational)。
关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。
4.2新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。
创建一个数据库结构的过程被认为是数据模型设计。
1.标识需要的数据;
2.收集被子标识的字段到表中;
3.标识主关键字字段;
4.规范数据;
5.标识指定字段的信息;
4.3修改已建的数据库
数据库的修改分为;添加、编辑和删除记录。
这三种操作均可由VisualBasic创建的程序来完成,下面的章节将详细描述实现的具体方法。
第5章可行性分析
学生信息,作为一个学校,就有一定的工作量存在,而学生信息,它的工作量可能是其它信息工作量的几倍,班级的增加、班级的查找、班级的修改;学生档案;课程管理;成绩管理;缴费管理;统计等等,每个信息的数据都在不断地变化着,如果采用人工的方式进行操作,那么,一天的工作量,足以让人觉得比较繁琐,吃不消。
针对这样的情况,采用让数据的查询变得简单化,数据变的更让每个人都在任何时刻都可以了解到。
学生信息管理系统是为本校开发的,本系统所采用的语言是VisualBasic,用MicrosoftAccess2000数据库完成。
该系统总体有四部分组成,包括学生信息查询、教务信息维护、学生选课及用户管理。
通过本系统,把本校内部查询学生信息、教务信息、学生选课各个环节进行有效地计划、组织和控制。
通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。
本系统主要信息流程为:
教务信息维护接受学生的信息,学生信息查询根据教务信息维护的学生信息做出对所接收的信息合理性进行判断,并交于信息维护进行相应的修改,再把信息存入数据库中。
学生选课是对学生进行相应选择自己相关的课程。
最后进行打印。
采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。
由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。
本系统中使用到的数据表主要有班级表、成绩表、缴费表、课程表、学生档案、用户资料,由这六个表,组成了名为信息的数据库(如5-1)。
其中学生档案是本系统主要的
图5-1
一张表,所有信息都是根据这张学生档案进行有关的操作,主要的字段有:
学号、姓名、年级、专业、性别、出生年月、民族、籍贯、政治面貌、家庭地址、邮政编码、联系电话、入学时间、备注。
其中日期的数据类型为日期/时间天型,其它的数据类型为文本型;成绩表中字段为:
学号、姓名、年级、专业、学期、考试时间、考试科目、考试地点、课程性质、科目分数、违纪类型、备注;课程表中字段为:
专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质、考试性质;用户资料中的字段包括:
用户名、密码、身份。
数据库与VB的连接:
本系统的数据链接采用的是ADO方法,打开控制面板,打开ODBC数据源图标,选择“系统DSN”标签,点击“添加”按钮,在弹出的“创建新数据源”对话框中选择名称为“MicrosoftAccessDrive(*.mdb)”,点击“完成”按钮,在ODBCMicrosoftAccess安装对话框中在数据源名中输入信息,在数据库这个框中,单击“选择”按钮,在弹出的选择数据库这一对话框架中,在驱动器下拉列表框中选择本系统数据库所在驱动器,在目录中选择库所在的文件夹,在文件类型中选择选“Access数据库(*.mdb)”,在数据库名中选择本系统的数据库,点击“确定”按钮即完成数据链接。
在VB中,用ADODC链接数据库,用DataGrid或DATA将库中的数据在界面中显示出来,本系统采用DataGrid。
在界面上右击Adodc控制,在弹出的快捷菜单中选择属性,在属性对话框中,在“属性”这一标签中,选中单选框“UseODBCDataSourceName”,并在下拉文本框中选择已经配置好的数据源名信息,再在“RecordSoure”标签中,在CommardText(SQL)文本框中输入查询语句,如:
select*from学生档案。
同时,将桌面的DataGrid控件选中,在属性框中,将它的Datasoure设为Adodc。
我们可以设置DataGrid控件的外观:
选中该控件,右击,在弹出的快捷菜单中选择“检索字段”,在弹出的对话框中单击“确定”,这时,表格中出现了表的字段。
然后再右击,同样,在弹出的快捷菜单中选择“编辑”,我们就可以所在的表格的宽度进行调整。
第6章系统(查询模块)总体规划
6.1系统功能(查询模块)
1.查询信息的情况;
2.判断信息是否符合要求;
3.将符合条件的信息进行打印;
6.2流程图
第七章系统具体实现
7.1各功能的实现
课程管理:
课程设置(如:
界面如图7-1)
图7-1
运行程序后,进入课程管理模块,课程管理模块的第一块是课程设置,在这模块中可以把专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质和考试性质等信息输入,以便使用。
下面为其代码:
PrivateSubCommand1_Click()
DimmyConAsNewADODB.Connection
DimmyRsAsNewADODB.Recordset
DimZhuanYe,NianJi,XueQi,KeCheng,JiaoCai,RenKLS,KeShi,ShangKeDD,KeChengXZ,KaoShiXZAsString
ZhuanYe=Text1.Text
NianJi=Text2.Text
XueQi=DTPicker1.Value
KeCheng=Text4.Text
JiaoCai=Text5.Text
RenKLS=Text6.Text
KeShi=Text7.Text
ShangKeDD=Text8.Text
KeChengXZ=Combo1.Text
KaoShiXZ=Combo2.Text
IfTrim(ZhuanYe)=""OrTrim(NianJi)=""OrTrim(XueQi)=""OrTrim(KeCheng)=""OrTrim(JiaoCai)=""OrTrim(RenKLS)=""OrTrim(KeShi)=""OrTrim(ShangKeDD)=""OrTrim(KeChengXZ)=""OrTrim(KaoShiXZ)=""Then
MsgBox"请填写要修改课程资料的内容!
"
Combo1.Text=""
Combo2.Text=""
ExitSub
EndIf
myCon.Open"dsn=信息"
myRs.Open"select*from课程表where专业='"&Text1.Text&"'",myCon,3,2
myRs!
年级=Text2.Text
myRs!
学期=DTPicker1.Value
myRs!
课程名称=Text4.Text
myRs!
教材=Text5.Text
myRs!
任课老师=Text6.Text
myRs!
课时=Text7.Text
myRs!
上课地点=Text8.Text
myRs!
课程性质=Combo1.Text
myRs!
考试性质=Combo2.Text
myRs.Update
myRs.Close
myCon.Close
MsgBox"您确定要修改吗?
",vbYesNo,"提示"
Frm_UpdateGrean.Adodc1.Refresh
Frm_UpdateGrean.DataGrid1.Refresh
Text1.Text=""
Text2.Text=""
'Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
Text7.Text=""
Text8.Text=""
Combo1.Text=""
Combo2.Text=""
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubCommand3_Click()
UnloadMe
Frm_FindGrean.Show1
EndSub
PrivateSubDataGrid1_Click()
'Frm_UpdateGrean.Adodc1.RecordSource="select*from课程表where专业='"&Trim(DataGrid1.Row)&"'"
'Text1.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("专业")
'Text2.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("年级")
'Text3.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("学期")
'Text4.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("课程名称")
'Text5.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("教材")
'Text6.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("任课老师")
'Text7.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("课时")
'Text8.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("上课地点")
'Combo1.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("课程性质")
'Combo2.Text=Frm_UpdateGrean.Adodc1.Recordset.Fields("考试性质")
EndSub
PrivateSubDTPicker1_CallbackKeyDown(ByValKeyCodeAsInteger,ByValShiftAsInteger,ByValCallbackFieldAsString,CallbackDateAsDate)
EndSub
PrivateSubForm_Activate()
Frm_FindGrean.Adodc1.RecordSource=strTiaoJian
Frm_FindGrean.Adodc1.Refresh
SetDataGrid1.DataSource=Frm_FindGrean.Adodc1
EndSub
PrivateSubForm_Load()
Combo1.AddItem("必修")
Combo1.AddItem("选修")
Combo1.AddItem("自开")
Combo2.AddItem("考试")
Combo2.AddItem("查考")
Text1.Text=""
Text2.Text=""
'Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
Text7.Text=""
Text8.Text=""
Combo1.Text=""
Combo2.Text=""
EndSub
PrivateSubText1_Change()
EndSub
PrivateSubText2_Change()
EndSub
PrivateSubText8_Change()
EndSub
课程管理:
课程查询(如:
界面如图7-2)
7-2
当输入查询类别、运算符和条件后可以查找到所需要的课程设置,或按查询时间来查询,输入所要查找的时间段,就可查到所要的课程设置。
代码如下:
DimsqlstrAsString
PrivateSubCombo1_Change()
EndSub
PrivateSubCombo2_Change()
EndSub
PrivateSubCombo4_Change()
EndSub
PrivateSubCombo5_Change()
EndSub
PrivateSubCombo7_Change()
EndSub
PrivateSubCommand1_Click()
DimaAsString
DimKCCX1AsString
DimKCCX2AsString
Dimstr1AsString
Dimstr2AsString
IfOption3.Value=TrueThen
a=Trim(Combo2)
SelectCasea
Case"="
KCCX1=""&Combo1.Text&""&Combo2.Text&"'"&Trim(Text1)&"'"
Case"like"
KCCX1="Instr(1,"&Combo1.Text&",'"&Trim(Text1.Text)&"')<>0"
EndSelect
a=Trim(Combo4)
SelectCasea
Case"="
KCCX2=""&Combo3.Text&""&Combo4.Text&"'"&Trim(Text2)&"'"
Case"like"
KCCX2="Instr(1,"&Combo3.Text&",'"&Trim(Text2.Text)&"')<>0"
EndSelect
IfOption1.Value=TrueThen
IfKCCX1=""Then
strTiaoJian="select*from课程表where"&KCCX2
ElseIfKCCX2=""Then
strTiaoJian="select*from课程表where"&KCCX1
Else
strTiaoJian="select*from课程表where"&KCCX1&"and"&KCCX2
EndIf
ElseIfOption2.Value=TrueThen
IfKCCX1=""Then
strTiaoJian="select*from课程表where"&KCCX2
ElseIfKCCX2=""Then
strTiaoJian="select*from课程表where"&KCCX1
Else
strTiaoJian="select*from课程表where"&KCCX1&"or"&KCCX2
EndIf
Else
IfKCCX1=""Then
strTiaoJian="