Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
artem1994
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 15
#1

Класс прямоугольник исправить код - C++

22.09.2013, 23:15. Просмотров 827. Ответов 6
Метки нет (Все метки)

я написал код, не могу сделать один шаг в нем писал в Code Blocks
нужно еще сравнить площади двух прямоугольников, и если равны - вывести соответствующее сообщение, и если не равны тоже

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
 
using namespace std;
class Rectangle
{
    public:
    Rectangle();
    Rectangle(double);
    Rectangle(double,double);//обозначает простой тип, используемый для хранения 64-разрядных значений с плавающей запятой.
    double area();
 
    private://Модификатор доступа, обозначает, что программист будет использовать соответствующие элементы только внутри своего собственного класса.
    double width;
    double lenght;
};
 
Rectangle::Rectangle()//:: - оператор расширения области видимости.
{
    cout << "Введите длину прямоугольника: "; cin >>lenght;
    cout << "Введите ширину прямоугольника: "; cin >>width;
}
 
Rectangle::Rectangle(double side)
{
    lenght = width = side;
}
 
Rectangle::Rectangle(double w, double l)
{
    lenght = l;
    width = w;
}
 
double Rectangle::area()
{
    return width * lenght;
}
 
int main()
{   setlocale(LC_ALL,"Russian");
    Rectangle A,B(6,4);
    cout << "Площадь первого прямоугольника: " << A.area()<< endl;
    cout << "Площадь второго прямоугольника: " << B.area()<< endl;
 
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 23:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс прямоугольник исправить код (C++):

Написать класс прямоугольник и построить прямоугольник, пересечением двух других - C++
Помогите пожалуйста с задание до делать, нужно построить треугольник являющегося общей частью (пересечением) двух прямоугольников. У меня...

Класс с индексированием не компилируется. Исправить код - C++
Очень прошу помощи, сишу злюсь на себя, что не понимаю :( В учебнике глава с перегрузкой операторов, оператор , высыпан как должное вот...

Иерархия геометрических объектов: клас точка->класс квадрат->класс прямоугольник - C++
Иерархия геометрических объектов: класс точка-&gt;класс квадрат-&gt;класс прямоугольник. Построить эту иерархию наследованием.. Прошу помочь -...

класс - прямоугольник - C++
Нужно найти площадь и периметр прямоугольника.... вот написала код...но он не работает...подскажите пожалуйста что делать??? #include...

класс прямоугольник. - C++
Здравствуйте! Помогите пожалуйста исправить ошибки. Задача:нарисовать прямоугольник(длины сторон вводятся с клавиатуры),вычислить его...

Класс Прямоугольник - C++
Разработайте с использованием TDD класс , моделирующий сущность «Прямоугольник». Прямоугольник обладает следующими свойствами: •...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Крюгер
0 / 60 / 3
Регистрация: 16.11.2012
Сообщений: 418
Записей в блоге: 5
22.09.2013, 23:31 #2
не так надо, сейчас переделаю
0
Stella
75 / 75 / 5
Регистрация: 26.02.2013
Сообщений: 224
23.09.2013, 00:06 #3
artem1994, это в конце такой код добавить:
C++
1
2
3
if (A.area()==B.area())
cout << "Площади равны";
else cout << "Пощади не равны";
1
borodat
Заблокирован
23.09.2013, 00:25 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Rectangle {
    ...
    
    bool comapreArea (Rectangle& rect) {
        return this->area() == rect.area();
    }
    ...
}
 
int main () {
 
    Rectangle A, B;
 
    if (A.comapreArea(&B))
        std::cout << "Yeah, we win :)\n";
    else
        std::cout << "Oops, we wrong :(\n";
}
0
Крюгер
0 / 60 / 3
Регистрация: 16.11.2012
Сообщений: 418
Записей в блоге: 5
23.09.2013, 01:40 #5
artem1994, ту чушь что наверху даже не читай, вот даю тебе работоспособный класс, это действительно можно назвать классом, да и сделать при помощи него с твоими прямоугольниками можно ВСЁ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Rectangle
{ float _w,_h;
public:
    Rectangle():_w(0),_h(0){}           //---constructor 1
    Rectangle(float sq):_w(sq),_h(sq){} //---constructor 2
    Rectangle(float w,float h):_h(h),_w(w){}  //---constructor 3
    Rectangle(const Rectangle &r){_w=r._w; _h=r._h;} //---copy constructor
 
    ~Rectangle(); //--- destructor
 
    float GetWith(){return _w;}  //---get metods
    float GetHigth(){return _h;}
    float GetArea(){return _w*_h;} //---Area.......
    void SetWith(float w){_w = w;}  //---set metods
    void SetHigth(float h){_h= h;}
//----overload orerators
    Rectangle operator+(Rectangle &q){Rectangle w; w._h=q._h+_h; w._w=q._w+_w; return w;}
    Rectangle operator+(float v){Rectangle w; w._h=v+_h; w._w=v+_w; return w;}
    bool operator==(Rectangle &r){if(_h==r._h && _w==r._w){return true;} return false;}
    Rectangle &operator=(Rectangle &r){if(this== &r){return *this;} _h=r._h; _w=r._w; return *this;}
    friend std::ostream &operator<<(std::ostream &stream, Rectangle &r);
    friend std::istream &operator>>(std::istream &stream, Rectangle &r);
 
};
std::ostream &operator<<(std::ostream &stream, Rectangle &r){
    stream<<"(Rect"<<r._h<<"by"<<r._w<<"\n)";
return stream;
}
std::istream &operator>>(std::istream &stream, Rectangle &r){
    std::cout<<"SetWith:";
        stream>>r._w;
    std::cout<<"SetHigth:";
        stream>>r._h;
    return stream;
}
 
//(с)Крюгер , но юзай где хочешь конечно ж
//[QUOTE]писал для тебя до 1:36 по мск... жду благодарности гг[/QUOTE]
Зы этот класс не идеал, по идее реализация должна находиться в cpp файле, это на будущее, но я не стал заморачиваться, и потому сделал как есть...

ЗЗЫ Устал... иду спать

ЗЗЗЫ нужна будет помощь по классу пиши в личку
0
borodat
Заблокирован
23.09.2013, 02:07 #6
Крюгер, То есть по твоему, вот этот символьный пластелин и есть труЪ код? Ну ладно я могу согласиться с тем что необходимо перегрузить оператор эквивалентности (только для приличия, ибо как известно эквивалентности в общем случае прямоугольников нет). Но ведь задача-то стоит сравнить площади двух прямоугольников:
Цитата Сообщение от artem1994 Посмотреть сообщение
нужно еще сравнить площади двух прямоугольников, и если равны - вывести соответствующее сообщение, и если не равны тоже
Цитата Сообщение от Крюгер Посмотреть сообщение
писал для тебя до 1:36 по мск... жду благодарности гг
За эту пакость надо палкой багодарить. space на клавиатуре пивом залил?
0
Крюгер
0 / 60 / 3
Регистрация: 16.11.2012
Сообщений: 418
Записей в блоге: 5
23.09.2013, 09:00 #7
borodat, площадь уже как ни странно посчитанную выдает
C++
1
float GetArea(){return _w*_h;}
что мешает сравнить 2 площади? И еще , по стандартам ооп, между прочим реализация должна быть скрыта...
и она ...скрыта. И накрайний случай ничего не мешает взять да и дописать comapre -метод
---------------
и да. ту изначальную "пакость" компиль даже собирать отказывается. лезет куча багов и тд.
А вот этот компилится как надо.Работает , успел потестить даже. (собиралось под ms visual C++ 2008)

Добавлено через 18 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Rectangle
{ float _w,_h;
public:
    Rectangle():_w(0),_h(0){}           //---constructor 1
    Rectangle(float sq):_w(sq),_h(sq){} //---constructor 2
    Rectangle(float w,float h):_h(h),_w(w){}  //---constructor 3
    Rectangle(const Rectangle &r){_w=r._w; _h=r._h;} //---copy constructor
 
    ~Rectangle(); //--- destructor
 
    float GetWith(){return _w;}  //---get metods
    float GetHigth(){return _h;}
    float GetArea(){return _w*_h;} //---Area.......
    bool AreaCompare(Rectangle &r){return this->GetArea()==r.GetArea();} //----compare area...for fatty trolls
    void SetWith(float w){_w = w;}  //---set metods
    void SetHigth(float h){_h= h;}
//----overload orerators
    Rectangle operator+(Rectangle &q){Rectangle w; w._h=q._h+_h; w._w=q._w+_w; return w;}
    Rectangle operator+(float v){Rectangle w; w._h=v+_h; w._w=v+_w; return w;}
    bool operator==(Rectangle &r){if(_h==r._h && _w==r._w){return true;} return false;}
    Rectangle &operator=(Rectangle &r){if(this== &r){return *this;} _h=r._h; _w=r._w; return *this;}
    friend std::ostream &operator<<(std::ostream &stream, Rectangle &r);
    friend std::istream &operator>>(std::istream &stream, Rectangle &r);
 
};
std::ostream &operator<<(std::ostream &stream, Rectangle &r){
    stream<<"(Rect"<<r._h<<"by"<<r._w<<"\n)";
return stream;
}
std::istream &operator>>(std::istream &stream, Rectangle &r){
    std::cout<<"SetWith:";
        stream>>r._w;
    std::cout<<"SetHigth:";
        stream>>r._h;
    return stream;
}
да чтоб не писали тупых вопросов и где сравнить... ВО СРАВНИВАЙТЕ !
(между прочим я и не говорил что в этом классе есть всё ,это лишь каркас, но он правильнный, рабочий...кому надо тот дополнит)

Добавлено через 26 минут
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2013, 09:00
Привет! Вот еще темы с ответами:

Класс Rectangle (прямоугольник) - C++
друзья , у меня экзамен . а я не бум бум в c++ . помогите кто сможет Создать класс Rectangle (прямоугольник). Класс имеет атрибуты...

разработать класс прямоугольник - C++
разработать класс прямоугольник. определить конструктор и деструктор. реализовать объявленные методы(3 метода) доступа к данным. Вот!...

Создать класс прямоугольник. - C++
Помогите, пожалуйста!! не могу решить задачу, очень важно! Условие: нужно создать класс прямоугольник. Определить в нем конструктор,...

Класс прямоугольник (Visual C++) - C++
Необходимо создать класс прямоугольник и производный класс пятиугольник.Необходимо перемещать фигуры на плоскости(параллельный перенос) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.09.2013, 09:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru