Advertisement
Maestro1

ЛР2 ООП

May 19th, 2024
565
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class Settlement {
  6. private:
  7.     char nazvanie[100];
  8.     int naselenie;
  9.     double shirota;
  10.     double dolgota;
  11.     char transport[100];
  12.  
  13. public:
  14. /*конструктор по умолчанию*/
  15.     Settlement()
  16.     {
  17.         strcpy(nazvanie, "Неизвестно");
  18.         naselenie = 0;
  19.         shirota = 0.0;
  20.         dolgota = 0.0;
  21.         strcpy(transport, "Нет");
  22.     }
  23. /*Кострукторы для остальных случаев*/
  24.     Settlement(const char* nazv, int nasel)
  25.     {
  26.         strcpy(nazvanie, nazv);
  27.         naselenie = nasel;
  28.         shirota = 0.0;
  29.         dolgota = 0.0;
  30.         strcpy(transport, "Нет");
  31.     }
  32.  
  33.     Settlement(const char* nazv, int nasel, const char* trans)
  34.     {
  35.         strcpy(nazvanie, nazv);
  36.         naselenie = nasel;
  37.         shirota = 0.0;
  38.         dolgota = 0.0;
  39.         strcpy(transport, trans);
  40.     }
  41.  
  42.     Settlement(const char* nazv, int nasel, double s, double d)
  43.     {
  44.         strcpy(nazvanie, nazv);
  45.         naselenie = nasel;
  46.         shirota = s;
  47.         dolgota = d;
  48.         strcpy(transport, "Нет");
  49.     }
  50.  
  51.     Settlement(const char* nazv, int nasel, double s, double d, const char* trans)
  52.     {
  53.         strcpy(nazvanie, nazv);
  54.         naselenie = nasel;
  55.         shirota = s;
  56.         dolgota = d;
  57.         strcpy(transport, trans);
  58.     }
  59.    
  60.     /* Деструктор*/
  61.     ~Settlement() {
  62.         strcpy(nazvanie, "");
  63.         naselenie = -1;
  64.         shirota = -1.0;
  65.         dolgota = -1.0;
  66.         strcpy(transport, "");
  67.     }
  68.  
  69.     void Input() {
  70.         cout << "Введите название населённого пункта: ";
  71.         cin.ignore();
  72.         cin.getline(nazvanie, 100);
  73.         cout << "Введение населения: ";
  74.         cin >> naselenie;
  75.         cout << "Введите широту: ";
  76.         cin >> shirota;
  77.         cout << "Введите долготу: ";
  78.         cin >> dolgota;
  79.         cout << "Введите какой есть общественный транспорт: ";
  80.         cin.ignore();
  81.         cin.getline(transport, 100);
  82.     }
  83.  
  84.     void Output() const {
  85.         cout << "Название паселённого пункта: " << nazvanie << endl;
  86.         cout << "Население: " << naselenie << endl;
  87.         cout << "Широта: " << shirota << endl;
  88.         cout << "Долгота: " << dolgota << endl;
  89.         cout << "Общественный транспорт: " << transport << endl;
  90.         cout << "--------------------------------------------------------" <<endl;
  91.     }
  92.  
  93. private:
  94.     void printCoordinates() const {
  95.         cout << "Координаты: (" << shirota << ", " << dolgota << ")" << endl;
  96.     }
  97.  
  98. public:
  99.     void displayInfo() const {
  100.         Output();
  101.         printCoordinates();
  102.     }
  103. };
  104.  
  105. int main() {
  106.  
  107.     Settlement defaultSettlement;
  108.     defaultSettlement.Output();
  109.     cout << endl;
  110.  
  111.  
  112.     Settlement settlement1("Калиново", 1500);
  113.     Settlement settlement2("Донецк", 1000000, 48.023, -37.8022);
  114.     Settlement settlement3("Макеевка", 500000, 48.0478, 37.9258, "Автобусы, Тролейбусы, Такси");
  115.  
  116.     settlement1.Output();
  117.     cout << endl;
  118.     settlement2.Output();
  119.     cout << endl;
  120.     settlement3.Output();
  121.     cout << endl;
  122.  
  123.     Settlement settlements[3];
  124.  
  125.  
  126.     for (int i = 0; i < 3; ++i) {
  127.         settlements[i].Input();
  128.     }
  129.  
  130.     for (int i = 0; i < 3; ++i) {
  131.         settlements[i].Output();
  132.         cout << endl;
  133.     }
  134.  
  135.     return 0;
  136. }
  137.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement