- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题及实验讲解(10-11章)
/* 习题10.13:定义一个矩形类Rect,矩形的左上角坐标(Left,Top)和右下角坐标(Right,Bottom)定义为私有数据成员,成员函数包括计算面积、计算周长、输入和输出。定义Rect类数组,计算各个矩形的面积和周长并输出。*/
/*#includeiostream
using namespace std;
class Rect{
private:
float left, top;
float right, bottom;
float length, area; //此两成员可不用
public:
void input(float le, float to, float ri, float bo) //输入函数,输入数据成员 { left=le; top=to; right=ri; bottom=bo; }
void input( ) //重载输入函数,用于数组输入
{ coutInput left, top and right, bottom:;
cinlefttoprightbottom; } //无参,直接输入数据成员的值
float getLength( ) //无参,有返回值(也可无返回值)
{ length=((top-bottom)+(right-left))*2;
return length;
}
void getArea( ) //无返回值
{ area=(top-bottom)*(right-left); }
void Output(); //体内声明函数
};
void Rect::Output( ) //体外定义函数
{ cout(left,top)=(left,top)endl;
cout(right,bottom)=(right,bottom)endl;
coutLength=getLength(),Area=areaendl; //用返回值
}
int main(void)
{ Rect rect1; //定义Rect类的对象rect1
rect1.input(2,4,4,2); //rect1的数据成员的值作为实参输入
rect1.getLength(); //数据的输入、计算和输出均通过对象的函数成员进行
rect1.getArea();
rect1.Output();
Rect r[2]; //定义Rect类的对象数组
int i;
for(i=0; i2; i++)
{ r[i].input(); //键盘输入数组元素,此时用前一种实参的输入方式就不方便
r[i].getLength();
r[i].getArea();
r[i].Output();
}
return 0;
}
此题中对象数组数据的输入未采用构造函数的形式,而是采用专门的输入??数。
/* 习题10.17 设计一大小可变的整形数组类:
class CArray{
int size; //数组的元素个数
int *p; //指向为数组申请的动态内存
public:
CArray(int=100); //数组缺省大小为100个元素
~CArray(); //析构函数
int GetElem(int i); //取或设置数组中的第i个元素
void Input(); //为数组所有元素输入数据
void Print(); //输出数组中的所有元素
void Sort() //对数组元素进行排序
int Search(int); //在数组中查找指定值
};
首先完成CArray类中成员函数的定义,然后设计主函数,定义CArray的对象,测试所定义的类CArray。*/
/*#includeiostream
using namespace std;
class CArray
文档评论(0)