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
125
126
127
128
129
130
131
132
133
134
#include <iostream>
#include <math.h>
#include "cstdlib"
using namespace std;
class rational_number
{
double num, dn; //числитель (numerator) и знаменатель (denominator)
public:
rational_number()//конструктор
{
cout << "Введите числитель:\n";
cin >> num;
cout << "Введите знаменатель:\n";
cin >> dn;
cout << "Отработал конструктор\n";
};
~rational_number()//деструктор
{
cout << "Отработал деструктор\n";
}
friend double operator ^ (double x,rational_number &n);
friend void operator <(rational_number &n, rational_number &d);//друг с другом
friend void operator >(rational_number &n, int x);
};
/* Возведение в степень заданную РЧ */
double power()
{ double x;
cout<<"Введите вещественное число:\n";
cin>>x;
cout<<"Введите рациональное число:\n";
rational_number n;
return x^n;
system("PAUSE");
}
double operator ^ (double x,rational_number &n)
{ double p;
p=(double)(n.num/n.dn);
return pow(x,p);
}
void compare()
{
cout<<"Введите первое рациональное число:\n";
rational_number n;
cout<<"Введите второе рациональное число:\n";
rational_number d;
n<d;
return;
}
void operator <(rational_number &n, rational_number &d)
{
double res1, res2;
res1=(double)(n.num/n.dn);
res2=(double)(d.num/d.dn);
if (res1==res2)
cout<<"Числа равны\n";
else
{
if (res1>res2)
cout<<"Первое рациональное число больше второго рационального числа\n";
else
cout<<"Второе рациональное число больше первого рационального числа\n";
}
return;
}
void compare_int ()
{
int x;
cout<<"Введите первое рациональное число:\n";
rational_number n;
cout<<"Введите целое число:\n";
cin>>x;
n>x;
return;
}
void operator >(rational_number &n, int x)
{
double res1;
res1=(double)(n.num/n.dn);
if (res1==x)
cout<<"Числа равны";
else
{
if (res1>x)
cout<<"Рациональное число больше целого числа\n";
else
cout<<"Целое число больше рационального числа\n";
}
return;
}
int main()
{
setlocale(LC_ALL, "Russian");
char sw;
int run=1;
double r;
while(run)
{
system("cls");
cout<<"1.Возведение в степень\n2.Сравнение РЧ\n3.Сравнение с ЦЧ\n4.Выход\n";
cin >> sw;
switch(sw)
{
case '1':r=power();
cout<<"Возведение вещественного числа в степень, заданную РЦ: \n";
cout<<r<<endl;
system("PAUSE");
break;
case '2':compare();
cout<<"Сравнение рациональных чисел:\n";
cout<<r<<endl;
system("PAUSE");
break;
case '3':compare_int();
cout<<"Сравнение рационального чисеа c ЦЧ:\n";
cout<<r<<endl;
system("PAUSE");
break;
case '4':run=0;
break;
}
}
return 0;
}