SHARE
TWEET

Untitled

a guest Jun 19th, 2017 47 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. using namespace std;
  5.  
  6. class Animal
  7. {
  8. protected:
  9.     string name;
  10.     int number;
  11.     int level;
  12. public:
  13.     Animal() :name(""), number(0), level(0) {};
  14.     Animal(string n, int m, int l) :name(n), number(m), level(l) {};
  15.     Animal(const Animal&a) :name(a.name), number(a.number), level(a.level) {};
  16.  
  17.     string get_name()
  18.     {
  19.         return name;
  20.     }
  21.     int get_number()
  22.     {
  23.         return number;
  24.     }
  25.     int get_level()
  26.     {
  27.         return level;
  28.     }
  29.     virtual void input_f(ifstream&file)
  30.     {
  31.         file >> name;
  32.         file >> number;
  33.         file >> level;
  34.     }
  35. };
  36.  
  37. const static int Size = 3;
  38.  
  39. class Zoo
  40. {
  41. protected:
  42.     string sity;
  43.     string zoo;
  44.     Animal * arr;
  45. public:
  46.     Zoo() :sity(""), zoo(""), arr(new Animal[2]){};
  47.     Zoo(string s, string z, Animal*a) : sity(s), zoo(z), arr(a) {};
  48.     Zoo(const Zoo&z) :sity(z.sity), zoo(z.zoo), arr(z.arr) {};
  49.    
  50.     string get_sity()
  51.     {
  52.         return sity;
  53.     }
  54.  
  55.     string get_zoo()
  56.     {
  57.         return zoo;
  58.     }
  59.  
  60.     int get_dangerous_level(int i)
  61.     {
  62.         return arr[i].get_level();
  63.     }
  64.     string get_animal(int i)
  65.     {
  66.         return arr[i].get_name();
  67.     }
  68.     int get_number_of_animal(int i)
  69.     {
  70.         return arr[i].get_number();
  71.     }
  72.  
  73.     virtual void input_z(ifstream & file)
  74.     {
  75.         file >> sity;
  76.         file >> zoo;
  77.         string z_name;
  78.         int z_number, z_level;
  79.         for (int i = 0; i < Size; i++)
  80.         {
  81.             file >> z_name;
  82.             file >> z_number;
  83.             file >> z_level;
  84.             Animal a(z_name, z_number, z_level);
  85.             arr[i] = a;
  86.         }
  87.     }
  88.  
  89.     void sort()
  90.     {
  91.         for (int i = 0; i < Size - 1; i++)
  92.             for (int j = i + 1; j < Size; j++)
  93.             {
  94.                 if (arr[i].get_name() > arr[j].get_name())
  95.                 {
  96.                     swap(arr[i], arr[j]);
  97.                 }
  98.             }
  99.     }
  100.  
  101. };
  102.  
  103. void print2(Zoo *zoo, int size_of_zoo)
  104. {
  105.     //for (int i = 0; i < size_of_zoo; i++)
  106.     //{
  107.     //  zoo[i].sort();
  108.     //}
  109.     ofstream file("rez.txt", ios_base::out);
  110.     for (int i = 0; i < size_of_zoo; i++)
  111.     {
  112.         file << zoo[i].get_sity() << endl;
  113.         file << zoo[i].get_zoo() << endl;
  114.         for (int j = 0; j < Size; j++)
  115.         {
  116.             file << zoo[i].get_animal(j) << endl;
  117.         //  file << zoo[i].get_number_of_animal(j) << endl;
  118.         }
  119.  
  120.     }
  121.     file << "animal in danger" << endl;
  122.     for (int i = 0; i < size_of_zoo; i++)
  123.     {
  124.         for (int j = 0; j < Size; j++)
  125.         {
  126.             if (zoo[i].get_dangerous_level(j) > 50)
  127.             {
  128.                 file << zoo[i].get_animal(j);
  129.             }
  130.         }
  131.     }
  132. }
  133. void print3(Zoo *zoo, int size_of_zoo)
  134. {
  135.     //for (int i = 0; i < size_of_zoo; i++)
  136.     //{
  137.     //  zoo[i].sort();
  138.     //}
  139.     for (int i = 0; i < size_of_zoo; i++)
  140.     {
  141.         cout << zoo[i].get_sity() << endl;
  142.         cout << zoo[i].get_zoo() << endl;
  143.         for (int j = 0; j < Size; j++)
  144.         {
  145.             cout << zoo[i].get_animal(j) << endl;
  146.             //cout << zoo[i].get_number_of_animal(j) << endl;
  147.         }
  148.  
  149.     }
  150.     cout << "animal in danger" << endl;
  151.     for (int i = 0; i < size_of_zoo; i++)
  152.     {
  153.         for (int j = 0; j < Size; j++)
  154.         {
  155.             if (zoo[i].get_dangerous_level(j) > 50)
  156.             {
  157.                 cout << zoo[i].get_animal(j);
  158.             }
  159.         }
  160.     }
  161. }
  162.  
  163. int main()
  164. {
  165.     ifstream file("zoo.txt",ios_base::in);
  166.  
  167.     if (!file.is_open())
  168.     {
  169.         cout << "cant open file" << endl;
  170.     }
  171.     if (!file.eof())
  172.     {
  173.         int size;
  174.         file >> size;
  175.         Zoo * arr = new Zoo[size];
  176.         int i = 0;
  177.         int x;
  178.         while(i<size)
  179.         {
  180.             file >> x;
  181.             if(x==0)
  182.             {
  183.                 arr[i].input_z(file);
  184.                 i++;
  185.             }
  186.         }
  187.          
  188.         print3(arr, size);
  189.         print2(arr, size);
  190.        
  191.     }
  192.  
  193.     system("pause");
  194.     return 0;
  195. }
RAW Paste Data
Top