在线等:C++编程问题求教,谢谢
然后定义一个正方形类,属性有边长和相应的成员函数。
再编写一个如下图所示的组合类,由一个正方型和一个圆形组成,
要求该组合类能求出阴影部分面积和周长。通过主函数测试该类。
#include <iostream>
#include <cmath>
using namespace std;
const double PI=3.1416;
/**********Program**********/
/********** End **********/
int main(){
Circle A(4); //圆的半径为4
Box B(1); //正方形的边长为1
NewStyle C(A,B);
cout<<"自定义图形的面积"<<C.S()<<endl;
cout<<"自定义图形的周长"<<C.L()<<endl;
A.Set(6); //圆的半径变为6
B.Set(2); //正方形的边长变为2
C.Set(A,B);
cout<<"自定义图形的面积"<<C.S()<<endl;
cout<<"自定义图形的周长"<<C.L()<<endl;
return 0;
} 展开
#include <iostream>
#include <cmath>
using namespace std;
const double PI=3.1416;
/**********Program**********/
class Circle
{
private:
double radius;
public:
double area();
double circumference();
void Set(double r1);
Circle(double r=0):radius(r){}
};
double Circle::circumference()
{
return 2*PI*radius;
}
void Circle::Set(double r1)
{
radius=r1;
}
double Circle::area()
{
return PI*radius*radius;
}
class Box
{
private :
double length;
public:
void Set(double l1);
Box(double l=0):length(l){}
double area();
double circumference();
};
double Box::circumference()
{
return 4*length;
}
void Box::Set(double l1)
{
length=l1;
}
double Box::area()
{
return length*length;
}
class NewStyle
{
public:
Circle a;
Box b;
NewStyle(Circle a1,Box b1);
double S();
double L();
void Set(Circle a2,Box b2);
};
NewStyle::NewStyle(Circle a1,Box b1)
{
a=a1;
b=b1;
}
void NewStyle::Set(Circle a2,Box b2)
{
a=a2;
b=b2;
}
double NewStyle::S()
{
return a.area()-b.area();
}
double NewStyle::L()
{
return a.circumference()+b.circumference();
}
/********** End **********/
int main()
{
Circle A(4); //圆的半径为4
Box B(1); //正方形的边长为1
NewStyle C(A,B);
cout<<"自定义图形的面积"<<C.S()<<endl;
cout<<"自定义图形的周长"<<C.L()<<endl;
A.Set(6); //圆的半径变为6
B.Set(2); //正方形的边长变为2
C.Set(A,B);
cout<<"自定义图形的面积"<<C.S()<<endl;
cout<<"自定义图形的周长"<<C.L()<<endl;
return 0;
}
不好意识 让你久等了 主要是我犯了个小错误 找了很久才发现 就是哪个构造函数的问题
不过分有点少。。。
但我自己也是第一次做这种题目 不知道这结果你满不满意?