Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Progi / Lesson 8 / 8

.1.txt
Скачиваний:
28
Добавлен:
28.03.2015
Размер:
2.53 Кб
Скачать
// 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;
   
}

Соседние файлы в папке Lesson 8