Использовать класс для решения задачи
Условие : Определите класс Параллелепипед прямоугольный.(призма в основании которой - прямоугольник) Данные: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 шт):
в классе не должно быть ничего лишнего (что не является сущностью этого класса)
например, размеры параллелепипеда лучше задавать вне класса и лишь указывать классу
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");
}