Advertisement
pjobro

planes ma

Apr 11th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 22.80 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <fstream>
  4. #include <istream>
  5. #include <ostream>
  6. #include <string>
  7. #include <iomanip>
  8. #include <cstdlib>
  9. #include <vector>
  10.  
  11. using namespace std;
  12.  
  13. class Vozila {
  14.     //varijable napravljene radi vjezbe klasa, nisu koristene dalje
  15. protected:
  16.     int max_brzina, brzina;
  17.     bool power, P;
  18.  
  19. public:
  20.     void set_power(bool P) {
  21.         power = P;
  22.     }
  23.     bool get_power() {
  24.         return power;
  25.     }
  26.     void set_ugasi() {
  27.         power = false;
  28.         brzina = 0;
  29.     }
  30.     void set_upali(int x) {
  31.         power = true;
  32.         brzina = x;
  33.     }
  34. };
  35. class Zrakoplovi; //deklaracija klase
  36. class Check {
  37. private:
  38.     bool D_check;
  39.     bool C_check;
  40.     bool B_check;
  41.     bool A_check;
  42. public:
  43.     void setD_check(bool x) {
  44.         D_check = x;
  45.     }
  46.     bool getD_check() {
  47.         return D_check;
  48.     }
  49.     void setC_check(bool x) {
  50.         C_check = x;
  51.     }
  52.     bool getC_check() {
  53.         return C_check;
  54.     }
  55.     void setB_check(bool x) {
  56.         B_check = x;
  57.     }
  58.     bool getB_check() {
  59.         return B_check;
  60.     }
  61.     void setA_check(bool x) {
  62.         A_check = x;
  63.     }
  64.     bool getA_check() {
  65.         return A_check;
  66.     }
  67. };
  68.  
  69. class Zrakoplovi : public Vozila {
  70. public:
  71.     Check maintenence;
  72. protected:
  73.     //varijable napravljene radi vjezbe - nisu dio klase vozila ali su bitne i za avion i helic:
  74.     int uzgon;
  75.     int tlak;
  76.     int gravitacija;
  77.     //varijable koje se koriste u programu:
  78.     string naziv;
  79.     string call_sign;
  80.     int sati_naletaD;    //Sati naleta od zadnjeg D check-a
  81.     int sati_naletaC;   //Sati naleta od zadnjeg D check-a
  82.     int sati_naletaB;   //Sati naleta od zadnjeg D check-a
  83.     int sati_naletaA;   //Sati naleta od zadnjeg D check-a
  84.     int vrijemeD;   //Mjeseci od zadnjeg D check-a
  85.     int vrijemeB;   //Mjeseci od zadnjeg B check-a
  86. public:
  87.     static int broj_zrakoplova;
  88.     static int broj_helikoptera;
  89.     static int broj_aviona;
  90.     /*static int: za bilo koji objekt ce dati isti iznos - iskoristeno za pracenje broja aviona i helikoptera
  91.     koji ce biti potrebno za funkcije OutputNakonCheckaAvion i OutputNakonCheckaHelic
  92.     */
  93. public:
  94.     void set_broj_helikoptera() {
  95.         broj_helikoptera++;
  96.     }
  97.     int get_broj_helikoptera() {
  98.         return broj_helikoptera;
  99.     }
  100.     void set_broj_aviona() {
  101.         broj_aviona++;
  102.     }
  103.     int get_broj_aviona() {
  104.         return broj_aviona;
  105.     }
  106.  
  107.     void set_naziv(string x) {
  108.         naziv = x;
  109.     }
  110.     string get_naziv() {
  111.         return naziv;
  112.     }
  113.     void set_call_sign(string x) {
  114.         call_sign = x;
  115.     }
  116.     string get_call_sign() {
  117.         return call_sign;
  118.     }
  119.     void set_sati_naletaD(int x) {
  120.         sati_naletaD = x;
  121.     }
  122.     int getsati_naletaD() {
  123.         return sati_naletaD;
  124.     }
  125.     void set_sati_naletaC(int x) {
  126.         sati_naletaC = x;
  127.     }
  128.     int getsati_naletaC() {
  129.         return sati_naletaC;
  130.     }
  131.     void set_sati_naletaB(int x) {
  132.         sati_naletaB = x;
  133.     }
  134.     int getsati_naletaB() {
  135.         return sati_naletaB;
  136.     }
  137.     void set_sati_naletaA(int x) {
  138.         sati_naletaA = x;
  139.     }
  140.     int getsati_naletaA() {
  141.         return sati_naletaA;
  142.     }
  143.     void set_vrijemeD(int x) {
  144.         vrijemeD = x;
  145.     }
  146.     int get_vrijemeD() {
  147.         return vrijemeD;
  148.     }
  149.     void set_vrijemeB(int x) {
  150.         vrijemeB = x;
  151.     }
  152.     int get_vrijemeB() {
  153.         return vrijemeB;
  154.     }
  155.     void set_maintenance_D_check(bool x) {
  156.         maintenence.setD_check(x);
  157.     }
  158.     bool get_maintenance_D_check() {
  159.         return maintenence.getD_check();
  160.     }
  161.     void set_maintenance_C_check(bool x) {
  162.         maintenence.setC_check(x);
  163.     }
  164.     bool get_maintenance_C_check() {
  165.         return maintenence.getC_check();
  166.     }
  167.     void set_maintenance_B_check(bool x) {
  168.         maintenence.setB_check(x);
  169.     }
  170.     bool get_maintenance_B_check() {
  171.         return maintenence.getB_check();
  172.     }
  173.     void set_maintenance_A_check(bool x) {
  174.         maintenence.setA_check(x);
  175.     }
  176.     bool get_maintenance_A_check() {
  177.         return maintenence.getA_check();
  178.     }
  179. };
  180. int Zrakoplovi::broj_zrakoplova = 0;
  181. int Zrakoplovi::broj_helikoptera = 0;
  182. int Zrakoplovi::broj_aviona = 0;
  183. class Avion : public Zrakoplovi {
  184. private:
  185.     //varijable radi vjezbe - primjenive na avion ali ne na helic
  186.     int min_brzina;
  187.     int raspon_krila;
  188.     int broj_motora;
  189. public:
  190.     //izrada konstruktora i destruktora radi vjezbe - nisu koristeni
  191.     Avion::Avion() {
  192.     }
  193.     Avion::~Avion() {
  194.     }
  195. };
  196. class Helikopter : public Zrakoplovi {
  197. private:
  198.     //varijabla radi vjezbe - primjenive na helic ali ne na avion
  199.     int broj_propelera;
  200. };
  201.  
  202. class Rezervni {
  203. private:
  204.     string naziv_rez;
  205.     int potrebno;   //propisani minimum rezervnog dijela
  206.     int rez_stanje; //koliko trenutno ima rezervnog dijela u skladistu
  207.  
  208. public:
  209.     void set_naziv_rez(string x) {
  210.         naziv_rez = x;
  211.     }
  212.     string get_naziv_rez() {
  213.         return naziv_rez;
  214.     }
  215.  
  216.     void set_rez_nastanju(int x) {
  217.         rez_stanje = x;
  218. }
  219.     int get_rez_nastanju() {
  220.         return rez_stanje;
  221.     }
  222.  
  223.     void set_potrebno(int x) {
  224.         potrebno = x;
  225.     }
  226.     int get_potrebno() {
  227.         return potrebno;
  228.     }
  229. };
  230. //Funkcije za provjeru treba li neki zrakoplov na odrzavanje
  231. void D(vector<Zrakoplovi>zrakoplov) {
  232.     int indetifikacija;
  233.     for (int i = 0; i < zrakoplov.size(); i++) {
  234.         if (zrakoplov[i].getsati_naletaD() > 1500 || zrakoplov[i].get_vrijemeD() > 48) {
  235.             indetifikacija = i;
  236.             zrakoplov[indetifikacija].maintenence.setD_check(true);
  237.             if (zrakoplov[indetifikacija].maintenence.getD_check() == true) {
  238.                 cout << "Slanje automatskog e-mail-a i upororenje na ekranu: " << endl;
  239.                 cout << "Na zrakoplovu" << zrakoplov[indetifikacija].get_call_sign() << " potrebno je provesti glavnu provjeru (D check)" << endl << endl;
  240.             }
  241.         }
  242.     }
  243. }
  244. void C(vector<Zrakoplovi>zrakoplov) {
  245.     int indetifikac;
  246.     for (int i = 0; i < zrakoplov.size(); i++) {
  247.         if (zrakoplov[i].getsati_naletaC() > 3500) {
  248.             indetifikac = i;
  249.             zrakoplov[indetifikac].maintenence.setC_check(true);
  250.             if (zrakoplov[indetifikac].maintenence.getC_check() == true) {
  251.                 cout << "Slanje automatskog e-mail-a i upororenje na ekranu: " << endl;
  252.                 cout << "Na zrakoplovu" << zrakoplov[indetifikac].get_call_sign() << " potrebno je provesti medju provjeru (C check)." << endl << endl;
  253.             }
  254.         }
  255.     }
  256. }
  257. void B(vector<Zrakoplovi>zrakoplov) {
  258.     int indetifikacija;
  259.     for (int i = 0; i < zrakoplov.size(); i++) {
  260.         if (zrakoplov[i].getsati_naletaB() > 800 || zrakoplov[i].get_vrijemeB() > 6) {
  261.             indetifikacija = i;
  262.             zrakoplov[indetifikacija].maintenence.setB_check(true);
  263.             if (zrakoplov[indetifikacija].maintenence.getB_check() == true) {
  264.                 cout << "Slanje automatskog e-mail-a i upororenje na ekranu: " << endl;
  265.                 cout << "Na zrakoplovu" << zrakoplov[indetifikacija].get_call_sign() << " potrebno je provesti servisni pregled (B check)." << endl << endl;
  266.             }
  267.         }
  268.     }
  269. }
  270.  
  271. void A(vector<Zrakoplovi>zrakoplov) {
  272.     int indetifikacija;
  273.  
  274.     for (int i = 0; i < zrakoplov.size(); i++) {
  275.         if (zrakoplov[i].getsati_naletaA() > 125) {
  276.             indetifikacija = i;
  277.             zrakoplov[indetifikacija].maintenence.setA_check(true);
  278.             if (zrakoplov[indetifikacija].maintenence.getA_check() == true) {
  279.                 cout << "Slanje automatskog e-mail-a i upororenje na ekranu: " << endl;
  280.                 cout << "Na zrakoplovu" << zrakoplov[indetifikacija].get_call_sign() << " potrebno je provesti pregled na platformi (A check)." << endl << endl;
  281.             }
  282.         }
  283.     }
  284. }
  285. void provjeraa(vector<Zrakoplovi>zrakoplov) {
  286.     D(zrakoplov);
  287.     C(zrakoplov);
  288.     B(zrakoplov);
  289.     A(zrakoplov);
  290. }
  291.  
  292. //Funkcije za unos zavrsene provjere:
  293. void OutputNakonChecka(vector<Zrakoplovi>zrakoplov);       //deklaracija
  294. void OutputNakonCheckaHelic(vector<Zrakoplovi>zrakoplov);  //deklaracija
  295. void OutputNakonCheckaAvion(vector<Zrakoplovi>zrakoplov);  //deklaracija
  296. void unosCheck(vector<Zrakoplovi>zrakoplov) {
  297.     string call_signS;
  298.     cout << "Upisite call sign zrakoplova: ";
  299.     cin >> call_signS;
  300.     int b = 1;
  301.     bool uFloti = false;
  302.     int indetifikacija;
  303.     for (int i = 0; i < zrakoplov.size(); i++) {
  304.         if (zrakoplov[i].get_call_sign() == call_signS) {
  305.             indetifikacija = i;
  306.             uFloti = true;
  307.             break;
  308.         }
  309.     }
  310.     if (uFloti) {
  311.         char izbor;
  312.         cout << "Izaberite Check (D/C/B/A) koji zelite unijeti: ";
  313.         cin >> izbor;
  314.         switch (izbor) {
  315.         case 'D':
  316.             zrakoplov[indetifikacija].set_sati_naletaD(0); //Glavnu provjera (D check) je zavrsena, sati naleta i vrijeme proteklo od zadnje glavne provjere su 0
  317.             zrakoplov[indetifikacija].set_vrijemeD(0);
  318.             break;
  319.         case 'C':
  320.             zrakoplov[indetifikacija].set_sati_naletaC(0);
  321.         case 'B':
  322.             zrakoplov[indetifikacija].set_sati_naletaB(0);
  323.             zrakoplov[indetifikacija].set_vrijemeB(0);
  324.             break;
  325.         case 'A':
  326.             zrakoplov[indetifikacija].set_sati_naletaA(0);
  327.             break;
  328.         default:
  329.             cout << "Unesite valjani izbor";
  330.         }
  331.     }
  332.     else {
  333.         cout << "Call sign ne postoji";
  334.     }
  335.     OutputNakonChecka(zrakoplov);
  336. }
  337. void OutputNakonChecka(vector<Zrakoplovi>zrakoplov) {
  338.     OutputNakonCheckaAvion(zrakoplov);
  339.     OutputNakonCheckaHelic(zrakoplov);
  340. }
  341. void OutputNakonCheckaAvion(vector<Zrakoplovi>zrakoplov) {
  342.     ofstream outavion;
  343.     Avion koko;
  344.     //  koko.get_broj_aviona() -kolicina aviona
  345.     int rew = koko.get_broj_aviona();
  346.     outavion.open("avioni.txt");
  347.     for (int i = 0; i < koko.get_broj_aviona(); i++) {
  348.         outavion << zrakoplov[i].get_naziv() << "|" << zrakoplov[i].get_call_sign() << "|" << zrakoplov[i].getsati_naletaD() << " ";
  349.         outavion << zrakoplov[i].getsati_naletaC() << " " << zrakoplov[i].getsati_naletaB() << " " << zrakoplov[i].getsati_naletaA() << " ";
  350.         outavion << zrakoplov[i].get_vrijemeD() << " " << zrakoplov[i].get_vrijemeB();
  351.         rew--;
  352.         if (rew > 0) {
  353.             outavion << endl;
  354.         }
  355.         else {
  356.             break;
  357.         }
  358.     }
  359.     outavion.close();
  360. }
  361. void OutputNakonCheckaHelic(vector<Zrakoplovi>zrakoplov) {
  362.     Helikopter bleko;
  363.     Avion koko;
  364.     // bleko.get_broj_helikoptera() -kolicina helikoptera
  365.     //  koko.get_broj_aviona() -kolicina aviona
  366.     ofstream outhelic;
  367.     outhelic.open("Helikopteri.txt");
  368.     int rew = bleko.get_broj_helikoptera();
  369.     for (int i = koko.get_broj_aviona(); i < zrakoplov.size(); i++) {
  370.         outhelic << zrakoplov[i].get_naziv() << "|" << zrakoplov[i].get_call_sign() << "|" << zrakoplov[i].getsati_naletaD() << " ";
  371.         outhelic << zrakoplov[i].getsati_naletaC() << " " << zrakoplov[i].getsati_naletaB() << " " << zrakoplov[i].getsati_naletaA() << " ";
  372.         outhelic << zrakoplov[i].get_vrijemeD() << " " << zrakoplov[i].get_vrijemeB();
  373.         rew--;
  374.         if (rew > 0) {
  375.             outhelic << endl;
  376.         }
  377.         else {
  378.             break;
  379.         }
  380.     }
  381.     outhelic.close();
  382. }
  383.  
  384. void OutputAvion(vector<Avion>novi); //deklaracija
  385. void OutputHelic(vector<Helikopter>novih); //deklaracija
  386.  
  387.  //Funkcije za unos i ispis zrakoplova:
  388. void UnesiNoviAvion() {
  389.     vector<Avion>novi;
  390.     Avion objektaa;
  391.     cout << "Unesi naziv novog aviona: ";
  392.     string imee;
  393.     cin >> imee;
  394.     objektaa.set_naziv(imee);
  395.     cout << "Unesite call sign aviona: ";
  396.     string call_signn;
  397.     cin >> call_signn;
  398.     objektaa.set_call_sign(call_signn);
  399.     cout << "Koliko sati naleta ima avion od zadnjeg D check-a? ";
  400.     int naletD;
  401.     cin >> naletD;
  402.     objektaa.set_sati_naletaD(naletD);
  403.     cout << "Koliko sati naleta ima avion od zadnjeg C check-a? ";
  404.     int naletC;
  405.     cin >> naletC;
  406.     objektaa.set_sati_naletaC(naletC);
  407.     cout << "Koliko sati naleta ima avion od zadnjeg B check-a? ";
  408.     int satiB;
  409.     cin >> satiB;
  410.     objektaa.set_sati_naletaB(satiB);
  411.     cout << "Koliko sati naleta ima avion od zadnjeg A check-a? ";
  412.     int naletAa;
  413.     cin >> naletAa;
  414.     objektaa.set_sati_naletaA(naletAa);
  415.  
  416.     cout << "Koliko je vremena proslo od zadnjeg D check-a? ";
  417.     int vrijeme_naletDd;
  418.     cin >> vrijeme_naletDd;
  419.     objektaa.set_vrijemeD(vrijeme_naletDd);
  420.  
  421.     cout << "Koliko je vremena proslo od zadnjeg B check-a? ";
  422.     int vrijeme_naletB;
  423.     cin >> vrijeme_naletB;
  424.     objektaa.set_vrijemeB(vrijeme_naletB);
  425.     objektaa.set_broj_aviona();
  426.     novi.push_back(objektaa);
  427.  
  428.     OutputAvion(novi);
  429. }
  430. void OutputAvion(vector<Avion>novi) {
  431.     ofstream fout;
  432.     fout.open("avioni.txt", ios::app);
  433.     for (int i = 0; i < novi.size(); i++) {
  434.         fout << "\n";
  435.         fout << novi[i].get_naziv() << "|" << novi[i].get_call_sign() << "|" << novi[i].getsati_naletaD() << " ";
  436.         fout << novi[i].getsati_naletaC() << " " << novi[i].getsati_naletaB() << " " << novi[i].getsati_naletaA() << " ";
  437.         fout << novi[i].get_vrijemeD() << " " << novi[i].get_vrijemeB();
  438.     }
  439.     fout.close();
  440. }
  441. void UnesiNoviHelikopter() {
  442.     vector<Helikopter>novih;
  443.     Helikopter objekthh;
  444.     cout << "Unesi naziv novog helikoptera: ";
  445.     string ime;
  446.     cin >> ime;
  447.     objekthh.set_naziv(ime);
  448.     cout << "Unesite call sign helikoptera: ";
  449.     string call_sign;
  450.     cin >> call_sign;
  451.     objekthh.set_call_sign(call_sign);
  452.     cout << "Koliko sati naleta helikopter ima od zadnjeg D check-a? ";
  453.     int naletD;
  454.     cin >> naletD;
  455.     objekthh.set_sati_naletaD(naletD);
  456.     cout << "Koliko sati naleta helikopter ima od zadnjeg C check-a? ";
  457.     int naletC;
  458.     cin >> naletC;
  459.     objekthh.set_sati_naletaC(naletC);
  460.     cout << "Koliko sati naleta helikopter ima od zadnjeg B check-a? ";
  461.     int satiB;
  462.     cin >> satiB;
  463.     objekthh.set_sati_naletaB(satiB);
  464.     cout << "Koliko sati naleta helikopter ima od zadnjeg A check-a? ";
  465.     int naletA;
  466.     cin >> naletA;
  467.     objekthh.set_sati_naletaA(naletA);
  468.  
  469.     cout << "Koliko je vremena proslo od zadnjeg D check-a? ";
  470.     int vrijeme_naletD;
  471.     cin >> vrijeme_naletD;
  472.     objekthh.set_vrijemeD(vrijeme_naletD);
  473.  
  474.     cout << "Koliko je vremena proslo od zadnjeg B check-a? ";
  475.     int vrijeme_naletB;
  476.     cin >> vrijeme_naletB;
  477.     objekthh.set_vrijemeB(vrijeme_naletB);
  478.     objekthh.set_broj_helikoptera();
  479.     novih.push_back(objekthh);
  480.  
  481.     for (int i = 0; i < novih.size(); i++) {
  482.         cout << novih[i].get_naziv() << "\t" + novih[i].get_call_sign() << "\t" << novih[i].getsati_naletaD() << "\t";
  483.         cout << novih[i].getsati_naletaC() << "\t" << novih[i].getsati_naletaB() << "\t" << novih[i].getsati_naletaA() << "\t";
  484.         cout << novih[i].get_vrijemeD() << "\t" << novih[i].get_vrijemeB() << endl;
  485.     }
  486.     OutputHelic(novih);
  487. }
  488. void OutputHelic(vector<Helikopter>novih) {
  489.     ofstream fout;
  490.     fout.open("Helikopteri.txt", ios::app);
  491.     for (int i = 0; i < novih.size(); i++) {
  492.         fout << "\n";
  493.         fout << novih[i].get_naziv() << "|" << novih[i].get_call_sign() << "|" << novih[i].getsati_naletaD() << " ";
  494.         fout << novih[i].getsati_naletaC() << " " << novih[i].getsati_naletaB() << " " << novih[i].getsati_naletaA() << " ";
  495.         fout << novih[i].get_vrijemeD() << " " << novih[i].get_vrijemeB();
  496.     }
  497.     fout.close();
  498. }
  499. void UnesiNoviZrakoplov() {
  500.     vector<Avion>novi;
  501.     vector<Helikopter>novih;
  502.     cout << "Zelite li unjeti novi avion ili novi helikopter?" << endl;
  503.     cout << "1. Avion 2. Helikopter" << endl;
  504.     int izbor;
  505.     cin >> izbor;
  506.     switch (izbor) {
  507.     case 1:
  508.         UnesiNoviAvion();
  509.         OutputAvion(novi);
  510.         break;
  511.     case 2:
  512.         UnesiNoviHelikopter();
  513.         OutputHelic(novih);
  514.         break;
  515.     default:
  516.         cout << "Unesite valjani izbor." << endl;
  517.     }
  518. }
  519. void InputAvion(vector<Zrakoplovi>&zrakoplov) {
  520.     ifstream input;
  521.     input.open("avioni.txt");
  522.     Avion objekt;
  523.     string line;
  524.     int satiD, satiC, satiB, satiA, vriD, vriB;
  525.     while (input) {
  526.  
  527.         getline(input, line, '|');//naziv
  528.         objekt.set_naziv(line);
  529.         getline(input, line, '|');
  530.         objekt.set_call_sign(line);
  531.  
  532.         input >> satiD;  //sati_naleta
  533.         objekt.set_sati_naletaD(satiD);
  534.         input >> satiC;
  535.         objekt.set_sati_naletaC(satiC);
  536.         input >> satiB;
  537.         objekt.set_sati_naletaB(satiB);
  538.         input >> satiA;
  539.         objekt.set_sati_naletaA(satiA);
  540.  
  541.         input >> vriD; //Vrijeme
  542.         objekt.set_vrijemeD(vriD);
  543.         input >> vriB;
  544.         objekt.set_vrijemeB(vriB);
  545.         input.ignore();
  546.         objekt.set_broj_aviona();
  547.         zrakoplov.push_back(objekt);
  548.  
  549.     }
  550.     input.close();
  551. }
  552. void InputHelic(vector<Zrakoplovi>&zrakoplov) {
  553.     ifstream inputh;
  554.     inputh.open("Helikopteri.txt");
  555.     string line;
  556.     int satiD, satiC, satiB, satiA, vriD, vriB;
  557.     Helikopter objekth;
  558.     while (inputh) {
  559.         getline(inputh, line, '|');//naziv
  560.         objekth.set_naziv(line);
  561.         getline(inputh, line, '|');  //call_sign
  562.         objekth.set_call_sign(line);
  563.  
  564.         inputh >> satiD;  //sati_naleta
  565.         objekth.set_sati_naletaD(satiD);
  566.         inputh >> satiC;
  567.         objekth.set_sati_naletaC(satiC);
  568.         inputh >> satiB;
  569.         objekth.set_sati_naletaB(satiB);
  570.         inputh >> satiA;
  571.         objekth.set_sati_naletaA(satiA);
  572.  
  573.         inputh >> vriD; //Vrijeme
  574.         objekth.set_vrijemeD(vriD);
  575.         inputh >> vriB;
  576.         objekth.set_vrijemeB(vriB);
  577.  
  578.         inputh.ignore();
  579.         objekth.set_broj_helikoptera();
  580.         zrakoplov.push_back(objekth);
  581.     }
  582.     inputh.close();
  583. }
  584. void IspisZrakoplova(vector<Zrakoplovi>zrakoplov) {
  585.     for (int i = 0; i < zrakoplov.size(); i++) {
  586.         cout << zrakoplov[i].get_naziv() << "\t" + zrakoplov[i].get_call_sign() << "\t" << zrakoplov[i].getsati_naletaD() << "\t";
  587.         cout << zrakoplov[i].getsati_naletaC() << "\t" << zrakoplov[i].getsati_naletaB() << "\t" << zrakoplov[i].getsati_naletaA() + "\t";
  588.         cout << zrakoplov[i].get_vrijemeD() << "\t" << zrakoplov[i].get_vrijemeB() << endl;
  589.     }
  590. }
  591.  
  592. //Funkcije sustava rezervnih dijelova:
  593. void InputRezervni(vector<Rezervni>&dio) {
  594.     ifstream inrez;
  595.     inrez.open("rezervni.txt");
  596.     string line;
  597.     int x;
  598.     Rezervni objektr;
  599.  
  600.     while (inrez) {
  601.         getline(inrez, line, '|');//naziv
  602.         objektr.set_naziv_rez(line);
  603.  
  604.         inrez >> x;
  605.         objektr.set_rez_nastanju(x);
  606.         inrez >> x;
  607.         objektr.set_potrebno(x);
  608.  
  609.         inrez.ignore();
  610.         dio.push_back(objektr);
  611.     }
  612.     inrez.close();
  613.  
  614. }
  615. void IspisRezervni(vector<Rezervni>&dio) {
  616.     for (int i = 0; i < dio.size(); i++) {
  617.         cout << dio[i].get_naziv_rez() << "\t" << dio[i].get_rez_nastanju() << "\t" << dio[i].get_potrebno() << endl;
  618.     }
  619. }
  620. void NoviRezervni(vector<Rezervni>&dio) {
  621.     //taj dio nije do sada postojao u skladistu
  622.     Rezervni object;
  623.     cout << "Unesi naziv novog rezevnog dijela: " << endl;
  624.     string ime;
  625.     cin >> ime;
  626.     object.set_naziv_rez(ime);
  627.     cout << "Unesite koliko ima novih dijelova: " << endl;
  628.     int broj;
  629.     cin >> broj;
  630.     object.set_rez_nastanju(broj);
  631.     cout << "Upisite minimalu propisanu kolicinu rezervnog dijela: " << endl;
  632.     int min;
  633.     cin >> min;
  634.     object.set_potrebno(min);
  635.     dio.push_back(object);
  636. }
  637. void Promjena_stanja_Rezervni(vector<Rezervni>&dio) {
  638.     cout << "Kojiem rezervnom dijelu zelite promjeniti kolicinu na stanju?" << endl;
  639.     string part;
  640.     cin >> part;
  641.     int indetifikacija, novostanje;
  642.     for (int i = 0; i < dio.size(); i++) {
  643.         if (dio[i].get_naziv_rez() == part) {
  644.             indetifikacija = i;
  645.  
  646.             cout << "Koliko dijelova ima na stanju?";
  647.             cin >> novostanje;
  648.             dio[indetifikacija].set_rez_nastanju(novostanje);
  649.         }
  650.     }
  651. }
  652.  
  653. void OutputunosRezervni(vector<Rezervni>dio) {
  654.     ofstream outrez;
  655.     outrez.open("rezervni.txt");
  656.     int rew = dio.size();
  657.     for (int i = 0; i < dio.size(); i++) {
  658.         outrez << dio[i].get_naziv_rez() << "|" << dio[i].get_rez_nastanju() << " " << dio[i].get_potrebno();
  659.         rew--;
  660.         if (rew > 0) {
  661.             outrez << endl;
  662.         }
  663.         else {
  664.             break;
  665.         }
  666.     }
  667.     outrez.close();
  668. }
  669. void ProvjeraRezervnih(vector<Rezervni>&dio) {
  670.     int k;
  671.     for (int i = 0; i < dio.size(); i++) {
  672.         if (dio[i].get_rez_nastanju() < dio[i].get_potrebno()) {
  673.             k = dio[i].get_potrebno() - dio[i].get_rez_nastanju();
  674.             cout << "U skladistu ima premalo rezervnog dijela: " << dio[i].get_naziv_rez() << ". Potrebno je nabaviti jos minimalno " << k << endl;
  675.         }
  676.     }
  677. }
  678. void SustavRezervni(vector<Rezervni>&dio) {
  679.     cout << "Dobrodosli u sustav rezervnih dijelova." << endl;
  680.     cout << "Izbornik : \n1. Ispis rezervnih dijelova \n2. Unos novih rezervnih dijelova \n3. Promjena stanja rezervnih dijelova \n4. Provjera rezervnih dijelova";
  681.     int izbor;
  682.     cin >> izbor;
  683.     switch (izbor) {
  684.     case 1:
  685.         IspisRezervni(dio);
  686.         break;
  687.     case 2:
  688.         NoviRezervni(dio);
  689.         OutputunosRezervni(dio);
  690.         break;
  691.     case 3:
  692.         Promjena_stanja_Rezervni(dio);
  693.         OutputunosRezervni(dio);
  694.         break;
  695.     case 4:
  696.         ProvjeraRezervnih(dio);
  697.         break;
  698.     }
  699. }
  700. int main()
  701. {
  702.     vector<Zrakoplovi>zrakoplov;
  703.     vector<Rezervni>dio;
  704.     InputAvion(zrakoplov);
  705.     InputHelic(zrakoplov);
  706.     InputRezervni(dio);
  707.     cout << "Dobrodosli u sustav odrzavanja zrakoplova." << endl;
  708.     cout << "Izbornik \n1. Popis zrakoplova HZNS-a  \n2. Provjera za odrzavanje \n3. Unos novih zrakoplova u flotu HZNS-a" << endl;
  709.     cout << "4. Sustav rezervnih dijelova \n5. Upis zavrsene provjere za flotu HZNS-a" << endl;
  710.     int izbor;
  711.     cin >> izbor;
  712.     switch (izbor) {
  713.     case 1:
  714.         IspisZrakoplova(zrakoplov);
  715.         break;
  716.     case 2:
  717.         provjeraa(zrakoplov);
  718.         break;
  719.     case 3:
  720.         UnesiNoviZrakoplov();
  721.         break;
  722.     case 4:
  723.         SustavRezervni(dio);
  724.         break;
  725.     case 5:
  726.         unosCheck(zrakoplov);
  727.         break;
  728.     default:
  729.         cout << "Unesite valjani izbor" << endl;
  730.     }
  731.     system("pause");
  732.     return 0;
  733. }
  734.  
  735. ///avioni.txt': Cessna_172_N|NN172|520 520 98 0 6 6
  736. Cessna_172_D|DD172|0 750 323 100 0 15
  737. D_DV_20_KATANA|KDV20|150 780 58 50 3 1
  738. Cessna_172_D|DD179|120 755 352 70 2 1
  739.  
  740. Helikopteri.txt': Helicone|HH192|120 750 32 0 25 2
  741. Heli_58|HH341|112 715 302 50 52
  742.  
  743. rezervni.txt' svjecice|20 15
  744. ulja i maziva|5 6
  745. aktuator|6 9
  746. klipovi|12 30
  747. cilindri|4 1
  748. ventili|1 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement