SHARE
TWEET

Untitled

a guest Mar 26th, 2019 57 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. const double Pi = 3.14159265358979323846;  //Создаем глобальную константу для чила pi
  7.  
  8. class Circle //Создаем класс круг
  9. {
  10. protected:
  11.     double Radius; //Описываем поля класса. Имеет только одно поле - радиус
  12. public:
  13.     Circle(double radius)  //Конструктор с параметром
  14.     {
  15.         Radius = radius;
  16.     }
  17.  
  18.     virtual double Area() //Описываем виртуальный метод, который считает площадь круга
  19.     {
  20.         return Pi * Radius * Radius;
  21.     }
  22.  
  23.     virtual void Inc() //Описываем виртуальный метод, который увеличивает радиус в 1.5 раза
  24.     {
  25.         Radius = Radius * 1.5;
  26.     }
  27.  
  28.     virtual void Show() //Описываем виртуальный метод, который выводит информацию о круге
  29.     {
  30.         cout << "Radius of cirlce is  " << Radius << endl;
  31.         cout << "Square of circle is " << Area() << endl <<endl;
  32.     }
  33. };
  34.  
  35.  
  36. class Ring : public Circle //Класс кольцо - наследник класса Круг. Круг - родитель  
  37. {
  38. protected: //Описываем собственные поля класса Кольцо
  39.     double RadiusIn;
  40. public:
  41.     Ring(double radius, double radiusIN) : Circle(radius) //Коструктор класса Кольцао. Наследуем конструктор класса Круг
  42.     {
  43.         if (radiusIN<radius)  //Проверка: если радиус внутренего круга больше радиуса внешнего, меняем их местами
  44.             RadiusIn = radiusIN;
  45.         else
  46.         {
  47.             Radius = radiusIN;
  48.             RadiusIn = radius;
  49.         }
  50.     }
  51.  
  52.     double Area()  //Переопределяем виртуальный метод Площадь, описаннй в классе Круг
  53.     {
  54.         return Pi * Radius * Radius - Pi * RadiusIn * RadiusIn;
  55.     }
  56.  
  57.     void Inc() //Переопределяем виртуальный метод INC, описаннй в классе Круг
  58.     {
  59.         Radius *= 1.5;
  60.         RadiusIn *= 1.5;
  61.     }
  62.  
  63.      void Show() //Переопределяем виртуальный метод Show, описаннй в классе Круг
  64.     {
  65.         cout << "Radius of the inner circle is " << RadiusIn << endl;  //Выводим на экран
  66.         cout << "Radius of the external circle is " << Radius << endl;
  67.         cout << "Area of the ring is " << Area() << endl <<endl;
  68.     }
  69. };
  70.  
  71. void main()
  72. {
  73.  
  74.     cout << "Enter radius of the circle A" << endl;
  75.     int rad;
  76.     cin >> rad;
  77.  
  78.     Circle *A = new Circle(rad);  //Создаем объект тип Круг. Передаем в констурктор Радиус круга
  79.  
  80.     int rad2;
  81.             //Вводим радиусы кольца
  82.     cout << "Enter radius of the inner circle B" << endl;  
  83.     cin >> rad2;
  84.     cout << "Enter radius of the external circle B" << endl;
  85.     cin >> rad;
  86.  
  87.     Ring *B = new Ring(rad2, rad);  //Создаем объект типа Кольцо. Передаем в конструктор радиусы
  88.  
  89.     A->Show();  //Выводим строку состояния объектов А и В
  90.     B->Show();
  91.    
  92.  
  93.     cout << "Increase rasiuses in 1.5 times " << endl;
  94.     A->Inc();   //Увеличиваем радиусы в 1.5 для объектов А и В
  95.     B->Inc();
  96.     //Выводим строку состояния объектов А и В
  97.     A->Show();
  98.     B->Show();
  99.    
  100.  
  101.     system("pause");
  102. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top