设计一个正方形类,其中包括边长一个属性,包括构造函数,析构函数,求面积的成员函数和求周长的成员函数,通过正方形类定义2个正方形对象,并求建设一个下图所示的活动场地的费用。
如下图所示的活动场地。中间要铺设草坪,四周要铺设塑胶跑道,最外围要安装栅栏。
已知大正方向和小正方形边长相差6米,它们的中心是重合的。草坪的造价是每平方米150,塑胶跑道的造价是每平方米70, 栅栏的造价是每米100。用户输入中间草坪场地的边长,设计程序自动计算整个活动场地的造价。
以下是代码
方法一:
#include <iostream>
#include <bits.h>
using namespace std;
class square
{
private:
int length1, length2;
public:
square(int Side1, int Side2);
square(const square& rec);
~square();
int Area1()
{
return length1 * length1;
}
int Area2()
{
return length2 * length2;
}
int Perimeter1()
{
return 4 * length1;
}
int Perimeter2()
{
return 4 * length2;
}
int RunwayArea()
{
return Area1() - Area2();
}
int LawnCosta()
{
return 150 * Area2();
}
int RunwayCost()
{
return 70 * RunwayArea();
}
int FenceCost()
{
return 100 * Perimeter1();
}
int TotalCost()
{
return LawnCosta() + RunwayCost() + FenceCost();
}
};
square::square(int Side1, int Side2)
{
this->length1 = Side1;
this->length2 = Side2;
}
square::square(const square& rec)
{
this->length1 = rec.length1;
this->length2 = rec.length2;
}
square::~square()
{
}
int main()
{
int Side2=0;
std::cout << "请输入中间草坪场地的边长:" << endl;
std::cin >> Side2;
int Side1 = Side2 + 6;
square re = square(Side1,Side2);
std::cout << "总造价为:" << std::endl;
std::cout << re.TotalCost() << std::endl;
}
以10为例输入程序中输出结果为:
方法二:
#include <iostream>
#include <bits.h>
using namespace std;
class square1
{
private:
int Sidelength1;
public:
square1(int l);
square1(const square1& in_rec);
~square1();
int Area()
{
return Sidelength1 * Sidelength1;
}
int Perimeter()
{
return 4 * Sidelength1;
}
};
square1::square1(int l)
{
this->Sidelength1 = l;
}
square1::square1(const square1& in_rec)
{
this->Sidelength1 = in_rec.Sidelength1;
}
square1::~square1()
{
}
class square2
{
private:
int Sidelength2;
public:
square2(int w);
square2(const square2& rec);
~square2();
int Area()
{
return Sidelength2 * Sidelength2;
}
int Perimeter()
{
return 4 * Sidelength2;
}
};
square2::square2(int w)
{
this->Sidelength2 = w;
}
square2::square2(const square2& rec)
{
this->Sidelength2 = rec.Sidelength2;
}
square2::~square2()
{
}
int main()
{
int w = 0;
std::cout << "请输入中间草坪场地的边长:" << endl;
std::cin >> w;
int l = w + 6;
square1 re = square1(l);
square2 re2 = square2(w);
std::cout << "总造价为:" << std::endl;
std::cout << 150*re2.Area()+100* re.Perimeter()+70*(re.Area()- re2.Area()) <<endl;
}
以20为例输入程序中输出结果为:
方法一必比方法二容易理解一些两种方法很类似你可以选其一种作为参考。
希望以上内容可以帮助得到你!