Advertisement
zahra315

pr2/registracija-vozila

Mar 17th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.51 KB | None | 0 0
  1. // ConsoleApplication7.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include<iostream>
  6. using namespace std;
  7.  
  8. enum Gorivo { Benzin = 1, Dizel, Plin, Elektro, Hibrid };//ako stavim=10 znaci prva tu vrijednost u suprotnom je vrijednost 0
  9. enum MarkaVozila { BMW, Audi, Mercedes, VW };
  10.  
  11. struct Datum
  12. {
  13.     int _dan, _mjesec,_godina;
  14.     void Unos(int d, int m, int g) {
  15.         _dan = d;
  16.         _mjesec = m;
  17.         _godina = g;
  18.     }
  19.     void ispis() {
  20.         cout << "datum " << _dan << "/" << _mjesec << "/" << _godina << endl;
  21.     }
  22. };
  23. struct Vozilo
  24. {
  25.     Gorivo _gorivo;//enum
  26.     MarkaVozila _markaVozila;//enum
  27.     Datum _datumRegistracije;
  28.     int _predjeniKilometri;
  29.     char * _registarskaOznaka;//niz karaktera
  30.  
  31.    
  32.  
  33.     void Unos() {
  34.         //pravili smo funkcije zasebno cisto radi pregleednosti
  35.         UnosTipaGoriva();
  36.         UnosMarkeVozila();
  37.         _datumRegistracije.Unos(10, 12, 2015);
  38.         _predjeniKilometri = 0;
  39.         /*cout << "unesite reg tablice za vozilo ";
  40.         char temp[100];
  41.         cin.ignore();
  42.         cin.getline(temp, 100);
  43.         _registarskaOznaka = new char[strlen(temp) + 1];
  44.         strcpy_s(_registarskaOznaka, strlen(temp) + 1, temp);*/
  45.         uRegT();//isto radi i i kod iznad samo preko funkcije
  46.        
  47.     }
  48.     //void Unos(MarkaVozila m, Gorivo g, Datum dr, int kilometri, char * regOznaka);
  49.     void ispis() {
  50.         IspisTipaGoriva();
  51.         IspisMArkeVozila();
  52.         _datumRegistracije.ispis();
  53.         cout << "predjeni km " << _predjeniKilometri << endl;
  54.         cout << "registarska oznaka " << _registarskaOznaka << endl;//ako dereferenciramo ispise samo jedan char
  55.     }
  56.     void dealociraj() {
  57.         delete[] _registarskaOznaka;_registarskaOznaka = nullptr;
  58.  
  59.     }
  60.     void uvecajKilometre(int kilometri) {
  61.         _predjeniKilometri += kilometri;
  62.     }
  63.     void IspisTipaGoriva() {
  64.         switch (_gorivo)//ispisujem koji tip ima na osnovu ovog atributa
  65.         {
  66.         case Benzin:
  67.             cout << "Tip goriva: benzin\n";
  68.             break;
  69.         case Dizel:
  70.             cout << "Tip goriva: dizel\n";
  71.             break;
  72.         case Plin:
  73.             cout << "Tip goriva: plin\n";
  74.             break;
  75.         case Elektro:
  76.             cout << "Tip goriva: elektro\n";
  77.             break;
  78.         case Hibrid:
  79.             cout << "Tip goriva: hibrid\n";
  80.             break;
  81.         default:
  82.             cout << "Tip goriva: eror";
  83.             break;
  84.         }
  85.     }
  86.  
  87.     //napravili privatno da bi izbjegli previse koda u unosu to je ovo dole
  88.     private: void UnosTipaGoriva()//samo unutar ove f mozemo pristupiti u nju
  89.     {
  90.         //setujem vrijednost _markevozila
  91.         cout << "Benzin-1,dizel-2,plin-3,eketro-4,hibrid-5";
  92.         cout << "unesi tip  goriva ";
  93.         int temp;
  94.         cin >> temp;
  95.         _gorivo=(Gorivo)temp;
  96.     }
  97.  
  98. private: void UnosMarkeVozila()//da bi zabranili pristup ostalima da doddju do njih i zato je private lakse odrzavanje
  99. {
  100.     //setujem vrijednost _markevozila
  101.     cout << " BMW-0, Audi-1, Mercedes-2, VW-3";
  102.     cout << "unesi marku  vozila ";
  103.     int temp;
  104.     cin >> temp;
  105.     _markaVozila = (MarkaVozila)temp;
  106. }
  107.  
  108.  
  109.  
  110. void IspisMArkeVozila() {
  111.              switch (_markaVozila)//ispisujem koji tip ima na osnovu ovog atributa
  112.              {
  113.              case BMW:
  114.                  cout << "bmw\n";
  115.                  break;
  116.              case Audi:
  117.                  cout << "Audi\n";
  118.                  break;
  119.              case Mercedes:
  120.                  cout << "Mercedes\n";
  121.                  break;
  122.              case VW:
  123.                  cout << "VW\n";
  124.                  break;
  125.              default:
  126.                  cout << "eror";
  127.                  break;
  128.              }
  129.          }
  130. //private:void UnosDatumReg() {
  131. //  _datumRegistracije.Unos(10, 12, 2015);
  132. //ako je jedna linija ne pravi se funkcija}
  133. private:void uRegT() {
  134.     cout << "unesite reg tablice za vozilo ";
  135.     char temp[100];
  136.     cin.ignore();
  137.     cin.getline(temp, 100);
  138.     _registarskaOznaka = new char[strlen(temp) + 1];
  139.     strcpy_s(_registarskaOznaka, strlen(temp) + 1, temp);
  140. }
  141. };
  142. struct Vlasnik
  143. {
  144.     char * _imePrezime;
  145.     Vozilo *_vozila[5];
  146.     const int _max = 5;
  147.     int _trenutno;
  148.  
  149.     void unos(char *ip);
  150.     void ispis();
  151.     bool dodajVozilo(Vozilo v);
  152.     bool ukloniVozilo(char * registarskaOznaka);
  153.     void dealociraj();
  154.     //vraća pokazivač vozilo sa najvise predjenih kilometara od svih vozila
  155.     Vozilo *voziloSaNajviseKilometara();
  156. };
  157.  
  158.  
  159.  
  160.  
  161. int main()
  162. {
  163.     //Vozilo *_vozila;//beskonacno dodajem
  164.     //Vozilo *_vozila[5]//5 pokazivaca i svaki pokazuje na svoje objekte tj vozilo
  165.  
  166.     ////Gorivo gorivo = (Gorivo)3;//tu prosljedjuem benzin jer je to njegova vrijednost i pomocu switch ispisuje koje je gorivo
  167.     //Vozilo vozilo;
  168.     //vozilo._gorivo = (Gorivo)1;
  169.     //vozilo.IspisTipaGoriva();//ispise na osnovu gornjeg atributa
  170.     Vozilo audi;
  171.     cout << "f unos " << endl;
  172.     audi.Unos();
  173.     cout << "f ispis " << endl;
  174.     audi.ispis();
  175.     audi.uvecajKilometre(10);
  176.     cout << "f + kilometri " << endl;
  177.     cout << "f ispiss " << endl;
  178.     audi.ispis();
  179.  
  180.     system("pause>0");
  181.     return 0;
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement