VC++管理系统项目设计与实现整理.docx
- 文档编号:8700356
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:29
- 大小:1.02MB
VC++管理系统项目设计与实现整理.docx
《VC++管理系统项目设计与实现整理.docx》由会员分享,可在线阅读,更多相关《VC++管理系统项目设计与实现整理.docx(29页珍藏版)》请在冰豆网上搜索。
VC++管理系统项目设计与实现整理
VC++制作一个人事管理系统——教职工管理系统
关键词:
VC++应用程序向导 增加对话框资源 ADODC控件 DataGrid控件对话框切换
系统设计的目的和意义
人事管理系统是公司或学校或其他的事业单位用来统一管理人员的软件,下面我就一学校的教职工管理系统为例。
学校职工查询是学校管理中需要经常处理的一项工作,我的毕业设计结合一个简化的学校教职工管理系统的制作,介绍如何利用VC++的应用程序向导制作应用程序。
该系统的制作涉及一个数据库、两个数据表及其相关的对话框的制作开发,涉及在工程中增加对话框、调用对话框的方法以及应用程序向导的使用方法。
最重要的是,在我的毕业设计中,我将介绍一种新的数据源引用方法,即使用ADODC控件引用数据源并制作应用系统的方法。
我的毕业设计程序是简单的,但方法是重要的。
2.2系统功能设计
本系统具有—般系统的数据处理功能,如数据录入、增加、修改、删除等。
数据库与数据表的设计
本系统将首先创立一个职工信息数据库,并在它之中创立两个数据表,一个是“职工信息数据表〞,—个是“职工工资信息表〞。
在我的毕业设计当中,我仅用MicrosoftAccess2003创立教职工管理数据库及其数据表。
利用MicrosoftAccess2003创立教职工管理数据库及其数据表
微软公司的许多产品所支持的数据库结构与数据库驱动器类型均是通用的,因此,用户往往可以借助于相关的工具创立数据库与数据表,这里我介绍采用MicrosoftAccess2003创立数据库及其数据表的方法。
先定义职工信息数据表的结构,如表所示,它专门用于记录教职工的根本情况。
表 职工信息数据表的结构
字段名称
字段类型
字段大小
索引
必须填写
职工编号
数字
长整型
惟一、主索引
是
职工姓名
文本
20
是
职工性别
文本
2
是
所在部门
文本
30
是
职工年龄
数字
整型
是
工作时间
日期/时间
8
是
职务
文本
20
是
职称
文本
20
是
简历
备注
默认
是
职工工资情况表的结构定义如表所示,注意,这是一个简化了的职工工资数据表,因为工资表往往比拟复杂,而且不同的单位工资表结构也有所不同.我不可能定义一个“万能〞的工资表结构,只能创立一个具有示范意义的工资数据表结构。
表 职工工资数据表的结构
字段名称
字段类型
字段大小
索引
必须填写
职工编号
数字
长整型
惟一、主索引
是
职工姓名
文本
20
是
根本工资
数字
单精度型
是
其他工资
数字
单精度型
是
月收入
数字
单精度型
是
数据库与数据表的创立过程
利用MicrosoftAccess创立数据序及具数据表的步骤如下:
〔1〕启动MicrosoftOffice2003中的MicrosoftAccess应用程序,出现如下图对话框。
图 新建数据库
(2)选择创立一个空数据库。
(3)单击“确定〞按钮之后出现保存对话框,确定保存数据库的文件位置和数据库名称即可,本例中数据库名称为“职工管理数据库〞;随后出现图所示界面。
图 数据库中的数据表操作界面
在数据表操作界面小,用户可以翻开已经存在的数据表,也可以创立新的数据表。
〔4〕单击“设计〞菜单项即可以设汁一个斯的数据表结构;设计一个新的数据表结构就是通过数据表的设计器设计一个表的字段名称、宇段类型、字段大小、小数位数以及索引字段等等。
图所示是职工信息数据表结构的设计器,采用同样的方法,可以创立职工工资数据表。
两个数据表结构一经创立,用户可以翻开该数据表,在数据表中输入一些根本数据,以便在后面的系统设计中表达设计的效果。
创立的数据库保存在“D:
张超的毕业设计\职工管理数据库〞中。
创立职工管理系统应用程序框架
在VC++中创立应用程序往往可以通过向导首先创立一个应用程序的框架,应用程序框架为期户提供了一个根本的开发过程。
在这里,首先介绍制作“职工管理系统〞程序的根本框架的过程和方法,其过程如下:
〔1〕启动VC++程序,出现VC++开发平台。
〔2〕在VC++主菜单中单击“文件新建〞菜单项,出现工程类型选择列表。
〔3〕在“工程〞类型选择列表中选择工程类型为“MFCAppWizard(exe)〞。
〔4〕在“工程〞编辑框中键入“教职工管理系统〞。
〔5〕在“位置〞列表拒中选样存放的位置,此处设置为“D:
\VC++我的毕业设计〞。
〔6〕选择“R创立新工作区〞并选择适合于Windows操作系统的Win32平台,如下图。
图 工程创立的根本配置
〔7〕单击“确定〞按钮,出现图所示对话框,该对话框用于进行应用程序类型设置。
图2.5 应用程序类型设置
〔8〕选择“根本对话框〞,并设置在资源中使用的语言为“中文[中国]〞。
〔9〕单击“下一步〞按钮,出现另一个设置对话框,即工程特色设置对话框,如下图。
工程特色设置
在工程特色设置对话框中作三项内容选择,即:
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〕单击“确定〞按钮完成应用程序框架的创立,出现应用系统框架,如下图。
应用程序框架显示
在应用系统程序框架中列出了全部的资源文件,用户可以进行资源显示,并可以显示由向导自动创立的各种类文档,这与第一个我的毕业设计所创立的应用程序框架的内容大体一致。
根本框架的修改
应用程序生成向导往往只能生成一个应用程序的架构,它不能执行任何的事务和系统的功能,需要用户权据自己的需求送行具体的制作,因此我首先对应用程序的根本框架进行修改。
主界面的修改
在采用申文档应用程序类型创立应用系统时,往往向导创立的应用程序框架中的第一个对话柜就是该应用系统的主控界面。
主界面可以说是一个应用程序的核心,通过主界面可以调用其他界面。
用户可以在主界面中创立主菜单、快捷键面板或快捷菜中等,也可以增加命令按钮,用以对其他界面进行调用。
如果是一个简单的应用系统.也可以直接将主界面作为数据管理的界面,直接在主界面中进行控件布局、创立数据源并进行数据访问控件与数据源之间的“数据绑定〞。
在我的毕业设计中,先对主界面,即对话框作如下修改:
(1)删除主界面中的“确定〞按钮。
(2)删除主界面中的“取消〞按钮。
(3)删除主界面中的“TODO:
在这里设置对话控制。
〞静态文本框控件。
(4)在界面中放入一个命令控钳控件BUTTON1。
(5)用鼠标右键单击命令按钮控件BUTTON1,出现—个快捷菜单。
(6)在快捷菜单个选择“属性〞菜单项,出现该按钮的属性设肯对话框。
(7)将命令按钮BUTTON1的资源索引号ID修改为“IDC_EXIT_BUTTON〞。
(8)将命令按钮BUTTON1的标题属性设置为“退出系统〞。
(9)设置它的StyIe属性为“坦平〞。
其属性设置对话框如下图。
图 按钮属性设置
(10)关闭属性设置对话框,回到程序的主界面。
(11)编译运行工程,并单击该按钮,你会发现,它不会执行任何操作,因为我并末对其编制任何的过程代码。
为“退出系统〞按钮创立类并增加成员变量
在VC+应用程序中,资源是按类和成员变量进行识别的,因此我需要为资源中的每一个对象创立或声明一个类和相应的成员变量。
内于此处该按钮是对话柜中的一个控件,也就是它的一个成员,因此它是对话柜类中的一个控件对象,不用再为它创立一个新类(从图可以看出,它是对话框CMyDIg类中的一个控件,其控件索引号为;IDC_EXIT_BUTION),我只为它创立一个成员变量即可,其过程如下:
(1)用鼠标右键单击“退出系统〞按钮,出现一个快捷菜单。
(2)在快捷菜单中单击“建方类向导〞菜单项,出现用于创立类的对话柜,如下图。
创立类
在该对话框中,可以对新的对象创立一个新的类并定义一个成员变量,但此处,我仅将“退出系统〞按钮作为对活框的一个成员,因此,只需要为它定义一个成员变量即可。
(3)申击AddVariabIe…按钮,出现成员变量创立对话柜,如下图。
成员变量定义
在为—个对象引入成员变量时,首先应该为它定义一个成员变量名称,然而设置成员变只所属的类(Category),分为两种:
一是控件(Control)类,第二类为值类,即Value类,在列表中系统将会根据对象的类型而自动列出一个供参考选择的列表内容,此处选样Control。
另外,还而要设置变量的类型(VariabIetype),系统也会根据对象的类型在列表框中列出相应的值,此处选择CButton。
(4)单击OK按钮即完成命令按钮的成负变量设置,随后它会显示在对话框类的成员变量信息列表中,如下图。
对话框类中的成员变量信息
在一个类中有多少个成员,它便显示多少个成员变量的信息.此处,目前只有一个成员在对话框中,因此只有一条信息。
值得注意的是,成员变量可以删除,也可以修改并重新进行定义,使成员变量必须是无二义性的,即在一个应用系统中,一个成员的变量是惟一的,不能出现两个成员定义同一成员变量的现象,否那么会出现错误信息。
为“退出系统〞按钮编制事件的过程代码
“退出系统〞技钮的作用就是结束应用程序的执行,关闭应用程序主窗体〔对话框〕,因此我需要给它制作相应的过程代码,其操作步骤如下:
〔1〕将图的选项卡面图切换到消息映肘(MessageMaps)近项卡,选择对象索引号ID为IDC_EXIT_BUTTON的项。
〔2〕在选项卡中选择单击事件BN_CLICKED信息(注意,作为一个命令按钮,执行事务的方式有单击和双击两种方式,此处选择单击方式,即BN_CLICKED)。
〔3〕单击AddFunctlon…按钮增加该对象的成员函数,出现成员函数名定义,如下图。
成员函数名定义
〔4〕直接接受系统建议的成员函数名即可。
〔5〕单击OK按钮,完成成员函数的增加。
〔6〕单击EditCode…按钮,进入命令按钮的事件过程代码编辑需要的过程代码即可,“退出系统〞命令拉钮的过程代码如下所示:
voidCMyDlg:
:
OnExitButton()
{
//开始编制过程TODO:
Addyourcontrolnotificationhandlercodehere
OnOK();
//结束代码编制
}
该代码的编辑实际上是在对话框的过程代码文件中的一个“代码体〞中进行编辑,在VC++中,一个事务的过程编制往往以一个“代码体〞来进行,它以void为过程标识与声明,该标识说明了对象所在的类和对象的函数名称CMyDlg:
:
OnExitButton()。
代码体以
{
}表示。
注意,在为VC++程序中的成员编制过程代码时,如果用到VC++的内部函数,那么对于代码符号是有严格要求的,内部函数的函数名不仅需要区分大小写,而且还必须在英文状态下编写,否那么在系统编译时,函数名不会被识别,将出现编译错误编制事件的过程代码之后,可以编译运行工程并检验按钮的功能,它将按设计过程完成结束程序的事务,即关闭对话框。
为工程增加两个对话框资源
在前面的过程中,我已经通过向导为应用程序生成了一个应用程序框架,并生成了一个系统主控界面对话框IDD_MY_DIALOG和一个IDD_ABOUTBOX对话框成员,但这两个对话框还不能满足我工程设计的需要,在应用系统中我至少需要处理两个数据表的数据,即教职工根本情况数据和教职工工资情况的数据,因此我需要在工程中增加两个对话框资源。
增加对话框资源
(1)单击VC++主菜单中的“插入|资源〞菜单项,出现一个资源类型选择对话框,如下图。
图 资源类型选择对话框
(2)在资源类型选择对话框中,选择对话框资源Dialog。
(3)单击“新建〞按钮,那么在工程少增加了一个对话框资源。
它的资源索引号ID自动设置为:
IDD_DIALOG1。
(4)用相同的方法可以为工程增加另一个对话枢资源IDD_DIALOG2。
为两个新的对话框资源创立新类
(1)在工程的资源管理器中,将页面切换到资源选项卡并双击IDD_D1ALOG1,出现IDD_DIALOG1对话框。
(2)用鼠标右键单击它的空白处,出现一个快捷菜单。
(3)在快艇菜单小单东“建立类向导〞菜单项,出现图所示对话框。
类创立的信息提示对话框
(4)选择Createanewclass单项选择选项,即选择创立一个新类。
(5)单击OK按钮,出现类名设冒对话框,在类名设置对话框中设置该对话框的类名称为CMyDlg1,并作如下选择:
//类文件名
BaseClass:
Cdialog //所属基类
DialogID:
IDD_DIALOG1 //资源索引号
Automation:
None //处理自动化
其选择如下图。
〔6〕单击OK按钮结束类的创立。
这样我就为新增加的对话框资源DIALOG1创立了一个新的类,其类名为CMyDlg1。
用同样的方法为对话柜资源IDD_DIALOG2创立一个新类:
CMyDlg2,这样在工程中就增加了两个新的类。
如果在新的资源即对话框中放入别的控件,那么新的控件成为这类的一个成员,这就是说,成员与类有区别,同时又有联系,成员附属于一个类资源,但往往资源是独立的一个“单元〞。
类创立设置
为两个新类加以声明
(1)在资源管理器中选择叫FileView选项卡,如下图。
文件查看选项卡
〔2〕双击“教职工管理系统〞,即出现该文件的开始局部,该局部用来对工程中的类进行声明,增加新的声明,如下所示:
//教职工管理系统Dlg.cpp:
implementationfile
在这一个文件的开始局部声明两个对话框资源的头文件,其代码如下:
//教职工管理系统.cpp:
Definestheclassbehaviorsfortheapplication.
//
#include"stdafx.h"
#include"教职工管理系统.h"
#include"教职工管理系统Dlg.h"
//开始声明
#include"MyDlg1.h"
#include"MyDlg2.h"
//结束声明
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
StaticharTHIS_FILE[]=_FILE_;
#endif
这样,在教职工管理系统中声明了两个新的类的头文件。
通过声明程序,可以在以后对新的类的引用加以识别。
如果不加以声明,将会出现不明身份的对象的信息提示。
为工程的主控界面设计一个菜单
在工程中我有了一个主窗体刘话框和两个新增加的对话框资源,主对话框资源可以在系统启动时运行,但其他的对话框如何在工程中加以显示?
这就需要借助于菜单或命令按钮。
这里,我首先为主对话框创立一个菜单,与对话框一样,菜单也可以作为一种资源被参加到工程中,并为用户加以运用。
菜单资源的参加与菜单设计
在工程中参加一个菜单资源的操作过程如下:
(1)在VC++主菜单中单击“插入|资源〞菜单项,出现一个资源类型选择对话框。
(2)在资源类型选择对话框中选择菜单(MENU)资源类型,并单击“新建〞按钮,即可在工程中增加一个菜单资源。
它出现在工程的资源选项卡中。
接下来就需要用户设计菜单项,其菜单项如表所示
表 菜单对象的根本属性
对象名称
ID
标题内容
主菜单条目
无
职工根本信息
子菜单条目
ID_DATA_MENU
信息处理
主菜单条目
无
职工工资管理
子菜单条目
ID_SALARY_MENU
工资处理与浏览
主菜单条目
无
关于
子菜单条目
IDS_ABOUTBOX
关于职工管理系统
菜单设置如下图。
菜单
注意,在资源的运用中,菜单资源比拟特殊,由于菜单资源是用VC++的菜单设计器进行制作的,因此它往往不需要像其他资源那样创立新的类和进行声明。
将菜单与主对话框连接
(1)在工程资源管理器中选样资源选项卡。
(2)双击主对话框资源IDD_MY_DIALOG,出现主对话框。
(3)用鼠标右键单击主对话框控件,出现一个快捷菜单,在快捷菜单中单击属性菜单项,出现属性设置对话框。
(4)在属性设置对话框中选择菜单资源,选择目前创立的惟一的菜单资源即可〔如果有多个菜单资源存在,那么可在其中选择一个菜单,和对话框进行连接),如下图。
图2.18 对话框属性设置
(5)关闭对话框并运行工程,可以发现主对话框已经成功地与菜单进行了连接,其效果如下图。
菜单与对话框连接的效果
在工程中,创立程序框架时已经生成了一个About对话框,但它并未与菜单进行连接,其类也内系统自动创立,并不符合用户的需要,我需要将它删除并创立用户自己的About对话框。
因此在进行下一节的内容之前,我先作如下操作:
(1)在工程资源管理器中将原先创立的About对话框删除,再插入一个新的对话框资源,作为用户自创立的About对话框。
设置它的资源索引号为IDD_ABOUT_DIALOG,对话框标题属性为“关于系统〞。
(2)为新的对话框创立类,其类名为:
CmyAboutDlg。
(3)同样需要在工程的“教职工管理系统〞文件中声明新的About对话框,其声明如下所示:
//教职工管理系统Dlg.cpp:
implementationfile
//
#include“〞
#include“教职工管理系统.h〞
#include“教职工管理系统〞
#include“〞 //声明的对话框1
#include“〞 //声明的对话框2
#include“〞 //声有的About对话框
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=_FILE_;
#endif
(4)重新设计About对话框,其过程如下:
(5)放入两个静态文本控件,其标题分别为:
“职工管理系统简化版〞利“COPYRIGHT2002”。
(6)放入一个映像控件,设置它的标题属性和图形文件即可.
教职工管理系统所需要的对话框均已经准备完毕,现在行在两个问题,一是如何用菜单去调用每—个对话框,二是如何在对话框中设计系统功能,即进行数据处理,这是我的毕业设计所需要的主要内容
用菜单调用对话框
菜单是与主对话框连接的,它在主对话框中进行显示。
在向导创立的所有对话框中,除主对话框自动显示之外,其他对话框均需要用户编制过程代码进行调用。
如何对对话框进行调用?
我以调用IDD_DIALOGl为例加以说明。
根据定义,该对话框是通过菜单ID_DATAMENU条目进行调用的,即调用该对话框进行职工根本信息处理。
因此我为该菜单编制过程代码,其操作过程如下:
(1)在工程的视图管理选项卡中双击菜单资源文档“IDR_MENU1”,出现菜单编辑器。
(2)在菜单编辑器中选择“职工根本信息|信息处理〞,并用鼠标右键单击,出现图所示的快捷菜单。
快捷菜单
菜单作为上对话柜中的成员,通过它可以调用其他对话柜,虽然不需要为它创立新的类,但仍然需要为菜单的每一个条目定义函数和创立过程。
(3)单击“建立类向导〞,出现图所示类创立对话框。
菜单类创立对话框
(4)选择菜单的过程信息映射“CoMmand〞。
(5)单击AddFunction按钮为菜单增加一个函数,出现—个增加菜单成员函数的对话框,如下图。
创立菜单的成员函数
(6)直接接受系统建议的菜单成员函数名“OnDataMenu〞。
(7)单击OK按钮完成成员函数名定义过程。
(8)单击EditCode按钮,出现菜单代码过程体:
在代码过程体光标停留处编辑代码,如下所示:
voidCMyDlg:
:
OnDataMenu()
{
//TODO:
Addyourcommandhandlercodehere 开始编辑代码
CMyDlg1MyDlg1; //主对话框
MyDlg1.DoModal(); //显示调用对话框1
//结束代码编辑
}
这样就完成了用菜单调用对话框1的过程代码的编制,编译运行工程即可检验该菜单的执行功能,效果如下图。
菜单调用的对话框
通过检验可以发现,对对话框的调用是可行的。
用同样的方法,主菜单中的相关菜单项可以实现对话框2和About对话框的调用,其过程留给读者去完成。
制作职工根本信息处理对话框
在以上的过程中,我制作了四个对话框:
一个主对话框,它与主菜单资源进行连接;一个对话框IDD_DIALOG1,它用于处理职工根本信息;一个对话框IDD_DIALOG2,它用于处理职工工资信息;另外我制作了一个About对话框,它用于显示系统的版本信息。
但是对于对话框IDD_DIALOG1和对话框IDD_DIALOG2,除能通过菜单调用该对话框之外,对话征几乎还不能作任何工作,也就是他还不具备功能。
我首先实现对话柜IDD_D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 管理 系统 项目 设计 实现 整理