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

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

Войти
Регистрация
Восстановить пароль
 
impulse1990
#1

перегрузка операций - C++

20.04.2013, 17:23. Просмотров 573. Ответов 7
Метки нет (Все метки)

Обычным методом задача решена, помогите пожалуйста сделать перегрузку операций
Условие:
Указанные в заданиях операции реализовать посредством перегрузки подходящих операций
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream>
#include <math.h>
 
class Triangle
{
private:
    int angle[3];
    int side[3];
 
public:
    Triangle() { angle[0] = 0; angle[1] = 0; angle[0];
                  side[0] = 0; side[1] = 0; side[2]; }
    void enter();
    void area();
    void perimetr();
    void height();
    void type();
};
 
void Triangle :: enter()
{
    int i;
    start:
    for ( i = 0; i < 3; i++)
    {
        std::cout << "Введите угол " << i + 1 << std::endl;
        std::cin >> angle[i];
    }
    if( angle[0] + angle[1] + angle[2] != 180)
    {
        std::cout << "Сумма углов не равна 180 градусам " << std::endl;
        std::cout << "Повторите ввод углов " << std::endl;
        goto start;
    }
 
    start2:
    for ( i = 0; i < 3; i++)
    {
        std::cout << "Введите сторону " << i + 1 << std::endl;
        std::cin >> side[i];
    }
 
    if(side[0] + side[1] > side[2] || side[0] + side[2] > side[1] || side[1]+ side[2] > side[0])
        std::cout << "Данный треугольник существует " << std::endl;
    else
    {
        std::cout << "Треугольник не существует, повторите ввод сторон  "<< std::endl;
        goto start2;
    }
}
 
void Triangle ::area() // считаем по формуле Герона (p(p-a)(p-b)(p-c))^(1/2)
{
    double p = (side[0] + side[1] + side[2]) / 2; // p полупериметр
    std::cout << "Площадь треугольника равна " << sqrt( p * ( p - side[0]) * (p - side[1]) * (p - side[2]));
    std::cout << std::endl;
}
 
void Triangle::perimetr()
{
    std::cout << "Периметр треугольник равен " << side[0] + side[1] + side[2] << std::endl;
}
 
void::Triangle::height()
{
    double p = ( side[0] + side[1] + side[2]) / 2;
    std::cout << "Высота треугольника равна  " << 2*(sqrt( p * ( p - side[0]) * (p - side[1]) * (p - side[2]))) / side[0] << std::endl;
}
 
void :: Triangle::type()
{
    if(angle[0] == angle[1] && angle[1] == angle[2])
        std::cout << "Данный треугольник равносторонний " << std::endl;
    if(angle[0] == angle[1] || angle[1] == angle[2] || angle[0] == angle[2])
        std::cout << "Данный треугольник равнобедренный " << std::endl;
    if(angle[0] != angle[1] && angle[1] != angle[2])
        std::cout << "Данный треугольник разносторонний " << std::endl;
}
 
int main()
{
    setlocale(0, "rus");
    Triangle tr;
    int number;
    std::cout << "Введите данные треугольника " << std::endl;
    tr.enter();
    std::cout << std::endl;
    std::cout << "1 Площадь треугольника " << std::endl;
    std::cout << "2 Периметр треугольника " << std::endl;
    std::cout << "3 Высота треугольника " << std::endl;
    std::cout << "4 Вид треугольника " << std::endl;
    std::cout << "5 Полное описание треугольника " << std::endl;
    std::cout << "Введите ваш вариант " << std::endl;
    std::cin >> number;
 
    switch(number)
    {
    case 1: tr.area(); break;
    case 2: tr.perimetr(); break;
    case 3: tr.height(); break;
    case 4: tr.type(); break;
    case 5: tr.area(); tr.perimetr(); tr.height(); tr.type();break;
    default: std::cout << "Не коретный ввод данных " << std::endl; break;
    }
 
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2013, 17:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перегрузка операций (C++):

Перегрузка операций - C++
Выполнить перезагрузку перечисленных операций, закрепив за ними соответствующий функциональный смысл! дано шестнадцатиричное число. &quot;+&quot;...

Перегрузка операций - C++
Уважаемые программисты! Помогите новичку! Мне нужно написать программу, в которой реализуется разреженная матрица переменной размерности,...

Перегрузка операций - C++
Здравствуйте, помогите реализовать программу: Класс - множество set. Дополнительно перегрузить следующие операции: + - добавить элемент в...

Перегрузка операций - C++
Всем привет. Пытаюсь понять ооп. Задали такую лабу: 1. Определить класс согласно варианту задания (табл.1, столбец 2). 2. Определить...

Перегрузка операций - C++
Добрый день! Задание простенькое но не могу решить так как не получается перегрузка операций. Задание: Вычислить точное значение суммы...

Перегрузка операций - C++
C++ ругается когда я пытаюсь сделать след-ю перегрузку операций. У меня трехмерный массив matrix и в цикле мне нужно использовать не...

7
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
20.04.2013, 19:36 #2
А какая, например, подходящая операция для площади или периметра?
0
impulse_1990
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 3
20.04.2013, 20:02 #3
Без разницы, пускай будет для периметра
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
20.04.2013, 21:06 #4
Я не об этом. Как Вы себе представляете перегрузку оператора для периметра? tr++? или tr()? Не очень-то понятно, что это операция нахождения периметра.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.04.2013, 21:18 #5
Цитата Сообщение от impulse1990 Посмотреть сообщение
Указанные в заданиях операции реализовать посредством перегрузки подходящих операций
Какие в задании(заданиях?) указаны операции? А лучше текст задания.
0
impulse_1990
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 3
20.04.2013, 21:30 #6
Задание. Реализовать определение нового класса. Реализовать конструктор инициализации (один или несколько) и конструктор без аргументов. Указанные в заданиях операции реализовать посредством перегрузки подходящих операций. Реализовать операции инкремента и декремента в обеих формах, если они имеют смысл для реализуемого типа. Для демонстрации работы с объектами нового типа во всех заданиях требуется написать главную функцию

Вариант 5. Создать класс Triangle для представления треугольника. Поля данных должны включать углы и стороны. Требуется реализовать операции: вычисления площади, вычисления периметра, вычисления высот, а также определения вида треугольника (равносторонний, равнобедренный или прямоугольный).

Добавлено через 7 минут
Так то надо делать для вот этого:

Создать класс Goods (товар). В классе должны быть представлены поля: наименование товара, дата оформления, цена товара, количе-
ство единиц товара, номер накладной, по которой товар поступил на склад. Реализовать методы изменения цены товара, изменения количества товара (увеличения и уменьшения), вычисления стоимости товара. Должен быть метод для отображения стоимости товара в виде строки.

Но преподаватель сказал на основе предыдущей лабораторной
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.04.2013, 21:32 #7
Цитата Сообщение от impulse_1990 Посмотреть сообщение
перегрузки подходящих операций.
Цитата Сообщение от impulse_1990 Посмотреть сообщение
Требуется реализовать операции: вычисления площади, вычисления периметра, вычисления высот, а также определения вида треугольника (равносторонний, равнобедренный или прямоугольный).
По моему мнению, среди этих операций нет подходящих для перегрузки.
0
impulse_1990
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 3
20.04.2013, 21:34 #8
Понятно, спасибо! Буду делать тогда по другой)
0
20.04.2013, 21:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2013, 21:34
Привет! Вот еще темы с ответами:

Перегрузка операций << и >> - C++
Всем добрый день.. У меня такая проблема, не получается перегрузить операторы &lt;&lt; и &gt;&gt; для своего класса, делаю вот так: class CMPLX ...

Перегрузка операций - C++
Доброго времени суток. Очень нужна помощь программистов. Есть такое задание: Создать класс, который запоминает римские числа в виде...

Перегрузка операций - C++
Начал изучать перегрузку операций, и чего-то вроде не понял или что... Вообщем не могу понять чего не компилит. Проект и ошибка в...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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