Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<iomanip>
- using namespace std;
- struct MarkaVozila
- {
- char Naziv[12];
- };
- int const CarMan = 10; // Car Manifact.
- MarkaVozila proizvodjaci[CarMan] = { "VolksWagen", "Mercedes", "Renault", "Opel", "Hyundai", "Volvo", "Audi", "Citroen", "BMW", "Peugeot" };
- struct Vozilo
- {
- MarkaVozila Marka;
- int GodinaProizvodnje;
- int Kubikaza;
- char VrstaGoriva; // D=Dizel, B=Benzin
- char Status = 'S'; // R=Rezervisan, P=Prodat, S=Slobodan
- float cijena;
- };
- struct parking
- {
- Vozilo vozilo;
- int ParkingMjestoBr;
- char Status = 'S'; // P=Popunjeno, S=Slobodno
- };
- MarkaVozila OdaberiProizvodjaca()
- {
- // Dovrsi funkciju !
- // vraca odabranu marku vozila iz globalnog niza (proizvodjaci[])
- MarkaVozila v;
- for (int i = 0; i < CarMan; i++)
- {
- cout << i + 1 << ". ";
- cout << v.Naziv[i] << endl;
- }
- cin.getline(v.Naziv, 12);
- return v;
- }
- Vozilo NovoVozilo()
- {
- Vozilo v;
- v.Marka = OdaberiProizvodjaca();
- cout << "Godina proizvodnje: ";
- cin >> v.GodinaProizvodnje;
- cout << "Kubikaza: ";
- cin >> v.Kubikaza;
- cout << "Gorivo B/D: ";
- cin >> v.VrstaGoriva;
- cout << "Cijena: ";
- cin >> v.cijena;
- return v;
- }
- void VoziloInfo(Vozilo v)
- {
- // Dovrsi funkciju !
- // Prikazuje informacije o vozilu
- cout << v.Marka.Naziv << " / ";
- cout << v.VrstaGoriva << " / ";
- cout << v.GodinaProizvodnje << " / ";
- cout << v.Kubikaza << " / ";
- cout << v.cijena << " / ";
- cout << v.Status << endl;
- }
- void ParkingInfo(parking p[], int BrojMjesta)
- {
- // Dovrsi funkciju !
- // Prikazuje kompletan parking
- for (int i = 0; i < BrojMjesta; i++)
- {
- cout << i + 1 << ". ";
- VoziloInfo(p[i].vozilo);
- }
- }
- float VrijednostParkinga(parking p[], int vozila)
- {
- // Dovrsi funkciju !
- // Rekurzivna funkcija, sabire vrijednost parkiranih vozila
- if (vozila == 0)
- return 0;
- float suma = 0;
- suma += p[vozila - 1].vozilo.cijena;
- return suma + VrijednostParkinga(p, vozila - 1);
- }
- //void PromjenaStatusaVozila(Vozilo& v)
- //{
- // // Dovrsi funkciju !
- // // omogucuje izmjenu statusa odabranog vozila
- // // (P)-Prodat, (R)-Rezervisan, (S)-Slobodan
- //
- // cout << "R - rezervisan / P - prodat / S - slobodan " << endl;
- // cout << "Trenutni status vozila: ";
- // cout << v.Status;
- //
- // cout << "Unesite novi status vozila: ";
- // cin >> v.Status;
- //
- //
- //}
- void ListaVozila(parking p[], int mjesta)
- {
- // Dovrsi funkciju !
- // prikazuje listu vozila koja se nalaze na parkingu
- char odabir;
- cout << "Odaberite status vozila (S/P/R) ili '*' za sve" << endl;
- cin >> odabir;
- switch (odabir)
- {
- case 'S':
- {
- for (int i = 0; i < mjesta; i++)
- {
- if (p[i].vozilo.Status == 'S')
- VoziloInfo(p[i].vozilo);
- }
- break;
- }
- case 'P':
- {
- for (int i = 0; i < mjesta; i++)
- {
- if (p[i].vozilo.Status == 'P')
- VoziloInfo(p[i].vozilo);
- }
- break;
- }
- case 'R':
- {
- for (int i = 0; i < mjesta; i++)
- {
- if (p[i].vozilo.Status == 'R')
- VoziloInfo(p[i].vozilo);
- }
- break;
- }
- case '*':
- {
- for (int i = 0; i < mjesta; i++)
- {
- cout << i + 1 << ". ";
- VoziloInfo(p[i].vozilo);
- }
- break;
- }
- default:
- break;
- }
- }
- //Vozilo& OdaberiVozilo(parking p[], int mjesta)
- //{
- // // Dovrsi funkciju !
- // // vraca odabrano vozilo sa parkinga
- // char odabir;
- // cout << "Odaberite status vozila (S/P/R) ili '*' za sve" << endl;
- // cin >> odabir;
- //
- // switch (odabir)
- // {
- // case 'S':
- // {
- // for (int i = 0; i < mjesta; i++)
- // {
- // if (p[i].vozilo.Status == 'S')
- //
- // VoziloInfo(p[i].vozilo);
- //
- // }
- // break;
- // }
- // case 'P':
- // {
- // for (int i = 0; i < mjesta; i++)
- // {
- // if (p[i].vozilo.Status == 'P')
- //
- // VoziloInfo(p[i].vozilo);
- //
- // }
- // break;
- //
- // }
- // case 'R':
- // {
- // for (int i = 0; i < mjesta; i++)
- // {
- // if (p[i].vozilo.Status == 'R')
- //
- // VoziloInfo(p[i].vozilo);
- //
- // }
- // break;
- //
- // }
- // case '*':
- // {
- // for (int i = 0; i < mjesta; i++)
- // {
- // cout << i + 1 << ". ";
- // VoziloInfo(p[i].vozilo);
- // }
- // break;
- //
- // }
- // default:
- // break;
- // }
- // cout << "Parking mjesto: ";
- // for (int i = 0; i < mjesta; i++)
- // {
- // cin >> p[i].ParkingMjestoBr;
- // }
- //
- //
- //
- //}
- void pauza()
- {
- cout << "\nPritisnite taster za nastavak..." << endl;
- system("pause>nul");
- }
- int main()
- {
- int const ParkingMjesta = 10;
- parking VozniPark[ParkingMjesta] = {
- // Testni podaci
- { {proizvodjaci[0], 2000, 1900, 'D', 'S', 5000 }, 1, 'P' },
- { {proizvodjaci[3], 2010, 2100, 'D', 'P', 13000}, 2, 'P' },
- { {proizvodjaci[1], 2013, 1800, 'B', 'R', 18000}, 3, 'P' },
- { {proizvodjaci[7], 2007, 1700, 'D', 'S', 9000 }, 4, 'P' },
- { {proizvodjaci[4], 2016, 1600, 'B', 'S', 21000}, 5, 'P' },
- { {proizvodjaci[3], 2001, 1900, 'D', 'S', 4000 }, 6, 'P' },
- { {proizvodjaci[1], 2006, 2200, 'D', 'R', 11000}, 7, 'P' },
- { {proizvodjaci[6], 2017, 2000, 'B', 'S', 26000}, 8, 'P' },
- { {proizvodjaci[9], 2008, 1300, 'B', 'S', 12000}, 9, 'P' },
- { {proizvodjaci[5], 2003, 1900, 'D', 'S', 7000 }, 10, 'P' }
- };
- int izbor;
- do
- {
- system("cls");
- cout << "1. Stanje Parkinga" << endl;
- cout << "2. Dodaj vozilo na parking" << endl;
- cout << "3. Promjena statusa vozila" << endl;
- cout << "4. Lista vozila" << endl;
- cout << "5. Vrijednost vozila na parkingu" << endl;
- cout << "6. Ukloni vozilo sa parkinga" << endl;
- cout << "0. IZLAZ" << endl;
- cout << "\nIzbor:";
- cin >> izbor;
- switch (izbor)
- {
- case 1:
- {
- ParkingInfo(VozniPark, ParkingMjesta);
- pauza();
- break;
- }
- case 2:
- {
- bool dodano = false;
- for (int i = 0; i < ParkingMjesta; i++)
- {
- if (VozniPark[i].Status == 'S')
- {
- VozniPark[i].vozilo = NovoVozilo();
- VozniPark[i].Status = 'P';
- dodano = true;
- break;
- }
- }
- if (dodano == false) cout << "\nNema slobodnih parking mjesta !" << endl;
- else cout << "\nVozilo uspjesno dodano na parking." << endl;
- pauza();
- break;
- }
- /*case 3:
- {
- Vozilo& v = OdaberiVozilo(VozniPark, ParkingMjesta);
- PromjenaStatusaVozila(v);
- break;
- }*/
- case 4:
- {
- ListaVozila(VozniPark, ParkingMjesta);
- pauza();
- break;
- }
- case 5:
- {
- cout << "\nUkupna vrijednost parkiranih vozila iznosi: " << VrijednostParkinga(VozniPark, ParkingMjesta) << "KM" << endl;
- pauza();
- break;
- }
- case 6:
- {
- ListaVozila(VozniPark, ParkingMjesta);
- cout << "\nKoje parking mjesto oslobadjate: ";
- int pm;
- cin >> pm;
- VozniPark[pm - 1].Status = 'S';
- break;
- }
- default:
- break;
- }
- } while (izbor != 0);
- cout << "\nHvala na koristenju programa." << endl;
- cout << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement