注册 登录
编程论坛 VC++/MFC

求大神,这个怎么改啊,不会了。。。。。

bian0531 发布于 2012-12-04 13:43, 421 次点击
#include <iostream>
#include <cstring>        
 using namespace std                  
 const double pi = 3.14  
 class circle
{
public:
       circle (double r);
       double virtual  area();         
       void area_message(string message);
 
private:                              
       double radius;
};
 
circle :: circle(double r) : radius(r)
{
 
}
 
double circle :: area()
{
       return pi * radius * radius;
}
 
void circle :: area_message (string message)
{
       cout << message << area() << endl;
}
 
class cylinder : public circle
{
public:
       cylinder(double r, double l);
       virtual double area();
 
private:
       double length;
}                                                     
 
cylinder :: cylinder (double r, double l) : circle(r) : length (1)            
{
 
}
 
double cylinder :: area()
{
       return 2 * pi * radius * (radius + length);
}
 
class sphere : circle                    
{
public :
       sphere (double r);
       double virtual  area();                              
private:
}
 
sphere :: sphere (double r) : circle(r)
{
 
}
 
virtual double sphere :: area()                           
{
       return 4 * pi * radius * radius ;
}
 
main()
{
       char shape;
       double radius, height;
       circle * ptr;
 
cout << "Enter a shape (1 = circle, 2 = cylinder, 3 = sphere): "<< endl;
       cin >> shape;
 
       if(shape > '0' & shape  < '4')
       {
cout << "Enter radius" << endl;
              cin >> radius;
 
              if(shape = 1 )               
              {
                     ptr= new circle(radius);
              }
              else if(shape = 2)                 
              {
                     cout << "Enter height" << endl;
                     cin >> height;
                     ptr = new cylinder(radius, height);
              }
              else if (shape = 3)
              {
                     ptr = new sphere (radius);
              }
              ptr.area_message("The area is : ");
       }
       else
              cout << "Invalid input" << endl;
}
2 回复
#2
mmmmmmmmmmmm2012-12-04 16:17
102 error(s), 2 warning(s)

楼主 有你的  下面已修正
程序代码:
#include <iostream>
#include <string>        
using namespace std;                  

const double pi = 3.14;  
class circle
{
public:
       circle (double r);
       double virtual  area();         
       void area_message(string message);
protected:                              
       double radius;
};

circle :: circle(double r) : radius(r)
{

}

double circle :: area()
{
    return pi * radius * radius;
}

void circle :: area_message (string message)
{
    cout << message << area() << endl;
}

class cylinder : public circle
{
public:
    cylinder(double r, double l);
    virtual double area();
   
private:
    double length;
};                                                     

cylinder :: cylinder (double r, double l) : circle(r),length (l)            
{
   
}

double cylinder :: area()
{
    return 2 * pi * this->radius * (this->radius + length);
}

class sphere : public circle                    
{
public :
    sphere (double r);
    double virtual  area();                              
private:
};

sphere :: sphere (double r) : circle(r)
{
   
}

double sphere :: area()                           
{
    return 4 * pi * radius * radius ;
}

int main()
{
    char shape;
    double radius, height;
    circle * ptr=NULL;
   
    cout << "Enter a shape (1 = circle, 2 = cylinder, 3 = sphere): "<< endl;
    cin >> shape;
   
    if(shape > '0' && shape  < '4')
    {
        cout << "Enter radius" << endl;
        cin >> radius;
        
        if(shape = 1 )               
        {
            ptr= new circle(radius);
        }
        else if(shape = 2)                 
        {
            cout << "Enter height" << endl;
            cin >> height;
            ptr = new cylinder(radius, height);
        }
        else if (shape = 3)
        {
            ptr = new sphere (radius);
        }
        ptr->area_message("The area is : ");
    }
    else
        cout << "Invalid input" << endl;

    return 0;
}
#3
xifeng12342012-12-18 18:44
大神还有三处错误 if(shape == ‘1’ )
             else if(shape ==‘2’)                 
              else if(shape == ‘2’)
1