是一个circle类程序
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/05 11:54:28
是一个circle类程序
根据题意实现代码如下:#include <iostream>
#include <cmath>
#include <string>
using namespace std;
const double PI = 3.14159265358979323846;
class Circle{
public:
Circle():x(0),y(0),r(1){};
Circle(double ix, double iy, double ir):x(ix), y(iy), r(ir){};
double area(){return PI*r*r;}
double perimeter(){return 2*PI*r;}
int relation(Circle &c);
void show();
private:
double x, y, r;
};
int Circle::relation(Circle &c){
double d = sqrt((x - c.x) * (x - c.x) + (y - c.y) * (y - c.y));
if(d > r + c.r)
return -1;
else if(d == r + c.r || d == fabs(r-c.r))
return 1; //相切
else if(d < r + c.r && d > fabs(r - c.r))
return 2; //相交
else
return 3;
}
void Circle::show(){
cout << "圆心为(" << x << ", " << y << "),半径为" << r;
}
class TestCircle{
public:
void run();
void AddCircle(Circle c, int i){p[i] = c;}
private:
Circle p[2];
void testRelation(Circle &m, Circle &n);
void testArea(Circle &c);
void testPerimeter(Circle &c);
};
void TestCircle::run(){
testArea(p[0]);
testPerimeter(p[0]);
testArea(p[1]);
testPerimeter(p[1]);
testRelation(p[0],p[1]);
}
void TestCircle::testRelation(Circle &m, Circle &n){
int s = m.relation(n);
string t = "相离";
if(s == 1){
t = "相切";
}
else if(s == 2){
t = "相交";
}
else if(s == 3){
t = "相容";
}
m.show();
cout << "和";
n.show();
cout << ",两圆" << t << endl;
}
void TestCircle::testArea(Circle &c){
c.show();
cout << ",该圆面积为:" << c.area() << endl;
}
void TestCircle::testPerimeter(Circle &c){
c.show();
cout << ",该圆周长为:" << c.perimeter() << endl;
}
int main(){
double x,y,r;
TestCircle test;
cout << "please input x y r of circle 1:" << endl;
cin >> x >> y >> r;
test.AddCircle(Circle(x,y,r), 0);
cout << "please input x y r of circle 2:" << endl;
cin >> x >> y >> r;
test.AddCircle(Circle(x,y,r), 1);
test.run();
return 0;
}如果感觉还行,还请尽快采纳.
#include <cmath>
#include <string>
using namespace std;
const double PI = 3.14159265358979323846;
class Circle{
public:
Circle():x(0),y(0),r(1){};
Circle(double ix, double iy, double ir):x(ix), y(iy), r(ir){};
double area(){return PI*r*r;}
double perimeter(){return 2*PI*r;}
int relation(Circle &c);
void show();
private:
double x, y, r;
};
int Circle::relation(Circle &c){
double d = sqrt((x - c.x) * (x - c.x) + (y - c.y) * (y - c.y));
if(d > r + c.r)
return -1;
else if(d == r + c.r || d == fabs(r-c.r))
return 1; //相切
else if(d < r + c.r && d > fabs(r - c.r))
return 2; //相交
else
return 3;
}
void Circle::show(){
cout << "圆心为(" << x << ", " << y << "),半径为" << r;
}
class TestCircle{
public:
void run();
void AddCircle(Circle c, int i){p[i] = c;}
private:
Circle p[2];
void testRelation(Circle &m, Circle &n);
void testArea(Circle &c);
void testPerimeter(Circle &c);
};
void TestCircle::run(){
testArea(p[0]);
testPerimeter(p[0]);
testArea(p[1]);
testPerimeter(p[1]);
testRelation(p[0],p[1]);
}
void TestCircle::testRelation(Circle &m, Circle &n){
int s = m.relation(n);
string t = "相离";
if(s == 1){
t = "相切";
}
else if(s == 2){
t = "相交";
}
else if(s == 3){
t = "相容";
}
m.show();
cout << "和";
n.show();
cout << ",两圆" << t << endl;
}
void TestCircle::testArea(Circle &c){
c.show();
cout << ",该圆面积为:" << c.area() << endl;
}
void TestCircle::testPerimeter(Circle &c){
c.show();
cout << ",该圆周长为:" << c.perimeter() << endl;
}
int main(){
double x,y,r;
TestCircle test;
cout << "please input x y r of circle 1:" << endl;
cin >> x >> y >> r;
test.AddCircle(Circle(x,y,r), 0);
cout << "please input x y r of circle 2:" << endl;
cin >> x >> y >> r;
test.AddCircle(Circle(x,y,r), 1);
test.run();
return 0;
}如果感觉还行,还请尽快采纳.
是一个circle类程序
java 如下写了Circle类 构造函数 在测试程序中 new一个circle在第9行 提示错误Circle类型不可用
1. 编一个使用派生类的程序求圆柱体(Cylinder)的体积.设计一个圆类(Circle)和一个矩形类(Rectang
.写一个C++程序,定义抽象基类Shape,由它派生出一个基类Point,再由Point派生出2个派生类:Circle(
1.编程程序,实现计算有一个圆环面积,大圆小圆半径键盘输入.编程定义一个circle类,含有私有变量拜托
设计一个程序,定义一个圆类(Circle),其中有一数据成员:半径(radius),计算圆的面积(area)和周长(pe
用Java程序编写定义一个Circle类,该类拥有一个存储圆半径的属性(Radius),并撰写设置、取得圆半径、计算圆周
定义一个基类圆形Circle类
C++题 定义一个circle类
circle 的中文是 什么?
设计一个园类circle和一个桌子类table,circle类包括私有数据成员半径radius和求圆面积得成员函数get
编写一个圆类Circle该类有一个成员变量radius(私有浮点型)用于存放圆的半径,和两个构造器方法为Circle()