Использовать класс для решения задачи

Условие : Определите класс Параллелепипед прямоугольный.(призма в основании которой - прямоугольник) Данные:a, b, c- ребра параллелепипеда, d – диагональ. (d2=a2+b2+c2 ) Методы: объем( V=abc) площадь поверхности2*(ab+bc+ca). Использовать класс для решения следующей задачи: Требуется построить будку для собаки прямоугольной формы из дерева, стоимость материалов определяется из расчета $10,50 за кв фут (1фут=0,3048 м) То, где я остановился и не могу понять что делать дальше,как именно использовать данный класс. P.S я только начал учить С++ (мой первый яп)

#include<iostream>
#include<cmath>
#define PI 3.1415
using namespace std;
class parall
{   
public:
    double a,b,c;
    parall();
    double volume();
    double area();
};
void main()
{
    parall x;
    setlocale(LC_ALL,"Russian");
    cout<<"Объем:"<<x.volume()<<endl;
    cout<<"Площадь:"<<x.area()<<endl;
    system("pause");
}
parall ::parall()
{
    cout<<"Введите стороны:"<<endl;
    cin>>a>>b>>c;
}
double parall::volume()
{
    return a*b*c;
}
double parall::area()
{
    return 2*(a*b+b*c+a*c);
}

Ответы (2 шт):

Автор решения: Zhihar

в классе не должно быть ничего лишнего (что не является сущностью этого класса)

например, размеры параллелепипеда лучше задавать вне класса и лишь указывать классу

public:
    double a,b,c;

    parall(const double src_a, const double src_b, const double src_c);
    double volume();
    double area();
};

cout<<"Введите стороны:"<<endl;
double a, b, c;
cin>>a>>b>>c;

parall box(a, b, c);

кроме того класс предоставляет возможность инкапсулировать (т.е. скрывать) данные от внешнего наблюдателя, поэтому хорошо было бы скрыть размеры параллелепипеда:

class parall
{ 
private:  
    double a,b,c;

public:
    parall();
    double volume();
    double area();
};

а пользователю предоставить методы для получения параметров:

public:
    double get_a() const;

вообще используйте принцип минимальной необходимости - класс/метод/функция должны уметь делать ровно то, что от них требуется и ничего большего

например вычисление объема и площади поверхности параллелепипеда никак не влияет на его размеры, ничего не изменяет в классе, а значит методы это делающие должны быть объявлены как константные:

public:
    double volume() const;
    double area() const;
};

Требуется построить будку для собаки прямоугольной формы из дерева, стоимость материалов определяется из расчета $10,50 за кв фут (1фут=0,3048 м) То, где я остановился и не могу понять что делать дальше,как именно использовать данный класс

ну что делать дальше - вам нужно площадь умножить на стоимость материалов и узнать цену

cout<<"Введите стороны:"<<endl;
double a, b, c;
cin>>a>>b>>c;

parall box(a, b, c);

cout << "Введите стоимость:" << endl;
double price;
cin >> price;

const double cost = box.area() * price;

cout << "цена: " << cost << endl;

P.S.

и называйте переменные по человечески вместо однобуквенных, чтобы читающие код его понимали

private:  
    double width, height, length;
→ Ссылка
Автор решения: Жава
#include<iostream>
#include<cmath>
using namespace std;
class parall
{
private:
 double a,b,c;

public:
 parall(){
 a=0; b=0; c=0;
 }

 parall(double x, double y, double z){
 a=x; b=y; c=z;
 }
 void set_abc(double x, double y, double z){
 a=x; b=y; c=z;
 };
 double get_a(){return a;};
 double get_b(){return b;};
 double get_c(){return c;};


 void show(){
 cout<< "\n Стороны ";
 cout<< "\n a = "<< a << "\n b = " << b << "\n c = "<< c << endl;
 }
 double volume()
{
 return a*b*c;
}
double area()
{
 return a*b;
}
};
int main()
{
 parall x(2, 3, 6);
 setlocale(LC_ALL,"Russian");
 x.set_abc(2, 3, 6);
 x.show();
 cout<<"Объем:"<<x.volume()<<endl;
 cout<<"Площадь:"<<x.area()<<endl;
 system("pause");
}
→ Ссылка