实验三类和对象Word下载.docx
《实验三类和对象Word下载.docx》由会员分享,可在线阅读,更多相关《实验三类和对象Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
Txt2(20);
t1.display();
t2.display();
system("
pause"
);
答:
1.当建立一个对象时,对象的状态(数据成员的取值)是不确定的。
但对象表达了现实世界的实体,因此,一旦建立对象,必须有一个有意义的初始值。
构造函数用来自动进行对象的初始化;
析构函数在对象撤销时执行清理任务,进行善后处理。
2.私有成员是在类中被隐藏的部分,它往往是用来描述该类对象属性的一些数据成员,私有成员只能由本类的成员函数或某些特殊说明的函数(如友元函数)访问,而类的外部函数无法访问私有成员;
共有成员对外是完全开放的;
受保护成员只能由该类的成员函数、友元、共有派生成员函数访问。
3.拷贝构造函数是用一个已有的对象来初始化一个被创建的同类对象的特殊的构造函数,具有一般构造函数的所有特性。
但创建一个新对象时系统会自动调用它。
4.两个成员函数:
设置计数,获取计数;
一个成员变量:
保存计数。
8.运行结果:
Constructing2211
Constructing2010
Display2211
Display2010
1.设计一个大学的类系统,学校中有学生、教师和职员,每种人员都有自己的特性,他们之间又有相同的地方。
利用继承机制定义这个系统中的各个类及类上必需的操作。
经调试后的代码:
cstdlib>
string>
classperson
voidin_nm();
voidin_id();
voidou_nm();
voidou_id();
stringid;
stringname;
classstudent:
publicperson
voidin_clsid();
voidin_sc();
voidou_clsid();
voidou_sc();
stringcls_id;
floatscore;
classteacher:
voidin_zc();
voidin_dp();
voidou_zc();
voidou_dp();
stringzc;
stringdepart;
voidperson:
in_nm()
请输入姓名:
cin>
>
name;
in_id()
请输入编括号:
id;
ou_nm()
姓名为:
name<
ou_id()
编号为:
id<
voidstudent:
in_clsid()
请输入学生班级:
cls_id;
in_sc()
请输入学生分数:
score;
ou_clsid()
学生班级为:
cls_id<
ou_sc()
学生分数为:
score<
voidteacher:
in_zc()
请输入教师职称:
zc;
in_dp()
请输入教师部门:
depart;
ou_zc()
教师职称为:
zc<
ou_dp()
教师部门为:
depart<
intmain()
studentstu;
开始输入学生信息:
stu.in_nm();
stu.in_id();
stu.in_clsid();
stu.in_sc();
显示学生信息:
stu.ou_nm();
stu.ou_id();
stu.ou_clsid();
stu.ou_sc();
teachertch;
开始输入教师信息:
tch.in_nm();
tch.in_id();
tch.in_zc();
tch.in_dp();
显示教师信息:
tch.ou_nm();
tch.ou_id();
tch.ou_zc();
tch.ou_dp();
return0;
}
运行结果为:
2.构建一个类用于计算数据的统计信息,类名Cstatistics,类中包括,
成员变量:
数据个数(intN),数据(double*data),均值(doublemean),方差(doublevariance),最大值(doublemax),最小值(doublemin)。
成员函数:
输入函数(voidinput()):
输入数据个数N,给data变量申请N个空间,并输入N个数值。
计算均值(voidgetMean()):
计算data变量中数据的均值,并赋值给mean变量。
计算方差(voidgetVariance()):
计算data变量中数据的方差,并赋值给variance变量。
计算最大值(voidgetMax()):
计算data变量中数据的最大值,并赋值给max变量。
计算最小值(voidgetMin()):
计算data变量中数据的最小值,并赋值给min变量。
输出函数(voidprint()):
输出data变量中的数据及个数,并输出该数据的统计信息(均值(doublemean),方差(doublevariance),最大值(doublemax),最小值(doublemin))。
程序框架:
#include"
Cstatistics.h"
这是一个统计类!
Cstatisticssta;
sta.input();
sta.getMean();
sta.getVariance();
sta.getMax();
sta.getMin();
sta.print();
代码如下:
#pragmaonce
usingnamespacestd;
classCstatistics
Cstatistics(void);
~Cstatistics(void);
voidinput();
voidgetMean();
getVariance();
voidgetMax();
voidgetMin();
voidprint();
intN;
double*data;
doublemean;
doublevariance;
doublemax;
doublemin;
Cstatistics:
Cstatistics()
~Cstatistics(void)
voidCstatistics:
input()
cout<
请输入数据个数:
;
N;
if(N>
0)
{
data=newdouble[N];
}
请输入"
N<
个数据:
for(inti=0;
i<
N;
i++)
cin>
data[i];
}voidCstatistics:
getMean()
if(data!
=NULL)
doublesum=0;
for(inti=0;
sum+=data[i];
mean=sum/N;
getVariance()
if(mean==0)
{
getMean();
}
sum+=(data[i]-mean)*(data[i]-mean);
variance=sum/N;
getMax()
=NULL)
max=data[0];
for(inti=1;
if(data[i]>
max)
max=data[i];
getMin()
min=data[0];
if(data[i]<
min)
min=data[i];
print()
个数据为:
cout<
data[i]<
"
均值为:
mean<
方差为:
variance<
最大值为:
max<
最小值为:
min<
return0;
运行结果:
3.编写一个程序计算出球、圆柱和圆锥的表面积和体积。
要求:
(1)定义一个基类圆,至少含有一个数据成员半径;
(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。
(3)定义主函数,求球、圆柱、圆锥的和体积。
代码如下
#include<
constdoublePI=3.14159;
classcircle
voidin_rad()
输入半径:
rad;
protected:
floatrad;
//半径
classball:
publiccircle
输入球半径:
voidcalc_sur()
sur=4*PI*rad*rad;
voidcalc_vol()
vol=4/3.0*PI*rad*rad*rad;
voidout_sur()
球的表面积为:
sur<
voidout_vol()
球的体积为:
vol<
doublesur;
//表面积
doublevol;
//体积
//圆柱
classcolumn:
输入圆柱半径:
voidin_height()
输入圆柱高:
height;
sur=PI*rad*rad+2*PI*rad*height;
vol=PI*rad*rad*height;
圆柱的表面积为:
圆柱的体积为:
doubleheight;
//高
//圆锥
classcone:
输入圆锥半径:
输入圆锥高:
sur=0.5*PI*rad*rad*2*PI*rad*height;
vol=1/3.0*PI*rad*rad*height;
圆锥的表面积为:
圆锥的体积为:
球:
balloball;
oball.in_rad();
oball.calc_sur();
oball.calc_vol();
oball.out_sur();
oball.out_vol();
圆柱:
columnocol;
ocol.in_rad();
ocol.in_height();
ocol.calc_sur();
ocol.calc_vol();
ocol.out_sur();
ocol.out_vol();
圆锥:
coneocone;
ocone.in_rad();
ocone.in_height();
ocone.calc_sur();
ocone.calc_vol();
ocone.out_sur();
ocone.out_vol();
.