案例二用VC++制作一个教职工管理系统.docx
《案例二用VC++制作一个教职工管理系统.docx》由会员分享,可在线阅读,更多相关《案例二用VC++制作一个教职工管理系统.docx(45页珍藏版)》请在冰豆网上搜索。
案例二用VC++制作一个教职工管理系统
案例三用VC++制作一个图书出版管理系统
关键词:
DAO数据源创建 系统集成 消息函数 数据记录导航器制作
3.1 系统设计的目的和意义
出版社图书出版管理是一个庞大的任务,传统方式的图书管理将会造成巨大的人力和物力的浪费,因此能否实现计算机管理呢?
回答是可以的。
本案例将用VC++制作一个图书出版管理系统,它可以基本实现图书出版管理的大部分功能。
本案例将采用简化的过程代码和完整的系统集成技术,并采用DAO数据源创建方法。
在以DAO方式创建数据环境时,实现了数据源的引入和应用程序的制作。
在程序中我们利用了消息函数,并自己创建了一组数据记录导航程序和数据修改程序,程序利用了简单的消息映射过程代码,实现了对数据集的导航、浏览、增加和删除的功能。
3.2 系统功能设计
本系统具有一般系统的数据处理功能,如数据录入、增加、修改、删除等,另外,本系统将涉及多个对话框及对话框之间的相互切换。
3.3 数据库与数据表的设计
本系统将首先创建一个“图书出版管理系统”数据库,并在它之中创建三个数据表,一个是“出版图书基本信息”数据表,一个是“图书分类”表,一个是“图书出售信息”表。
3.3.1 定义数据表结构
数据表是数据库中的“元素”,数据库是数据表的集合。
数据库和数据表是任何数据库应用系统所不可缺少的基本要素,因此我们需要首先创建数据表。
先定义“出版图书基本信息”数据表的结构,如表3.1所示,它专门用于记录出版社出版的图书的基本情况。
表2.1 “出版图书基本信息”数据表结构
字段名称
字段类型
字段大小
索引
必须填写
图书ID
数字
长整型
有(无重复)
是
图书名称
文本
20
是
出版日期
数字
16
是
ISBN
文本
30
是
出版商
文本
26
是
出版地
文本
26
是
价格
货币
默认
是
作者
文本
20
是
类别ID
文本
长整型
是
“图书分类”数据表的结构定义如表3.2所示。
表3.2“图书分类”数据表的结构
字段名称
字段类型
字段大小
索引
必须填写
类别ID
长整型
默认
有(无重复)
是
类别名称
文本
30
是
“图书出售信息”数据表的结构如表3.3所示。
表3.3 “图书出售信息”数据表的结构
字段名称
字段类型
字段大小
索引
必须填写
出售ID
数字
长整型
有(无重复)
是
出售价格
数字
长整型
是
出售数量
数字
长整型
是
图书ID
数字
长整型
有(有重复)
是
3.3.2 数据库与数据表创建过程
利用MicrosoftAccess创建数据库及其数据表的步骤如下:
(1)启动MicrosoftOffice2003中的MicrosoftAccess2003应用程序,出现图3.1所示对话框。
图3.1 新建数据库选择
(2)选择创建一个空数据库,单击“确定”按钮之后出现保存对话框,确定保存数据库的文件位置(创建的数据库保存的位置为D:
\VC++写作案例\CH3\)和创建的数据库名称为“图书出版管理系统”即可,随后出现图3.2所示界面。
图3.2数据库中的数据表操作界面
在数据库操作界面中,用户可以打开已经存在的数据表,并进行数据处理操作,也可以创建新的数据表或删除已经存在的表。
(3)双击“设计”菜单,即可以设计一个新的数据表结构:
图3.3是“图书出版基本信息”数据表结构的创建界面,用户可按表3.1定义的结构进行创建即可。
图3.3 “图书出版基本信息”数据表设计
用同样的方法,可以创建其他两个数据表,这在后面的系统制作中将会用到。
数据表结构一经创建,用户可以打开该数据表,在数据表输入一些基本数据,以在后面的系统设计中体现设计的效果。
3.4 图书出版管理系统应用程序框架
在VC++中创建应用程序,可以通过向导首先创建一个应用程序的框架,应用程序框架为用户提供了一个基本的开发过程。
在这里,首先介绍制作“图书出版管理系统”的基本框架的过程和方法。
其过程如下:
(1)启动VC++程序,出现VC++开发平台。
(2)在VC++主菜单中单击“文件|新建”菜单项,出现工程类型选择对话框,在工程类型选择对话框中选择工程类型为“MFCAppWizard[exe]”。
(3)在“工程”编辑框中输入“图书出版管理系统”。
(4)在“位置”列表框中选择“D:
\VC++写作案例\CH3\”。
(5)选择创建新工作区和适应的Win32平台,如图3.4所示。
图3.4 新工程创建设置
(6)单击“确定”按钮,出现应用程序类型选择对话框。
(7)在应用程序类型选择对话框中选择“单个文档”、“文档查看体系结构支持”并设置资源语言为“中文”。
(8)单击“下一步”按钮进行进一步的设置;选择包含的数据库,如图3.6所示。
图3.6 选择包含的数据库
(9)选择“查看数据库不使用文件支持”返项。
(10)中击“DataSource”按钮,出现图3.7所示的数据源创建对话框。
在数据源连接方式中选择ODBC方式,并通过开关按钮选样“D:
\VC++写作案例\Ch3\图书出版管理系统.mdb”作为系统制作的数据源,如图3.7所示。
图3.7 数据源连接方式与数据源选择
在这里我们选择ODBC数据源类型,即选择一种开放式数据源连接的驱动程序类型作为系统的数据源。
往往在单击OK按钮后会出现找不到该数据库文件的信息提示,因为作为ODBC数据源,必须先创建一个数据源名并进行数据源登录。
这里我们将采用一种通用的方法,即在MicrosoftWindows98(MicrosoftWindows2000/Me/XP中也一样)中,利用开放式数据源创建与连接的公用程序ODBC进行数据源名称的创建与连接。
其方法如下;
(9)打开MicrosoftWindows98控制面板。
(10)双击ODBCDataSource(32Bit)程序图标,出现“ODBC数据源管理器”对话框,如图1.13所示。
(11)在“用户数据源”列表框中选择名称为“MSAccessDatabase”的选项。
(12)单击“添加”按钮,然后在出现的对话框中选择使用何种驱动程序来安装数据源。
如图1.14所示。
图1.13 ODBC数据源管理器
图1.14 选择安装数据源的驱动程序
在图1.14中选择“MicrosoftAccessDriver(*.mdb)”,作为安装数据源的驱动程序。
(13)单击“完成”按钮,出现数据源安装对话框,如图1.15所示。
图1.15 数据源安装对话框
作为所创建或安装的数据源,需要一个数据源名称,以便于在应用系统制作中加以引用和识别,因此,需要为数据源命名,这里我们将其命名为“人事管理数据库”。
然后在图1.15所示对话框中对该数据源进行描述户可以填写如下内容:
“该数据库用于创建人事管理系统”。
数据库文件“人事管理数据库”是保存在磁盘文件中的,为此需要引入该数据库作为数据源。
(14)单击“选择”按钮,出现图1.16所示的数据库选取对话框。
图1.16 数据库文件选取
选取数据库文件并确认之后,回到图1.15所示对话框,再在图1.15所示对话框中单击“确定”按钮,回到ODBc数琚源管理器对话框,结束数据源的安装过程。
此后可以发现,在ODBC数据源管理器中出现了“人事管理数据库”这样一个数据源,它就是供用户使用的本地机上的ODBC数据源,如图1.17所示。
图1.17数据源安装结束
(15)有了本地机上可供用户使用的数据源之后,在图1.12所示对话框的ODBC列表中选择“人事管理数据库”数据源即可(该数据源就是前面安装的适合于本地机用户使用的ODBC数据源文件)。
(16)单击OK按钮,出现该数据源中的数据表、数据查询或视图的选择对话框,因为在一个数据源也即一个数据库中,往往存在多个数据表、查询或视图。
这里选择的数据表就是“人事管理系统”的单文档界面所使用的数据表“人事管理数据表”,如图1.18所示。
图1.18 选择数据源中的数据表
单击OK按钮确认后,即回到数据源设置对话框,如图1.19所示。
图1.19 数据源设置对话框
(18)在图3.6所示对话框中单击“完成”按钮,即出现创建应用程序基本框架的全部信息提示:
该信息提示总结了创建应用段序框架全部的设置内容,用户可以浏览该信息,如果与需要的设置不符,则需要重新创建应用程序框架,以满足后面程序开发的需要:
否则,在后面已经制作了一定内容之后再来修改框架,将造成一定的损失。
单击“确定”按钮后即出现新创建的应用程序的工作区,如图3.8所示。
3.5 开发图书出版基本信息处理对话框
在图书出版管理系统中,图书出版的基本信息处理是一个重要的方面,为此我们首先需要创作这样一个界面。
在工程向导生成的两个对话框中,一个是主界面,一个是About对话框。
我们就需要在主界面中制作图书出版的基本信息处理功能。
3.5.1 在对话框中放入控件并进行属性设置
对话框的制作开发就是对控件进行开发制作,一个对话框只是—个容器,他可以容纳别的控件并产生作用,为此,制作开发对话框,首先需要在对话框中放入必要的控件,操作步骤如下:
(1)删除对话框IDD_MY_FORM中的“TODO:
在这个对话框里设置表格控制”文本提示框。
(2)在对话框中放入一些标签控件、分组框控件、编辑框控件及命令按钮控件,对话框布局如图3.9所示。
图3.9 对话框布局
其中,标签控件的属性如表3.4所示。
表3.4 标签对象的基本属性
ID
标题内容
IDC_STATICDLGCAPTION
图书出版管理系统
IDC_STATICBH
图书编号
IDC_STATICBOOKNAME
图书名称
IDC_STATICAUTHER
作者
IDC_STATICPUBADDR
出版地
IDC_STATICPUBNAME
出版社
IDC_STATICFNH
分类号
IDC_STATICPRICE
售价
两个分组框控件的基本属性如表3.5所示。
表3.5 分组框对象的基本属性
ID
标题内容
IDC_STATICGROUP1
记录编辑区
IDC_STATICGROUP2
记录操作区
编辑框控件的属性设置如表3.6所示。
表3.6 编辑框对象的基本属性
ID
编辑内容
IDC_EDIT_BH
输入图书编号
IDC_EDITFNH
输入图书分类号
IDC_EDITBOOKNAME
输入图书名称
IDC_EDITAUTHER
输入作者名称
IDC_EDITBOOKPRICE
输入图书价格
IDC_EDITBOOKADDRESS
输入图书出版地
IDC_EDITPUBNAME
输入出版社名称
命令按钮控件的基本属性如表3.7所示。
表3.7 命令按钮对象的基本属性
ID
标题内容
IDC_BUTIONADDNEW
增加记录
IDC_BUTIONDELETE
删除记录
IDC_BUTIONPDATE
刷新记录
IDC_BUTIONFIRST
第一条
IDC_BUTIONNEXT
下一条
IDC_BUTIONPREV
前一条
IDC_BUTTONLAST
最后一条
3.5.2 对编辑框进行数据绑定
在以上对话框的控件中,除标签控件用于标示之外,编辑框控件必须与数据集进行数据绑定,命令按钮必须进行过程代码编制才能执行相应的任务。
因此用户需要首先将每一个编辑框控件与工程中引入的数据源中的字段进行数据绑定。
如何进行数据绑定呢?
由于存在多个编辑框控件,因此我们仅以“图书编号”编辑框控件的数据绑定为例加以说明,其他编辑框控件的数据绑定操作可以如法炮制。
首先修改数据源的字段映射的成员变量,其方法如下:
(1)用鼠标选中编辑框IDC_EDIT_BH控件,然后单击鼠标右键,出现一个快捷菜单。
(2)快捷菜单中单击“建立类向导”菜单项,出现一个消息映射对话框。
(3)将消息映射选项卡切换到“成员变量”选项卡,如图3.10所示。
图3.10 “成员变量”选项卡
(4)在“成员变量”选项卡的Classname列表框中选择数据集CmySet,此时将出现创建数据源时产生的数据源字段的全部成员变量。
往往全部字段的成员变量名为自动生成的,而且按自然编号排列,这样在建立编辑框与字段映射时很不方便,因此需要修改其数据集中全部字段的成员变量名称,通常按字段名称的中文拼音字母重新定义字段的成员变量,重新定义字段的成员变量之前,需要先删除原字段成员变量,然后再单击“增加成员变量”按钮定义新的成员变量,其全部字段的成员变量如图3.11所示。
图3.11 重新定义成员变量的结果
接下来,我们就可以为“图书编号”编辑框控件与字段成员变量进行映射。
(5)在图3.11所示的对话框的Classname列表框中选择CmyView,出现对话框全部成员列表,如图3.12所示。
图3.12 成员名称列表
(6)在成员名称列表中选择IDC_EDIT_BH编辑框,然后单击AddVariable按钮,出现选择字段映射成员变量的列表框,在字段映射成员变量列表框中选择“图书编号”字段的成员变量名称即可,如图3.13所示。
图3.13 编辑框控件与字段成员变量的映射
用同样的方法可以完成其他编辑框与相应的字段成员变量之间的映射关系。
这样就将对话框中的编辑控件与数据源中的字段一一对应起来,并可以通过编辑框控件对数据集中的字段进行修改、增加与删除等数据操作。
3.5.3 为每一个命令按钮编制过程代码
命令按钮是用于事务处理的,但没有过程代码是不能进行任何操作的,因此我们需要为每一个命令按钮编制过程代码,我们以“增加记录”命令按钮为例来说明编制过程代码的方法。
(1)用鼠标右键单击“增加记录”命令按钮,出现一个快捷菜单。
(2)在快捷菜单中单击“创建类向导”菜单项,出现消息映射对话框。
(3)在消息映射对话框的第一个页面中选择BN_CLICKED单击事件句柄,并单击“增加函数”按钮,出现“增加记录”按钮的函数定义界面,直接接受系统建议的函数名即可。
(4)单击“编辑代码”按钮,可以为“增加记录”按钮编辑过程代码,其代码如下所示:
其他几个命令按钮的过程代码编制可采用完全相同的方法,他们的过程代码如下:
“删除记录”命令按钮的过程代码如下所示:
“刷新记录”命令按钮的过程代码如下所示:
注意:
在对话框运行时,只有在有新记录增加、记录删除或记录修改的情况下才能刷新记录,否则会出现信息提示。
“第一条记录”命令按钮的过程代码如下所示:
“下一条记录”按钮的过程代码如下所示:
“前一条记录”命令按钮的过程代码如下所示:
“最后一条记录”命令按钮的过程代码如下所示:
这样我们便完成了对话框IDD_MY_FORM的全部制作过程。
编译运行工程,出现该对话框的运行效果,如图3.14所示。
图3.14 对话框运行效果
3.6 制作图书销售处理对话框
在图书出版管理系统中,图书销售管理是一个重要的方面,需要一个专门的对话框来对图书销售进行记录、编辑、增加或删除。
3.6.1 增加新的对话框资源并创建一个新类
要制作进行图书销售处理的对话框,首先需要增加一个新的对记框资源,并为该资源创建一个新类,以便系统按类进行调用。
其操作如下:
(1)在VC++主菜单中单击“插入|资源”菜单项,出现一个资源类型选择列表。
(2)在资源类型列表中选择对话框Dialog,单击“新建”按钮,则在工程中增加一个新的对话框,其自动生成的资源索引号ID为:
IDD_DIALOG1;修改他的标题属性为“图书销售”。
为新的对话框创建一个新的类。
(3)用鼠标右键单击新的对话框IDD_DIALOG1,出现一个快捷菜单,在快捷菜单中单击“建立类向导”,出现一个类创建选择对话框,如图3.15所示。
图3.15 创建类选择
(4)选择创建一个新的类,单击OK按钮,即进入创建新的类设置对话框,在类名设置对话框中设置该对话框的类名称为CMyDlg1,并作如下选择:
FileName:
MyDlg1.cpp //类文件名
BaseClass:
Cdialog //所属基类
DialogID:
IDD_DIALOG1 //索引号
Automation:
None //处理自动化
图3.16 类创建设置
单击OK按钮结束类创建。
3.6.2 对新类进行声明
由于需要通过主控界面的对话框调用新的对话框,因此需要在应用系统的主对话作程序文档中对两个新的对话框资源进行声明,以明确其身份。
声明新类的方法如下:
(1)在资源管理器中切换到FileView页面,如图3.17所示。
图3.17 主对话框视图文档页面
(2)在SourceFile文档中双击“MyDlg.cpp,即出现该文件的开始部分,该部分是对工程中的类进行声明,增加新的声明,如下所示:
//MyDlg.cpp:
implementationfile
#include“stdafx.h”
#include“图书出版管理系统.h”
#include“MyDlg.h”
//开始声明
#include“MyDlg1.h”
//结束声明
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
StaticcharTHIS_FILE[]=_FILE_;
#endif
3.6.3 用主对话框IDD_MY_FORM调用新的对话框IDD_DIALOG1
前面我们已经创建了一个新的对话框资源并创建一个新类,同时对该类进行了声明。
如何通过主对话框IDD_MY_FORM对新的对话框进行调用,这是关键的问题。
为了能够对新的对话模型进行调用,我们光对主对话框进行修改并增加控件,其操作如下:
(1)调整主对话框宽度,以适合系统制作和功能执行的需要。
(2)在主对话框中放入一个分组框控件。
(3)在分组框控件中放入两个选项按钮:
对话框布局如图3.18所示
图3.18 主对话框布局
其中分组框控件和两个选项按钮的基本属性如表3.8所示。
表3.8 分组框与选项按钮的基本属性
ID
标题内容
IDC_STATICGROUP3
查询
IDC_RADIO1
图书销售
IDC_RADIO2
图书分类
选项按钮IDC_RADIO2,即“图书分类”按钮,将用于调用图书分类对话框。
接下来我们为“图书销售”选面按钮编制过程代码。
(4)用鼠标右键单击“图书销售”选项按钮,出现一个快捷菜单。
(5)在快捷菜单中选择“创建类向导”,出现消息映射对话框,如图3.19所示。
图3.19 消息映射对话框
(6)在消息映射对话框中选择IDC_RADIO1并选择消息BN_CLICKED。
(7)单击AddFunction按钮,出现函数名定义对话框,直接接受系统建议的函数名称即可。
(8)单击EditCode按钮,为选项按钮1编制过程代码,该过程用于调用对话框IDD_DIALOG1;其代码如下所示:
先检验选项按钮对IDD_DIALOG1的调用情况,这样可以保证后面程序的有效性。
其运行效果如图3.20所示。
图3.20 对话框调用效果
3.6.4 制作图书销售界面
前面我们已经通过主对话框IDD_MY_FORM实现了对对话框IDD_DIALOG1的调用,但对话框IDD_DIALOG1还不具备任何功能,这就需要我们为他创建一个图书销售的管理功能。
(1)在工程资源管理器中选择IDD_DIALOG1。
(2)将IDD_DIALOG1中的Cancel按钮删除并调整OK按钮的布局。
(3)在对话框IDD_DIALOG1中放入一个标签控件。
(4)在对话框IDD_DIALOG1的空白处单击鼠标右键,出现一个快捷菜单。
(5)在快捷菜单中单击“InsertActiveXControl”菜单项,即插入一个ActiveX控件;在控件列表中出现所有的ActiveX控件,如图3.21所示。
图3.21 ActiveX类控件列表
(6)在ActiveX控件列表中选择“MicrosoftADODataControl,Version6.0”,并单击“确定”按钮,即将一个ADODC控件放入到对话框中。
ADODC控件是一个数据源连接控件,他专门用于为应用系统创建数据环境,其作用与ODBC数据源一样,但使用方法和功能上有一定的区别。
同时数据环境一经建立,ADODC控件又可以作为一个数据导航控件,专门用于对数据环境中的数据记录进行浏览查询。
对话框IDD_DIALOG1是专门用于处理图书销售情况的一个对话框,因此他需要引入数据源,即用户需要为他引入数据源中的数据表,作为该对话框进行数据处理的“对象”。
(7)用鼠标右键单击ADODC控件,出现一个快捷菜单。
(8)在快捷菜单中单击“属性”,出现控件属性设计器,如图3.22所示。
图3.22 ADODC控件属性设计器
(9)设置控件的基本属性,如表3.9所示。
表3.9 ADODC控件的基本属性
属性
属性内容
ID
IDC_ADODC1
显示
YES
标题
图书销售浏览查询
ConnectionString
Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:
\VC+写作案例\Ch3\图书出版管理系统.mdb;PersistSecurityInfo=False
RecordSource
出售图书
表3.9所示内容是ADODC1控件的基本属性,它还有许多其他的属性,我们仅列出其基本属性,其它属性可随着不同项目的需要而加以设置。
在基本属性中,连接字符串和记录数据两个属性尤其重要。
设置这两个属性的过程如下:
(10)在图3.22中将选项卡页面切换到Control页面:
在该页面中选择UseODBCDataSourceName选项。
如图3.23所示。
图3.23 数据控件属性设置页面
(11)单击New按钮,出现一个创建数据源类型的选择对话框,如图3.24所示。
图3.24 数据源类型选择
(12)在数据源类型的选择对话框中,选择“用户数据源”,出现图3.25所示的驱动程序选择对话框。
图3.25 数据源驱动程序选择
(13)由于我们采用了MicrosoftAccess2000创建数据库和数据表,因此我们也相应地选择MicrosoftAccessDriver驱动程序。
(14)单击“下一步”按钮,出现一个数据源设置完成的对话框。
(15)单击“完成”按钮,即出现确定数据源位置和为数据源命名的对话框,如图3.26所示。
图3.2