}
三.运行结果
实验四VC++与MFC练习
实验4-1VC++与MFC练习一
本实验是VC++与MFC的练习,需要用到MFC的知识和多个控件
一.题目
一个公司人员工资信息系统的设计与开发(用VC++和MFC实现)
二.界面设计
三.类的成员设计(用类向导进行数据成员设计时的抓图)
四.代码
五.运行结果
实验4-2VC++与MFC练习二(选作)
本实验是VC++与MFC的练习,需要用到MFC的知识和多个控件
一.题目
用VC++编写程序,实现系统登录程序的界面设计和编程。
二.界面设计
三.类的成员设计(用类向导进行数据成员设计时的抓图)
四.代码
五.运行结果
北京服装学院商学院
上机实验报告
课程名称:
VC++程序设计
实验名称:
一个小型公司人员工资
系统的设计与编程
实验性质:
综合性□/设计性▇/一般性□
学生姓名:
Masoon
班级学号:
指导教师:
实验日期:
2015-06-17
小型公司人员工资系统的设计与编程
一、实验名称
一个公司人员工资信息系统的设计与开发
二、实验目的
1.理解面向对象编程的思想;
2.掌握类、对象、继承和多态的基本概念和编程方法;
4.熟悉VisualC++6.0编程环境、语句和程序的调式。
三、实验内容
1.练习面向对象程序设计的一般方法。
.
2.使用VisualC++的环境编写C++程序。
3.练习程序的调试和完善。
四、实验环境
软件环境:
操作系统:
WindowsXP
开发工具:
VisualC++6.0
硬件环境:
CPU:
Pentium(R)DCPU3.0GHz
内存:
512M内存
五、实验过程和结果
一.题目
某小型IT公司,主要有四类人员:
经理、兼职技术人员、销售经理和兼职推销员。
现在该公司需要一个小型的人员信息系统来存储这些人员的姓名、编号、级别、当月薪金、计算月薪总额并输出显示人员的全部信息。
人员编号基数为1000,每输入一个人员的信息,其编号顺序加1。
经理和销售经理都有级别,经理最高为4级,销售经理最高为3级,兼职技术人员和兼职推销员没有级别(或认为级别为1级,不能改变)。
月薪计算方法是:
1)经理的起薪为5000.00(1级),以后每增加1级,工资增加2000元。
2)兼职技术人员按每小时100元领取月薪。
3)销售经理的起薪为3000.00(1级),以后每增加1级,工资增加1000元,除次外,销售经理还领取销售提成,销售提成为其所管辖部门当月销售总额的4%(销售总额为兼职推销员和销售经理的销售额之和)。
4)兼职推销员的月薪按其当月销售额的6%提成。
要求:
1)通过人机对话方式输入四类人员的基本情况(每类人员各输入一人),由程序算出该人员的月薪和公司当月月薪总额并输出。
2)按照该公司人员的层次关系,设计一个基类(其中含纯虚函数),并由此产生若干个派生类,通过类的静态成员变量来记录人员个数(即人员编号)和公司当月工资总额。
二.类结构设计
三.程序的实现方法和程序源代码
1.程序的实现方法
2.程序源代码
四.程序运行结果
//employeeDlg.cpp:
implementationfile
//
#include"stdafx.h"
#include"employee.h"
#include"employeeDlg.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CEmployeeDlgdialog
CEmployeeDlg:
:
CEmployeeDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CEmployeeDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CEmployeeDlg)
m_edit_name=_T("");
m_edit_whsm=_T("");
m_str_whsmtitle=_T("");
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_index=2;
m_number=1001;
m_totalsalary=0.0,m_totalsales=0.0;
}
voidCEmployeeDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEmployeeDlg)
DDX_Control(pDX,IDC_EDIT_NAME,m_ctr_name);
DDX_Control(pDX,IDC_LIST,m_ctr_list);
DDX_Control(pDX,IDC_EDIT_WHSM,m_ctr_whsm);
DDX_Control(pDX,IDC_COMBO2_GRADE,m_combo_grade);
DDX_Control(pDX,IDC_COMBO1_JOB,m_combo_job);
DDX_Text(pDX,IDC_EDIT_NAME,m_edit_name);
DDX_Text(pDX,IDC_EDIT_WHSM,m_edit_whsm);
DDV_MaxChars(pDX,m_edit_whsm,10);
DDX_Text(pDX,IDC_STATIC_WHSMTITLE,m_str_whsmtitle);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEmployeeDlg,CDialog)
//{{AFX_MSG_MAP(CEmployeeDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_CACULATE,OnCaculate)
ON_BN_CLICKED(IDC_QUIT,OnQuit)
ON_CBN_SELENDOK(IDC_COMBO1_JOB,OnSelendokCombo1Job)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CEmployeeDlgmessagehandlers
BOOLCEmployeeDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
m_combo_job.SetCurSel(0);
m_combo_grade.SetCurSel(0);
m_ctr_whsm.EnableWindow(FALSE);
m_ctr_list.AddString