实验2类和对象.docx

上传人:b****5 文档编号:7750158 上传时间:2023-01-26 格式:DOCX 页数:24 大小:489.63KB
下载 相关 举报
实验2类和对象.docx_第1页
第1页 / 共24页
实验2类和对象.docx_第2页
第2页 / 共24页
实验2类和对象.docx_第3页
第3页 / 共24页
实验2类和对象.docx_第4页
第4页 / 共24页
实验2类和对象.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

实验2类和对象.docx

《实验2类和对象.docx》由会员分享,可在线阅读,更多相关《实验2类和对象.docx(24页珍藏版)》请在冰豆网上搜索。

实验2类和对象.docx

实验2类和对象

实验2类和对象

实验目的:

熟悉C++类的定义和对象生成,掌握函数重载,掌握类、类的成员函数、类的成员函数的定义方式。

理解类成员的访问控制方式。

掌握对象的定义和操作对象的方法。

理解构造函数和析构函数的定义与执行过程。

掌握重载构造函数的方法。

实验内容:

编写设计一个People(人)类。

该类的数据成员有姓名(name)、年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatting)、运动(Sporting)、显示(Show)和显示人数(ShowNum)。

其中构造函数由已知参数姓名(nm)、年龄(a)、身高(h)和体重(w)构造对象,进食函数使体重加1,运动函数使身高加1,显示函数用于显示人的姓名、年龄、身高、体重,显示人数函数为静态成员函数,用于显示人数。

假设年龄的单位为岁,身高的单位为厘米,体重的单位为市斤,要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个对象,通过对象直接访问类的所有非静态成员函数,通过类访问静态成员函数。

在如下界面中显示信息

编辑框数据更新:

1.定义编辑框值变量

2.读编辑框内容程序

UpdateData(true);

读变量…

3.输出内容到编辑框

变量更新…

UpdateData(false);

 

参考程序1:

#include//编译预处理命令

usingnamespacestd;//使用命名空间std

classPeople

{

private:

//数据成员

charname[9];//姓名

intage;//年龄

intheight;//身高

doubleweight;//体重

staticintnum;//人数

public:

//公有函数

People(charnm[]="路人甲",inta=16,inth=168,intw=118):

age(a),height(h),weight(w){strcpy(name,nm);num++;}voidEatting(){weight++;}//进食

voidSporting(){height++;}//运动

voidShow()const//显示信息

{

cout<<"个人信息:

"<

cout<<"姓名:

"<

cout<<"年龄:

"<

cout<<"身高:

"<

cout<<"体重:

"<

}

staticvoidShowNum()//显示人数

{cout<<"人数:

"<

};

intPeople:

:

num=0;//初始化静态数据成员num

intmain()//主函数main()

{

Peoplep1;//定义对象

p1.Show();//显示信息

Peoplep2("李敏",18,170,108);//定义对象

p2.Eatting();//进食

p2.Sporting();//运动

p2.Show();//显示信息

People:

:

ShowNum();//显示人数

system("PAUSE");//调用库函数system(),输出提示信息

return0;//返回值,返回操作系统

}

 

参考程序2:

基于MFC对话框应用程序实现People(人)类。

假设运行时的界面如下:

实现步骤:

1.在VisualC++6.0工作开发环境中,New对话框中选择MFCAppWizard[exe]项目,输入项目名称并指定存放位置。

2.在MFCWizardStep1选择Dialog(基本对话)程序类型,在MFCWizardStep2中输入对话框标题“实验2类和对象”。

AppWizard对话结束后打开对话框编辑窗口如下:

3.定制界面:

添加控件、设置属性

删除对话框模板中原有的“确定”按钮和内容为“TODO:

在这里设置对话控制。

”的StaticText控件。

修改对话框界面显示字号为小四,选中对话框,鼠标右键单击该对话框标题栏,在弹出的下拉菜单中打开属性对话框,单击“Font…”按钮,在打开的对话框中选“宋体”、“小四”。

在控件工具箱中取一个GroupBox控件,调整适当大小,鼠标右键单击该控件边框,在弹出的下拉菜单中打开属性对话框。

将GroupBox控件标题由“Static”改为“人员信息”。

在GroupBox中添加4个StaticText控件,按同样方法修改它们的标题属性为“姓名”、“年龄”、“身高”和“体重”

在GroupBox中添加4个EditBox控件,打开属性对话框的ExtendedStyles选项卡中将它们设置为文本右对齐(RightAligendText)方式。

其中第1、2、3、4个EditBox控件的Styles属性设置为Read-only。

在界面中添加一个5按钮Button控件,打开属性对话框将按钮的标题属性改为“人员生成”、“上一个”、“下一个”、“锻炼”、“进食”。

鼠标右键单击“取消”按钮边框,在弹出的下拉菜单中打开属性对话框。

将按钮标题改为“退出”。

设计完成的界面如图,其中控件属性列表如下:

控件

ID号

标题

属性

GroupBox

IDC_STATIC

人员信息

StaticText

IDC_STATIC

姓名

StaticText

IDC_STATIC

年龄

StaticText

IDC_STATIC

身高

StaticText

IDC_STATIC

体重

EditBox

IDC_EDIT1

Aligntext:

Right;Read-only

EditBox

IDC_EDIT2

Aligntext:

Right;Read-only

EditBox

IDC_EDIT3

Aligntext:

Right;Read-only

EditBox

IDC_EDIT4

Aligntext:

Right;Read-only

Button

IDC_BUTTON1

人员生成

Button

IDC_BUTTON2

上一个

Button

IDC_BUTTON3

下一个

Button

IDC_BUTTON4

锻炼

Button

IDC_BUTTON5

进食

Button

IDCANCEL

退出

4.添加成员变量

单击View(查看)>ClassWizard(建立类向导)菜单进入ClassWizard,打开MemberVariables选项卡:

为4个EditBox控件设置对应的变量:

同样的方法为其它3个EditBox控件设置变量:

控件ID

变量名

变量类型

数值范围

IDC_EDIT1

m_ed1

CString

IDC_EDIT2

m_ed2

int

0~200

IDC_EDIT3

m_ed3

int

0~1000

IDC_EDIT4

m_ed4

int

0~1000

5.添加消息映射(两条消息)

进入ClassWizard,打开MessagesMaps选项卡,在ObjectIds中选择CAverageDlg,在Messages中鼠标单击WM_INIDIALOG,在Memberfunctions中出现生成的消息映射成员函数OnInitDialog提示:

在ObjectIds中选择IDC_BUTTON1,在Messages中鼠标双击BN_CLIKED,在弹出对话框中单击OK按钮:

在Memberfunctions中出现第二个生成的消息映射成员函数OnButton1。

同样的方法为其它4个Button控件设置消息映射成员函数。

6.添加People类

单击“Insert”(插入)\“NewClass”(新类),在对话框中建立“People”类

在“People”类中添加成员变量“charname[5]、intage、intweight、intheight”,添加成员函数“E、Eat”,修改构造函数。

修改完成后的“people.h”文件内容如下

修改完成后的“people.cpp”文件内容如下

7.添加代码

在类“shiyan2Dlg”中添加成员变量“People*p[3]、intq”

在ClassWizard中双击OnInitDialog函数,打开代码编辑器中的OnInitDialog()函数代码,找到其中的//TODO:

Addextrainitializationhere,加入下面的黑体字给出的1行代码:

BOOLCDlgDlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

…;

//TODO:

Addextrainitializationhere

q=-1;

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

在ClassWizard中双击OnButton1()函数,打开代码编辑器中的OnButton1()函数代码,找到其中的//TODO:

Addextrainitializationhere,加入下面的黑体字给出的9行代码:

voidCShiyan2Dlg:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charnm1[10];

p[0]=newPeople("张勇",19,168,60);

p[1]=newPeople("邹萍",18,163,41);

p[2]=newPeople("杨霞",17,162,50);

q=0;

p[q]->Show(nm1,&m_ed2,&m_ed3,&m_ed4);

m_ed1.Format(nm1);

UpdateData(FALSE);

}

添加其它按钮程序:

voidCShiyan2Dlg:

:

OnButton2()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charnm1[10];

if(q<0)

{

MessageBox("请先使用<人员生成>按钮创建人物!

","实验二");

return;

}

if(q>0)

q--;

elseq=2;

p[q]->Show(nm1,&m_ed2,&m_ed3,&m_ed4);

m_ed1.Format(nm1);

UpdateData(FALSE);

}

voidCShiyan2Dlg:

:

OnButton3()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charnm1[10];

if(q<0)

{

MessageBox("请先使用\"人员生成\"按钮创建人物!

","实验二");

return;

}

if(q<2)

q++;

elseq=0;

p[q]->Show(nm1,&m_ed2,&m_ed3,&m_ed4);

m_ed1.Format(nm1);

UpdateData(FALSE);

}

voidCShiyan2Dlg:

:

OnButton4()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charnm1[10];

if(q<0)

{

MessageBox("请先使用\"人员生成\"按钮创建人物!

","实验二");

return;

}

p[q]->Sporting();

p[q]->Show(nm1,&m_ed2,&m_ed3,&m_ed4);

m_ed1.Format(nm1);

UpdateData(FALSE);

}

voidCShiyan2Dlg:

:

OnButton5()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

charnm1[10];

if(q<0)

{

MessageBox("请先使用\"人员生成\"按钮创建人物!

","实验二");

return;

}

p[q]->Eatting();

p[q]->Show(nm1,&m_ed2,&m_ed3,&m_ed4);

m_ed1.Format(nm1);

UpdateData(FALSE);

}

8.编译运行程序:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1