《实验三 类和对象(12页).doc》由会员分享,可在线阅读,更多相关《实验三 类和对象(12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-#includeusing namespace std;class Txpublic:Tx(int i,int j);Tx();void display();private:int num1,num2;Tx:Tx(int i,int j=10)num1=i;num2=j;coutConstructingnum1num2endl;void Tx:display()coutdisplaynum1num2endl;Tx:Tx()coutDestructingnum1num2endl;void main()Tx t1(22,11);Tx t2(20);t1.display();t2.display(
2、);system(pause);答:1.当建立一个对象时,对象的状态(数据成员的取值)是不确定的。但对象表达了现实世界的实体,因此,一旦建立对象,必须有一个有意义的初始值。构造函数用来自动进行对象的初始化;析构函数在对象撤销时执行清理任务,进行善后处理。2. 私有成员是在类中被隐藏的部分,它往往是用来描述该类对象属性的一些数据成员,私有成员只能由本类的成员函数或某些特殊说明的函数(如友元函数)访问,而类的外部函数无法访问私有成员;共有成员对外是完全开放的;受保护成员只能由该类的成员函数、友元、共有派生成员函数访问。3. 拷贝构造函数是用一个已有的对象来初始化一个被创建的同类对象的特殊的构造函数
3、,具有一般构造函数的所有特性。但创建一个新对象时系统会自动调用它。4. 两个成员函数:设置计数,获取计数;一个成员变量:保存计数。8. 运行结果:Constructing2211Constructing2010Display2211Display20101. 设计一个大学的类系统,学校中有学生、教师和职员,每种人员都有自己的特性,他们之间又有相同的地方。利用继承机制定义这个系统中的各个类及类上必需的操作。答:经调试后的代码:#include #include #include using namespace std;class personpublic: void in_nm(); void
4、in_id(); void ou_nm(); void ou_id();private: string id; string name;class student:public personpublic: void in_clsid(); void in_sc(); void ou_clsid(); void ou_sc();private: string cls_id; float score;class teacher:public personpublic: void in_zc(); void in_dp(); void ou_zc(); void ou_dp();private: s
5、tring zc; string depart;void person:in_nm() cout请输入姓名:name;void person:in_id() cout请输入编括号:id;void person:ou_nm() cout姓名为:nameendl;void person:ou_id() cout编号为:idendl;void student:in_clsid() cout请输入学生班级:cls_id;void student:in_sc() cout请输入学生分数:score;void student:ou_clsid() cout学生班级为:cls_idendl;void stu
6、dent:ou_sc() cout学生分数为:scoreendl;void teacher:in_zc() cout请输入教师职称:zc;void teacher:in_dp() cout请输入教师部门:depart;void teacher:ou_zc() cout教师职称为:zcendl;void teacher:ou_dp() cout教师部门为:departendl;int main() student stu; cout开始输入学生信息:endl; stu.in_nm(); stu.in_id(); stu.in_clsid(); stu.in_sc(); cout显示学生信息:en
7、dl; stu.ou_nm(); stu.ou_id(); stu.ou_clsid(); stu.ou_sc(); coutendl; teacher tch; cout开始输入教师信息:endl; tch.in_nm(); tch.in_id(); tch.in_zc(); tch.in_dp(); cout显示教师信息:endl; tch.ou_nm(); tch.ou_id(); tch.ou_zc(); tch.ou_dp(); coutendl; system(pause); return 0; 运行结果为:2构建一个类用于计算数据的统计信息,类名Cstatistics,类中包括,
8、成员变量:数据个数(int N),数据(double* data),均值(double mean),方差(double variance),最大值(double max),最小值(double min)。成员函数:输入函数(void input()):输入数据个数N,给data变量申请N个空间,并输入N个数值。计算均值(void getMean()):计算data变量中数据的均值,并赋值给mean变量。计算方差(void getVariance()):计算data变量中数据的方差,并赋值给variance变量。计算最大值(void getMax()):计算data变量中数据的最大值,并赋值给m
9、ax变量。计算最小值(void getMin()):计算data变量中数据的最小值,并赋值给min变量。输出函数(void print()):输出data变量中的数据及个数,并输出该数据的统计信息(均值(double mean),方差(double variance),最大值(double max),最小值(double min)。程序框架:#includeCstatistics.h#includeusing namespace std;int main()cout这是一个统计类!endl;Cstatistics sta;sta.input();sta.getMean();sta.getVar
10、iance();sta.getMax();sta.getMin();sta.print();system(pause);return 0;答:代码如下:#pragma once#includeusing namespace std;class Cstatisticspublic:Cstatistics(void);Cstatistics(void);void input();void getMean();getVariance();void getMax();void getMin();void print();private:int N;double* data;double mean;do
11、uble variance;double max;double min;Cstatistics:Cstatistics()Cstatistics:Cstatistics(void)void Cstatistics:input()coutN;if(N 0)data = new doubleN;cout请输入N个数据:endl;for(int i = 0; i datai;void Cstatistics:getMean()if(data != NULL )double sum = 0;for(int i = 0; i N; i+)sum += datai;mean = sum / N;void
12、Cstatistics:getVariance()if(data != NULL )if(mean = 0)getMean();double sum = 0;for(int i = 0; i N; i+)sum += (datai - mean) * (datai - mean);variance = sum / N;void Cstatistics:getMax()if(data != NULL)max = data0;for(int i = 1; i max)max = datai;void Cstatistics:getMin()if(data != NULL)min = data0;f
13、or(int i = 1; i N; i+)if(datai min)min = datai;void Cstatistics:print()coutN个数据为:endl;for(int i = 0; i N; i+)coutdatai ;coutendl;cout均值为:meanendl;cout方差为:varianceendl;cout最大值为:maxendl;cout最小值为:minendl;int main()cout这是一个统计类!endl;Cstatistics sta;sta.input();sta.getMean();sta.getVariance();sta.getMax()
14、;sta.getMin();sta.print();system(pause);return 0;运行结果:3编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求:(1)定义一个基类圆,至少含有一个数据成员半径;(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。(3)定义主函数,求球、圆柱、圆锥的和体积。答:代码如下#include #include #include using namespace std;const double PI=3.14159;class circlepublic: void in_rad() cout输入半径:rad; protect
15、ed: float rad; /半径;class ball:public circlepublic: void in_rad() cout输入球半径:rad; void calc_sur() sur=4*PI*rad*rad; void calc_vol() vol=4/3.0*PI*rad*rad*rad; void out_sur() cout球的表面积为:surendl; void out_vol() cout球的体积为:volendl; private: double sur; /表面积 double vol; /体积;/圆柱class column:public circlepubl
16、ic: void in_rad() cout输入圆柱半径:rad; void in_height() cout输入圆柱高:height; void calc_sur() sur=PI*rad*rad+2*PI*rad*height; void calc_vol() vol=PI*rad*rad*height; void out_sur() cout圆柱的表面积为:surendl; void out_vol() cout圆柱的体积为:volendl; private: double sur; /表面积 double vol; /体积 double height; /高;/圆锥class cone
17、:public circlepublic: void in_rad() cout输入圆锥半径:rad; void in_height() cout输入圆锥高:height; void calc_sur() sur=0.5*PI*rad*rad*2*PI*rad*height; void calc_vol() vol=1/3.0*PI*rad*rad*height; void out_sur() cout圆锥的表面积为:surendl; void out_vol() cout圆锥的体积为:volendl; private: double sur; /表面积 double vol; /体积 dou
18、ble height;int main() cout球:endl; ball oball; oball.in_rad(); oball.calc_sur(); oball.calc_vol(); oball.out_sur(); oball.out_vol(); coutendl; cout圆柱:endl; column ocol; ocol.in_rad(); ocol.in_height(); ocol.calc_sur(); ocol.calc_vol(); ocol.out_sur(); ocol.out_vol(); coutendl; cout圆锥:endl; cone ocone; ocone.in_rad(); ocone.in_height(); ocone.calc_sur(); ocone.calc_vol(); ocone.out_sur(); ocone.out_vol(); coutendl; system(pause); return 0;运行结果:.-第 12 页-