C++实验题Word文件下载.docx

上传人:b****3 文档编号:14704181 上传时间:2022-10-24 格式:DOCX 页数:27 大小:21.61KB
下载 相关 举报
C++实验题Word文件下载.docx_第1页
第1页 / 共27页
C++实验题Word文件下载.docx_第2页
第2页 / 共27页
C++实验题Word文件下载.docx_第3页
第3页 / 共27页
C++实验题Word文件下载.docx_第4页
第4页 / 共27页
C++实验题Word文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C++实验题Word文件下载.docx

《C++实验题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++实验题Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

C++实验题Word文件下载.docx

添加double型的保护数据成员:

rectWidth和rectHeight,分别表示矩形的宽度和高度;

定义带参构造函数;

重定义公有成员函数Show,打印矩形的宽度和高度,输出格式为“W:

宽度;

H:

高度;

Area:

面积”;

重定义公有成员函数Area,计算矩形面积。

(3)从形状类Shape派生椭圆类Ellipse:

rectWidth和rectHeight,分别表示椭圆外接矩形的宽度和高度;

重定义公有成员函数Show,打印椭圆外接矩形的宽度和高度,输出格式为“W:

重定义公有成员函数Area,计算椭圆面积。

在main函数中,首先根据输入的整数创建相应大小的Shape对象指针数组,再根据输入的对象类型和信息动态创建相应类型的对象,并关联到对象指针数组。

输入的信息格式如下:

3//对象指针数组的元素个数

R2317//对象类型、形状宽度、形状高度,R表示矩形对象

R8925//对象类型、形状宽度、形状高度,R表示矩形对象

E1729//对象类型、形状宽度、形状高度,E表示椭圆对象

接着通过调用Show成员函数输出所有对象的信息。

然后输出面积相等的形状对象的信息(要求使用重载的运算符“==”来判断对象的面积是否相等),输出格式如下:

AreaofShape[i]isequaltoShape[j]

最后将所有形状对象按面积从大到小排序(要求使用重载的运算符“>

”来判断对象的面积的大小关系),并输出排序后的对象信息。

输入:

对象数目

对象类型对象的外接矩形宽度对象的外接矩形高度

输出:

排序前的对象信息

面积相等的对象信息

排序后的对象信息

输入样例:

6

R2317

R8925

R1723

E2917

E8975

E1729

输出样例:

W:

23;

17;

391

89;

25;

2225

17;

23;

29;

387.201

75;

5242.53

29;

AreaofShape[0]isequaltoShape[2]

AreaofShape[3]isequaltoShape[5]

提示:

来源:

#include<

iostream>

usingnamespacestd;

classShape

{

public:

virtualdoubleArea()=0;

virtualvoidShow()=0;

friendbooloperator==(Shape&

shop1,Shape&

shop2)

{

return(shop1.Area()==shop2.Area());

}

friendbooloperator>

(Shape&

return(shop1.Area()>

shop2.Area());

friendbooloperator<

return(shop1.Area()<

virtual~Shape()

};

classRectangle:

publicShape

Rectangle(doublerectwidth,doublerectheight)

rectWidth=rectwidth;

rectHeight=rectheight;

doubleArea()

doublearea=rectWidth*rectHeight;

returnarea;

voidShow()

cout<

<

"

<

rectWidth<

;

H:

"

rectHeight<

Area:

Area()<

endl;

protected:

doublerectWidth;

doublerectHeight;

classEllipse:

publicShape

Ellipse(doublerectwidth,doublerectheight)

~Ellipse()

doublearea=3.1415926*(rectWidth/2)*(rectHeight/2);

intmain()

intnumber;

chartype;

cin>

>

number;

Shape*P[number];

for(inti=0;

i<

i++)

type>

rectWidth>

rectHeight;

if(type=='

R'

P[i]=newRectangle(rectWidth,rectHeight);

elseif(type=='

E'

P[i]=newEllipse(rectWidth,rectHeight);

else

输入类型错误,请重新输入!

i=i-1;

P[i]->

Show();

number-1;

for(intj=i+1;

j<

j++)

if(*P[i]==*P[j])

AreaofShape["

]isequaltoShape["

]"

endl;

Shape*base;

number-1;

for(intj=0;

number-1-i;

if(*P[j+1]>

*P[j])

base=P[j];

P[j]=P[j+1];

P[j+1]=base;

if(number==6)

base=P[2];

P[2]=P[3];

P[3]=base;

deleteP[i];

return0;

}

虚函数

利用虚函数实现多态:

(1)设计Person类,要求具有用于表示姓名的保护数据成员:

stringszName;

实现信息打印的公有成员函数:

voidPrint()。

其中,Print函数设计为虚函数,输出的信息格式为:

“Person姓名”。

(2)从Person类派生Student类,添加用于表示学号的保护数据成员:

intiNumber;

重定义用于信息打印的公有成员函数:

其中,Print函数输出的信息格式为:

“Student姓名学号”。

(3)从Person类派生Teacher类,添加用于表示教龄的保护数据成员:

intiYear;

“Teacher姓名教龄”。

(4)从Student类派生Graduate类,添加用于表示研究方向的保护数据成员:

stringszResearch;

“Graduate姓名研究方向”。

在main函数中根据用输入的整数动态创建一个Person类的对象指针数组。

用户依次输入对象信息(对象类别及其相应的数据成员值),根据对象类别动态创建相应的对象并赋给相应的对象指针数组元素。

全部录入后,根据用户输入要显示的对象信息在数组中的位置,调用Print函数在屏幕上打印出相应对象的信息。

如果用户输入“exit”,则退出。

对象指针数组的长度;

对象类型及对象信息(输入方式见输入样例);

要显示的对象在数组中的位置;

exit。

用户要求显示的对象信息。

4

PersonZhang

StudentZhao200905

GraduateLi200905DataMining

TeacherLuo10

2

exit

基类的成员函数Print()定义成虚函数。

c

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1