Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- enum Kompanija{ Pegasus, TurkishAirlines, AustrianAirlines, FlyEmirates };
- int ID = 1;
- struct Putnik{
- int _putnikID;
- char * _imePrezime;
- float _brojPredjenihMilja;
- void Unos(char * imePrezime)
- {
- int size = strlen(imePrezime) + 1;
- _imePrezime = new char[size];
- strcpy_s(_imePrezime, size, imePrezime);
- _brojPredjenihMilja = 0;
- _putnikID = ID++;
- }
- void Info()
- {
- cout << "[" << _putnikID<<"] "<< _imePrezime << " (" << _brojPredjenihMilja << " milja)" << endl;
- }
- void Dealociraj()
- {
- delete[] _imePrezime;
- _imePrezime = nullptr;
- }
- void DodajPredjeneMilje(int brojMilja)
- {
- _brojPredjenihMilja += brojMilja;
- }
- };
- struct Rezervacija{
- Putnik *_putnik;
- int _oznakaSjedista;
- float _cijena;
- void Unos(Putnik putnik, int oznaka, float cijena){
- _putnik->Unos(putnik._imePrezime);
- _oznakaSjedista = oznaka;
- _cijena = cijena;
- }
- void Info()
- {
- _putnik->Info();
- cout << "Sjediste: " << _oznakaSjedista << " Cijena: " << _cijena << endl;
- }
- void Dealociraj()
- {
- _putnik->Dealociraj();
- }
- };
- struct Let{
- Kompanija *_kompanija;
- char *_pocetak; //pocetna lokacija
- char *_destinacija;
- Rezervacija *_rezervacije;
- int _brojMjesta; //maksimalan broj mjesta na letu
- float _brojMilja; //odnosi se na duzinu leta β broj predjenih milja
- float _cijenaKarte;
- void Unos(Kompanija kompanija, char *pocetak, char *destinacija, int brojMjesta, float brojMilja, float cijena)
- {
- *_kompanija = kompanija;
- int size = strlen(pocetak) + 1;
- _pocetak = new char[size];
- strcpy_s(_pocetak, size, pocetak);
- size = strlen(destinacija) + 1;
- _destinacija = new char[size];
- strcpy_s(_destinacija, size, destinacija);
- _brojMjesta = brojMjesta;
- _rezervacije = new Rezervacija[_brojMjesta];
- Putnik *temp;
- temp->Unos("<SLOBODNO MJESTO>"); // Ε TA RADI OVA LINIJA?
- // Ako unosi putnika, koji umjesto imena ima vrijednost <SLOBODNO MJESTO>
- // ne bi li bilo logicno da se nalazi u donjoj for petlji?
- // Ovako kako stoji, buduci da je ovo poziv funkcije Unos od strukture Let,
- // izvrsice se samo jednom, dakle pri kreiranju leta.
- for (int i = 0; i < _brojMjesta; i++){
- // temp[i]->Unos("<SLOBODNO MJESTO>"); OVAKO TO ZAMISLJAM, s tim da bi onda iznad bilo potrebno
- // inicijalizovati niz ovako: Putnik *temp = new Putnik[_brojMjesta];
- _rezervacije[i].Unos(*temp, i, 0);
- }
- _brojMilja = brojMilja;
- _cijenaKarte = cijena;
- }
- void Dealociraj(){
- /* Definisati funkciju vodeci racuna o oslobadjanju svih resursa koji su alocirani za potrebe objekta tipa Let */
- }
- bool AddRezervaciju(Putnik *p)
- {
- //_rezervacije->Unos();
- /*
- Na samom pocetku, funkcija treba ispisati listu svih SLOBODNIH sjedista na letu, te omoguciti odabir nekog od njih.
- Prilikom formiranja cijene karte voditi racuna o broju predjenih milja;
- ako je putnik presao od 10000 do 50000 milja onda ostvaruje popust od 10% na punu cijenu karte (_cijenaKarte),
- od 50000 do 100000 milja ostvaruje popust od 20% na punu cijenu karte, a preko 100000 milja ostvaruje popust od 30% na punu cijenu karte.
- Onemoguciti dodavanje rezervacija sa identicnim putnicima (isti putnikID i imePrezime).
- U zavisnosti od uspjesnosti funkcija vraca true ili false
- */
- }
- bool RemoveRezervaciju(int oznakaSjedista)
- {
- /*
- Funkcija uklanja rezervaciju na sjedistu cija je oznaka proslijedjena kao parametar funkcije, te vraca vrijednost.
- U slucaju da oznaceno mjesto nije rezervisano ili ne postoji na tom letu, funkcija vraca vrijednost false
- */
- }
- };
- float GetMiljeByKompanija(Let *letovi, int maxLetova, Kompanija k, Putnik p)
- {
- /*funkcija vraca broj milja koje je putnik p ostvario putujuci sa kompanijom k*/
- return 0;
- }
- void main()
- {
- Let let;
- char *pocetak = "Sarajevo";
- char *destinacija = "London";
- int mjesta = 50;
- float milje = 1190;
- float cijena = 149.0;
- // void Unos(Kompanija kompanija, char *pocetak, char *destinacija, int brojMjesta, float brojMilja, float cijena)
- let.Unos(Pegasus, pocetak, destinacija, mjesta, milje, cijena);
- /** ================ **/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement