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

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

15.11.2014, 20:05. Показов 4929. Ответов 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
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
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
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru