C++(PTA)——多边形的周长计算(继承)

多边形的周长计算(继承)

#include<iostream>
using namespace std;
class polygon
{
protected:
	int number;
private:
	int side_length[100];
public:
	polygon() = default;
	polygon(int n)
	{
		number = n;
		for (int i = 0; i < 100; i++)
		{
			side_length[i] = 0;
		}
	}
	void setlen(int *l)
	{
		for (int i = 0; i < 100; i++)
		{
			side_length[i] = *(l + i);
		}
	}
	int perimeter()
	{
		int sum = 0;
		for (int i = 0; i < 100; i++)
		{
			sum += side_length[i];
		}
		return sum;
	}
	void display()
	{
		cout << number <<" "<< perimeter()+1 << endl;
	}
};
class rectangle :public polygon
{
protected:
	int height;
	int width;
public:
	rectangle() = default;
	rectangle(int h, int w)
	{
		height = h;
		width = w;
	}
	int perimeter()
	{
		return 2 * (height + width);
	}
	void display()
	{
		cout << "4" << " " << perimeter() << endl;
	}
};
class equal_polygon :public polygon
{
protected:
	int side_len;
public:
	equal_polygon() = default;
	equal_polygon(int n, int l)
	{
		number = n;
		side_len = l;
	}
	int perimeter()
	{
		return number * side_len;
	}
	void display()
	{
		cout << number << " " << perimeter() << endl;
	}
};
int main()
{
	int n;
	cin >> n;
	int judge;
	for (int i = 0; i < n; i++)
	{
		cin >> judge;
		if (judge == 0)
		{
			int len[100];
			for (int i = 0; i < 100; i++)
			{
				len[i] = 0;
			}
			int count = 0;
			for (int i = 0; i < 100; i++)
			{
				cin >> len[i];
				if (len[i] == -1)
				{
					break;
				}
				count++;
			}
			polygon p(count);
			p.setlen(len);
			p.display();
		}
		if (judge == 1)
		{
			int h, w;
			cin >> h >> w;
			rectangle r(h, w);
			r.display();
		}
		if (judge == 2)
		{
			int n;
			int l;
			cin >> n >> l;
			equal_polygon e(n, l);
			e.display();
		}
	}
	return 0;
}
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jian圣楠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值