c++类与对象问题,

question:
定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,成员函数的功能包括:
计算圆的面积Cal_Area、计算圆的周长Cal_Cir、显示圆的属性Display、获取圆的半径
GetRadius、设置圆的半径SetRadius 等。要求:
1) 定义构造函数(以半径为参数,缺省值为0,周长和面积在构造函数中生成)和拷
贝构造函数;
2) 定义相关的成员函数;
3) 在主函数 main 中,从键盘输入半径,创建圆对象,通过调用成员接口函数,计算周
长、面积,并输出圆的属性值;
代码框架如下:
class Circle{
……
};
int main(){
double r;
Circle c;
……
return 0;
}
我的做法:
#include<iostream>
using namespace std;
const PI=3.14;
class Circle{
private:
double Radius;
double Area;
double Cir;
public:
Circle::Circle(double radius=0){
Radius=radius;
Area=PI*Radius*Radius;
Cir=2*PI*Radius;
}
Circle(Circle&Circ);
void SetRadius(double radius);
void GetRadius(void);
void Cal_Area(void);
void Cal_Cir(void);
void Display(void);
};
Circle::Circle(Circle &Circ){
Radius=Circ.radius;
Area=Circ.area;
Cir=Circ.cir;
}
void Circle::SetRadius(float radius){
Radius=radius;
}
float Circle::GetRadius(){
return(Radious);
}
void Circle::Cal_Area(){
Area=PI*Radius*Radius;
}
void Circle::Cal_Cir(){
Cir=2*PI*Radius;
}
void Circle::Display(){
cout<<"圆的半径为:"<<radius;
cout<<"圆的面积为:"<<Area;
cout<<"圆的周长为:"<<CIR;
}
#include <iostream>
using namespace std;
int main(){
double r;
Circle c;
c.GetRadius;
c.Cal_Area;
c.Cal_Cir;
c.Display;
return 0;
}
结果出现了错误,不知道怎么改

编译过了,你再看看
#include<iostream>
using namespace std;
const PI=3.14;
class Circle{
private:
double Radius;
double Area;
double Cir;
public:
    Circle::Circle(double radius=0){
Radius=radius;
Area=PI*Radius*Radius;
Cir=2*PI*Radius;
}
Circle(Circle&Circ);
void SetRadius(double radius);
double GetRadius(void); //
void Cal_Area(void);
void Cal_Cir(void);
void Display(void);
};

Circle::Circle(Circle &Circ){
Radius=Circ.Radius;//
    Area=Circ.Area;///
    Cir=Circ.Cir;/////
}
void Circle::SetRadius(double radius){//
Radius=radius;
}
double Circle::GetRadius(){ //
return(Radius);//
}
void Circle::Cal_Area(){
    Area=PI*Radius*Radius;
}
void Circle::Cal_Cir(){
    Cir=2*PI*Radius;
}
void Circle::Display(){ 
cout<<"圆的半径为:"<<Radius;
cout<<"圆的面积为:"<<Area;
cout<<"圆的周长为:"<<Cir;
}

int main(){
double r;
Circle c;
c.GetRadius();
c.Cal_Area();
c.Cal_Cir();
c.Display();
return 0;
}

追问

那要怎么让输出的面积周长可以为小数

追答

修正了你的代码错误,如下:

#include<iostream>
using namespace std;
const double PI=3.14; //默认是int
class Circle{
private:
double Radius;
double Area;
double Cir;
public:
    Circle::Circle(double radius=0){
Radius=radius;
Area=PI*Radius*Radius;
Cir=2*PI*Radius;
}
Circle(Circle&Circ);
void SetRadius(double radius);
double GetRadius(void); //返回的是double
void Cal_Area(void);
void Cal_Cir(void);
void Display(void);
};

Circle::Circle(Circle &Circ){
Radius=Circ.Radius;//
    Area=Circ.Area;///
    Cir=Circ.Cir;/////
}
void Circle::SetRadius(double radius){//参数类型
Radius=radius;
}
double Circle::GetRadius(){ //返回类型
return(Radius);//参数名
}
void Circle::Cal_Area(){
    Area=PI*Radius*Radius;
}
void Circle::Cal_Cir(){
    Cir=2*PI*Radius;
}
void Circle::Display(){ 
cout<<"圆的半径为:"<<Radius<<endl;
cout<<"圆的面积为:"<<Area<<endl;
cout<<"圆的周长为:"<<Cir<<endl;
}

int main(){
double r;
Circle c;

cout << "input Radius: " ;
cin >> r ;
c.SetRadius(r);

c.GetRadius(); //函数()
c.Cal_Area();
c.Cal_Cir();
c.Display();
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答