1、实验2 类和对象实验2 类和对象实验目的:熟悉C+类的定义和对象生成,掌握函数重载,掌握类、类的成员函数、类的成员函数的定义方式。理解类成员的访问控制方式。掌握对象的定义和操作对象的方法。理解构造函数和析构函数的定义与执行过程。掌握重载构造函数的方法。实验内容:编写设计一个People(人)类。该类的数据成员有姓名(name)、年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatting)、运动(Sporting)、显示(Show)和显示人数(ShowNum)。其中构造函数由已知参数姓名(nm)、年
2、龄(a)、身高(h)和体重(w)构造对象,进食函数使体重加1,运动函数使身高加1,显示函数用于显示人的姓名、年龄、身高、体重,显示人数函数为静态成员函数,用于显示人数。假设年龄的单位为岁,身高的单位为厘米,体重的单位为市斤,要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个对象,通过对象直接访问类的所有非静态成员函数,通过类访问静态成员函数。在如下界面中显示信息编辑框数据更新:1. 定义编辑框值变量2. 读编辑框内容程序UpdateData(true);读变量3. 输出内容到编辑框变量更新 UpdateData(false);参考程序1:#inc
3、lude / 编译预处理命令using namespace std; / 使用命名空间std class Peopleprivate:/ 数据成员 char name9; / 姓名 int age; / 年龄 int height; / 身高 double weight; / 体重 static int num; / 人数public:/ 公有函数 People(char nm = 路人甲, int a = 16, int h = 168, int w = 118): age(a), height(h), weight(w) strcpy(name, nm); num+; void Eatti
4、ng() weight+; / 进食 void Sporting() height+; / 运动 void Show() const / 显示信息 cout 个人信息: endl; cout 姓名: name endl; cout 年龄: age 岁 endl; cout 身高: height 厘米 endl; cout 体重: weight 市斤 endl endl; static void ShowNum() / 显示人数 cout 人数: num ClassWizard(建立类向导)菜单进入ClassWizard,打开Member Variables选项卡:为4 个Edit Box控件设
5、置对应的变量:同样的方法为其它3个Edit Box控件设置变量:控件ID变量名变量类型数值范围IDC_EDIT1m_ed1CStringIDC_EDIT2m_ed2int0200IDC_EDIT3m_ed3int01000IDC_EDIT4m_ed4int010005. 添加消息映射(两条消息)进入ClassWizard,打开Messages Maps选项卡,在Object Ids中选择CAverageDlg,在Messages中鼠标单击WM_INIDIALOG,在Member functions中出现生成的消息映射成员函数OnInitDialog提示:在Object Ids中选择IDC_BU
6、TTON1,在Messages中鼠标双击BN_CLIKED,在弹出对话框中单击OK按钮:在Member functions中出现第二个生成的消息映射成员函数OnButton1。同样的方法为其它4个Button控件设置消息映射成员函数。6. 添加People类单击“Insert”(插入)“New Class”(新类),在对话框中建立“People” 类在“People”类中添加成员变量“char name5、int age、int weight、int height”,添加成员函数“E、Eat”,修改构造函数。修改完成后的“people.h”文件内容如下修改完成后的“people.cpp”文件内
7、容如下7. 添加代码 在类“shiyan2Dlg”中添加成员变量“People *p3、int q”在ClassWizard中双击OnInitDialog函数,打开代码编辑器中的OnInitDialog()函数代码,找到其中的 / TODO: Add extra initialization here,加入下面的黑体字给出的1行代码:BOOL CDlgDlg:OnInitDialog() CDialog:OnInitDialog(); ; / TODO: Add extra initialization here q=-1; return TRUE; / return TRUE unless
8、you set the focus to a control在ClassWizard中双击OnButton1()函数,打开代码编辑器中的OnButton1()函数代码,找到其中的 / TODO: Add extra initialization here,加入下面的黑体字给出的9行代码:void CShiyan2Dlg:OnButton1() / TODO: Add your control notification handler code here char nm110; p0=new People(张勇,19,168,60); p1=new People(邹萍,18,163,41); p
9、2=new People(杨霞,17,162,50); q=0; pq-Show(nm1,&m_ed2,&m_ed3,&m_ed4); m_ed1.Format(nm1); UpdateData(FALSE); 添加其它按钮程序:void CShiyan2Dlg:OnButton2() / TODO: Add your control notification handler code here char nm110; if(q0) MessageBox(请先使用按钮创建人物!,实验二); return; if (q0) q-; else q=2; pq-Show(nm1,&m_ed2,&m_
10、ed3,&m_ed4); m_ed1.Format(nm1); UpdateData(FALSE); void CShiyan2Dlg:OnButton3() / TODO: Add your control notification handler code here char nm110; if(q0) MessageBox(请先使用人员生成按钮创建人物!,实验二); return; if (qShow(nm1,&m_ed2,&m_ed3,&m_ed4); m_ed1.Format(nm1); UpdateData(FALSE); void CShiyan2Dlg:OnButton4()
11、/ TODO: Add your control notification handler code here char nm110; if(qSporting(); pq-Show(nm1,&m_ed2,&m_ed3,&m_ed4); m_ed1.Format(nm1); UpdateData(FALSE); void CShiyan2Dlg:OnButton5() / TODO: Add your control notification handler code here char nm110; if(qEatting(); pq-Show(nm1,&m_ed2,&m_ed3,&m_ed4); m_ed1.Format(nm1); UpdateData(FALSE); 8. 编译运行程序:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1