Phoenix_x

Untitled

Jan 8th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.87 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <string> // думички (асд, дфг, окибоки)
  3. #include <iostream> //cin cout
  4. #include <fstream> //работа с файлове
  5.  
  6. using namespace std; //винаги
  7.  
  8. struct Polet //описва какво има един полет
  9. {
  10.     int denOtMesec; //цели числа
  11.     int nomer;
  12.     string imenaNaPilot; // думички
  13.     int brojPatnici_parvaKlasa;
  14.     int brojPatnici_vtoraKlasa;
  15.     double biletParvaKlasa_cena; //дробни числа 4.5, 5.8
  16.     double biletVtoraKlasa_cena;
  17. };
  18.  
  19. //декларират функциите, да се знае че съществуват
  20. void enterDataIntoArray(Polet danniZaPoleti[30], int &brojPoleti);
  21. void editNumberOfPassengers(Polet danniZaPoleti[30], int brojPoleti);
  22. void printAllFlights(Polet danniZaPoleti[30], int brojPoleti);
  23. void printPilotFlights(Polet danniZaPoleti[30], int brojPoleti);
  24. void transferDataFromArrayToFile(Polet danniZaPoleti[30], int brojPoleti);
  25.  
  26. void main() //главната функция
  27. {
  28.     //масив за полети = масив от структури
  29.     Polet danniZaPoleti[30]; //запазва ме до 30 места за полети
  30.     int brojPoleti = 0;
  31.  
  32.     while (true) //безкраен цикъл за да изписва менюто
  33.     {
  34.         cout << "Izberete 1 za vavezdane na danni" << endl;
  35.         cout << "Izberete 2 za korekciq na broj patnici za polet po vaveden nomer" << endl;
  36.         cout << "Izberete 3 za spravka na poletite na pilot" << endl;
  37.         cout << "Izberete 4 za izvezdane na vsichki registrirani poleti" << endl;
  38.  
  39.         int izbor;
  40.         cin >> izbor;
  41.  
  42.         while (izbor < 1 || izbor > 4) //валидация, ако не е от 1 до 4
  43.         {
  44.             cout << "Nevaliden izbor. Vavedi otnovo: " << endl;
  45.             cout << "Izbor: ";
  46.             cin >> izbor;
  47.         }
  48.  
  49.         switch (izbor) //проверява избор (1, 2, 3, 4)
  50.         {
  51.         case 1:
  52.             enterDataIntoArray(danniZaPoleti, brojPoleti); //изпълнение на функция
  53.             transferDataFromArrayToFile(danniZaPoleti, brojPoleti);
  54.             break; //разграничител
  55.         case 2:
  56.             editNumberOfPassengers(danniZaPoleti, brojPoleti);
  57.             transferDataFromArrayToFile(danniZaPoleti, brojPoleti);
  58.             break;
  59.         case 3:
  60.             printPilotFlights(danniZaPoleti, brojPoleti);
  61.             break;
  62.         case 4:
  63.             printAllFlights(danniZaPoleti, brojPoleti);
  64.             break;
  65.         }
  66.     }
  67. }
  68.  
  69. //функция за въвеждане на данните в масив
  70. void enterDataIntoArray(Polet danniZaPoleti[30], int &brojPoleti)
  71. {
  72.     cout << "Broj poleti: ";
  73.     cin >> brojPoleti;
  74.  
  75.     for (int i = 0; i < brojPoleti; i++) //въвеждане на данни за всеки полет на потребителя
  76.     {
  77.         cout << "* * * * * *" << endl;
  78.  
  79.         cout << "Vavedi den ot mesec: ";
  80.         cin >> danniZaPoleti[i].denOtMesec;
  81.  
  82.         cout << "Vavedi nomer na poleta: ";
  83.         cin >> danniZaPoleti[i].nomer;
  84.  
  85.         cout << "Vavedi imena na pilota: ";
  86.         cin >> danniZaPoleti[i].imenaNaPilot;
  87.  
  88.         cout << "Vavedi broj patnici parva klasa: ";
  89.         cin >> danniZaPoleti[i].brojPatnici_parvaKlasa;
  90.  
  91.         cout << "Vavedi broj patnici vtora klasa: ";
  92.         cin >> danniZaPoleti[i].brojPatnici_vtoraKlasa;
  93.  
  94.         cout << "Vavedi cena na bilet parva klasa: ";
  95.         cin >> danniZaPoleti[i].biletParvaKlasa_cena;
  96.  
  97.         cout << "Vavedi cena na bilet vtora klasa: ";
  98.         cin >> danniZaPoleti[i].biletVtoraKlasa_cena;
  99.     }
  100. }
  101.  
  102. //данните от масива да се запишат във файл
  103. void transferDataFromArrayToFile(Polet danniZaPoleti[30], int brojPoleti)
  104. {
  105.     ofstream fajlZaPoleti;
  106.     fajlZaPoleti.open("poleti.txt"); //разрешава да пишем по файла
  107.  
  108.     for (int i = 0; i < brojPoleti; i++) //пише по файла за всички полети
  109.     {
  110.         fajlZaPoleti << danniZaPoleti[i].denOtMesec << " " << danniZaPoleti[i].nomer << " " << danniZaPoleti[i].imenaNaPilot
  111.             << " " << danniZaPoleti[i].brojPatnici_parvaKlasa << " " << danniZaPoleti[i].brojPatnici_vtoraKlasa
  112.             << " " << danniZaPoleti[i].biletParvaKlasa_cena << " " << danniZaPoleti[i].biletVtoraKlasa_cena << endl;
  113.     }
  114. }
  115.  
  116. //редактиране на броя на пътниците
  117. void editNumberOfPassengers(Polet danniZaPoleti[30], int brojPoleti)
  118. {
  119.     int nomer;
  120.     cout << "Vavedi nomer na poleta: ";
  121.     cin >> nomer;
  122.  
  123.     bool namerenPolet = false;
  124.  
  125.     for (int i = 0; i < brojPoleti; i++) //за всеки полет
  126.     {
  127.         if (danniZaPoleti[i].nomer == nomer) //провери дали номера на полета съвпада с въведения
  128.         {
  129.             namerenPolet = true; //казва, че има намерен полет
  130.  
  131.             cout << "Korekciq na broq patnici parva klasa: "; //корекция първа класа
  132.             cin >> danniZaPoleti[i].brojPatnici_parvaKlasa;
  133.  
  134.             cout << "Korekciq na broq patnici vtora klasa: "; //корекция втора класа
  135.             cin >> danniZaPoleti[i].brojPatnici_vtoraKlasa;
  136.  
  137.             break; //край на цикъла
  138.         }
  139.     }
  140.  
  141.     if (namerenPolet == false) //ако няма намерен полет с въведения номер
  142.     {
  143.         cout << "Ne e nameren polet s takav nomer." << endl;
  144.     }
  145. }
  146.  
  147. //извеждане на полетите на пилот
  148. void printPilotFlights(Polet danniZaPoleti[30], int brojPoleti)
  149. {
  150.     string imena;
  151.     cout << "Vavedete imena na pilota: ";
  152.     cin >> imena;
  153.  
  154.     for (int i = 0; i < brojPoleti; i++)
  155.     {
  156.         if (danniZaPoleti[i].imenaNaPilot == imena) //ако името на пилота на полета съвпада с въведеното име
  157.         {
  158.             //извеждане на данни за полета:
  159.             cout << "* * * * * *" << endl;
  160.             cout << "Den ot meseca: " << danniZaPoleti[i].denOtMesec << endl;
  161.             cout << "Nomer na poleta: " << danniZaPoleti[i].nomer << endl;
  162.             cout << "Broj patnici parva klasa: " << danniZaPoleti[i].brojPatnici_parvaKlasa << endl;
  163.             cout << "Broj patnici vtora klasa: " << danniZaPoleti[i].brojPatnici_vtoraKlasa << endl;
  164.             cout << "Cena na bilet parva klasa: " << danniZaPoleti[i].biletParvaKlasa_cena << endl;
  165.             cout << "Cena na bilet vtora klasa: " << danniZaPoleti[i].biletVtoraKlasa_cena << endl;
  166.         }
  167.     }
  168. }
  169.  
  170. //извежда данни за всички полети:
  171. void printAllFlights(Polet danniZaPoleti[30], int brojPoleti)
  172. {
  173.     for (int i = 0; i < brojPoleti; i++) //за всеки полет
  174.     {
  175.         //принтирай данни за полет:
  176.         cout << "* * * * * *" << endl;
  177.         cout << "Den ot meseca: " << danniZaPoleti[i].denOtMesec << endl;
  178.         cout << "Nomer na poleta: " << danniZaPoleti[i].nomer << endl;
  179.         cout << "Imena na pilota: " << danniZaPoleti[i].imenaNaPilot << endl;
  180.         cout << "Broj patnici parva klasa: " << danniZaPoleti[i].brojPatnici_parvaKlasa << endl;
  181.         cout << "Broj patnici vtora klasa: " << danniZaPoleti[i].brojPatnici_vtoraKlasa << endl;
  182.         cout << "Cena na bilet parva klasa: " << danniZaPoleti[i].biletParvaKlasa_cena << endl;
  183.         cout << "Cena na bilet vtora klasa: " << danniZaPoleti[i].biletVtoraKlasa_cena << endl;
  184.     }
  185. }
Advertisement
Add Comment
Please, Sign In to add comment