Advertisement
amermo

TP T-12 Z6

May 27th, 2015
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. //Treba pametno odabrat atribut, čuvaš inče u intu, ili metre u intu, mada je bolje inče jer manje pretvaranja ima =D
  5.  
  6. class Klasa
  7. {
  8.     int inch;
  9. public:
  10.     Klasa(int yard, int feet, int inch) : inch(36 * yard + 12 * feet + inch) {}
  11.     Klasa(int meter) : inch(std::round(meter * 100 / 2.54)) {}
  12.     void Ocitaj(int &inch, int &feet, int &yard) const;
  13.     double DajMetre() const { return inch*0.0254; }
  14.     friend Klasa operator +(const Klasa &k1, const Klasa &k2) { return k1.inch + k2.inch; }
  15.     Klasa &operator +=(const Klasa &k) { inch += k.inch; return *this; }
  16.     Klasa &operator ++() { inch++; return *this; }
  17.     Klasa operator ++(int) { Klasa k(*this); inch++; return k; }
  18.     friend Klasa operator *(const Klasa &k, double s) { return std::round(s*k.inch); }
  19.     friend Klasa operator *(double s, const Klasa &k) { return k*s; }
  20.     friend double operator /(const Klasa &k1, const Klasa &k2) { return double(k1.inch) / k2.inch; }
  21.     friend std::ostream &operator <<(std::ostream &cout, const Klasa &k);
  22. };
  23.  
  24. void Klasa::Ocitaj(int &inch, int &feet, int &yard) const
  25. {
  26.     yard = Klasa::inch / 36;
  27.     feet = (Klasa::inch % 36) / 12;
  28.     inch = Klasa::inch % 12;
  29. }
  30.  
  31. std::ostream &operator <<(std::ostream &cout, const Klasa &k)
  32. {
  33.     int yd, ft, in;
  34.     k.Ocitaj(in, ft, yd);
  35.     return cout << yd << " yd " << ft << " ft " << in << " in" << std::endl;
  36. }
  37.  
  38. int main()
  39. {
  40.     //Testiraj sam papak =D
  41.     system("PAUSE");
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement