include iostream include math include cstdlib using namespace std clas

  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
#include <iostream>
#include <math.h>
#include "cstdlib"
using namespace std;
class treug
{
public:
double a,b,c; //стороны треугольника. угол С - угол, лежащий напротив стороны С
treug()//конструктор
{
cout << "Введите стороны треугольника:" << endl;
cout << "Введите a:" << endl;
cin >> a ;
cout << "Введите b:" << endl;
cin >> b;
cout << "Введите c:" << endl;
cin >> c;
for(;(((a+b)<=c)||((a+c)<=b)||((c+b)<=a));)
{
cout << "Треугольник вырожденный, введите меньшее c" <<endl;
cin >> c;
}
cout << "Конструктор сработал" << endl;
};
~treug()//деструктор
{
cout << "Деструктор сработал" << endl;
}
double Ugol(double a, double b, double c)
{
return 180*acos((a*a+b*b-c*c)/(2*a*b))/M_PI;
}
double Med()//медиана к большей стороне
{
if ((a>b) && (a>c))
return 0.5*(sqrt(2*b*b+2*c*c-a*a));
if ((b>a) && (b>c))
return 0.5*(sqrt(2*a*a+2*c*c-b*b));
if ((c>b) && (c>a))
return 0.5*(sqrt(2*b*b+2*a*a-c*c));
}
double Rad()//вычисл радиуса вписанной окр-ти
{
double p=(a+b+c)/2;
return sqrt((p-a)*(p-b)*(p-c)/p);
}
friend int operator ^ (treug &m,treug &n);
};
int podobie(treug &z)
{
treug a;
return z^a;
}
int operator^(treug &m,treug &n)
{
if(((m.a/n.a)==(m.b/n.b))&&((m.b/n.b)==(m.c/n.c)))
return 1;
else return 0;
}
int main()
{
setlocale(LC_ALL, "Russian");
treug z;
int go=1;
double r;
char sw;
system("PAUSE");
while(go)
{
system("cls");
cout<<"1.Вычисление угла А\n2.Вычисление угла В\n3.Вычисление угла С\n4.Вычисл. медианы, провед. к большей стороне\n5.Вычисление радиуса вписанной окружности\n6.Определение подобия\n7.Выход\n";
cin >> sw;
switch(sw)
{
case '1':r=z.Ugol(z.b,z.c,z.a);
cout<<"Вычисление угла А:\n";
cout<<r<<endl;
system("PAUSE");
break;
case '2':r=z.Ugol(z.c,z.a,z.b);
cout<<"Вычисление угла B:\n";
cout<<r<<endl;
system("PAUSE");
break;
case '3':r=z.Ugol(z.a,z.b,z.c);
cout<<"Вычисление угла C:\n";
cout<<r<<endl;
system("PAUSE");
break;
case '4':r=z.Med();
cout<<"Вычисл. медианы, провед. к большей стороне:\n";
cout<<r<<endl;
system("PAUSE");
break;
case '5':r=z.Rad();
cout<<"Вычисление радиуса вписанной окружности:\n";
cout<<r<<endl;
system("PAUSE");
break;
case '6':cout<<"Определение подобия:\n";
r=podobie(z);
//cout<<"Определение подобия:\n";
if(r)
cout<<"Треугольники подобны"<<endl;
else cout<<"Треугольники не подобны"<<endl;
system("PAUSE");
break;
case '7':go=0;
break;
}
}
return 0;
}