当前位置:文档之家› 3 系统结构图

3 系统结构图

3 系统结构图2 系统主窗体的创建1)、创建工程文件启动Visual Basic 6.0,新建一个工程文件,为工程添加必要的引用对象和部件库。

单击【工程】→【引用】菜单项,打开“引用”对话框,在“可用引用”列表框中勾选“Microsoft ActiveX Data Objects 2.5 Library”前面的方框,然后单击【确定】按钮,这样在工程中就可以使用ADO对象库了。

各台机器上的配置可能略有不同,如果没有2.5版本对象库,也可以选择版本稍低的对象库。

引用对话框界面如下图所示,其中前4项是系统创建工程时自动添加的。

系统中需要使用表格来显示数据,为此需要给工程添加表格部件。

单击【工程】→【部件】菜单项,打开“部件”对话框,在“控件”选项卡的列表框中勾选“Microsoft DataGrid Control 6.0 (OLEDB)”前面的方框,然后单击【确定】按钮,相应的控件就会被添加到工具箱上。

控件对话框和添加完成以后的工具箱窗口如图a、b所示。

本章用到的数据表格控件和上一章的表格控件不同,请体会两者的区别。

保存工程,将窗体文件命名为Main,将工程文件命名为教学管理系统。

数据库文件最好保存在相同的文件夹下。

DataGrid2)、主窗体的界面设计为操作方便,采用单文档界面(SDI)。

打开主窗体(文件名为Main),设置窗体的部分属性。

属性名属性值说明名称Main 主窗体的名称Caption 课程管理系统主窗体标题BackColor &H8000000C& 主窗体背景颜色WindowState 2 - Maximized 主窗体启动后最大化单击【工具】→【菜单编辑器】菜单项,打开菜单编辑器设计窗体的主菜单。

为每个菜单项取一个比较有意义的名称。

菜单项结构菜单项名称说明课程管理(&C) mntCourse 一级菜单课程库管理(&M) mntCourseMaint 二级菜单项课程安排(&A) mntCourseArrange 二级菜单项课程安排查询(&Q) mntCourseQeury 二级菜单项班级课表(&T) mntCourseClass 二级菜单项成绩管理(&S) mntScore 一级菜单成绩库管理(&M) mntScoreManage 二级菜单项- mntScoreSP 二级菜单项,分隔线学生成绩查询(&Q) mntScoreStudent 二级菜单项班级成绩分析(&A) mntScoreClass 二级菜单项系统维护(&M) mntSystem 一级菜单用户管理(&U) mntSysUsers 二级菜单项- mntSysSP1 二级菜单项,分隔线关于(&A) mntSysAbout 二级菜单项- mntSysSP2 二级菜单项,分隔线退出系统(&Q) mntSysQuit 二级菜单项3)、部分程序的实现主窗体中各菜单项的功能在后面介绍,这里先实现退出功能,单击主窗体的“退出系统”菜单项,系统自动生成相应事件的过程框架,并切换到代码窗口,添加代码,完整的过程事件代码如下。

Private Sub mntSysQuit_Click()EndEnd Sub为了提高系统的安全性,用户必须通过登录认证才能使用本系统。

程序运行后首先显示的是登录窗体,用户输入正确的用户名和口令才能启动主窗体。

为了实现这个功能,一种可选方案是将登录窗体设为启动模块,另一种方案是将启动模块设置为Main过程,在main过程中显示登录模块进行登录认证,根据认证结果确定是否显示主窗体。

本章采用第二种方案。

单击【工程】→【添加模块】,为工程添加一个新模块,将“模块名称”属性设置为Main,并保存Main.bas。

5 课程管理模块课程管理模块实现课程信息的输入、浏览、修改、删除等功能。

本节内容包括如下几个方面:模块分析;窗体的创建;模块用户界面的设计;模块功能的实现。

一、模块功能分析实现思路课程信息保存在Course数据表中,通过ADO的Recordset对象从数据表中取出记录,并通过DataGrid表格将数据显示在数据表上,实现数据的浏览。

由于是单表操作,可以通过Recordset 对象的AddNew、Delete、Update等方法可以实现添加、删除和修改功能。

二、窗体的设计单击【工程】→【添加窗体】,给工程添加一个新窗体,窗体的主要属性设置如下表所示:属性名属性值说明窗体名称名称frmCourseManageCaption 课程管理窗体标题BorderStyle 1 - Fixed Single 窗体为固定边界,禁止用户改变大小StartUpPositio n1 - 所有者中心窗体启动后居于主窗体中央三、模块用户界面的设计在窗体上添加若干标签、文本框、按钮、组合框,并添加一个日期选择框、一个数据表格控件、两个数据控件。

窗体布局如下图所示:其中dtpBeginDate 是日期选择框。

数据表格dbgClass 的设置可以参考“院系设置模块”中对dbgDepart 的操作。

三、模块用户界面的设计4个导航按钮(cmdFirst 、cmdPrevious 、cmdNext 、cmdLast )的字体比较特殊,采用Webdings 字体在按钮上显示四种箭头图案。

dgDepart 是数据表格控件(DataGrid ),该控件在工具箱窗口的图标为,如果看不到该控件,请前面所述相关操作。

在该控件上单击右键,选择【属性】菜单项,打开属性对话框。

在“通用”选项卡中设置表格标题,去掉AllowUpdate 选项,如图13-12所示。

去掉AllowUpdate 选项的目的是禁止用户通过数据表格直接修改数据,从而通过程序更好地控制数据的有效性和数据库的完整性,其他各项的设置可以根据需要设置。

和上一章不同,本章不需要将表格和数据控件绑定,表格中的数据显示用代码控制。

四、模块功能的实现窗体卸载过程在窗体的卸载过程中完成以下功能: 断开数据表格和数据集的绑定; 关闭打开的数据集;断开模块和数据库的连接; 释放ADO 对象实例。

代码如下:dgCoursecmdPrevious cmdNext cmdLast cmdFirst cmdQuitcmdSave cmdAddcmdModify cmdDeletetxtDesctxtCourseID txtCourseNametxtCredit txtPeriodtxtTeacherPrivate Sub Form_Unload(Cancel As Integer)Set dgCourse.DataSource = Nothingrs.CloseConn.CloseSet rs = NothingSet Conn = NothingEnd Sub数据浏览功能的实现通过四个导航按钮实现对数据库的浏览。

代码如下:Private Sub cmdFirst_Click()If rs.RecordCount > 0 Then rs.MoveFirstEnd SubPrivate Sub cmdLast_Click()If rs.RecordCount > 0 Then rs.MoveLastEnd SubPrivate Sub cmdNext_Click()If Not rs.EOF Then rs.MoveNextIf rs.EOF And rs.RecordCount > 0 Thenrs.MoveLastEnd IfEnd SubPrivate Sub cmdPrevious_Click()If Not rs.BOF Then rs.MovePreviousIf rs.BOF And rs.RecordCount > 0 Thenrs.MoveFirstEnd IfEnd Sub记录添加功能的实现界面上的文本框没有和数据集绑定,在里面输入数据并不影响数据集里面的记录。

当单击【添加】按钮时,利用Recordset对象的AddNew方法将文本框中的数据加到数据集中。

添加前先对数据进行规格化处理,然后验证数据的合法性,并利用另一个Recordset对象检查课程编号的合法性。

使用AddNew方法添加记录后,数据只保存在缓冲区中,需要调用UpdateBatch(或者Update)方法将数据写到数据库中。

注意,rsValid使用完毕后应该将其释放。

数据修改/保存功能的实现当用户按下【修改】按钮时,请数据集中的字段信息取出放到文本框中供用户修改,使【保存】按钮能够被用户单击,以保存修改后的数据。

Credit和Period是数值型字段,需要进行类型转化。

【保存】按钮功能的实现和【添加】按钮比较相似,不同的是如果课程编号被修改,为了保持数据库的完整性,其他数据表(包括选课数据表、成绩数据表)中的课程编号也应作相应的修改,也就是数据的“级联更新”。

级联更新通过ADO的Command对象来实现,利用该对象执行一个更新数据的SQL语句实现对表中多条数据的一次性更新。

使用Command对象时,注意Command 对象属性的设置。

当用户单击导航按钮移动数据集指针后,为了防止单击【保存】按钮错误修改数据,应禁止【保存】按钮。

在代码编写窗口对象组合框中选择“rs”,从事件组合框中选择“MoveComplete”事件。

5.2 课程安排模块课程安排模块实现各班级对课程的选择、上课教室的、上课时间的安排以及管理。

本节内容包括如下几个方面:模块分析;窗体的创建;模块用户界面的设计;模块功能的实现。

一、模块功能分析实现思路可以列出所有班级和课程供用户选择安排,已经安排好的课程用表格显示出来供用户修改、删除。

数据的显示通过ADO的Recordset对象实现,数据的添加、修改、删除通过ADO的Command 对象完成。

二、窗体的设计在工程中新建一个窗体,将窗体保存为FormCourseArrange.frm。

窗体的主要属性设置如下表所示:属性名属性值说明名称CourseArrange 窗体名称Caption 课程安排窗体标题BorderStyle 1 - Fixed Single 窗体为固定边界,禁止用户改变大小StartUpPosition 1 - 所有者中心窗体启动后居于主窗体中央三、模块用户界面的设计在窗体上添加控件,各控件的属性参照前面各节,不再赘述(其中cmbClass的Style属性设置为2 - Dropdown List)四、模块功能的实现通用变量定义通用变量的定义同课程管理模块。

在窗体加载时,需要将所有的班级编号填充到班级编号组合框中,将所有课程填充到课程列表框中,并激活班级编号组合框来初始化界面。

相关主题