Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ucenici.cpp
- #include "stdafx.h"
- #include "Skola.h"
- #include "Ucenik.h"
- #include <iostream>
- #include <fstream>
- #include <vector>
- Skola::Skola()
- {
- UcitajUcenike();
- }
- Skola::~Skola()
- {
- }
- void Skola::UcitajUcenike()
- {
- m_oXMLUcenici.LoadFile("OOP_XML_ucenici.xml");
- m_pRoot = m_oXMLUcenici.FirstChildElement("dataset");
- XMLElement *pchild;
- for (pchild = m_pRoot->FirstChildElement("record"); pchild != NULL; pchild = pchild->NextSiblingElement())
- {
- XMLElement *pId = pchild->FirstChildElement("id");
- int nUcenikId = atoi(pId->GetText());
- XMLElement *pIme = pchild->FirstChildElement("ime");
- string sUcenikIme = pIme->GetText();
- XMLElement *pPrezime = pchild->FirstChildElement("prezime");
- string sUcenikPrezime = pPrezime->GetText();
- XMLElement *pRazred = pchild->FirstChildElement("razred");
- int nUcenikRazred = atoi(pRazred->GetText());
- XMLElement*pOznaka = pchild->FirstChildElement("oznaka_razreda");
- string sUcenikOznaka = pOznaka->GetText();
- XMLElement *pMjesto = pchild->FirstChildElement("mjesto");
- string sUcenikMjesto = pMjesto->GetText();
- m_vUcenik.push_back(new Ucenik(nUcenikId, sUcenikIme, sUcenikPrezime, nUcenikRazred, sUcenikOznaka, sUcenikMjesto));
- }
- }
- void Skola::Izbornik()
- {
- int nOdabir;
- cout << "Odaberite Zeljenu opciju!\n1. Ispisi sve ucenike\n2. Statistika\n3. Pretraga ucenika\n4. Kreiraj TXT datoteku" << endl;
- cin >> nOdabir;
- switch (nOdabir)
- {
- case 1:
- IspisiSveUcenike();
- break;
- case 2:
- Statistika();
- break;
- case 3:
- PretraziUcenika();
- break;
- case 4:
- TXTGrad();
- break;
- default:
- cout << "Odabrali ste nepostojecu opciju!";
- break;
- }
- }
- void Skola::IspisiSveUcenike()
- {
- system("CLS");
- for (int i = 0; i < m_vUcenik.size(); i++)
- {
- cout << "_________________________________________" << endl;
- cout << "Ime:" << m_vUcenik[i]->m_sIme << endl;
- cout << "Prezime:" << m_vUcenik[i]->m_sPrezime << endl;
- cout << "Razred:" << m_vUcenik[i]->m_nRazred << "." << m_vUcenik[i]->m_sOznaka << endl;
- cout << "Mjesto:" << m_vUcenik[i]->m_sMjesto << endl;
- cout << "_________________________________________" << endl << endl;
- }
- getchar();
- }
- void Skola::Statistika()
- {
- int ucenici_slatina = 0;
- int ucenici_suhopolje = 0;
- int ucenici_virovitica = 0;
- int ucenici_pitomaca = 0;
- int ucenici_orahovica = 0;
- system("CLS");
- for (int i = 0; i < m_vUcenik.size(); i++)
- {
- if (m_vUcenik[i]->m_sMjesto == "Slatina")
- {
- ucenici_slatina++;
- }
- if (m_vUcenik[i]->m_sMjesto == "Suhopolje")
- {
- ucenici_suhopolje++;
- }
- if (m_vUcenik[i]->m_sMjesto == "Virovitica")
- {
- ucenici_virovitica++;
- }
- if (m_vUcenik[i]->m_sMjesto == "Pitomaca")
- {
- ucenici_pitomaca++;
- }
- if (m_vUcenik[i]->m_sMjesto == "Orahovica")
- {
- ucenici_orahovica++;
- }
- }
- cout << "Broj ucenika iz Slatine: " << ucenici_slatina << endl;
- cout << "Broj ucenika iz Suhopolja: " << ucenici_suhopolje << endl;
- cout << "Broj ucenika iz Virovitice: " << ucenici_virovitica << endl;
- cout << "Broj ucenika iz Pitomace: " << ucenici_pitomaca << endl;
- cout << "Broj ucenika iz Orahovice: " << ucenici_orahovica << endl;
- getchar();
- }
- void Skola::PretraziUcenika()
- {
- system("CLS");
- cout << "Unesite ime ili prezime koje zelite pretraziti" << endl;
- string sImeUcenika;
- cin >> sImeUcenika;
- system("CLS");
- bool provjera = false;
- for (int i = 0; i < m_vUcenik.size(); i++)
- {
- if (sImeUcenika == m_vUcenik[i]->m_sIme || sImeUcenika == m_vUcenik[i]->m_sPrezime)
- {
- provjera = true;
- cout << "_________________________________________" << endl;
- cout << "Ime:" << m_vUcenik[i]->m_sIme << endl;
- cout << "Prezime:" << m_vUcenik[i]->m_sPrezime << endl;
- cout << "Razred:" << m_vUcenik[i]->m_nRazred << "." << m_vUcenik[i]->m_sOznaka << endl;
- cout << "Mjesto:" << m_vUcenik[i]->m_sMjesto << endl;
- cout << "_________________________________________" << endl << endl;
- }
- }
- if (!provjera)
- {
- cout << "Nema rezultata!";
- }
- getchar();
- }
- string Skola::Virovitica()
- {
- string sVirovitica = "Ucenici iz Virovitice: \n";
- for (int i = 0; i < m_vUcenik.size(); i++)
- {
- if ("Virovitica" == m_vUcenik[i]->m_sMjesto)
- {
- sVirovitica += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
- }
- }
- return sVirovitica;
- }
- string Skola::Slatina()
- {
- string sSlatina = "\nUcenici iz Slatine: \n";
- for (int i = 0; i < m_vUcenik.size(); i++)
- {
- if ("Slatina" == m_vUcenik[i]->m_sMjesto)
- {
- sSlatina += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
- }
- }
- return sSlatina;
- }
- string Skola::Pitomaca()
- {
- string sPitomaca = "\nUcenici iz Pitomace: \n";
- for (int i = 0; i < m_vUcenik.size(); i++)
- {
- if ("Pitomaca" == m_vUcenik[i]->m_sMjesto)
- {
- sPitomaca += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
- }
- }
- return sPitomaca;
- }
- string Skola::Suhopolje()
- {
- string sSuhopolje = "\nUcenici iz Suhopolja: \n";
- for (int i = 0; i < m_vUcenik.size(); i++)
- {
- if ("Suhopolje" == m_vUcenik[i]->m_sMjesto)
- {
- sSuhopolje += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
- }
- }
- return sSuhopolje;
- }
- string Skola::Orahovica()
- {
- string sOrahovica = "\nUcenici iz Orahovice: \n";
- for (int i = 0; i < m_vUcenik.size(); i++)
- {
- if ("Orahovica" == m_vUcenik[i]->m_sMjesto)
- {
- sOrahovica += m_vUcenik[i]->m_sIme + " " + m_vUcenik[i]->m_sPrezime + "\n";
- }
- }
- return sOrahovica;
- }
- void Skola::TXTGrad()
- {
- ofstream a_file("Gradovi.txt", ios::out | ios::trunc);
- a_file << Virovitica() << Slatina() << Suhopolje() << Orahovica() << Pitomaca();
- a_file.close();
- system("CLS");
- cout << "TXT datoteka kreirana!";
- getchar();
- }
- http://i.imgur.com/A1zr4AZ.png
- Main.cpp
- using namespace std;
- using namespace tinyxml2;
- int main()
- {
- Skola skola;
- skola.Izbornik();
- getchar();
- return 0;
- }
- Moj.cpp
- #include "stdafx.h"
- #include "Autocesta.h"
- Autocesta::Autocesta()
- {
- UcitajKorisnike();
- UcitajPostaje();
- UcitajSkupine();
- UcitajVozila();
- }
- Autocesta::~Autocesta()
- {
- }
- void Autocesta::UcitajKorisnike()
- {
- m_oKorisnikXmlDocument.LoadFile("Korisnici.xml");
- m_pKorisniciKorisnik = m_oKorisnikXmlDocument.FirstChildElement("Korisnici");
- XMLElement *pKorisnik;
- for (pKorisnik = m_pKorisniciKorisnik->FirstChildElement("Korisnik"); pKorisnik != NULL; pKorisnik = pKorisnik->NextSiblingElement())
- {
- string ime = pKorisnik->Attribute("ime");
- string prezime = pKorisnik->Attribute("prezime");
- string username = pKorisnik->Attribute("korisnicko_ime");
- string pass = pKorisnik->Attribute("lozinka");
- string tip = pKorisnik->Attribute("tip");
- m_vKorisnik.push_back(new Korisnik(ime, prezime, username, pass, stoi(tip)));
- }
- }
- void Autocesta::DajIzbornik()
- {
- int izbornik;
- cout << "1.Prikazi sve naplatne postaje" << endl;
- cout << "2.Dodaj naplatnu postaju" << endl;
- cout << "3.Dodaj vozilo u skupinu vozila" << endl;
- cout << "4.Novi korisnik" << endl;
- cin >> izbornik;
- system("cls");
- switch (izbornik)
- {
- case 1:
- IspisiPostajeAdmin();
- break;
- case 2:
- DodajPostaju();
- break;
- case 3:
- DodajVozilo();
- break;
- case 4:
- LogIn();
- break;
- default:
- cout << "Niste odabrali jednu od ponudenih opcija, pokusajte ponovno" << "\n" << endl;
- DajIzbornik();
- break;
- }
- }
- void Autocesta::UcitajPostaje()
- {
- m_oPostajeXmlDocument.LoadFile("NaplatnePostaje.xml");
- m_pPostajeNaplatnaPostaja = m_oPostajeXmlDocument.FirstChildElement("NaplatnaPostaja");
- XMLElement *pPostaja;
- for (pPostaja = m_pPostajeNaplatnaPostaja->FirstChildElement("Postaja"); pPostaja != NULL; pPostaja = pPostaja->NextSiblingElement())
- {
- string id = pPostaja->Attribute("ID");
- string naziv = pPostaja->Attribute("naziv");
- string lat = pPostaja->Attribute("lat");
- string lng = pPostaja->Attribute("lng");
- m_vPostaje.push_back(new NaplatnePostaje(stoi(id), naziv, stof(lat), stof(lng)));
- }
- }
- void Autocesta::IspisiPostajeAdmin()
- {
- int a = 0;
- cout << "R.br." << "\t" << "Naplatna postaja" << "\t" << "Lat" << setw(10) << "Lng" << "\t" << "\n";
- for (int i = 0; i < m_vPostaje.size(); i++)
- {
- 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;;
- }
- Povratak();
- }
- void Autocesta::ZapisiPromjeneXML()
- {
- m_pPostajeNaplatnaPostaja->DeleteChildren();
- for (int i = 0; i < m_vPostaje.size(); i++)
- {
- XMLElement *newPostaja = m_oPostajeXmlDocument.NewElement("Postaja");
- newPostaja->SetAttribute("ID", m_vPostaje[i]->m_nID);
- newPostaja->SetAttribute("naziv", (m_vPostaje[i]->m_sNaziv).c_str());
- newPostaja->SetAttribute("lat", m_vPostaje[i]->m_fLat);
- newPostaja->SetAttribute("lng", m_vPostaje[i]->m_fLng);
- m_pPostajeNaplatnaPostaja->LinkEndChild(newPostaja);
- }
- m_oPostajeXmlDocument.SaveFile("NaplatnePostaje.xml");
- }
- void Autocesta::DodajPostaju()
- {
- int id = 0;
- NaplatnePostaje* pointer = m_vPostaje[0];
- for (int i = 0; i < m_vPostaje.size(); i++)
- {
- if (pointer->m_nID < m_vPostaje[i]->m_nID)
- {
- pointer = m_vPostaje[i];
- id = m_vPostaje[i]->m_nID;
- }
- }
- cout << "Dodaj naplatnu postaju" << endl;
- string naziv;
- string lat;
- string lng;
- cout << "Unesite naziv: " << endl;
- cin >> naziv;
- cout << "Unesite Lat: " << endl;
- cin >> lat;
- cout << "Unesite Lng: " << endl;
- cin >> lng;
- m_vPostaje.push_back(new NaplatnePostaje(++id, naziv, stof(lat), stof(lng)));
- ZapisiPromjeneXML();
- Povratak();
- }
- void Autocesta::Putovanje()
- {
- string s_Polaziste;
- int n_PolazisteOdabir;
- int n_OdredisteOdabir;
- string s_Odrediste;
- int n_vozilo;
- int n_tip;
- float f_skupina=0;
- static double d_Udaljenost;
- static double d_Cijena;
- float f_Trajanje;
- double lat1, lon1, lat2, lon2;
- IspisiPostajeKorisnik();
- cout << "" << endl;
- cout << "Odaberite polaziste" << endl;
- cin >> n_PolazisteOdabir;
- cout << "Odaberite odrediste" << endl;
- cin >> n_OdredisteOdabir;
- cout << "" << endl;
- for (int i = 0; i < m_vPostaje.size(); i++)
- {
- if (n_PolazisteOdabir == m_vPostaje[i]->m_nID)
- {
- s_Polaziste = m_vPostaje[i]->m_sNaziv;
- lat1 = m_vPostaje[i]->m_fLat;
- lon1 = m_vPostaje[i]->m_fLng;
- }
- if (n_OdredisteOdabir == m_vPostaje[i]->m_nID)
- {
- s_Odrediste = m_vPostaje[i]->m_sNaziv;
- lat2 = m_vPostaje[i]->m_fLat;
- lon2 = m_vPostaje[i]->m_fLng;
- }
- }
- cout << "" << endl;
- cout << "Odaberite vrstu vozila" << endl;
- cout << "" << endl;
- IspisiVozila();
- cin >> n_vozilo;
- for (int i = 0; i < m_vVozila.size(); i++)
- {
- for (int j = 0; j < m_vSkupine.size(); j++)
- {
- if (n_vozilo = m_vVozila[i]->m_nID && m_vVozila[i]->m_nSkupina == 1 && m_vSkupine[j]->m_nID==1)
- {
- f_skupina = m_vSkupine[j]->m_fCijena;
- }
- if (n_vozilo = m_vVozila[i]->m_nID && m_vVozila[i]->m_nSkupina == 2 && m_vSkupine[j]->m_nID == 2)
- {
- f_skupina = m_vSkupine[j]->m_fCijena;
- }
- if (n_vozilo = m_vVozila[i]->m_nID && m_vVozila[i]->m_nSkupina == 3 && m_vSkupine[j]->m_nID == 3)
- {
- f_skupina = m_vSkupine[j]->m_fCijena;
- }
- if (n_vozilo = m_vVozila[i]->m_nID && m_vVozila[i]->m_nSkupina == 4 && m_vSkupine[j]->m_nID == 4)
- {
- f_skupina = m_vSkupine[j]->m_fCijena;
- }
- }
- }
- d_Cijena = (Haversine(lat1, lon1, lat2, lon2)*f_skupina);
- d_Udaljenost = Haversine(lat1, lon1, lat2, lon2);
- f_Trajanje = (Haversine(lat1, lon1, lat2, lon2) / 120);
- system("cls");
- cout << "Od " << s_Polaziste << " " << "do " << s_Odrediste << endl;
- cout << "Ukupno kilometara: " << d_Udaljenost << "km" << endl;
- cout << "Cestarina: " << d_Cijena << "kn" << endl;
- cout << "Trajanje puta: " << f_Trajanje << "h"<<endl;
- ofstream outputFile;
- outputFile.open("Report.txt");
- outputFile<< "Od " << s_Polaziste << " " << "do " << s_Odrediste << endl;
- outputFile<< "Ukupno kilometara: " << d_Udaljenost << "km" << endl;
- outputFile<< "Cestarina: " << d_Cijena << "kn" << endl;
- outputFile<< "Trajanje puta: " << f_Trajanje << "h" << endl;
- outputFile << " " << endl;
- outputFile.close();
- }
- void Autocesta::DodajVozilo()
- {
- int id = 0;
- Vozilo* pointer = m_vVozila[0];
- for (int i = 0; i < m_vVozila.size(); i++)
- {
- if (pointer->m_nID < m_vVozila[i]->m_nID)
- {
- pointer = m_vVozila[i];
- id = m_vVozila[i]->m_nID;
- }
- }
- cout << "Dodajte vozilo u jednu od 4 skupine vozila" << endl;
- cout << "1.) Skupina I" << endl;
- cout << "2.) Skupina II" << endl;
- cout << "3.) Skupina III" << endl;
- cout << "4.) Skupina IV" << endl;
- string naziv;
- int skupina;
- int odabir;
- cin >> odabir;
- switch (odabir)
- {
- case 1:
- skupina = 1;
- cout << "Unesite naziv vozila: " << endl;
- cin.ignore();
- getline(cin, naziv);
- break;
- case 2:
- skupina = 2;
- cout << "Unesite naziv vozila: " << endl;
- cin.ignore();
- getline(cin, naziv);
- break;
- case 3:
- skupina = 3;
- cout << "Unesite naziv vozila: " << endl;
- cin.ignore();
- getline(cin, naziv);
- break;
- case 4:
- skupina = 4;
- cout << "Unesite naziv vozila: " << endl;
- cin.ignore();
- getline(cin, naziv);
- break;
- default:
- cout << "Niste odabrali jednu od ponudenih skupina!" << endl;
- break;
- }
- m_vVozila.push_back(new Vozilo(++id,naziv, skupina));
- ZapisiPromjeneVozila();
- Povratak();
- }
- void Autocesta::Povratak()
- {
- int a;
- cout << endl;
- cout << "Prisnite tipku ENTER za povratak na glavni izbornik ili tipku ESC za izlaz iz programa" << endl;
- cout << endl;
- a = _getch();
- if (a == 13)
- {
- system("cls");
- DajIzbornik();
- }
- else if (a == 27)
- {
- exit(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement