问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

又来编程问题

发布网友 发布时间:2022-04-30 00:02

我来回答

1个回答

热心网友 时间:2022-06-26 17:28

1.CArea不需要设为CShape的派生类。它也不需要得到CTriangle、CRect、CCircle这几个派生类的数据,只需要调用这几个派生类的Area函数来计算就可以了。
2.SetData的作用在题目中就已经说明了,它是用来重设图形大小的。
3.可以在CArea中调用各派生类的构造函数或成员函数来设置形状的数据。
#include
<iostream>
#include
<cmath>using
namespace
std;class
CShape
{
public:
virtual
double
Area()
=
0;
virtual
void
SetData()
=
0;
};class
CTriangle:public
CShape
{
double
a,
b,
c;
public:
CTriangle()
{
a
=
b
=
c
=
0.0;
}
CTriangle(double
A,
double
B,
double
C)
{
a
=
A;
b
=
B;
c
=
C;
}
virtual
double
Area()
{
double
p
=
(a
+
b
+
c)
/
2.0;
return
sqrt(p
*
(p
-
a)
*
(p
-
b)
*
(p
-
c));
}
virtual
void
SetData()
{
cout
<<
"输入三角形的三边长:\n";
cin
>>
a
>>
b
>>
c;
}
};class
CRect:public
CShape
{
double
h,
w;
public:
CRect()
{
h
=
w
=
0.0;
}
CRect(double
H,
double
W)
{
h
=
H;
w
=
W;
}
virtual
double
Area()
{
return
h
*
w;
}
virtual
void
SetData()
{
cout
<<
"输入矩形的长和宽:\n";
cin
>>
h
>>
w;
}
};class
CCircle:public
CShape
{
double
r;
public:
CCircle()
{
r
=
0.0;
}
CCircle(double
R)
{
r
=
R;
}
virtual
double
Area()
{
return
r
*
r
*
3.14;
}
virtual
void
SetData()
{
cout
<<
"输入圆形的半径:\n";
cin
>>
r;
}
};class
CArea
{
CShape
*s[3];
public:
CArea(double
TA
=
0.0,
double
TB
=
0.0,
double
TC
=
0.0,
double
RH
=
0.0,
double
RW
=
0.0,
double
CR
=
0.0)
{
s[0]
=
new
CTriangle(TA,
TB,
TC);
s[1]
=
new
CRect(RH,
RW);
s[2]
=
new
CCircle(CR);
}
~CArea()
{
delete
s[0];
delete
s[1];
delete
s[2];
}
void
SetData()
{
s[0]->SetData();
s[1]->SetData();
s[2]->SetData();
}
double
GetArea()
{
return
s[0]->Area()
+
s[1]->Area()
+
s[2]->Area();
}
};int
main()
{
CArea
area(3.0,
4.0,
5.0,
3.0,
5.0,
3.0);
cout
<<
"图形面积之和:"
<<
area.GetArea()
<<
endl;
area.SetData();
cout
<<
"图形面积之和:"
<<
area.GetArea()
<<
endl;
return
0;
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
初二选辅导书,新教材完全解读、中学教材全解和点拨哪个好 ...N系,还有三星、索尼、飞利浦,哪个MP3的音质最好 白本的近义词 白铜怎么造句 cc sc区别 ...都是怎么保存的?为什么越久越香,还不会变质? 我和女孩认识将近20天了,女孩只让我拉手,但得不到别的进展,求助? 对女的再怎么欲擒故纵,她也仍旧泰然自若,为什么?不爱还是心里强大? 女人只要沉住_,就_有什_你得不到的 如何关掉电脑低音炮 care的相关短语 request for member &#39;area&#39; in rect2,which is of non-class type &#39;carea()’ care的用法 人工智能就业方向是什么? 单词care中的a读名称音还是a(cat),小生分辨不清,请达人解惑。 Every student care a___ the coming test.根据首字母填空,要翻译 care的形容词是什么? care是在乎的意思吗? care形容词形式三种是什么? win7 64位的什么系统最好在哪下载 要个win7旗舰版64位的系统在哪里下载 win7 64位系统哪里下载 win7 64位系统怎么下载?求教 我是个路痴,一出门就分不清东南西北怎么办? 不看太阳怎么区分东西南北呀?我是路痴→_→ 求助,我是个路痴,方向感极差,经常分不清东南西北,对建筑的观察力也不行,我往汽车里面一坐就更晕了。 我是大路痴,分不清东南西北,完全没有方向感。 如何分清楚东南西北? 我是路痴,东南西北都分不清,问怎么辨别方向呢 我是个路痴.请问怎么分东南西北 I don&#39;t care a fucking shit是什么意思 抗磷脂综合征有哪些主要临床表现 我的男友是不是虐性狂??? 请问为什么53题不选A.care?谢谢!!(不确定勿答) 抗磷脂综合征的病因 虐性这个词什么意思阿? - 信息提示 人的虐性根是什么? 抗心磷脂抗体的抗磷脂综合征概述 care about,care for和care with的区别 有什么虐心虐性小说? 抗磷脂抗体综合征可以运动吗 Glass,handle _ care A for B with C in D under 人格*怎么治,一个人格是会学习的好孩子,一个是虐性成狂的阴暗面,家庭背景残缺 抗磷脂综合征是否需要治疗 外语高手(非英语)请帮我翻译下面的公司介绍 虐信 是什么意思啊? 抗磷脂综合征引起的复发性流产,这是怎么回事? 日语,【マジヒスト】[サディスト]什么意思? 抗心磷脂抗体综合征如何治疗
  • 焦点

最新推荐

猜你喜欢

热门推荐