Advertisement
Gazarth

Kek

Jun 13th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.56 KB | None | 0 0
  1. Ucenici.cpp
  2.  
  3. #include "stdafx.h"
  4. #include "Skola.h"
  5. #include "Ucenik.h"
  6. #include <iostream>
  7. #include <fstream>
  8. #include <vector>
  9.  
  10. Skola::Skola()
  11. {
  12. UcitajUcenike();
  13. }
  14.  
  15. Skola::~Skola()
  16. {
  17. }
  18.  
  19. void Skola::UcitajUcenike()
  20. {
  21. m_oXMLUcenici.LoadFile("OOP_XML_ucenici.xml");
  22. m_pRoot = m_oXMLUcenici.FirstChildElement("dataset");
  23. XMLElement *pchild;
  24. for (pchild = m_pRoot->FirstChildElement("record"); pchild != NULL; pchild = pchild->NextSiblingElement())
  25. {
  26. XMLElement *pId = pchild->FirstChildElement("id");
  27. int nUcenikId = atoi(pId->GetText());
  28. XMLElement *pIme = pchild->FirstChildElement("ime");
  29. string sUcenikIme = pIme->GetText();
  30. XMLElement *pPrezime = pchild->FirstChildElement("prezime");
  31. string sUcenikPrezime = pPrezime->GetText();
  32. XMLElement *pRazred = pchild->FirstChildElement("razred");
  33. int nUcenikRazred = atoi(pRazred->GetText());
  34. XMLElement*pOznaka = pchild->FirstChildElement("oznaka_razreda");
  35. string sUcenikOznaka = pOznaka->GetText();
  36. XMLElement *pMjesto = pchild->FirstChildElement("mjesto");
  37. string sUcenikMjesto = pMjesto->GetText();
  38.  
  39. m_vUcenik.push_back(new Ucenik(nUcenikId, sUcenikIme, sUcenikPrezime, nUcenikRazred, sUcenikOznaka, sUcenikMjesto));
  40. }
  41. }
  42.  
  43. void Skola::Izbornik()
  44. {
  45. int nOdabir;
  46. cout << "Odaberite Zeljenu opciju!\n1. Ispisi sve ucenike\n2. Statistika\n3. Pretraga ucenika\n4. Kreiraj TXT datoteku" << endl;
  47. cin >> nOdabir;
  48. switch (nOdabir)
  49. {
  50. case 1:
  51. IspisiSveUcenike();
  52. break;
  53. case 2:
  54. Statistika();
  55. break;
  56. case 3:
  57. PretraziUcenika();
  58. break;
  59. case 4:
  60. TXTGrad();
  61. break;
  62. default:
  63. cout << "Odabrali ste nepostojecu opciju!";
  64. break;
  65. }
  66. }
  67.  
  68. void Skola::IspisiSveUcenike()
  69. {
  70. system("CLS");
  71. for (int i = 0; i < m_vUcenik.size(); i++)
  72. {
  73. cout << "_________________________________________" << endl;
  74. cout << "Ime:" << m_vUcenik[i]->m_sIme << endl;
  75. cout << "Prezime:" << m_vUcenik[i]->m_sPrezime << endl;
  76. cout << "Razred:" << m_vUcenik[i]->m_nRazred << "." << m_vUcenik[i]->m_sOznaka << endl;
  77. cout << "Mjesto:" << m_vUcenik[i]->m_sMjesto << endl;
  78. cout << "_________________________________________" << endl << endl;
  79. }
  80. getchar();
  81. }
  82.  
  83. void Skola::Statistika()
  84. {
  85. int ucenici_slatina = 0;
  86. int ucenici_suhopolje = 0;
  87. int ucenici_virovitica = 0;
  88. int ucenici_pitomaca = 0;
  89. int ucenici_orahovica = 0;
  90. system("CLS");
  91. for (int i = 0; i < m_vUcenik.size(); i++)
  92. {
  93. if (m_vUcenik[i]->m_sMjesto == "Slatina")
  94. {
  95. ucenici_slatina++;
  96. }
  97. if (m_vUcenik[i]->m_sMjesto == "Suhopolje")
  98. {
  99. ucenici_suhopolje++;
  100. }
  101. if (m_vUcenik[i]->m_sMjesto == "Virovitica")
  102. {
  103. ucenici_virovitica++;
  104. }
  105. if (m_vUcenik[i]->m_sMjesto == "Pitomaca")
  106. {
  107. ucenici_pitomaca++;
  108. }
  109. if (m_vUcenik[i]->m_sMjesto == "Orahovica")
  110. {
  111. ucenici_orahovica++;
  112. }
  113. }
  114. cout << "Broj ucenika iz Slatine: " << ucenici_slatina << endl;
  115. cout << "Broj ucenika iz Suhopolja: " << ucenici_suhopolje << endl;
  116. cout << "Broj ucenika iz Virovitice: " << ucenici_virovitica << endl;
  117. cout << "Broj ucenika iz Pitomace: " << ucenici_pitomaca << endl;
  118. cout << "Broj ucenika iz Orahovice: " << ucenici_orahovica << endl;
  119.  
  120. getchar();
  121. }
  122.  
  123. void Skola::PretraziUcenika()
  124. {
  125. system("CLS");
  126. cout << "Unesite ime ili prezime koje zelite pretraziti" << endl;
  127. string sImeUcenika;
  128. cin >> sImeUcenika;
  129. system("CLS");
  130. bool provjera = false;
  131. for (int i = 0; i < m_vUcenik.size(); i++)
  132. {
  133. if (sImeUcenika == m_vUcenik[i]->m_sIme || sImeUcenika == m_vUcenik[i]->m_sPrezime)
  134. {
  135. provjera = true;
  136. cout << "_________________________________________" << endl;
  137. cout << "Ime:" << m_vUcenik[i]->m_sIme << endl;
  138. cout << "Prezime:" << m_vUcenik[i]->m_sPrezime << endl;
  139. cout << "Razred:" << m_vUcenik[i]->m_nRazred << "." << m_vUcenik[i]->m_sOznaka << endl;
  140. cout << "Mjesto:" << m_vUcenik[i]->m_sMjesto << endl;
  141. cout << "_________________________________________" << endl << endl;
  142. }
  143. }
  144. if (!provjera)
  145. {
  146. cout << "Nema rezultata!";
  147. }
  148. getchar();
  149. }
  150.  
  151. string Skola::Virovitica()
  152. {
  153. string sVirovitica = "Ucenici iz Virovitice: \n";
  154. for (int i = 0; i < m_vUcenik.size(); i++)
  155. {
  156. if ("Virovitica" == m_vUcenik[i]->m_sMjesto)
  157. {
  158. sVirovitica += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
  159. }
  160. }
  161. return sVirovitica;
  162. }
  163.  
  164. string Skola::Slatina()
  165. {
  166. string sSlatina = "\nUcenici iz Slatine: \n";
  167. for (int i = 0; i < m_vUcenik.size(); i++)
  168. {
  169. if ("Slatina" == m_vUcenik[i]->m_sMjesto)
  170. {
  171. sSlatina += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
  172. }
  173. }
  174. return sSlatina;
  175. }
  176.  
  177. string Skola::Pitomaca()
  178. {
  179. string sPitomaca = "\nUcenici iz Pitomace: \n";
  180. for (int i = 0; i < m_vUcenik.size(); i++)
  181. {
  182. if ("Pitomaca" == m_vUcenik[i]->m_sMjesto)
  183. {
  184. sPitomaca += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
  185. }
  186. }
  187. return sPitomaca;
  188. }
  189.  
  190. string Skola::Suhopolje()
  191. {
  192. string sSuhopolje = "\nUcenici iz Suhopolja: \n";
  193. for (int i = 0; i < m_vUcenik.size(); i++)
  194. {
  195. if ("Suhopolje" == m_vUcenik[i]->m_sMjesto)
  196. {
  197. sSuhopolje += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
  198. }
  199. }
  200. return sSuhopolje;
  201. }
  202.  
  203. string Skola::Orahovica()
  204. {
  205. string sOrahovica = "\nUcenici iz Orahovice: \n";
  206. for (int i = 0; i < m_vUcenik.size(); i++)
  207. {
  208. if ("Orahovica" == m_vUcenik[i]->m_sMjesto)
  209. {
  210. sOrahovica += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
  211. }
  212. }
  213. return sOrahovica;
  214. }
  215.  
  216. void Skola::TXTGrad()
  217. {
  218. ofstream a_file("Gradovi.txt", ios::out | ios::trunc);
  219. a_file << Virovitica() << Slatina() << Suhopolje() << Orahovica() << Pitomaca();
  220. a_file.close();
  221. system("CLS");
  222. cout << "TXT datoteka kreirana!";
  223. getchar();
  224. }
  225. http://i.imgur.com/A1zr4AZ.png
  226.  
  227.  
  228. Main.cpp
  229. using namespace std;
  230. using namespace tinyxml2;
  231.  
  232. int main()
  233. {
  234. Skola skola;
  235. skola.Izbornik();
  236. getchar();
  237. return 0;
  238. }
  239.  
  240. Moj.cpp
  241.  
  242. #include "stdafx.h"
  243. #include "Autocesta.h"
  244.  
  245.  
  246. Autocesta::Autocesta()
  247. {
  248. UcitajKorisnike();
  249. UcitajPostaje();
  250. UcitajSkupine();
  251. UcitajVozila();
  252. }
  253.  
  254.  
  255. Autocesta::~Autocesta()
  256. {
  257. }
  258.  
  259. void Autocesta::UcitajKorisnike()
  260. {
  261. m_oKorisnikXmlDocument.LoadFile("Korisnici.xml");
  262. m_pKorisniciKorisnik = m_oKorisnikXmlDocument.FirstChildElement("Korisnici");
  263. XMLElement *pKorisnik;
  264. for (pKorisnik = m_pKorisniciKorisnik->FirstChildElement("Korisnik"); pKorisnik != NULL; pKorisnik = pKorisnik->NextSiblingElement())
  265. {
  266. string ime = pKorisnik->Attribute("ime");
  267. string prezime = pKorisnik->Attribute("prezime");
  268. string username = pKorisnik->Attribute("korisnicko_ime");
  269. string pass = pKorisnik->Attribute("lozinka");
  270. string tip = pKorisnik->Attribute("tip");
  271. m_vKorisnik.push_back(new Korisnik(ime, prezime, username, pass, stoi(tip)));
  272. }
  273. }
  274.  
  275.  
  276.  
  277. void Autocesta::DajIzbornik()
  278. {
  279. int izbornik;
  280.  
  281.  
  282. cout << "1.Prikazi sve naplatne postaje" << endl;
  283. cout << "2.Dodaj naplatnu postaju" << endl;
  284. cout << "3.Dodaj vozilo u skupinu vozila" << endl;
  285. cout << "4.Novi korisnik" << endl;
  286. cin >> izbornik;
  287. system("cls");
  288.  
  289. switch (izbornik)
  290. {
  291. case 1:
  292.  
  293. IspisiPostajeAdmin();
  294. break;
  295. case 2:
  296.  
  297. DodajPostaju();
  298. break;
  299. case 3:
  300.  
  301. DodajVozilo();
  302. break;
  303.  
  304. case 4:
  305. LogIn();
  306. break;
  307.  
  308. default:
  309. cout << "Niste odabrali jednu od ponudenih opcija, pokusajte ponovno" << "\n" << endl;
  310. DajIzbornik();
  311.  
  312. break;
  313. }
  314. }
  315.  
  316. void Autocesta::UcitajPostaje()
  317. {
  318. m_oPostajeXmlDocument.LoadFile("NaplatnePostaje.xml");
  319. m_pPostajeNaplatnaPostaja = m_oPostajeXmlDocument.FirstChildElement("NaplatnaPostaja");
  320. XMLElement *pPostaja;
  321. for (pPostaja = m_pPostajeNaplatnaPostaja->FirstChildElement("Postaja"); pPostaja != NULL; pPostaja = pPostaja->NextSiblingElement())
  322. {
  323. string id = pPostaja->Attribute("ID");
  324. string naziv = pPostaja->Attribute("naziv");
  325. string lat = pPostaja->Attribute("lat");
  326. string lng = pPostaja->Attribute("lng");
  327. m_vPostaje.push_back(new NaplatnePostaje(stoi(id), naziv, stof(lat), stof(lng)));
  328. }
  329.  
  330. }
  331.  
  332. void Autocesta::IspisiPostajeAdmin()
  333. {
  334. int a = 0;
  335. cout << "R.br." << "\t" << "Naplatna postaja" << "\t" << "Lat" << setw(10) << "Lng" << "\t" << "\n";
  336. for (int i = 0; i < m_vPostaje.size(); i++)
  337. {
  338.  
  339. cout << setw(2) << ++a << "." << setw(18) << m_vPostaje[i]->m_sNaziv << setw(15) << m_vPostaje[i]->m_fLat << setw(10) << m_vPostaje[i]->m_fLng << endl;;
  340.  
  341. }
  342. Povratak();
  343. }
  344.  
  345.  
  346. void Autocesta::ZapisiPromjeneXML()
  347. {
  348. m_pPostajeNaplatnaPostaja->DeleteChildren();
  349. for (int i = 0; i < m_vPostaje.size(); i++)
  350. {
  351. XMLElement *newPostaja = m_oPostajeXmlDocument.NewElement("Postaja");
  352. newPostaja->SetAttribute("ID", m_vPostaje[i]->m_nID);
  353. newPostaja->SetAttribute("naziv", (m_vPostaje[i]->m_sNaziv).c_str());
  354. newPostaja->SetAttribute("lat", m_vPostaje[i]->m_fLat);
  355. newPostaja->SetAttribute("lng", m_vPostaje[i]->m_fLng);
  356.  
  357. m_pPostajeNaplatnaPostaja->LinkEndChild(newPostaja);
  358. }
  359. m_oPostajeXmlDocument.SaveFile("NaplatnePostaje.xml");
  360. }
  361.  
  362. void Autocesta::DodajPostaju()
  363.  
  364. {
  365. int id = 0;
  366.  
  367. NaplatnePostaje* pointer = m_vPostaje[0];
  368.  
  369. for (int i = 0; i < m_vPostaje.size(); i++)
  370. {
  371. if (pointer->m_nID < m_vPostaje[i]->m_nID)
  372. {
  373. pointer = m_vPostaje[i];
  374. id = m_vPostaje[i]->m_nID;
  375. }
  376.  
  377. }
  378. cout << "Dodaj naplatnu postaju" << endl;
  379.  
  380. string naziv;
  381. string lat;
  382. string lng;
  383.  
  384. cout << "Unesite naziv: " << endl;
  385. cin >> naziv;
  386.  
  387. cout << "Unesite Lat: " << endl;
  388. cin >> lat;
  389.  
  390. cout << "Unesite Lng: " << endl;
  391. cin >> lng;
  392.  
  393.  
  394. m_vPostaje.push_back(new NaplatnePostaje(++id, naziv, stof(lat), stof(lng)));
  395. ZapisiPromjeneXML();
  396.  
  397. Povratak();
  398. }
  399.  
  400. void Autocesta::Putovanje()
  401. {
  402.  
  403. string s_Polaziste;
  404. int n_PolazisteOdabir;
  405. int n_OdredisteOdabir;
  406. string s_Odrediste;
  407. int n_vozilo;
  408. int n_tip;
  409. float f_skupina=0;
  410. static double d_Udaljenost;
  411. static double d_Cijena;
  412. float f_Trajanje;
  413. double lat1, lon1, lat2, lon2;
  414.  
  415.  
  416. IspisiPostajeKorisnik();
  417. cout << "" << endl;
  418. cout << "Odaberite polaziste" << endl;
  419. cin >> n_PolazisteOdabir;
  420. cout << "Odaberite odrediste" << endl;
  421. cin >> n_OdredisteOdabir;
  422. cout << "" << endl;
  423.  
  424.  
  425.  
  426.  
  427. for (int i = 0; i < m_vPostaje.size(); i++)
  428. {
  429. if (n_PolazisteOdabir == m_vPostaje[i]->m_nID)
  430. {
  431. s_Polaziste = m_vPostaje[i]->m_sNaziv;
  432. lat1 = m_vPostaje[i]->m_fLat;
  433. lon1 = m_vPostaje[i]->m_fLng;
  434. }
  435. if (n_OdredisteOdabir == m_vPostaje[i]->m_nID)
  436. {
  437. s_Odrediste = m_vPostaje[i]->m_sNaziv;
  438. lat2 = m_vPostaje[i]->m_fLat;
  439. lon2 = m_vPostaje[i]->m_fLng;
  440. }
  441. }
  442. cout << "" << endl;
  443. cout << "Odaberite vrstu vozila" << endl;
  444. cout << "" << endl;
  445. IspisiVozila();
  446. cin >> n_vozilo;
  447.  
  448. for (int i = 0; i < m_vVozila.size(); i++)
  449. {
  450. for (int j = 0; j < m_vSkupine.size(); j++)
  451. {
  452. if (n_vozilo = m_vVozila[i]->m_nID && m_vVozila[i]->m_nSkupina == 1 && m_vSkupine[j]->m_nID==1)
  453. {
  454. f_skupina = m_vSkupine[j]->m_fCijena;
  455. }
  456. if (n_vozilo = m_vVozila[i]->m_nID && m_vVozila[i]->m_nSkupina == 2 && m_vSkupine[j]->m_nID == 2)
  457. {
  458. f_skupina = m_vSkupine[j]->m_fCijena;
  459. }
  460. if (n_vozilo = m_vVozila[i]->m_nID && m_vVozila[i]->m_nSkupina == 3 && m_vSkupine[j]->m_nID == 3)
  461. {
  462. f_skupina = m_vSkupine[j]->m_fCijena;
  463. }
  464. if (n_vozilo = m_vVozila[i]->m_nID && m_vVozila[i]->m_nSkupina == 4 && m_vSkupine[j]->m_nID == 4)
  465. {
  466. f_skupina = m_vSkupine[j]->m_fCijena;
  467. }
  468. }
  469. }
  470.  
  471. d_Cijena = (Haversine(lat1, lon1, lat2, lon2)*f_skupina);
  472. d_Udaljenost = Haversine(lat1, lon1, lat2, lon2);
  473. f_Trajanje = (Haversine(lat1, lon1, lat2, lon2) / 120);
  474.  
  475.  
  476. system("cls");
  477. cout << "Od " << s_Polaziste << " " << "do " << s_Odrediste << endl;
  478. cout << "Ukupno kilometara: " << d_Udaljenost << "km" << endl;
  479. cout << "Cestarina: " << d_Cijena << "kn" << endl;
  480. cout << "Trajanje puta: " << f_Trajanje << "h"<<endl;
  481.  
  482. ofstream outputFile;
  483. outputFile.open("Report.txt");
  484. outputFile<< "Od " << s_Polaziste << " " << "do " << s_Odrediste << endl;
  485. outputFile<< "Ukupno kilometara: " << d_Udaljenost << "km" << endl;
  486. outputFile<< "Cestarina: " << d_Cijena << "kn" << endl;
  487. outputFile<< "Trajanje puta: " << f_Trajanje << "h" << endl;
  488. outputFile << " " << endl;
  489. outputFile.close();
  490.  
  491.  
  492. }
  493.  
  494.  
  495.  
  496. void Autocesta::DodajVozilo()
  497. {
  498. int id = 0;
  499.  
  500. Vozilo* pointer = m_vVozila[0];
  501.  
  502. for (int i = 0; i < m_vVozila.size(); i++)
  503. {
  504. if (pointer->m_nID < m_vVozila[i]->m_nID)
  505. {
  506. pointer = m_vVozila[i];
  507. id = m_vVozila[i]->m_nID;
  508. }
  509.  
  510. }
  511.  
  512. cout << "Dodajte vozilo u jednu od 4 skupine vozila" << endl;
  513. cout << "1.) Skupina I" << endl;
  514. cout << "2.) Skupina II" << endl;
  515. cout << "3.) Skupina III" << endl;
  516. cout << "4.) Skupina IV" << endl;
  517.  
  518. string naziv;
  519. int skupina;
  520. int odabir;
  521. cin >> odabir;
  522. switch (odabir)
  523. {
  524. case 1:
  525. skupina = 1;
  526. cout << "Unesite naziv vozila: " << endl;
  527. cin.ignore();
  528. getline(cin, naziv);
  529. break;
  530. case 2:
  531. skupina = 2;
  532. cout << "Unesite naziv vozila: " << endl;
  533. cin.ignore();
  534. getline(cin, naziv);
  535. break;
  536. case 3:
  537. skupina = 3;
  538. cout << "Unesite naziv vozila: " << endl;
  539. cin.ignore();
  540. getline(cin, naziv);
  541. break;
  542. case 4:
  543. skupina = 4;
  544. cout << "Unesite naziv vozila: " << endl;
  545. cin.ignore();
  546. getline(cin, naziv);
  547. break;
  548. default:
  549. cout << "Niste odabrali jednu od ponudenih skupina!" << endl;
  550. break;
  551. }
  552.  
  553. m_vVozila.push_back(new Vozilo(++id,naziv, skupina));
  554. ZapisiPromjeneVozila();
  555. Povratak();
  556. }
  557.  
  558. void Autocesta::Povratak()
  559. {
  560. int a;
  561. cout << endl;
  562. cout << "Prisnite tipku ENTER za povratak na glavni izbornik ili tipku ESC za izlaz iz programa" << endl;
  563. cout << endl;
  564. a = _getch();
  565. if (a == 13)
  566. {
  567. system("cls");
  568. DajIzbornik();
  569. }
  570. else if (a == 27)
  571. {
  572. exit(0);
  573. }
  574. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement