Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.67 KB | None | 0 0
  1. #include<iostream>
  2. #include<iomanip>
  3. using namespace std;
  4.  
  5. struct MarkaVozila
  6. {
  7. char Naziv[12];
  8. };
  9. int const CarMan = 10; // Car Manifact.
  10. MarkaVozila proizvodjaci[CarMan] = { "VolksWagen", "Mercedes", "Renault", "Opel", "Hyundai", "Volvo", "Audi", "Citroen", "BMW", "Peugeot" };
  11.  
  12. struct Vozilo
  13. {
  14. MarkaVozila Marka;
  15. int GodinaProizvodnje;
  16. int Kubikaza;
  17. char VrstaGoriva; // D=Dizel, B=Benzin
  18. char Status = 'S'; // R=Rezervisan, P=Prodat, S=Slobodan
  19. float cijena;
  20. };
  21.  
  22. struct parking
  23. {
  24. Vozilo vozilo;
  25. int ParkingMjestoBr;
  26. char Status = 'S'; // P=Popunjeno, S=Slobodno
  27. };
  28.  
  29. MarkaVozila OdaberiProizvodjaca()
  30. {
  31. // Dovrsi funkciju !
  32. // vraca odabranu marku vozila iz globalnog niza (proizvodjaci[])
  33. MarkaVozila v;
  34. for (int i = 0; i < CarMan; i++)
  35. {
  36. cout << i + 1 << ". ";
  37. cout << v.Naziv[i] << endl;
  38. }
  39.  
  40. cin.getline(v.Naziv, 12);
  41. return v;
  42. }
  43.  
  44. Vozilo NovoVozilo()
  45. {
  46. Vozilo v;
  47. v.Marka = OdaberiProizvodjaca();
  48. cout << "Godina proizvodnje: ";
  49. cin >> v.GodinaProizvodnje;
  50. cout << "Kubikaza: ";
  51. cin >> v.Kubikaza;
  52. cout << "Gorivo B/D: ";
  53. cin >> v.VrstaGoriva;
  54. cout << "Cijena: ";
  55. cin >> v.cijena;
  56. return v;
  57. }
  58.  
  59. void VoziloInfo(Vozilo v)
  60. {
  61. // Dovrsi funkciju !
  62. // Prikazuje informacije o vozilu
  63. cout << v.Marka.Naziv << " / ";
  64. cout << v.VrstaGoriva << " / ";
  65. cout << v.GodinaProizvodnje << " / ";
  66. cout << v.Kubikaza << " / ";
  67. cout << v.cijena << " / ";
  68. cout << v.Status << endl;
  69. }
  70.  
  71. void ParkingInfo(parking p[], int BrojMjesta)
  72. {
  73. // Dovrsi funkciju !
  74. // Prikazuje kompletan parking
  75.  
  76. for (int i = 0; i < BrojMjesta; i++)
  77. {
  78. cout << i + 1 << ". ";
  79. VoziloInfo(p[i].vozilo);
  80. }
  81. }
  82.  
  83. float VrijednostParkinga(parking p[], int vozila)
  84. {
  85. // Dovrsi funkciju !
  86. // Rekurzivna funkcija, sabire vrijednost parkiranih vozila
  87.  
  88. if (vozila == 0)
  89. return 0;
  90.  
  91. float suma = 0;
  92. suma += p[vozila - 1].vozilo.cijena;
  93.  
  94. return suma + VrijednostParkinga(p, vozila - 1);
  95. }
  96.  
  97. //void PromjenaStatusaVozila(Vozilo& v)
  98. //{
  99. // // Dovrsi funkciju !
  100. // // omogucuje izmjenu statusa odabranog vozila
  101. // // (P)-Prodat, (R)-Rezervisan, (S)-Slobodan
  102. //
  103. // cout << "R - rezervisan / P - prodat / S - slobodan " << endl;
  104. // cout << "Trenutni status vozila: ";
  105. // cout << v.Status;
  106. //
  107. // cout << "Unesite novi status vozila: ";
  108. // cin >> v.Status;
  109. //
  110. //
  111. //}
  112.  
  113. void ListaVozila(parking p[], int mjesta)
  114. {
  115. // Dovrsi funkciju !
  116. // prikazuje listu vozila koja se nalaze na parkingu
  117. char odabir;
  118. cout << "Odaberite status vozila (S/P/R) ili '*' za sve" << endl;
  119. cin >> odabir;
  120.  
  121. switch (odabir)
  122. {
  123. case 'S':
  124. {
  125. for (int i = 0; i < mjesta; i++)
  126. {
  127. if (p[i].vozilo.Status == 'S')
  128.  
  129. VoziloInfo(p[i].vozilo);
  130.  
  131. }
  132. break;
  133. }
  134. case 'P':
  135. {
  136. for (int i = 0; i < mjesta; i++)
  137. {
  138. if (p[i].vozilo.Status == 'P')
  139.  
  140. VoziloInfo(p[i].vozilo);
  141.  
  142. }
  143. break;
  144.  
  145. }
  146. case 'R':
  147. {
  148. for (int i = 0; i < mjesta; i++)
  149. {
  150. if (p[i].vozilo.Status == 'R')
  151.  
  152. VoziloInfo(p[i].vozilo);
  153.  
  154. }
  155. break;
  156.  
  157. }
  158. case '*':
  159. {
  160. for (int i = 0; i < mjesta; i++)
  161. {
  162. cout << i + 1 << ". ";
  163. VoziloInfo(p[i].vozilo);
  164. }
  165. break;
  166.  
  167. }
  168. default:
  169. break;
  170. }
  171.  
  172.  
  173.  
  174.  
  175. }
  176.  
  177. //Vozilo& OdaberiVozilo(parking p[], int mjesta)
  178. //{
  179. // // Dovrsi funkciju !
  180. // // vraca odabrano vozilo sa parkinga
  181. // char odabir;
  182. // cout << "Odaberite status vozila (S/P/R) ili '*' za sve" << endl;
  183. // cin >> odabir;
  184. //
  185. // switch (odabir)
  186. // {
  187. // case 'S':
  188. // {
  189. // for (int i = 0; i < mjesta; i++)
  190. // {
  191. // if (p[i].vozilo.Status == 'S')
  192. //
  193. // VoziloInfo(p[i].vozilo);
  194. //
  195. // }
  196. // break;
  197. // }
  198. // case 'P':
  199. // {
  200. // for (int i = 0; i < mjesta; i++)
  201. // {
  202. // if (p[i].vozilo.Status == 'P')
  203. //
  204. // VoziloInfo(p[i].vozilo);
  205. //
  206. // }
  207. // break;
  208. //
  209. // }
  210. // case 'R':
  211. // {
  212. // for (int i = 0; i < mjesta; i++)
  213. // {
  214. // if (p[i].vozilo.Status == 'R')
  215. //
  216. // VoziloInfo(p[i].vozilo);
  217. //
  218. // }
  219. // break;
  220. //
  221. // }
  222. // case '*':
  223. // {
  224. // for (int i = 0; i < mjesta; i++)
  225. // {
  226. // cout << i + 1 << ". ";
  227. // VoziloInfo(p[i].vozilo);
  228. // }
  229. // break;
  230. //
  231. // }
  232. // default:
  233. // break;
  234. // }
  235. // cout << "Parking mjesto: ";
  236. // for (int i = 0; i < mjesta; i++)
  237. // {
  238. // cin >> p[i].ParkingMjestoBr;
  239. // }
  240. //
  241. //
  242. //
  243. //}
  244.  
  245. void pauza()
  246. {
  247. cout << "\nPritisnite taster za nastavak..." << endl;
  248. system("pause>nul");
  249. }
  250.  
  251. int main()
  252. {
  253. int const ParkingMjesta = 10;
  254. parking VozniPark[ParkingMjesta] = {
  255. // Testni podaci
  256. { {proizvodjaci[0], 2000, 1900, 'D', 'S', 5000 }, 1, 'P' },
  257. { {proizvodjaci[3], 2010, 2100, 'D', 'P', 13000}, 2, 'P' },
  258. { {proizvodjaci[1], 2013, 1800, 'B', 'R', 18000}, 3, 'P' },
  259. { {proizvodjaci[7], 2007, 1700, 'D', 'S', 9000 }, 4, 'P' },
  260. { {proizvodjaci[4], 2016, 1600, 'B', 'S', 21000}, 5, 'P' },
  261. { {proizvodjaci[3], 2001, 1900, 'D', 'S', 4000 }, 6, 'P' },
  262. { {proizvodjaci[1], 2006, 2200, 'D', 'R', 11000}, 7, 'P' },
  263. { {proizvodjaci[6], 2017, 2000, 'B', 'S', 26000}, 8, 'P' },
  264. { {proizvodjaci[9], 2008, 1300, 'B', 'S', 12000}, 9, 'P' },
  265. { {proizvodjaci[5], 2003, 1900, 'D', 'S', 7000 }, 10, 'P' }
  266. };
  267.  
  268. int izbor;
  269. do
  270. {
  271. system("cls");
  272. cout << "1. Stanje Parkinga" << endl;
  273. cout << "2. Dodaj vozilo na parking" << endl;
  274. cout << "3. Promjena statusa vozila" << endl;
  275. cout << "4. Lista vozila" << endl;
  276. cout << "5. Vrijednost vozila na parkingu" << endl;
  277. cout << "6. Ukloni vozilo sa parkinga" << endl;
  278. cout << "0. IZLAZ" << endl;
  279. cout << "\nIzbor:";
  280. cin >> izbor;
  281.  
  282. switch (izbor)
  283. {
  284. case 1:
  285. {
  286. ParkingInfo(VozniPark, ParkingMjesta);
  287. pauza();
  288. break;
  289. }
  290. case 2:
  291. {
  292. bool dodano = false;
  293. for (int i = 0; i < ParkingMjesta; i++)
  294. {
  295. if (VozniPark[i].Status == 'S')
  296. {
  297. VozniPark[i].vozilo = NovoVozilo();
  298. VozniPark[i].Status = 'P';
  299. dodano = true;
  300. break;
  301. }
  302. }
  303. if (dodano == false) cout << "\nNema slobodnih parking mjesta !" << endl;
  304. else cout << "\nVozilo uspjesno dodano na parking." << endl;
  305. pauza();
  306. break;
  307. }
  308. /*case 3:
  309. {
  310. Vozilo& v = OdaberiVozilo(VozniPark, ParkingMjesta);
  311. PromjenaStatusaVozila(v);
  312. break;
  313. }*/
  314. case 4:
  315. {
  316. ListaVozila(VozniPark, ParkingMjesta);
  317. pauza();
  318. break;
  319. }
  320. case 5:
  321. {
  322. cout << "\nUkupna vrijednost parkiranih vozila iznosi: " << VrijednostParkinga(VozniPark, ParkingMjesta) << "KM" << endl;
  323. pauza();
  324. break;
  325. }
  326. case 6:
  327. {
  328. ListaVozila(VozniPark, ParkingMjesta);
  329. cout << "\nKoje parking mjesto oslobadjate: ";
  330. int pm;
  331. cin >> pm;
  332. VozniPark[pm - 1].Status = 'S';
  333. break;
  334. }
  335. default:
  336. break;
  337. }
  338.  
  339. } while (izbor != 0);
  340.  
  341. cout << "\nHvala na koristenju programa." << endl;
  342. cout << endl;
  343. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement