实验三 类和对象_第1页
实验三 类和对象_第2页
实验三 类和对象_第3页
实验三 类和对象_第4页
实验三 类和对象_第5页
已阅读5页,还剩23页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Sincludc<iostrcam>

usingnamespacestd;

cIassTx

(

pubIic:

Tx(inti,intj);

〜Tx();

voiddispIay();

private:

intnum1,num2;

1;

Tx::Tx(inti,intj=1O)

(

num1=i;

num2=j;

cout«"Constructing"«num1«""«num2<<endI;

}

voidTx::display()

cout<<"dispIsy"<<num1«"<<num2«endI;

1

Tx::~Tx0

{

cout<<"Destructing"<<num1<<,"«num2«endI;

)

voidmain()

(

Txt1(22,11);

Txt2(2O);

t1、display0;

t2、display();

system("pause");

1

答:1、当建立一个对象时,对象得状态(数据成员得取值)就就是不确定得。

但对象表达了现实世界得实体,因此,一旦建立对象,必须有一个有意义得初始

值。构造函数用来自动进行对象得初始化;析构函数在龙象撤销时执行清理任务,

进行善后处理。

2.私有成员就就是在美中被隐藏得部分,她往往就就是用来描述该类对象属

性得一些数据成员,私有成员只能由本类得成员函数或某些特殊说明得函数(如

友元函数)访问,而类得外部函数无法访问私有成员;共有成员对外就就是完全开

放得;受保护成员只能由该类得成员函数、友元、共有派生成员函数访问。

3.拷贝构造函数就就是用一个已有得对象来初始化一个被创建得同类对象得

特殊得构造函数,具有一般构造函数得所有特性。但创建一个新对象时系统会自

动调用她。

4.两个成员函数:设置计数,获取计数;一个成员变量:保存计数。

8.运行结果:

Constructing2211

Constructing2010

Display2211

Display2010

1、设计--个大学得类系统,学校中有学生、教师和职员,每种人员都有自己

得特性,她们之间又有相同得地方。利用继承机制定义这个系统中得各个类及类

上必需得操作。

答:经调试后得代码:

#incIude<iostream>

#include<cstdIib>

#incIude<string>

usingnamespacestd;

classperson

(

pubIic;

voidin_nm();

voidin_id();

voidou_nm();

voidou_id0;

private:

stringid;

stringname;

};

cIassstudent:pubIicperson

pubIic:

voidin_cIsid();

voidin_sc();

voidou_cIsid0;

voidou_sc();

private:

stringcIs_id;

fIoatscore;

};

cIassteacher:pubIicperson

(

pubIic:

voidin_zc0;

voidin_dp();

voidou_zc0;

voidou_dp();

private:

stringzc;

stringdepart;

);

voidperson::in_nm()

(

cout<<"请输入姓名:"«endI;

cin>>name,

1

voidperson::in_id()

(

coutV<"请输入编括号:"VVendI;

cin»id;

)

voidperson::ou_nm0

coutV〈"姓名为:"«name«endI;

}

voidperson::ou_id()

(

cout<<"编号为:"V<id«endI;

}

voidstudent::in_cIsid()

{

cout<<”请输入学生班级:"<<cndl;

cin»cls_id;

1

voidstudent::in_sc()

(

coutv<"请输入学生分数:H«endI;

cin>>score;

}

voidstudent::cu_cIsid0

cout<V"学生班级为:"<Vcls_id«endI;

1

voidstudent::ou_sc0

(

coutV<"学生分数为:"«score«endI;

1

voidteacher::in_zc()

(

cout<<”请输入教师职称:"〈Vendl;

cin»zc;

1

voidteacher::in_dp()

(

cout«"请输入教师部门:"VVendl;

cin>>depart;

1

voidteacher::ou_zc()

cout<〈"教师职称为:"<<zc<<endI;

}

voidteacher::ou_dp()

{

cout<V”教师部门为:"V<depart«endI;

)

intmain()

(

studentstu;

cout«"开始输入学生信息:"VVendl;

stu、in_nm();

stu、in_id0;

stu、in_cIsid();

stu>in_sc();

coutV〈”显示学生信息:"VVendI;

stu、ou—nm();

stu、OU_id();

stu、ou_cIsid();

stu、ou_sc0;

cout«endI;

teachertch;

cout«”开始输入教师信息:"VVendI;

tch、in_nm();

tch、in_id();

tch、in_zc();

tch、in_dp();

coutV<"显示教师信息:"endl;

tch、ou_nm();

tch>ou_id0;

tch、ou_zc();

tch、ou_dp();

cout«endI;

system("pause");

return0;

}

运行结果为:

2、构建一个类用于计算数据得统计信息,类名Cstatistics,类中包

括,

成员变量:

数据个数(intN),数据(doubIe*data),均值(doubIemean),

方差(doubIevariance),最大值(doublemax),最小值(d。ubIemin)。

成员函数:

输入函数(voidinput()):输入数据个数N,给data变量申请N个空间,并

输入N个数值。

计算均值(voidgetNeanO):计算data变量中数据得均值,并赋值给mea

n变量。

计算方差(voidgetVariance()):计算data变量中数据得方差,并赋

值给variance变量。

计算最大值(voidgetMax()):计算data变量中数据得最大值,并赋值

给max变量。

计算最小值(voidgetMinO):计算data变量中数据得最小值,并赋值给

min变量。

输出函数(voidprin:()):输出data变量中得数据及个数,并输出该数据

得统计信息(均值(doublemean),方差(d。ublevariance),最大值(doub

Iemax),最小值(doubIemin))o

程序框架:

#incIude"Cststistics^h"

#include<iostream>

usingnamespacestd;

intmain()

(

cout<<”这就就是一个统计类!"«endl;

Cstatisticssta;

sta、input();

sta^getMean();

sta、getVarianee();

sta、getMax();

sta、getMin();

sta、print();

system("pause");

return0;

)

答:代码如下:

#pragmaonce

#incIude<iostream>

usingnamespacestd;

cIassCstatistics

(

pubIic:

Cstatistics(void);

〜Cstatistics(void);

voidinput();

voidgetMean();

getVariance();

voidgetMax0;

voidgetMin();

voidprint();

private:

intN;

double*data;

doubIemean;

doubIevariance;

doubIemax;

doubIemin;

};

Cstatistics::Cstatistics()

(

}

Cstatistics::〜Cstatistics(void)

(

1

voidCstatistics::input()

cout<<”请输入数据个数:”;

cin»N;

if(N>0)

{

data=newdouble[N];

}

coutV<"请输入"VVN<<n个数据:"<<endI;

for(inti=0,i<N,i»»)

cin»data[i];

1voidCstatistics::getMean()

(

if(data!=NULL)

(

doublesum=0;

for(inti=0;i<N;i++)

sum+=data[i];

mean=sum/N;

1

1

voidCstatistics::getVariance()

{

if(data!=NULL)

(

if(mean=0)

(

getMean();

)

doublesum=0;

for(inti=0;i<N;i++)

sum+=(data[i]-mean)*(data[i]mean);

variance=sum/N;

)

}

voidCstatistics::getMax()

if(data!=NULL)

max=data[O];

for(inti=1;i<N;i++)

(

if(data[i]>max)

max=data[i];

)

}

1

voidCstatistics::getMin()

(

if(data!=NULL)

(

min=data[0];

for(inti=1;iVN;i++)

if(data[i]<min)

min=data[i];

1

1

1

voidCstatistics::print()

(

cout«N<<"个数据为:"VVendl;

for(inti=0;i<N;i++)

1

cout«data[i]«"";

)

cout<<endI;

cout<V"均值为:"<<mean«endI;

cout<<"方差为:"<<variance«endI;

cout<〈”最大值为:"«max<<endI;

c。utV<"最小值为:"V<min«endI;

}

intmain()

(

cout<V"这就就是一个统计类!"«endI;

Cstatisticssta;

sta、input();

sta、getMean();

sta、getVariance0;

sta、getMax();

sta、getMin();

sta、print();

systemC'pause");

return0;

1

运行结果:

3、编写一个程序计算出球、圆柱和圆锥得表面积和体积。要求:

(1)定义一个基类圆,至少含有一个数据成员半径;

(2)定义基类得派生类球、圆柱、圆锥,都含有求表面积和体积得成员函数

和输出函数。

(3)定义主函数,求球、圆柱、圆锥得和体积。

答:代码如下

#incIude<iostream>

#include<cstdIib>

#incIude<string>

usingnamespacestd;

constdoublePI=3、14159;

classcircle

(

pubIic:

voidin_rad()

{

cout<V"榆入半径入V<endI;

cin»rad;

1

protected:

fIoatrad;//半径

);

cIassbaII:pubIiccircle

(

pubIic:

voidin_rad()

(

cout<<"输入球半径:"<<endI;

cin»rad;

}

voidcaIc_sur()

{

sur=4*PI*rad*rad;

}

voidcaIc_voI()

voI=4/3>O*PI*rad*rad*rad;

)

voidout_sur()

(

cout«"球得表而积为:"«sur«endl;

1

voidout_voI()

(

cout«”球得体积为:"«vol<<endl;

)

private:

doubIesur;//表面积

doubIevol;//体积

];

//圆柱

classcoIumn:pubIiccircIe

pubIic:

voidin_rad()

(

cout。"输入圆柱半径:"<<endI;

cin>>rad;

)

voidin_height()

(

cout«"输入圆柱高:"<<endI;

cin»height;

}

voidcalc_sur()

(

sur=PI*rad*rac+2*PI*rad*height;

)

voidcalcvol()

voI=PI*rad*rsd*height;

}

voidout_sur()

(

cout«”圆柱得表而积为:"<<sur«endI;

1

voidout_voI()

(

cout<<"圆柱得体积为:"<Vvol<XendI;

)

private:

doubIesur;//表面积

doubIevol;//体积

doubIeheight;〃高

};

//圆锥

cIasscone:pubIiccircIe

pubIic:

voidin_rad()

(

cout<<"输入圆锥半径:"<<endl;

cin>>rad;

}

voidin_height()

{

cout«"输入圆锥高:”〈Vendl;

cin»height;

)

voi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论