VC++实例 教职工管理系统Word格式文档下载.docx
《VC++实例 教职工管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VC++实例 教职工管理系统Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
![VC++实例 教职工管理系统Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-11/22/dcf02206-ff29-464a-bd6b-367556391301/dcf02206-ff29-464a-bd6b-3675563913011.gif)
职工姓名
文本
20
职工性别
2
所在部门
30
职工年龄
整型
工作时间
日期/时间
8
职务
职称
简历
备注
默认
职工工资情况表的结构定义如表2.2所示,注意,这是一个简化了的职工工资数据表,因为工资表往往比较复杂,而且不同的单位工资表结构也有所不同.我不可能定义一个“万能”的工资表结构,只能创建一个具有示范意义的工资数据表结构。
表2.2
职工工资数据表的结构
基本工资
单精度型
其他工资
月收入
2.3.2
数据库与数据表的创建过程
利用MicrosoftAccess创建数据序及具数据表的步骤如下:
(1)启动MicrosoftOffice2003中的MicrosoftAccess应用程序,出现如图2.1所示对话框。
图2.1
新建数据库
(2)选择创建一个空数据库。
(3)单击“确定”按钮之后出现保存对话框,确定保存数据库的文件位置和数据库名称即可,本例中数据库名称为“职工管理数据库”;
随后出现图2.2所示界面。
图2.2
数据库中的数据表操作界面
在数据表操作界面小,用户可以打开已经存在的数据表,也可以创建新的数据表。
(4)单击“设计”菜单项即可以设汁一个斯的数据表结构;
设计一个新的数据表结构就是通过数据表的设计器设计一个表的字段名称、宇段类型、字段大小、小数位数以及索引字段等等。
图2.3所示是职工信息数据表结构的设计器,采用同样的方法,可以创建职工工资数据表。
两个数据表结构一经创建,用户可以打开该数据表,在数据表中输入一些基本数据,以便在后面的系统设计中体现设计的效果。
创建的数据库保存在“D:
VC\职工管理数据库”中。
2.4
创建职工管理系统应用程序框架
在VC++中创建应用程序往往可以通过向导首先创建一个应用程序的框架,应用程序框架为期户提供了一个基本的开发过程。
在这里,首先介绍制作“职工管理系统”程序的基本框架的过程和方法,其过程如下:
(1)启动VC++程序,出现VC++开发平台。
(2)在VC++主菜单中单击“文件新建”菜单项,出现工程类型选择列表。
(3)在“工程”类型选择列表中选择工程类型为“MFCAppWizard(exe)”。
(4)在“工程”编辑框中键入“教职工管理系统”。
(5)在“位置”列表拒中选样存放的位置,此处设置为“D:
\VC++我的毕业设计”。
(6)选择“R创建新工作区”并选择适合于Windows操作系统的Win32平台,如图2.4所示。
图2.4
工程创建的基本配置
(7)单击“确定”按钮,出现图2.5所示对话框,该对话框用于进行应用程序类型设置。
图2.5
应用程序类型设置
(8)选择“基本对话框”,并设置在资源中使用的语言为“中文[中国]”。
(9)单击“下一步”按钮,出现另一个设置对话框,即工程特色设置对话框,如图2.6所示。
图2.6
工程特色设置
在工程特色设置对话框中作三项内容选择,即:
A关于框符、3D控制、ActiveX控件,并输入标题对话为“教职工管理系统”主界面。
(10)单击“完成”按钮,出现应用程序设置的全部信息:
Applicationtypeof教职工管理系统:
//工程类型
Dialog-BasedApplicationtargeting:
//基本对话框
Win32
//适合于Windows平台
Classestobecreated:
//创建类
Application:
CMyAppin
教职工管理系统.hand教职工管理系统.cpp
Dialog:
CMyDlgin教职工管理系统Dlg.hand教职工管理系统.cpp
Features:
//特色信息
+Aboutboxonsystemmenu
//创建了About对话框
+3DControls
//支持3D控件
+UsessharedDLLimplementation(MFC42.DLL)
//使用动态链接库
+ActiveXControlssupportenabled
//支持ActiveX控件
+Localizabletextin:
//工程定位
中文[中国]
//资源使用语言
(11)单击“确定”按钮完成应用程序框架的创建,出现应用系统框架,如图2.7所示。
图2.7
应用程序框架显示
在应用系统程序框架中列出了全部的资源文件,用户可以进行资源显示,并可以显示由向导自动创建的各种类文档,这与第一个我的毕业设计所创建的应用程序框架的内容大体一致。
2.5
基本框架的修改
应用程序生成向导往往只能生成一个应用程序的架构,它不能执行任何的事务和系统的功能,需要用户权据自己的需求送行具体的制作,因此我首先对应用程序的基本框架进行修改。
2.5.1
主界面的修改
在采用申文档应用程序类型创建应用系统时,往往向导创建的应用程序框架中的第一个对话柜就是该应用系统的主控界面。
主界面可以说是一个应用程序的核心,通过主界面可以调用其他界面。
用户可以在主界面中创建主菜单、快捷键面板或快捷菜中等,也可以增加命令按钮,用以对其他界面进行调用。
如果是一个简单的应用系统.也可以直接将主界面作为数据管理的界面,直接在主界面中进行控件布局、创建数据源并进行数据访问控件与数据源之间的“数据绑定”。
在我的毕业设计中,先对主界面,即对话框作如下修改:
(1)删除主界面中的“确定”按钮。
(2)删除主界面中的“取消”按钮。
(3)删除主界面中的“TODO:
在这里设置对话控制。
”静态文本框控件。
(4)在界面中放入一个命令控钳控件BUTTON1。
(5)用鼠标右键单击命令按钮控件BUTTON1,出现—个快捷菜单。
(6)在快捷菜单个选择“属性”菜单项,出现该按钮的属性设肯对话框。
(7)将命令按钮BUTTON1的资源索引号ID修改为“IDC_EXIT_BUTTON”。
(8)将命令按钮BUTTON1的标题属性设置为“退出系统”。
(9)设置它的StyIe属性为“坦平”。
其属性设置对话框如图2.8所示。
图2.8
按钮属性设置
(10)关闭属性设置对话框,回到程序的主界面。
(11)编译运行工程,并单击该按钮,你会发现,它不会执行任何操作,因为我并末对其编制任何的过程代码。
2.5.2
为“退出系统”按钮创建类并增加成员变量
在VC+应用程序中,资源是按类和成员变量进行识别的,因此我需要为资源中的每一个对象创建或声明一个类和相应的成员变量。
内于此处该按钮是对话柜中的一个控件,也就是它的一个成员,因此它是对话柜类中的一个控件对象,不用再为它创建一个新类(从图2.9可以看出,它是对话框CMyDIg类中的一个控件,其控件索引号为;
IDC_EXIT_BUTION),我只为它创建一个成员变量即可,其过程如下:
(1)用鼠标右键单击“退出系统”按钮,出现一个快捷菜单。
(2)在快捷菜单中单击“建方类向导”菜单项,出现用于创建类的对话柜,如图2.9所示。
图2.9
创建类
在该对话框中,可以对新的对象创建一个新的类并定义一个成员变量,但此处,我仅将“退出系统”按钮作为对活框的一个成员,因此,只需要为它定义一个成员变量即可。
(3)申击AddVariabIe…按钮,出现成员变量创建对话柜,如图2.10所示。
图2.10
成员变量定义
在为—个对象引入成员变量时,首先应该为它定义一个成员变量名称,然而设置成员变只所属的类(Category),分为两种:
一是控件(Control)类,第二类为值类,即Value类,在列表中系统将会根据对象的类型而自动列出一个供参考选择的列表内容,此处选样Control。
另外,还而要设置变量的类型(VariabIetype),系统也会根据对象的类型在列表框中列出相应的值,此处选择CButton。
(4)单击OK按钮即完成命令按钮的成负变量设置,随后它会显示在对话框类的成员变量信息列表中,如图2.11所示。
图2.11
对话框类中的成员变量信息
在一个类中有多少个成员,它便显示多少个成员变量的信息.此处,目前只有一个成员在对话框中,因此只有一条信息。
值得注意的是,成员变量可以删除,也可以修改并重新进行定义,使成员变量必须是无二义性的,即在一个应用系统中,一个成员的变量是惟一的,不能出现两个成员定义同一成员变量的现象,否则会出现错误信息。
2.5.3
为“退出系统”按钮编制事件的过程代码
“退出系统”技钮的作用就是结束应用程序的执行,关闭应用程序主窗体(对话框),因此我需要给它制作相应的过程代码,其操作步骤如下:
(1)将图2.11的选项卡面图切换到消息映肘(MessageMaps)近项卡,选择对象索引号ID为IDC_EXIT_BUTTON的项。
(2)在选项卡中选择单击事件BN_CLICKED信息(注意,作为一个命令按钮,执行事务的方式有单击和双击两种方式,此处选择单击方式,即BN_CLICKED)。
(3)单击AddFunctlon…按钮增加该对象的成员函数,出现成员函数名定义,如图2.12所示。
图2.12
成员函数名定义
(4)直接接受系统建议的成员函数名即可。
(5)单击OK按钮,完成成员函数的增加。
(6)单击EditCode…按钮,进入命令按钮的事件过程代码编辑需要的过程代码即可,“退出系统”命令拉钮的过程代码如下所示:
voidCMyDlg:
:
OnExitButton()
{
//开始编制过程TODO:
Addyourcontrolnotificationhandlercodehere
OnOK();
//结束代码编制
}
该代码的编辑实际上是在对话框的过程代码文件中的一个“代码体”中进行编辑,在VC++中,一个事务的过程编制往往以一个“代码体”来进行,它以void为过程标识与声明,该标识说明了对象所在的类和对象的函数名称CMyDlg:
:
OnExitButton()。
代码体以
}表示。
注意,在为VC++程序中的成员编制过程代码时,如果用到VC++的内部函数,则对于代码符号是有严格要求的,内部函数的函数名不仅需要区分大小写,而且还必须在英文状态下编写,否则在系统编译时,函数名不会被识别,将出现编译错误编制事件的过程代码之后,可以编译运行工程并检验按钮的功能,它将按设计过程完成结束程序的事务,即关闭对话框。
2.6
为工程增加两个对话框资源
在前面的过程中,我已经通过向导为应用程序生成了一个应用程序框架,并生成了一个系统主控界面对话框IDD_MY_DIALOG和一个IDD_ABOUTBOX对话框成员,但这两个对话框还不能满足我工程设计的需要,在应用系统中我至少需要处理两个数据表的数据,即教职工基本情况数据和教职工工资情况的数据,因此我需要在工程中增加两个对话框资源。
2.6.1
增加对话框资源
(1)单击VC++主菜单中的“插入|资源”菜单项,出现一个资源类型选择对话框,如图2.13所示。
图2.13
资源类型选择对话框
(2)在资源类型选择对话框中,选择对话框资源Dialog。
(3)单击“新建”按钮,则在工程少增加了一个对话框资源。
它的资源索引号ID自动设置为:
IDD_DIALOG1。
(4)用相同的方法可以为工程增加另一个对话枢资源IDD_DIALOG2。
2.6.2
为两个新的对话框资源创建新类
(1)在工程的资源管理器中,将页面切换到资源选项卡并双击IDD_D1ALOG1,出现IDD_DIALOG1对话框。
(2)用鼠标右键单击它的空白处,出现一个快捷菜单。
(3)在快艇菜单小单东“建立类向导”菜单项,出现图2.14所示对话框。
图2.14
类创建的信息提示对话框
(4)选择Createanewclass单选选项,即选择创建一个新类。
(5)单击OK按钮,出现类名设冒对话框,在类名设置对话框中设置该对话框的类名称为CMyDlg1,并作如下选择:
FileName:
MyDlg1.cpp
//类文件名
BaseClass:
Cdialog
//所属基类
DialogID:
IDD_DIALOG1
//资源索引号
Automation:
None
//处理自动化
其选择如图2.15所示。
(6)单击OK按钮结束类的创建。
这样我就为新增加的对话框资源DIALOG1创建了一个新的类,其类名为CMyDlg1。
用同样的方法为对话柜资源IDD_DIALOG2创建一个新类:
CMyDlg2,这样在工程中就增加了两个新的类。
如果在新的资源即对话框中放入别的控件,则新的控件成为这类的一个成员,这就是说,成员与类有区别,同时又有联系,成员从属于一个类资源,但往往资源是独立的一个“单元”。
图2.15
类创建设置
2.6.3
为两个新类加以声明
(1)在资源管理器中选择叫FileView选项卡,如图2.16所示。
图2.16
文件查看选项卡
(2)双击“教职工管理系统Dlg.cpp”,即出现该文件的开始部分,该部分用来对工程中的类进行声明,增加新的声明,如下所示:
//教职工管理系统Dlg.cpp:
implementationfile
在这一个文件的开始部分声明两个对话框资源的头文件,其代码如下:
//教职工管理系统.cpp:
Definestheclassbehaviorsfortheapplication.
//
#include"
stdafx.h"
教职工管理系统.h"
教职工管理系统Dlg.h"
//开始声明
MyDlg1.h"
MyDlg2.h"
//结束声明
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
StaticharTHIS_FILE[]=_FILE_;
#endif
这样,在教职工管理系统Dlg.cpp中声明了两个新的类的头文件。
通过声明程序,可以在以后对新的类的引用加以识别。
如果不加以声明,将会出现不明身份的对象的信息提示。
2.7
为工程的主控界面设计一个菜单
在工程中我有了一个主窗体刘话框和两个新增加的对话框资源,主对话框资源可以在系统启动时运行,但其他的对话框如何在工程中加以显示?
这就需要借助于菜单或命令按钮。
这里,我首先为主对话框创建一个菜单,与对话框一样,菜单也可以作为一种资源被加入到工程中,并为用户加以运用。
2.7.1
菜单资源的加入与菜单设计
在工程中加入一个菜单资源的操作过程如下:
(1)在VC++主菜单中单击“插入|资源”菜单项,出现一个资源类型选择对话框。
(2)在资源类型选择对话框中选择菜单(MENU)资源类型,并单击“新建”按钮,即可在工程中增加一个菜单资源。
它出现在工程的资源选项卡中。
接下来就需要用户设计菜单项,其菜单项如表2.3所示
表2.3
菜单对象的基本属性
对象名称
ID
标题内容
主菜单条目
无
职工基本信息
子菜单条目
ID_DATA_MENU
信息处理
职工工资管理
ID_SALARY_MENU
工资处理与浏览
关于
IDS_ABOUTBOX
关于职工管理系统
菜单设置如图2.17所示。
图2.17
菜单
注意,在资源的运用中,菜单资源比较特殊,由于菜单资源是用VC++的菜单设计器进行制作的,因此它往往不需要像其他资源那样创建新的类和进行声明。
2.7.2
将菜单与主对话框连接
(1)在工程资源管理器中选样资源选项卡。
(2)双击主对话框资源IDD_MY_DIALOG,出现主对话框。
(3)用鼠标右键单击主对话框控件,出现一个快捷菜单,在快捷菜单中单击属性菜单项,出现属性设置对话框。
(4)在属性设置对话框中选择菜单资源,选择目前创建的惟一的菜单资源即可(如果有多个菜单资源存在,则可在其中选择一个菜单,和对话框进行连接),如图2.18所示。
图2.18
对话框属性设置
(5)关闭对话框并运行工程,可以发现主对话框已经成功地与菜单进行了连接,其效果如图2.19所示。
图2.19
菜单与对话框连接的效果
在工程中,创建程序框架时已经生成了一个About对话框,但它并未与菜单进行连接,其类也内系统自动创建,并不符合用户的需要,我需要将它删除并创建用户自己的About对话框。
因此在进行下一节的内容之前,我先作如下操作:
(1)在工程资源管理器中将原先创建的About对话框删除,再插入一个新的对话框资源,作为用户自创建的About对话框。
设置它的资源索引号为IDD_ABOUT_DIALOG,对话框标题属性为“关于系统”。
(2)为新的对话框创建类,其类名为:
CmyAboutDlg。
(3)同样需要在工程的“教职工管理系统Dlg.cpp”文件中声明新的About对话框,其声明如下所示:
//教职工管理系统Dlg.cpp:
#include“stdafx.h”
#include“教职工管理系统.h”
#include“教职工管理系统Dlg.h”
#include“MyDlg1.h”
//声明的对话框1
#include“MyDlg2.h”
//声明的对话框2
#include“MyAboutDlg.h”
//声有的About对话框
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=_FILE_;
#endif
(4)重新设计About对话框,其过程如下:
(5)放入两个静态文本控件,其标题分别为:
“职工管理系统简化版”利“COPYRIGHT2002”。
(6)放入一个映像控件,设置它的标题属性和图形文件即可.
教职工管理系统所需要的对话框均已经准备完毕,现在行在两个问题,一是如何用菜单去调用每—个对话框,二是如何在对话框中设计系统功能,即进行数据处理,这是我的毕业设计所需要的主要内容
2.7.3
用菜单调用对话框
菜单是与主对话框连接的,它在主对话框中进行显示。
在向导创建的所有对话框中,除主对话框自动显示之外,其他对话框均需要用户编制过程代码进行调用。
如何对对话框进行调用?
我以调用IDD_DIALOGl为例加以说明。
根据定义,该对话框是通过菜单ID_DATAMENU条目进行调用的,即调用该对话框进行职工基本信息处理。
因此我为该菜单编制过程代码,其操作过程如下:
(1)在工程的视图管理选项卡中双击菜单资源文档“IDR_MENU1”,出现菜单编辑器。
(2)在菜单编辑器中选择“职工基本信息|信息处理”,并用鼠标右键单击,出现图2.21所示的快捷菜单。
图2.21
快捷菜单
菜单作为上对话柜中的成员,通过它可以调用其他对话柜,虽然不需要为它创建新的类,但仍然需要为菜单的每一个条目定义函数和创建过程。
(3)单击“建立类向导”,出现图2.22所示类创建对话框。
图2.22
菜单类创建对话框
(4)选择菜单的过程信息映射“CoMmand”。
(5)单击AddFunction按钮为菜单增加一个函数,出现—个增加菜单成员函数的对话框,如图2.23所示。
图2.23
创建菜单的成员函数
(6)直接接受系统建议的菜单成员函数名“OnDataMenu”。
(7)单击OK按钮完成成员函数名定义过程。
(8)单击EditCode按钮,出现菜单代码过程体:
在代码过程体光标停留处编辑代码,如下所示:
OnDataMenu()
//TODO:
Addyourcommandhandlercodehere
开始编辑代码
CMyDlg1MyDlg1;
//主对话框
MyDlg1.DoModal();
//显示调用对话框1
//结束代码编辑
这样就完成了用菜单调用对话框1的过程