Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
// laba1.cpp: определяет точку входа для консольного приложения.
//
#include "StdAfx.h"
#include <iostream>
#include <windows.h>
using namespace std;
class Drobi
{
public:
friend void operator << (ostream &o,Drobi r);
friend Drobi operator >> (istream &i,Drobi &r);
int Getchis();
int Getznam();
double Dell();
void Init(int m,int s);
void Read();
void Display();
Drobi sloj(Drobi a,Drobi b);
protected:
int chis;
int znam;
};
void Drobi::Init(int m,int s)
{
chis=m;
znam=s;
}
int Drobi::Getchis()
{
return chis;
}
int Drobi::Getznam()
{
return znam;
}
double Drobi::Dell()
{
double n;
int k;
k=chis/znam;
n=(1.0*chis/znam);
return n-k;
}
Drobi Drobi::sloj(Drobi a,Drobi b)
{
Drobi c;
c.chis=a.chis*b.znam + a.znam*b.chis;
c.znam=a.znam*b.znam;
return c;
}
void Drobi::Read()
{
cin>>chis>>znam;
}
void Drobi::Display()
{
// cout<<chis<<znam;
printf("\n%d/%d\n", chis, znam);
}
void operator << (ostream &o,Drobi r)
{
cout << r.chis << " " << r.chis;
}
Drobi operator >> (istream &o,Drobi &r)
{
cin >> r.znam >> r.znam;
return r;
}
class Okr:public Drobi
{
public:
// новые методы Sprint
void Putdec(int d);
int Numberdec();
void Init(int m,int s, int d);
friend void operator << (ostream &o,Okr r);
friend Okr operator >> (istream &i,Okr &r);
private:
int dec;
};
void Okr::Init(int m, int s, int d){
Drobi::Init(m,s);
dec=d;
}
void Okr::Putdec(int d)
{
dec=d;
}
int Okr::Numberdec()
{
int k;
k=Dell();
if(k>=0.5)
return k+dec;
else
return k;
}
void operator << (ostream &o,Okr r)
{
cout << r.chis << " " << r.znam<<" " <<r.dec;
}
Okr operator >> (istream &o,Okr &r)
{
cin >> r.chis >> r.znam>>r.dec;
return r;
}
int main()
{
setlocale(LC_ALL, "Russian"); /*setlocale( LC_CTYPE, ".1251" ); */
int m,s;
double k;
Drobi x,y,z;
x.Read();
y.Init(4,5);
k=x.Dell();
printf("%.2f\n", k);
Okr g;
double g1,g2;
g.Init(1,8,7);
g.Putdec(0.5);
g1=g.Numberdec();
g2=g.Dell();
z=z.sloj(x,y);
z.Display();
m=z.Getchis();
s=z.Getznam();
cout<<endl;
Drobi a;
cin >> a;
cout.precision(3); //Вывод всего 3 цифр 3.2
cout << a;
Okr b;
cout << '\n';
cin >> b;
cout.width(10); //Точность 2.34568
cout << b;
//cout<<m<<"/"<<s<<endl;
system("pause");
return 0;
}