Advertisement
Kentoo

K#2

May 30th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. class Triad {
  7. public:
  8.     Triad() {
  9.         a = 0;
  10.         b = 0;
  11.         c = 0;
  12.     }
  13.     Triad(double a, double b, double c) {
  14.         this->a = a;
  15.         this->b = b;
  16.         this->c = c;
  17.     }
  18.     Triad(const Triad &T) {
  19.         a = T.a;
  20.         b = T.b;
  21.         c = T.c;
  22.     }
  23.     void set_a(double a) {
  24.         this->a = a;
  25.     }
  26.     void set_b(double b) {
  27.         this->b = b;
  28.     }
  29.     void set_c(double c) {
  30.         this->c = c;
  31.     }
  32.     double get_a() {
  33.         return a;
  34.     }
  35.     double get_b() {
  36.         return b;
  37.     }
  38.     double get_c() {
  39.         return c;
  40.     }
  41.     Triad operator =(const Triad &T) {
  42.         if (&T == this)
  43.             return *this;
  44.         return Triad(this->a = T.a, this->b = T.b, this->c = T.c);
  45.     }
  46.     friend std::ostream& operator << (ostream &out, const Triad &T);
  47.     virtual void print() {
  48.         cout << "(" << a << ", " << b << ", " << c << ")";
  49.     }
  50.     friend std::ofstream& operator << (ofstream &out, const Triad &T);
  51.     friend std::ifstream& operator >> (ifstream &out, const Triad &T);
  52. protected:
  53.     double a, b, c;
  54. };
  55. ostream& operator << (ostream &s, Triad &T) {
  56.     s << "(" << T.get_a() << ", " << T.get_b() << ", " << T.get_c() << ")";
  57.     return s;
  58. }
  59. ofstream& operator << (ofstream &fout, Triad &T) {
  60.     if (fout.is_open() && fout.good()) {
  61.         fout << "(" << T.get_a() << ", " << T.get_b() << ", " << T.get_c() << ")";
  62.     }
  63.     return fout;
  64. }
  65. ifstream& operator >> (ifstream &fin, Triad &T) {
  66.     if (fin.is_open() && fin.good()) {
  67.         int a, b, c;
  68.         fin >> a >> b >> c;
  69.         T.set_a(a);
  70.         T.set_b(b);
  71.         T.set_c(c);
  72.     }
  73.     return fin;
  74. }
  75. class Triangle : public Triad {
  76. public:
  77.     Triangle() : Triad() {}
  78.     Triangle(double a, double b, double c) : Triad(a, b, c) {}
  79.     Triangle(const Triangle &tr) : Triad(tr.a, tr.b, tr.c) {}
  80.     Triangle(const Triad &T) : Triad(T) {}
  81.     double get_alpha() {
  82.         if (b != 0)
  83.             return asin(a / b);
  84.     }
  85.     double get_betta() {
  86.         if (c != 0)
  87.             return asin(b / c);
  88.     }
  89.     double get_gamma() {
  90.         if (c != 0)
  91.             return asin(a / c);
  92.     }
  93.     double get_square() {
  94.         double p = (a + b + c) / 2;
  95.         return sqrt(p * (p - a) * (p - b) * (p - c));
  96.     }
  97. };
  98. void main() {
  99.     Triad s(4, 5, 6);
  100.     Triad k = s;
  101.     s.print();
  102.     k.print();
  103.     ofstream fout;
  104.     fout.open("s.txt");
  105.     fout << 3 << " " << 4 << " " << 5 << endl;
  106.     fout << s;
  107.     fout.close();
  108.     ifstream fin;
  109.     fin.open("s.txt");
  110.     fin >> k;
  111.     fin.close();
  112.     k.print();
  113.     Triangle tr = k;
  114.     fout.open("s1.txt");
  115.     fout << endl << tr.get_alpha() << " " << tr.get_betta() << " " << tr.get_gamma() << " " << tr.get_square() << endl;
  116.     fout.close();
  117.     system("pause");
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement