Visual Basic 6.0程序设计教程第八章_第1页
Visual Basic 6.0程序设计教程第八章_第2页
Visual Basic 6.0程序设计教程第八章_第3页
Visual Basic 6.0程序设计教程第八章_第4页
Visual Basic 6.0程序设计教程第八章_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三篇提高篇第8章学生信息管理系统本章学习要点1、了解程序设计的一般思想。2、掌握程序设计的一般流程。3、了解算法、程序的概念,学会结构化程序设计方法。4、能够灵活应用VB中的控件、菜单和对话框,使所设计的应用程序易用、易维护、方便以后扩充。8.1应用背景学生信息是学校的一项重要的数据资源,学籍管理也是学校的一项常规性的重要工作。而长期以来,学生信息管理都是依赖人工进行,面对如此多的学生信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在大量的不可控因素,造成了学生信息管理的某些不规范,使学生信息管理陷入“事倍功半”的地步。本章就是针对高校现在学生信息管理的弊端,结合学生信息管理的基本流程,实现一个完善的学生信息管理实例。根据实际要求,结合学生信息的实际流程,本系统需要实现以下功能:1、掌握全校每个学生的基本情况。其中包括学号、班级、姓名、系别、出生日期、性别、家庭住址、电话等。2、基于权限的管理。本系统可同时提供给管理员和学生使用。但是对于学生而言只能查看本人信息;对于管理员可以修改学生信息。

3、提供灵活的浏览和查找功能。可以查看某个系、某个班级所有学生的学生情况,可以对学生信息进行模糊和精确查找。

4、可以对学生信息进行变动管理,对学生信息进行添加、编辑和删除等操作。

5、可以将学生的基本信息生成报表,并打印。信息。8.2系统设计

8.2.1模块设计根据本系统的需求,结合学生信息管理的实际情况,本系统应具有如下功能模块:⒈用户类型模块本系统的用户将分两类:学生和管理员。学生用户指当前系统中的所有学生,其中用户名为学生的姓名,密码为学生的学号,该类用户只能对自己的信息进行浏览,不具有浏览和查找其他人信息的权限,也不能对自身和他人的信息进行管理。对于管理员级的用户,他们有特定的权限对本系统所有的学生信息进行浏览、查找并进行管理,而且可以使用相应的报表功能。⒉信息查看和浏览模块对于学生用户而言,只有浏览自身的信息,而且信息具有只读功能,学生如果对自身信息有何问题,可以向管理员报告以进行修改。对于管理员而言,可以查看所有学生的信息,而且系统中提供了多种浏览方式:逐条记录浏览、按所在班级浏览和按所在系浏览。⒊查找模块此部分只能对管理员开放。如果浏览部分所提供的浏览方式不能满足管理员的要求,那么管理员可以在现有的信息中进行查找,以便找到满足条件的学生信息,进行浏览或者管理。该部分提供了对所有的进行精确或者模糊查找的功能。⒋学生信息管理模块此部分功能只对管理员开放。如果学生的基本信息改变,那么管理员可以根据具体的情况,对学生信息进行管理,可以添加,删除或者修改某个用户的信息。⒌报表模块此部分只对管理员开放。管理员在查看学生信息的同时,可以将学生的基本信息生成报表并打印。8.2.2开发环境结合所要开发的系统的特点,本系统使用VisualBasic6.0中文版来作为开发工具,后台数据库则采用Access2003。根据“学生信息管理系统”的需求说明和模块设计,本章将着意于如何实现各个模块的基本功能,如果要具体应用到学校的情况中,还需要对各学校的具体需求进一步明确,并对本系统进行修正。8.2.3系统整体流程根据学生信息管理系统,结合各功能模块,系统的整体流程如图所示。系统的总体流程Splash窗口显示版本信息登录窗口(学生或管理员)查看学生自己的信息浏览、查找、修改学生的信息按姓名查找按学号查找8.3详细设计

8.3.1数据库设计本系统使用Access2003作为数据库管理系统(DataBase

ManegementSystem,DBMS)。在Access中,新建一个数据库,将其命名为Student.mdb,将新建的数据库放置在应用程序的目录中,以便调用。1.学生表的设计(Student)本表主要对象为学生的基本信息,包括以下部分:学号(Serial)、班级(Class)、学生姓名(Name)、出生日期(Birthday)、性别(Sex)、家庭住址(Address)、电话(Tel)等。在数据库中创建一个表,表名为“Student”,其字段结构如表所示字

名字

明类

型长

度备

注Serial学号文本7主关键字Name姓名文本10不能为空Class所属班级文本5不能为空Birthday生日日期/时间不能为空Sex性别文本2默认值为“男”Address家庭住址文本30可以为空Tel电话文本15可以为空Resume简历备注500可以为空2.班级表(Class)字

名字

明类

型宽

度备

注ClaName班级名文本5主关键字Dept_Id班级编号文本5不能为空3.系表(Department)字

名字

明类

型宽

度备

注Id部门编号数字长整型主关键字DepName部门名文本20不能为空4.管理员账号的设计(Admin)字

名字

明类

型宽

度备

注AdmName管理员名字文本长整型主关键字Pwd管理员密码字符16不能为空5.各表的关系定义下列两组参照完整性:

Class表的CLaName字段与Student表的Class字段为一对多的关系;

Department表的Id字段与Class表的Dep_id字段为一对多的关系。8.3.2创建工程在VisualBasic6.0中创建一个工程,命名为Student.vbp,并将创建的Student数据库拷贝到工程目录中,以便建立数据连接。登陆窗口在登录窗体中,输入用户名、口令,并选择各自的类型后,单击“确定”按钮就会将输入提交给系统以验证用户、密码及身份。如果用户的密码输错3次,则系统自动退出;如果用户密码正确,则将进入系统的MDI

主窗体(MDIMain.frm)。

8.3.3建立数据连接

8.3.3.1数据环境设计器属性的设计操作步骤如下:(1)用第六章所学的方法添加ADO控件。(2)引用数据环境设计器。在“工程”菜单中,单击“引用”命令。在弹出的对话框中,选择“MicrosoftDataEnvironment1.0”项,然后单击“确定”按钮。(3)从“工程”菜单中,选择“添加DataEnvironment”命令,添加数据环境设计器。(4)在出现的数据环境设计器窗口添加一个Connection对象,命名为Con。(5)查看Con属性,在“提供程序”选项卡中选择“MicrosoftJet4.0OLEDBProvider”项,如图8.3所示,并单击“下一步”按钮。(6)在“数据库名称”文本框中,选择Student.mdb项,并选中“空白密码”和“允许保存密码”两个单选框。(7)单击“测试连接”按钮,如果出现“连接成功”提示框,则表示设置成功,如图8.4所示;否则还需要检查数据库连接的设置。经过以上两步设置,数据环境设计器的Con数据连接属性设置如表8.5所示。Provider=Microsoft.Jet.OLEDB.4.0;Password=”;DataSourse=D:\学生信息管理系统\Splash\Student.mdb;Persist

象属

性设

置DEConnectionNameConConnectionStringSecurityInfo=TrueCursorLocation3-adUseClient

8.3.3.2数据连接的初始化代码在系统实际运行时,数据库所处的位置是变化的。而默认情况下,数据环境设计器的连接中使用的数据库位置是固定的,所以需要在数据环境的初始化(Initialize)事件中,动态改变数据连接Con的连接字段(ConnectionString)

PrivateSubDataEnvironment_Initialize()''根据目录所在的位置,改变ADO所使用的连接的字符串

DimstrConnAsString

strConn="Provider=Microsoft.Jet.OLEDB.4.0;Password=;DataSourse="

strConn=strConn&App.Path&"\Stuednt.mdb"&";PersistSecurityInfo=True"

Con.ConnectionString=strConnEndSub8.3.4Splash窗体设计8.3.4.1窗体界面设计在工程中添加一类型为“展示屏幕”的窗体,命名为frmSplash.frm。该窗体上的控件及其属性设置如表8_7所示。为了方便起见,该窗体中所有的标签控件都设计为名称为lblInfo的控件数组。8.3.4.2窗体代码设计

frmSplash窗体具体有两个作用,其一为系统启动时的窗体,其二为系统运行时的“关于…”窗体。所以在代码页的“通用”部分定义模块级的公共变量mbAbout

,作为区别这两个作用的标识:PublicmbAboutasBoolean

mbAbout具体含义如下:若mbAbout为True,则表示为系统启动时的Splash窗体;若mbAbout为Flase,则表示为系统运行时的“关于”窗体介于Splash窗体的特点,如果单击窗体上的任何部分,或者按下任一个键,都将调用UnloadForm子过程,以退出本窗体。在UnloadForm子过程中,首先退出Splash窗体,然后如果mbAbout为False,即表示此时此时窗体为Splash窗体,需要显示登录窗体;否则就不需要显示登录窗体。8.3.5登录窗体设计本系统的用户分两类:管理员和学生。在设计登录窗体时,要增加一个ComboBox控件,用来表示用户身份,其中0表示管理员身份,1表示学生类用户。同时,为了避免非法用户的干扰,如果用户连接输错3次密码,则将会自动退出系统。8.3.5.1窗体界面设计在工程中添加一类型为“登录对话框”的窗体,命名为frmLogin.frm

。该窗体上的控件及其属性设置如表8.7所示。对

象属

性设

置窗体NamefrmLoginBorderStyle3-FixedDialogCaption请登录KeyPreviewFalseShowInTaskbarFalseStartUpPositon2-屏幕中心对

象属

性设

置框架1NamefraLoginCaption登录标签(0)NamelalLabelsAutoSizeTrueCaption用户名:文本框NametxtUserCaption为空标签(1)NamelblLabelsAutoSizeTrueCaption口令:文本框NametxtPwdText为空标签(2)NamelblLabelsCaption选择身份:组合框1NamecboUserTypeList管理员;学生命令按钮1NamecmdOKCaption确定DefaultTrue命令按钮2NamecmdCancelCaption取消CancelTrue8.3.5.2窗体代码设计⒈定义mnUserType

在代码页的“通用”部分定义模块级变量mnUserType,用来表示当前用户在身份下拉列表中所选的类型(管理员或学生)。⒉添加数据命令splSeek

根据用户选择的不同身份,在不同的表里查询数据。如果选择了“管理员”身份,则在Admin中针对name和pwd字段进行搜索;如果选择了“学生”身份,则在student表中针对name和Serial字段进行搜索。⒊校对输入的用户名和密码用户输入了用户名和密码,并且选择了对应的身份之后,可以单击“确定”按钮来验证,即激活cmdOK控件的Click事件。8.3.6MDI主窗体在工程中添加一个MDI窗口,取名为“MDIMain.frm”,并为MDI窗体进行菜单的设计和代码的设计。8.3.6.1菜单设计MDI主窗体是整个系统的容器,为了方便用户的使用,应设计相应的菜单。在主菜单中,设计两个根节点“通用”和“帮助”,“通用”菜单用来进行学生信息的管理,而“帮助”菜单用来显示有关系统的帮助信息。“通用”菜单项的子菜单中,系统用户可以单击“学生信息管理”进入整个学生信息管理系统的主界面,可以单击“学生信息查询”来查看符合条件的学生信息,也可以通过单击“退出”,退出MDI窗体。“帮助”菜单中定义了“关于”子菜单,用户可以单击该子菜单,来显示有关系统的帮助信息8.3.6.2窗体代码设计⒈定义模块级变量⒉判断用户权限⒊Form的QueryUnload事件⒋“重新登录”子菜单的代码⒌“关于…”子菜单的代码8.3.7学生信息查看窗体如果登录的为学生类型的用户,当单击“通用”菜单项下的“学生信息”子菜单时,系统需要显示有关当前登录的学生的基本信息,但是这些信息对于该学生类型用户而言必须是只读的。8.3.7.1添加数据命令用户在查询时需要进行使用数据库的表连接。在数据环境设计器DataEnv中单击数据连接对象Con,单击鼠标右键并在右键菜单中选择“添加命令”菜单项,向Con数据连接对象添加一个命令,将其命名为Student。8.3.7.2界面设计在工程中添加一个窗体,命名为frmLook,这里将使用frmLook窗体来实现学生类型的用户查看自己信息的功能。在该窗体中,用户只能查看信息,而不能对信息进行修改,所以将显示各项数据控件的父控件fraInfo的Enabled属性置为False,从而使各个子控件不可访问,使各项数据不能修改。8.3.7.3代码实现PrivateSubForm_Load()’根据当前登录的用户在DataEnv.rsStudent中查找到对应的记录

DataEnv.rsStudent.Find"serial='"&MDIMain.msUserName&"'"EndSubPrivateSubcmdClose_Click()UnloadMeEndSub8.3.8学生信息管理窗体如果以管理员登录本系统,则管理员具有系统中所有的权限,包括对学生信息进行查询,对学生信息进行添加、修改和删除,并可以将当前的学生信息生成报表,所以本窗体应具有下列功能。导航:由于一个学校的学生信息的量是很大的,所以为了方便用户的浏览,给用户提供一个导航条,通过以网格形式显示当前满足条件的学生的学号和姓名字段,便于用户进行管理。浏览:提供能够在导航条中移动记录的基本按钮,通过该功能,用户可以移动导航条的当前记录。查询:提供一个能够进行精确和模糊查询的“自定义查询”,同时,考虑到大部分对学生信息查询是分班级进行的,所以在系统中增加一个查看各个班级的所有学生信息的简易查询。详细信息:一旦导航条的当前记录发生改变,则要显示当前记录的学生的详细信息,而且提供一系列的管理按钮,用户可以通过它,来对记录进行添加、修改和删除,并且生成相应的报表。这4个部分在窗体上被分为4个区:导航条、浏览框、查询框、详细信息框,如下图所示。8.3.8.1窗体的设计和实现⒈窗体的属性⒉添加数据命令⒊主窗体的代码8.3.8.2导航条的设计和实现为了能够在数量众多的学生信息中进行浏览,需要创建导航条。本系统采用数据网格控件,在控件中将显示符合条件的学生信息的学号和姓名,用户可以方便地选择所要查询的学生信息。⒈界面设计在“工程”菜单项下的“部件”子菜单中,选择“MicrosoftDataGrid6.0(OLEDB)”项,这样就将DataGrid控件加入到了工具栏中。⒉代码实现当grdScan的内容发生变化,或者用户通过单击改变grdScan的当前行,或者通过浏览框中的记录移动按钮,来移动grdScan的当前行时,必须相应改变详细信息框中的学生基本信息。这就需要在grdScan和Change和RowColChange事件中调用自定义的子过程SeekStudent()来实现。8.3.8.3浏览框的设计和实现⒈浏览框的设计为了能够在导航条中实现记录的移动,需要实现浏览框。⒉代码实现在浏览窗口中,调用DataEnv.rssqlSeek的MoveFirst、MovePrevious、MoveNext、MoveLast来将记录移到第一条、上一条、下一条和最后一条,再调用子定义过程ChangeBrowseState()来改变各个按钮的状态。8.3.8.4查询框的设计和实现整个信息系统中的学生记录个数很多,即使使用了导航条,有时查找起来仍然会很费劲。所以用户有时需要查询某一条或某一个符合特殊条件的记录。⒈界面设计(1)数据显示框fraInfo(2)管理控制框fraManage⒉代码设计为了给用户灵活的查询方式,本系统定义了两种查询。(1)按照班级进行浏览(2)使用自定义查询当按照班级浏览不能满足用户需要的时候,也可以单击“自定义查询”按钮,来进行查询。在该查询中,可以对于Student表中的所有字段进行各种运算符的查询。8.3.8.5详细信息框的设计和实现学生信息包括了学号、班级、姓名、出生日期、性别、家庭住址、电话、简历等内容。在导航条中列出了各个学生的学号和姓名以供用户进行导航,但是在实际管理中,还需要显示出某一条学生信息的详细列表。为此,设计详细列表框,来罗列用户的各种详细信息,并进行管理。⒈界面设计(1)数据显示框fraInfo

在“工程”菜单下的“部件”子菜单中,选择“MicrosoftDataList6.0(IKEDB)”项,这样就将DataCombo和DataList这两个控件加入到工具栏中,本部分将会使用DataCombo控件,在控件的下拉框中填充Class表的内容。DataCombo控件是一个数据绑定组合框,它可自动地由一个数据附加数据源中的一个字段填充,并且可有选择地更新另一个数据源的一个相关表中的一个字段。(2)管理控制框fraManage

在显示详细信息的同时,用户可以对当前记录进行管理,添加新记录、编辑或者删除当前记录,并对当前记录生成报表。⒉代码设计在本系统中,在系统默认情况下,班级编号将作为学号的前面几位。为了体现这一关系,需要在dcbClass控件的Click事件中,判断如果用以显示学号的文本框为空,则将班级编号赋给文本框。8.3.9自定义查询窗体在学生信息管理窗口中,如果用户单击了“自定义查询”按钮,将会出现“自定义查询”窗体。在该窗体中可以选择自定义查询

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论