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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод строки фиксированной длинны в cout (аля printf(%5.0d)! http://www.cyberforum.ru/cpp-beginners/thread843397.html
Добрый вечер! Сегодня встал перед выбором... как выводить через printf или cout. Через принтф код выдает ошибку: Необработанное исключение по адресу, ссылаясь на файл (msvcr110d.dll) ..Нарушение...
C++ Написать программу, решающую сравнения первой степени Задние - написать программу, решающую сравнения первой степени, использую алгоритм Евклида. Проблема в том что не работает сама функция нахождения НОД: int NOD_Evklid (int a, int m, int d){ ... http://www.cyberforum.ru/cpp-beginners/thread843386.html
Написать программу, в которую вбиваешь любую функцую, а она строит ее график C++
Вообщем, надо написать программу, в которую вбиваешь любую функцую, а она строит ее график.я не знаю как к этой задаче подойти, подскажите, я почитал, посмотрел, сначала нужно создать какой-то...
C++ Как прописать шаблонную функцию внутри шаблонного класса?
Как объявить шаблонную функцию/*типа iterator*/ внутри шаблонного класса?
C++ неизвестныйе символ-в формальных параметрах!Почему я же указал тип .? http://www.cyberforum.ru/cpp-beginners/thread843354.html
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- ...
C++ Известен рост каждого из 20 учеников класса Известен рост каждого из 20 учеников класса. Рост мальчиков условно за-дан отрицательными числами. Выяснить, верно ли, что средний рост мальчиков превышает средний рост девочек более чем на 10 см. ... подробнее

Показать сообщение отдельно
impulse1990
0 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 1

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

20.04.2013, 17:23. Просмотров 590. Ответов 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;
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru