我该怎么写这个程序?

时间:2012-05-19 13:55:48

标签: c++

我的任务是编写main函数,该函数定义一个名为 recs [] 的对象数组,大小为4. recs的每个元素必须用宽度和长度初始化,我必须计算它的面积和周长。

#include <iostream>
#include <cmath>
using namespace std;

struct recs
{
    double width;
    double length;
};

class rect
{
    public:
           rect();
           double area; 
           double circumference;
           void setrect();
           void calarea();
           void calcircumf();
           void print(); 
           friend bool operator==(rect rec1,rect rec2);
    private:
            double width,length;
            };
            rect recs[4];

bool operator==(rect rec1,rect rec2)
{
     return (rec1.area == rec1.area && rec1.circumference == rec2.circumference);
}

rect::rect()
{
    width=0.0;
    length=0.0;
}

void rect::setrect()
{
     cout << "width = ";
     cin >> width;
     cout << "length = ";
     cin >> length;
     print();
}

void rect::calarea()
{
     width == length;
     cout << "the return value true" << endl;
}

void rect::calcircumf()
{
     width == length;
     cout << "the return value true" << endl;
}

void rect::print()
{
     cout << "width = " << width << endl;
     cout << "length = " << length << endl << endl;
     }

int main()
{   
    double area;
    double circumference;
    double width;
    double length;

    rect recs[4] = { {10.0, 12.0}, {12.0, 14.0}, {14.0, 16.0}, {16.0, 18.0} };

    for (int i = 0; i <= 4; i++)
    {
        area = width * length;
        cout << "the area "<< i << " = " << area << endl ;

        circumference = ((width + length) + (width + length));
        cout << "the circumference" << i << " = " << circumference << endl;

    };

    system("pause");
    return 0;
}

到目前为止,我一直在编辑这段代码4个小时,但是我无法编译它。

1 个答案:

答案 0 :(得分:0)

看到这一点。

我希望这会有所帮助.. :)

//My task is to write the main function which defines an array of objects called recs[] with the size of 4.
//Each element of recs must be initialized with width and length, and I have to calculate its area and circumference.

#include <iostream>

using namespace std;

class Rect{

//Data Abstraction - Not letting the user access the class variables
private:    
    double width;
    double length;

public:

    Rect(){         //default constructor

        width = 0.0;
        length = 0.0;

    }

    //setters for width and length
    void setWidthAndLength(double w, double l);

    //area and circumference calculators
    double area(); 
    double circumference();     
};

void Rect :: setWidthAndLength(double w, double l){

width = w;
length = l;

}

double Rect :: area(){

return width * length;

}


double Rect :: circumference(){

return 2 * width + 2 * length;   

}

int main(int argc, char* argv[]){

Rect r[4];
int i;
double width,length;

for(i=0;i<4;i++){

    cout<<"Enter the width and length for rectangle "<<i<<endl;
    cin>>width>>length;

    //set the width
    r[i].setWidthAndLength(width,length);               

    cout<<"The Area of the Rectangle is "<<r[i].area()<<endl;
    cout<<"The Circumference of the Rectangle is "<<r[i].circumference()<<endl<<endl;

}

return 0;
}

我想知道为什么我不能做this.width = w;但是反正..