visual basic 第15章 综合应用实例.ppt_第1页
visual basic 第15章 综合应用实例.ppt_第2页
visual basic 第15章 综合应用实例.ppt_第3页
visual basic 第15章 综合应用实例.ppt_第4页
visual basic 第15章 综合应用实例.ppt_第5页
免费预览已结束,剩余68页可下载查看

下载本文档

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

文档简介

1、第15章 综合应用实例,15.1 系统功能总体设计 15.2 数据库设计 15.3 用户登录及主窗体设计 15.4 功能模块设计,结束,15.1 系统功能总体设计,15.1.1 设计目的 15.1.2 系统功能,返回首页,15.1.1 设计目的,管理信息系统(MIS,Management Information System)是进行信息的采集、存储、加工、维护和使用的系统,在现代信息社会中,它的应用越来越普及。本章通过一个经过简化的MIS应用实例“学生信息管理系统”的创建,使读者掌握用VB和ADO技术编制数据访问应用程序的基本过程和方法,同时巩固和提高对各种常用控件的综合应用能力。,返回首页,

2、返回本节,15.1.2 系统功能 (1),本实例采用VB+ADO+Access,创建一个简单的学生信息管理系统,系统的主要功能如下: 学籍管理:包括基本学籍信息的输入、修改和查询,可随时根据查询结果动态生成学生基本信息查询报表。 班级管理:包括系、专业和班级的添加和修改。 课程及成绩管理:包括课程信息的输入和修改;成绩信息的输入、修改和查询,可随时根据查询结果动态生成学生成绩查询报表。 用户管理:包括添加用户、删除用户、设置用户权限和修改密码。 系统功能模块如图15.1所示。,15.1.2 系统功能 (2),图15.1 系统功能模块,返回首页,返回本节,15.2 数据库设计 (1),15.2.

3、1 建立数据库 利用Microsoft Access或VB中的“可视化数据管理器”建立数据库,名称为“Student.mdb”。 15.2.2 建立数据表 根据系统功能模块的需要,在Student.mdb数据库中建立8个表。,15.2 数据库设计 (2),1. 学籍表 该表存放学生的基本信息,名称为“学籍”,结构如表15.1所示。学号由11位数字组成,前8位与班号相同,后3位为本班学生的序号。 表15.1 学籍表结构,15.2 数据库设计 (3),2. 系表 该表存放各系的编号和名称。表的名称为“系”,结构如表15.2所示。系号为两位数字,必须惟一。 表15.2 系表结构,15.2 数据库设计

4、 (4),3. 专业表 该表存放各系中的专业编号和专业名称。表的名称为“专业”,结构如表15.3所示。专业号由4位数字组成,前2位与系号相同,后2位为本系中的专业序号。 表15.3 专业表结构,15.2 数据库设计 (5),4. 班级表 该表存放各专业中的班级编号和班级名称。表的名称为“班级”,结构如表15.4所示。班号由8位数字组成,前2位为年级,第36位与专业号相同,最后2位为本专业中的班级序号。 表15.4 班级表结构,15.2 数据库设计 (6),5. 成绩表 该表存放学生成绩,名称为“成绩”,结构如表15.5所示。为减少数据冗余,成绩表中仅存储学号(与学籍表学号字段关联),不存储学生

5、姓名,需要时根据学号从学籍表中获取姓名。课号与课程名称亦作同样处理。 表15.5 成绩表结构,15.2 数据库设计 (7),6. 课程信息表 该表存放课程信息,名称为“课程”,结构如表15.6所示。 表15.6 课程信息表结构,15.2 数据库设计 (8),上述6个表之间具有一定的关联,为了保证数据参照完整性,应当建立表间关联关系并设置参照完整性。各表之间的关系如图15.2所示。,图15.2 表间关系,15.2 数据库设计 (9),7. 用户表 该表存放用户登录信息,名称为“用户”,结构如表15.7所示。表中暂时存放两条记录,内容如表15.8所示。 表15.7 用户表结构 表15.8 用户表内

6、容,15.2 数据库设计 (10),8. 临时表 该表作为临时工作表,名称为“临时”,用于输入成绩,结构如表15.9所示。在数据库中设计“临时”表的目的是兼顾DataGrid控件的使用和减少数据冗余。 表15.9 临时表结构,返回首页,15.3 用户登录及主窗体设计,15.3.1 创建工程 15.3.2 设计用户登录窗体 15.3.3 设计系统主窗体,返回首页,15.3.1 创建工程,创建一个VB工程,名称为StudInfo.vbp,将该工程与15.2节中创建的数据库Student.mdb保存在同一文件夹中。,返回首页,返回本节,15.3.2 设计用户登录窗体 (1),本窗体(frmLogin

7、)作为系统的启动窗体,用于验证用户是否合法,运行时界面如图15.3所示。,图15.3 用户登录,15.3.2 设计用户登录窗体 (2),窗体上的两个文本框分别用于输入用户名和密码,设密码文本框PasswordChar=*。添加一个ADO数据控件,设Visible=False,使用连接字符串与Student.mdb数据库连接。 单击“确定”按钮后,用SQL语句查询“用户”表中是否有相符的用户名和密码,若不符,提示重新输入,焦点返回文本框。如果3次输入错误,退出系统。若输入正确,将用户名和用户权限保存在全局变量中,显示系统主窗体,卸载本窗体。单击“取消”按钮时结束程序运行。,返回首页,返回本节,1

8、5.3.3 设计系统主窗体 (1),系统主窗体(frmMain)作为学生信息管理系统的主界面,如图15.4所示。窗体背景采用Image控件(Stretch=True,BorderStyle=1)显示图片。,图15.4 主窗体,15.3.3 设计系统主窗体 (2),菜单结构如表15.10所示。 表15.10 菜单结构,15.3.3 设计系统主窗体 (3),单击某一菜单项时,显示对应窗体。“系统”菜单中的“添加用户”、“删除用户”和“更改权限”三个菜单项的功能仅供权限为“管理员”的用户使用。因此,应在窗体加载时根据保存在全局变量中的用户权限确定是否显示这三个菜单项。,返回首页,返回本节,15.4

9、功能模块设计,15.4.1 学籍管理模块 15.4.2 班级管理模块 15.4.3 成绩及课程管理模块 15.4.4 系统模块 15.4.5 帮助菜单 15.4.6 关于标准模块,返回首页,15.4.1 学籍管理模块 (1),学籍管理模块的功能通过【学籍管理】窗体(frmEss)实现。该窗体为主窗体【学籍管理】菜单下的两个菜单项【添加或修改学籍信息】和【查询学籍信息】所共用,通过选项卡区分其功能。选择【添加或修改学籍信息】菜单项时,将【添加或修改】选项卡设为活动选项卡;选择【查询学籍信息】菜单项时,将【查询】选项卡设为活动选项卡。 1. 使用TreeView控件和SSTab控件 为了便于用户操

10、作,学籍管理窗体界面设计中采用TreeView控件供用户选择系、专业和班级,用SSTab控件切换管理功能,界面效果如图15.5所示。,15.4.1 学籍管理模块 (2),图15.5 浏览状态,返回,15.4.1 学籍管理模块 (3),TreeView控件相关属性的设置见第11章11.2.1小节,注意将LabelEdit(标签编辑)属性设为1-tvwManual,即不允许用户修改节点标签。由于成绩管理窗体亦采用类似的界面设计,因此在标准模块中将TreeView控件添加系、专业和班级节点的程序段编制成全局过程MakeTree(tvwX As TreeView)供各窗体调用。该过程以当前窗体的Tre

11、eView控件作为参数,依次从数据库的系表、专业表和班级表中获取相关数据生成系-专业-班级目录树。,15.4.1 学籍管理模块 (4),具体做法是首先利用记录集对象读取系表中的全部记录,将其添加为TreeView控件中的顶层节点,节点关键字(Key)为“X”+系号(关键字必须以字母开头),节点文本(Text)为系名,节点标志(Tag)均为“系”。 然后读取专业表中的记录,根据每条记录的系号字段值和TreeView中系节点的关键字,将其添加为对应系的子节点,节点关键字为“X”+专业号,文本为专业名称,标志均为“专业”。,15.4.1 学籍管理模块 (5),最后读取班级表中的记录,根据每条记录的专

12、业号字段值和专业节点关键字,将其添加为对应专业的子节点,节点关键字为“X”+班号,文本为班级名称,标志均为“班级”。 SSTab控件用于切换学籍管理功能,将其选项卡数设为2,标题分别为“添加或修改”和“查询”。该控件的属性设置方法见第11章11.3.1小节。,15.4.1 学籍管理模块 (6),2. 添加或修改学籍信息 添加或修改学籍信息的功能在【添加或修改】选项卡中实现。程序运行时,在TreeView控件中选择系、专业和班级,若当前节点为班级,则在DataGrid中显示本班学生名单,此时可通过按钮进行添加、编辑、删除等操作,界面如图15.5和图15.6所示。,15.4.1 学籍管理模块 (7

13、),图15.6 添加或修改状态,返回,15.4.1 学籍管理模块 (8),(1)设置ADO数据控件 在窗体上添加一个ADO数据控件,名称为adoEdit,设Visible=False,LockType=4(批更新)。将其与数据库连接,设记录源为SQL语句: SELECT * FROM 学籍 WHERE 学号= 在上述语句中,等号后面是一对单引号,表示空字符串。由于在设计学籍表时已将学号字段设为主键,且不允许为空字符串,因此表中不会有学号为空的记录。该语句的作用是生成含有各字段结构的空记录集,以供DataGrid控件检索字段使用。程序运行时由adoEdit为各数据绑定控件提供数据源。,15.4.

14、1 学籍管理模块 (9),(2)设置DataGrid控件 在【添加或修改】选项卡中放置一个DataGrid控件,名称为DataGrid1,用于显示学号和姓名以及移动指针选择记录。设置其DataSource属性为adoEdit,AllowUpdate属性为False(不允许修改),Caption属性为“学生名单”。右击该控件,在快捷菜单中选择【检索字段】菜单项,在对话框中单击【是】。再次右击该控件,选择【属性】菜单项,在如图15.7所示的【属性页】对话框中单击【布局】选项卡,选择【列】组合框中的“性别”,清空【可见】复选框。对“出生日期”和“班号”作同样处理,目的是将其隐藏。,15.4.1 学籍

15、管理模块 (10),(3)设置其他控件 在DataGrid控件右侧放置一个框架(Frame),名称为fraEss,Caption为“编辑”。框架中放置两个文本框,名称分别为txtID和txtName,用于输入学号和姓名;一个组合框,名称为cboSex,用于选择性别。将这三个控件的DataSource属性均设为adoEdit,DataField属性分别设为学号、姓名和性别字段。再添加一个DateTimePicker控件DTPicker1,用于显示和设定出生日期。采用这一控件的优点是不必编写验证代码即可保证用户的输入是合法的日期型数据,该控件属性的设置见11.3.3小节。,15.4.1 学籍管理模

16、块 (11),为了避免出生日期字段为NULL值时导致程序出错,对该字段的显示和赋值不采用绑定方式,而是通过代码完成相关操作。 记录的添加、编辑、更新、取消和删除操作通过5个命令按钮实现。 窗体加载时,设置【编辑】框架(fraEss)的Enabled=False(可使框架中的控件无效)。将【更新】和【取消】按钮设置为无效,其他按钮有效,此时为浏览状态(图15.5)。单击【添加】或【编辑】按钮时,将上述控件的Enabled属性取反,此时为编辑状态(图15.6)。,15.4.1 学籍管理模块 (12),3. 查询学籍信息 查询学籍信息的功能在【查询】选项卡中实现。程序运行时,在TreeView控件中

17、选择查询范围,在【查询方式】框架中设置查询条件。单击【查询】按钮后,显示查询结果,若有记录则使【报表】按钮有效,可随时打印查询结果。界面如图15.8和图15.9所示。,15.4.1 学籍管理模块 (13),图15.8 全部显示,返回,15.4.1 学籍管理模块 (14),图15.9 多条件复合查询,返回,15.4.1 学籍管理模块 (15),(1)设置ADO数据控件和DataGrid控件 在窗体上添加一个ADO数据控件,名称为adoQuery,设Visible=False,将其与数据库连接,记录源的设置与adoEdit相同。在【查询】选项卡中添加一个DataGrid控件,名称为DataGrid

18、2,用于显示查询结果。设DataSource=adoQuery,AllowUpdate=False,Caption为“查询结果”。右击该控件检索字段,将全部字段名显示在列标头中。,15.4.1 学籍管理模块 (16),(2)设置查询方式控件 在【查询方式】框架中添加3个复选框,名称分别为chkNo、chkName和chkSex,设Caption分别为“按学号”、“按姓名”和“按性别”。添加两个文本框,名称分别为txtNoQ和txtNameQ,用于输入学号和姓名。添加一个组合框,名称为cboSexQ,预设两个列表项“男”、“女”,用于选择性别。,15.4.1 学籍管理模块 (17),(3)设置查

19、询和报表按钮 查询按钮的名称为cmdQuery。在查询按钮的单击事件中,首先根据TreeView中的当前节点确定查询范围,将其显示在DataGrid2的标题中,然后根据各复选框的选中状态判断查询条件,若有复选框被选中,则根据文本框和组合框中的内容,用SQL语句的模糊查询、多条件复合查询功能生成查询语句,为adoQuery的RecordSource属性赋值。 报表按钮的名称为cmdReport。,15.4.1 学籍管理模块 (18),为了实现“即查即览”功能,须将数据环境中为报表提供数据的命令对象的数据源设为SQL语句: SELECT * FROM 学籍 数据环境中的命令对象有一个对应的记录集对

20、象,名称为“rs”+命令对象名。在报表按钮的单击事件中,将adoQuery的RecordSource属性赋值给报表数据源记录集对象的Source属性,调用记录集对象的Requery方法重新执行查询即可动态改变报表数据源。 查询结果的显示和报表预览如图15.10和图15.11所示。,15.4.1 学籍管理模块 (19),图15.10 显示查询结果,返回,15.4.1 学籍管理模块 (20),图15.11 报表打印预览,返回,返回首页,返回本节,15.4.2 班级管理模块 (1),班级管理模块的功能通过【班级管理】窗体(frmClass)实现。该窗体为主窗体【班级管理】菜单下的3个菜单项【添加或修

21、改系】、【添加或修改专业】和【添加或修改班级】所共用,通过选项卡区分其功能。菜单项与活动选项卡的关系跟学籍管理模块相似。界面如图15.12、图15.13和图15.14所示。各选项卡的左半部分用于导航,右半部分用于添加或编辑数据。,15.4.2 班级管理模块 (2),图15.12 添加或修改系,返回,15.4.2 班级管理模块 (3),图15.13 添加或修改专业,返回,15.4.2 班级管理模块 (4),图15.14 添加或修改班级,返回,15.4.2 班级管理模块 (5),1. 添加或修改系 【添加或修改系】选项卡的界面设计如图15.12所示。在选项卡中添加一个ADO数据控件,名称为adoD

22、ept,Visible=False,记录源为SQL语句“SELECT * FROM 系”。 DataGrid控件的名称为dgdDept,Caption为“现有系”,AllowUpdate=False,DataSource=adoDept。【添加或修改】框架中两个文本框的名称分别为txtDeptNo和txtDeptName,设DataSource=adoDept,分别与系号和系名字段绑定。本窗体的3个选项卡共用一组数据操作按钮,在它们的单击事件中根据选项卡的Tab属性判断当前选项卡,完成相关记录的添加、编辑和删除等操作。,15.4.2 班级管理模块 (6),2. 添加或修改专业 【添加或修改专业

23、】选项卡的界面设计如图15.13所示。在选项卡中添加一个ADO数据控件,名称为adoSpecial,Visible=False,记录源为SQL语句“SELECT * FROM 专业 WHERE 专业号=”。 DataGrid控件的名称为dgdSpcl,Caption为“本系现有专业”,AllowUpdate=False,DataSource =adoSpecial。【添加或修改】框架中两个文本框的名称分别为txtSpclNo和txtSpclName,设DataSource=adoSpecial,分别与专业号和专业名称字段绑定。【选择系】组合框中的系名列表通过调用标准模块中的AddDeptIte

24、m(cboX As ComboBox)过程填充。,15.4.2 班级管理模块 (7),3. 添加或修改班级 【添加或修改班级】选项卡的界面设计如图15.14所示。在选项卡中添加一个ADO数据控件,名称为adoClass,Visible=False,记录源为SQL语句“SELECT * FROM 班级 WHERE 班号=”。DataGrid控件的名称为dgdClass,Caption为“本专业现有班级”,AllowUpdate = False,DataSource = adoClass。【添加或修改】框架中两个文本框的名称分别为txtClassNo和txtClassName,设DataSourc

25、e=adoClass,分别与班号和班级名称字段绑定。,15.4.2 班级管理模块 (8),【选择系】组合框的处理与专业选项卡相同。在该组合框中选择系后调用标准模块中的AddSpecItem(cboX As ComboBox, sDeptNo As String)过程填充【选择专业】组合框中的专业名称列表。窗体加载时用循环语句填充【入学年份】和【班级序号】组合框,供自动生成班号使用。,返回首页,返回本节,15.4.3 成绩及课程管理模块 (1),主窗体【成绩及课程管理】菜单下有3个菜单项:【输入或修改成绩】、【查询成绩】和【添加或修改课程】。其中前两项功能共用【成绩管理】窗体(frmGrade)

26、,通过选项卡区分其功能。第三项功能通过【课程管理】窗体(frmCourse)实现。 1. 输入或修改成绩 【输入或修改成绩】选项卡的界面如图15.15和图15.16所示。程序运行时,在TreeView控件中选择班级,在组合框中选择课程,在DataGrid中输入或修改成绩。,15.4.3 成绩及课程管理模块 (2),图15.15 输入或修改成绩,返回,15.4.3 成绩及课程管理模块 (3),图15.16 保存成绩,返回,15.4.3 成绩及课程管理模块 (4),在教学管理工作中,通常按班级和课程成批录入学生成绩。为了便于用户操作,避免在鼠标和键盘操作之间频繁切换,本例采用DataGrid控件输

27、入成绩。用户输入成绩并按回车键确认后,即可通过上下箭头键移动记录指针继续录入。 (1)设置ADO数据控件和DataGrid控件 在窗体上添加两个ADO数据控件,名称分别为adoInGrid和adoGrade,设Visible = False,LockType = 4(批更新模式)。设adoInGrid的记录源为SQL语句“SELECT * FROM 临时 WHERE 学号=”,adoGrade的记录源为空(运行时与成绩表链接)。,15.4.3 成绩及课程管理模块 (5),DataGrid控件的名称为DataGrid1,AllowUpdate=True,DataSource=adoInGride

28、,检索字段后在属性页中将课号字段隐藏,将学号和姓名字段锁定,将分数字段的格式设为数字。 (2)设置其他控件 【选择课程】组合框名称为cboGrade,窗体加载时调用AddCourceItem(cboX As ComboBox)过程(在标准模块中)填充课程列表。【确定】、【保存成绩】和【全部删除】按钮的名称分别为cmdOK、cmdSave和cmdDelete。,15.4.3 成绩及课程管理模块 (6),2. 查询成绩 查询成绩的界面设计和功能实现均与15.4.1小节“查询学籍信息”相似,其中用于获取记录集的ADO数据控件名称为adoQuery,记录源为SQL语句: SELECT 成绩.学号, 学

29、籍.姓名, 课程.课程名称, 成绩.分数, 学籍.班号 FROM 成绩,学籍, 课程 WHERE 成绩.学号= 界面如图15.17和图15.18所示。,15.4.3 成绩及课程管理模块 (7),图15.17 显示查询结果,返回,15.4.3 成绩及课程管理模块 (8),图15.18 报表打印预览,返回,15.4.3 成绩及课程管理模块 (9),3. 添加或修改课程 【课程管理】窗体(frmCourse)的运行界面如图15.19和图15.20所示。在窗体上添加一个ADO数据控件,名称为adoEdit,设Visible=False,CommandType=2-adCmdTable,RecordSo

30、urce=课程,LockType=4(批更新)。DataGrid控件名称为DataGrid1,设DataSource为adoEdit并检索字段。用于输入课号和课程名称的文本框名称分别为txtCourseNo和txtCourseName。5个数据操作按钮的设置与学籍管理窗体相似。,15.4.3 成绩及课程管理模块 (10),图15.19 浏览状态,返回,15.4.3 成绩及课程管理模块 (11),图15.20 添加或修改状态,返回,返回首页,返回本节,15.4.4 系统模块 (1),【系统】菜单下有5个菜单项:添加用户、删除用户、更改权限、修改密码和退出。,1. 添加用户 【添加用户】窗体(fr

31、mUser)的运行界面如图15.21所示。,图15.21 添加用户,15.4.4 系统模块 (2),在窗体上添加一个ADO数据控件,名称为adoUser,设Visible=False,记录源为空。3个文本框用于输入用户名和密码,名称分别为txtUserName、txtPassword1和txtPassword2,设输入和确认密码的文本框的PasswordChar属性为“*”。单击“确认”按钮后,通过adoUser用SQL语句查询数据库“用户”表中是否有相同的用户名和密码,若有,提示该用户已存在,重新输入,焦点返回用户名文本框。如果无同名用户,将用户名和密码添加到数据库“用户”表中,并设默认权限

32、为“普通”,用MsgBox语句提示添加用户成功。,15.4.4 系统模块 (3),2. 删除用户 【删除用户】窗体(frmDelUser)的运行界面如图15.22所示。在窗体上添加一个ADO数据控件,名称为adoUser,设Visible=False,LockType=4,记录源为空(运行时设为SQL语句)。DataGrid控件的名称为dgdUser,设AllowUpdate = False,DataSource=adoUser。在窗体上添加一个框架,名称为fraDel,内含三个命令按钮,名称分别为cmdDelete、cmdCancel和cmdExit,Caption分别为“删除用户”、“取消删除”和“退出”。,15.4.4 系统模块 (4),图15.22 删除用户,返回,15.4.4 系统模块 (5),3. 更改权限 【更改权限】与【删除用户】的窗体界面相似,为了减少程序中的窗体数目,复用代码,将两项功能设计

温馨提示

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

评论

0/150

提交评论