Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ConsoleApplication7.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include<iostream>
- using namespace std;
- enum Gorivo { Benzin = 1, Dizel, Plin, Elektro, Hibrid };//ako stavim=10 znaci prva tu vrijednost u suprotnom je vrijednost 0
- enum MarkaVozila { BMW, Audi, Mercedes, VW };
- struct Datum
- {
- int _dan, _mjesec,_godina;
- void Unos(int d, int m, int g) {
- _dan = d;
- _mjesec = m;
- _godina = g;
- }
- void ispis() {
- cout << "datum " << _dan << "/" << _mjesec << "/" << _godina << endl;
- }
- };
- struct Vozilo
- {
- Gorivo _gorivo;//enum
- MarkaVozila _markaVozila;//enum
- Datum _datumRegistracije;
- int _predjeniKilometri;
- char * _registarskaOznaka;//niz karaktera
- void Unos() {
- //pravili smo funkcije zasebno cisto radi pregleednosti
- UnosTipaGoriva();
- UnosMarkeVozila();
- _datumRegistracije.Unos(10, 12, 2015);
- _predjeniKilometri = 0;
- /*cout << "unesite reg tablice za vozilo ";
- char temp[100];
- cin.ignore();
- cin.getline(temp, 100);
- _registarskaOznaka = new char[strlen(temp) + 1];
- strcpy_s(_registarskaOznaka, strlen(temp) + 1, temp);*/
- uRegT();//isto radi i i kod iznad samo preko funkcije
- }
- //void Unos(MarkaVozila m, Gorivo g, Datum dr, int kilometri, char * regOznaka);
- void ispis() {
- IspisTipaGoriva();
- IspisMArkeVozila();
- _datumRegistracije.ispis();
- cout << "predjeni km " << _predjeniKilometri << endl;
- cout << "registarska oznaka " << _registarskaOznaka << endl;//ako dereferenciramo ispise samo jedan char
- }
- void dealociraj() {
- delete[] _registarskaOznaka;_registarskaOznaka = nullptr;
- }
- void uvecajKilometre(int kilometri) {
- _predjeniKilometri += kilometri;
- }
- void IspisTipaGoriva() {
- switch (_gorivo)//ispisujem koji tip ima na osnovu ovog atributa
- {
- case Benzin:
- cout << "Tip goriva: benzin\n";
- break;
- case Dizel:
- cout << "Tip goriva: dizel\n";
- break;
- case Plin:
- cout << "Tip goriva: plin\n";
- break;
- case Elektro:
- cout << "Tip goriva: elektro\n";
- break;
- case Hibrid:
- cout << "Tip goriva: hibrid\n";
- break;
- default:
- cout << "Tip goriva: eror";
- break;
- }
- }
- //napravili privatno da bi izbjegli previse koda u unosu to je ovo dole
- private: void UnosTipaGoriva()//samo unutar ove f mozemo pristupiti u nju
- {
- //setujem vrijednost _markevozila
- cout << "Benzin-1,dizel-2,plin-3,eketro-4,hibrid-5";
- cout << "unesi tip goriva ";
- int temp;
- cin >> temp;
- _gorivo=(Gorivo)temp;
- }
- private: void UnosMarkeVozila()//da bi zabranili pristup ostalima da doddju do njih i zato je private lakse odrzavanje
- {
- //setujem vrijednost _markevozila
- cout << " BMW-0, Audi-1, Mercedes-2, VW-3";
- cout << "unesi marku vozila ";
- int temp;
- cin >> temp;
- _markaVozila = (MarkaVozila)temp;
- }
- void IspisMArkeVozila() {
- switch (_markaVozila)//ispisujem koji tip ima na osnovu ovog atributa
- {
- case BMW:
- cout << "bmw\n";
- break;
- case Audi:
- cout << "Audi\n";
- break;
- case Mercedes:
- cout << "Mercedes\n";
- break;
- case VW:
- cout << "VW\n";
- break;
- default:
- cout << "eror";
- break;
- }
- }
- //private:void UnosDatumReg() {
- // _datumRegistracije.Unos(10, 12, 2015);
- //ako je jedna linija ne pravi se funkcija}
- private:void uRegT() {
- cout << "unesite reg tablice za vozilo ";
- char temp[100];
- cin.ignore();
- cin.getline(temp, 100);
- _registarskaOznaka = new char[strlen(temp) + 1];
- strcpy_s(_registarskaOznaka, strlen(temp) + 1, temp);
- }
- };
- struct Vlasnik
- {
- char * _imePrezime;
- Vozilo *_vozila[5];
- const int _max = 5;
- int _trenutno;
- void unos(char *ip);
- void ispis();
- bool dodajVozilo(Vozilo v);
- bool ukloniVozilo(char * registarskaOznaka);
- void dealociraj();
- //vraća pokazivač vozilo sa najvise predjenih kilometara od svih vozila
- Vozilo *voziloSaNajviseKilometara();
- };
- int main()
- {
- //Vozilo *_vozila;//beskonacno dodajem
- //Vozilo *_vozila[5]//5 pokazivaca i svaki pokazuje na svoje objekte tj vozilo
- ////Gorivo gorivo = (Gorivo)3;//tu prosljedjuem benzin jer je to njegova vrijednost i pomocu switch ispisuje koje je gorivo
- //Vozilo vozilo;
- //vozilo._gorivo = (Gorivo)1;
- //vozilo.IspisTipaGoriva();//ispise na osnovu gornjeg atributa
- Vozilo audi;
- cout << "f unos " << endl;
- audi.Unos();
- cout << "f ispis " << endl;
- audi.ispis();
- audi.uvecajKilometre(10);
- cout << "f + kilometri " << endl;
- cout << "f ispiss " << endl;
- audi.ispis();
- system("pause>0");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement