Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105

Создать класс Triangle, содержащий следующие члены класса

15.11.2014, 20:05. Показов 4948. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все почти работает, но не получается вывести кол-во экземпляров класса, подскажите как?

Задание:
1. Поля int a , b , c; 2. Функции , позволяющие : - вывести на экран информацию о треугольнике ;-рассчитать периметр треугольника; - рассчитать площадь треугольника . - установить длины; сторон треугольника;; - установить , существует ли треугольник с данными длинами сторон. Кроме того , необхадимо реализовать перегрузку : - операции ++ (--) : одновременно увеличивает (уменьшает) значение полей a, b , c на 1 ; - операции * : умножает поля a, b, c на заданный скаляр .

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <cmath>
#include <string>
#include <iostream>
 
using namespace std;
 
class Triangle {
private:
double a,b,c;
static int number;
public:
    //конструктор для неопределенного треугольника
Triangle (): a(3),b(4),c(5)
{number++;}
  //конструктор для определенного треугольника
Triangle (double a, double b, double c): a(a),b(b),c(c)
{number++;}
  //сколько экземпляров класса
void Numbers ()
{cout<<"Обработано треугольников: "<<number<<endl;}
//информация о треугольнике
void Info(double a, double b, double c)
{
   /* cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "c = " << c << endl;*/
    Check();
    cout << "Периметр = " << Perimetr() << endl;
    cout << "Площадь = " << Square() << endl;
   if( a == b && b == c )
   {
      cout << "Равносторонний\n"<<endl;
   }
   else if( a == b || a == c || b == c )
   {
      cout << "Равнобедренный\n"<<endl;
   }
   else
   {
      cout << "Разносторонний\n"<<endl;
   }
}
//Периметр считаем
double Perimetr()
{
    return (a+b+c);
}
//Площадь считаем
double Square()
{
    double P=Perimetr()/2;
    return (sqrt((P-a)*(P-b)*(P-c)));
}
//Проверка существования треугольника
void Check()
{
    if (((a+b)>c)&&((a+c)>b)&&((b+c)>a))
    cout<<"Треугольник существует"<<endl;
    else
    cout<<"Треугольник не существует"<<endl;
}
//Устанавливаем длины сторон
void Install(double a1, double b1, double c1) {
        cout<<"Введите новую сторону а"<<endl;
         cin>>a1;
        cout<<"Введите новую сторону b"<<endl;
        cin>>b1;
         cout<<"Введите новую сторону c"<<endl;
        cin>>c1;
        a = a1;
        b = b1;
        c = c1;
    }
Triangle operator++()
{
    a++;
    b++;
    c++;
    return Triangle(a,b,c);
}
Triangle operator--()
{
    return Triangle(--a, --b, --c);
}
void Increase(double a, double b, double c, double C)
{
    cout<<"Умножаем стороны треугольника на константу!\n"<<endl;
    a=a*C;
    b=b*C;
    c=c*C;
    cout<<"Новая сторона а: "<<a<<endl;
 
        cout<<"новая сторона б: "<<b<<endl;
 
         cout<<"новая сторона с: "<<c<<endl;
 
}
};
 
 
 
 
 
  int main()
  {setlocale(LC_ALL,"Russian");
      double a,b,c,C;
  cout<<"Введите сторону а"<<endl;
         cin>>a;
        cout<<"Введите сторону b"<<endl;
        cin>>b;
         cout<<"Введите сторону c"<<endl;
        cin>>c;
        cout<<"Введите константу для умножения"<<endl;
        cin>>C;
 
Triangle g;
g.Info(a,b,c);
g.Increase(a,b,c,C);
++g;
g.Info(a,b,c);
--g;
g.Info(a,b,c);
Triangle TriangleB;
TriangleB.Install(a,b,c);
TriangleB.Info(a,b,c);
//cout<<"Обработано треугольников "<<Triangle.Number()<<endl;
cout<<"Обработано треугольников: "<<number<<endl;
        return 0;
  }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2014, 20:05
Ответы с готовыми решениями:

создать класс triangle , содержащий следующие члены класса
1. Поля int a , b , c; 2. Функции , позволяющие : - вывести на экран информацию о треугольнике ;-рассчитать периметр треугольника; -...

Создать класс Triangle, содержащий следующие члены класса
Помогите подправить код..Плиз Задание Создать класс Triangle, содержащий следующие члены класса: 1. Поля: • int a, b, c; ...

Создать класс Triangle, разработав следующие элементы класса
Создать класс Triangle, разработав следующие элементы класса: a. Поля:  int a, b, c; b. Конструктор, позволяющий создать экземпляр...

5
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
15.11.2014, 20:14
Цитата Сообщение от filimoncc Посмотреть сообщение
/cout<<"Обработано треугольников "<<Triangle.Number()<<endl;
А что это Вы всегда писали TriangleB.Info(a,b,c); и т.д.
а тут вдруг Triangle.Number()
Кстати, и метод у Вас называется Numbers()
a. (и никакого cout, метод у Вас возвращает void):
C++
1
TriangleB.Numbers();
b.
C++
1
Triangle::Numbers();
Поскольку метод работает только со статическими членами, то его тоже надо объявить static
0
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
15.11.2014, 22:22  [ТС]
zss, ничего не работает все равно. Объясните нормально.
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
15.11.2014, 22:26
filimoncc, объявите метод Numbers как static и не забудьте инициализировать переменную number.
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
15.11.2014, 22:29
Вообще-то лучше так
C++
1
static int  Numbers (){return number;}
Тогда
C++
1
cout<<"Обработано треугольников "<<Triangle::Numbers()<<endl;
0
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
15.11.2014, 23:49  [ТС]
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <cmath>
#include <string>
#include <iostream>
 
using namespace std;
 
class Triangle {
private:
double a,b,c;
 
public:
    int number;
    //конструктор для неопределенного треугольника
Triangle (): a(3),b(4),c(5)
{number++;}
  //конструктор для определенного треугольника
Triangle (double a, double b, double c): a(a),b(b),c(c)
{number++;}
  //сколько экземпляров класса
static int  Numbers (){int number;return number;}
//информация о треугольнике
void Info(double a, double b, double c)
{
   /* cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "c = " << c << endl;*/
    Check();
    cout << "Периметр = " << Perimetr() << endl;
    cout << "Площадь = " << Square() << endl;
   if( a == b && b == c )
   {
      cout << "Равносторонний\n"<<endl;
   }
   else if( a == b || a == c || b == c )
   {
      cout << "Равнобедренный\n"<<endl;
   }
   else
   {
      cout << "Разносторонний\n"<<endl;
   }
}
//Периметр считаем
double Perimetr()
{
    return (a+b+c);
}
//Площадь считаем
double Square()
{
    double P=Perimetr()/2;
    return (sqrt((P-a)*(P-b)*(P-c)));
}
//Проверка существования треугольника
void Check()
{
    if (((a+b)>c)&&((a+c)>b)&&((b+c)>a))
    cout<<"Треугольник существует"<<endl;
    else
    cout<<"Треугольник не существует"<<endl;
}
//Устанавливаем длины сторон
void Install(double a1, double b1, double c1) {
        cout<<"Введите новую сторону а"<<endl;
         cin>>a1;
        cout<<"Введите новую сторону b"<<endl;
        cin>>b1;
         cout<<"Введите новую сторону c"<<endl;
        cin>>c1;
        a = a1;
        b = b1;
        c = c1;
    }
Triangle operator++()
{
    a++;
    b++;
    c++;
    return Triangle(a,b,c);
}
Triangle operator--()
{
    return Triangle(--a, --b, --c);
}
void Increase(double a, double b, double c, double C)
{
    cout<<"Умножаем стороны треугольника на константу!\n"<<endl;
    a=a*C;
    b=b*C;
    c=c*C;
    cout<<"Новая сторона а: "<<a<<endl;
 
        cout<<"новая сторона б: "<<b<<endl;
 
         cout<<"новая сторона с: "<<c<<endl;
 
}
};
 
 
 
 
 
  int main()
  {setlocale(LC_ALL,"Russian");
      double a,b,c,C;
  cout<<"Введите сторону а"<<endl;
         cin>>a;
        cout<<"Введите сторону b"<<endl;
        cin>>b;
         cout<<"Введите сторону c"<<endl;
        cin>>c;
        cout<<"Введите константу для умножения"<<endl;
        cin>>C;
 
Triangle g;
g.Info(a,b,c);
g.Increase(a,b,c,C);
++g;
g.Info(a,b,c);
--g;
g.Info(a,b,c);
Triangle TriangleB;
TriangleB.Install(a,b,c);
TriangleB.Info(a,b,c);
 
cout<<"Обработано треугольников "<<Triangle::Numbers()<<endl;
        return 0;
  }
Теперь работает как-то неправильно.
Миниатюры
Создать класс Triangle, содержащий следующие члены класса  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2014, 23:49
Помогаю со студенческими работами здесь

Создать класс Money, содержащий следующие элементы
Создать класс Money, содержащий следующие элементы: - поле «валюта» char* Currency; - поле «сумма» long Sum; - метод получения ...

Создать класс Letter, содержащий следующие элементы
Создать класс Letter, содержащий следующие элементы: - поле «отправитель» Person* Sender; - поле «получатель» Person* Receiver; -...

Создать класс Employee, содержащий следующие элементы:
Создать класс Employee, содержащий следующие элементы: - поле «ФИО» char* FIO; - поле «Табельный номер» int Number; - поле...

класс «Строка» (данные-члены класса – строчка, функции-члены класса – операции)
Помогите пожалйуста с реализацией программы... Реализовать класс «Строка» (данные-члены класса – строчка (указатель на массив, ...

Создать класс прямоугольник, члены класса - координаты 4-х точек
Создать класс прямоугольник, члены класса - координаты 4-х точек. Предусмотреть в классе методы проверки существования четырехугольника ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru