Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.31 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. /*     Vježbe 1 - Principi OOP. klase, objekti.
  5. Zadatak: Na osnovu opisa sistema prepoznati osnovne klase i atribute, kao i njihove relacije, te implementirati osnovne metode koje omogucavaju kreiranje i
  6. ispis narudzbi klijentu. Obavezno implementirati Get i Set metode.
  7.  
  8. Tema: e-Restoran
  9.  
  10. Namjena aplikacije e-Restoran jeste da omoguci kreiranje narudzbi klijentima restorana putem standardnih PC i mobilnih uredjaja.
  11. U procesu kreiranja narudzbe neophodno je da klijent obavi registraciju gdje upisuje svoje osnovne podatke: ime, prezime, kontakt broj i adresu.
  12. Nakon uspjesne registracije klijenti mogu da kreiraju narudzbu na osnovu online ponude odabranog restorana. Ponuda restorana se sastoji od jela i pica.
  13. Uz svako jelo i pice se prikazuje kratak opis i cijena. Narudzba koju klijent kreira sadrzi najmanje jedno jelo ili pice, ukupnu cijenu narudzbe i status isporuke.
  14.  
  15. */
  16.  
  17. class Klijent
  18. {
  19.     char *_ime;
  20.     char *_prezime;
  21.     char *_kontaktBroj;
  22.     char *_adresa;
  23.     bool uspjesno;
  24. public:
  25.     Klijent()
  26.     {
  27.         _ime = nullptr;
  28.         _prezime = nullptr;
  29.         _kontaktBroj = nullptr;
  30.         _adresa = nullptr;
  31.         uspjesno = false;
  32.     }
  33.     void Registracija(char *ime, char *prezime, char *kontaktBroj, char *adresa)
  34.     {
  35.         int duzina=strlen(ime) + 1;
  36.         _ime = new char[duzina];
  37.         strcpy_s(_ime,duzina,ime);
  38.         duzina = strlen(prezime) + 1;
  39.         _prezime = new char[duzina];
  40.         strcpy_s(_prezime, duzina, prezime);
  41.         duzina = strlen(kontaktBroj) + 1;
  42.         _kontaktBroj = new char[duzina];
  43.         strcpy(_kontaktBroj, kontaktBroj);
  44.         duzina = strlen(adresa) + 1;
  45.         _adresa = new char[duzina];
  46.         strcpy_s(_adresa, duzina, adresa);
  47.         uspjesno = true;
  48.     }
  49.     char *getAdresa() { return _adresa; }
  50.     char *getIme() { return _ime; }
  51.     char *getPrezime() { return _prezime; }
  52.     char *getBroj() { return _kontaktBroj; }
  53.     void setIme(char *novoIme) {
  54.         delete[] _ime;
  55.         int duzina = strlen(novoIme) + 1;
  56.         _ime = new char[duzina];
  57.         strcpy_s(_ime, duzina, novoIme);
  58.     }
  59.     void Ispiss()
  60.     {
  61.         cout << _ime << " " << _prezime <<" "<<_kontaktBroj << " " << _adresa << endl;
  62.     }
  63.     ~Klijent() {
  64.         delete[] _ime;
  65.         _ime = nullptr;
  66.         delete[] _prezime;
  67.         _prezime = nullptr;
  68.         delete[] _kontaktBroj;
  69.         _kontaktBroj = nullptr;
  70.         delete[] _adresa;
  71.         _adresa = nullptr;
  72.     }
  73. };
  74.  
  75.  
  76.  
  77. char *crt = "\n------------------------------------\n";
  78. class Jelo
  79. {
  80.     int brojJela;
  81.     char *_jelo[5];
  82.     double _cijena[5];
  83.     char *opisi[5];
  84. public:
  85.     Jelo(){
  86.         brojJela = 0;
  87.         for (int i = 0; i < 5; i++)
  88.         {
  89.             _jelo[i] = nullptr;
  90.             _cijena[i] = 0;
  91.             opisi[i] = nullptr;
  92.         }
  93.     }
  94.     void DodajJelo(char *jelo,double cijena,char *opis)
  95.     {
  96.         _jelo[brojJela] = new char[strlen(jelo) + 1];
  97.         strcpy_s(_jelo[brojJela], strlen(jelo) + 1, jelo);
  98.         opisi[brojJela] = new char[strlen(opis) + 1];
  99.         strcpy_s(opisi[brojJela], strlen(opis) + 1, opis);
  100.         _cijena[brojJela]=cijena;
  101.         brojJela++;
  102.     }
  103.     void Ispis()
  104.     {
  105.         for (int i = 0; i < 5; i++)
  106.         {
  107.             if (_jelo[i] != nullptr)
  108.             {
  109.                 cout << _jelo[i] << " " << _cijena[i]<<" km" << endl;
  110.                 cout << "Opis jela-> " << opisi[i] << crt;
  111.             }
  112.         }
  113.     }
  114.     ~Jelo() {
  115.         for (int i = 0; i < 5; i++)
  116.         {
  117.             delete[] _jelo[i];
  118.             _jelo[i] = nullptr;
  119.             delete[] opisi[i];
  120.             opisi[i] = nullptr;
  121.         }
  122.     }
  123. };
  124.  
  125.  
  126. class Pice
  127. {
  128.     int brojPica;
  129.     char *_pice[5];
  130.     double _cijena[5];
  131.     char *opisi[5];
  132. public:
  133.     Pice() {
  134.         brojPica = 0;
  135.         for (int i = 0; i < 5; i++)
  136.         {
  137.             _pice[i] = nullptr;
  138.             _cijena[i] = 0;
  139.             opisi[i] = nullptr;
  140.         }
  141.     }
  142.     void DodajPice(char *pice,double cijena,char *opis)
  143.     {
  144.         _pice[brojPica] = new char[strlen(pice) + 1];
  145.         strcpy_s(_pice[brojPica], strlen(pice) + 1, pice);
  146.         opisi[brojPica] = new char[strlen(opis) + 1];
  147.         strcpy_s(opisi[brojPica], strlen(opis) + 1, opis);
  148.         _cijena[brojPica] = cijena;
  149.         brojPica++;
  150.     }
  151.     void Ispis()
  152.     {
  153.         for (int i = 0; i < 5; i++)
  154.         {
  155.             if (_pice[i] != nullptr)
  156.             {
  157.                 cout << _pice[i]<<" "<<_cijena[i]<<" km" << endl;
  158.                 cout << "Opis pica-> " << opisi[i] << crt;
  159.             }
  160.         }
  161.     }
  162.     ~Pice() {
  163.         for (int i = 0; i < 5; i++)
  164.         {
  165.             delete[] _pice[i];
  166.             _pice[i] = nullptr;
  167.             delete[] opisi[i];
  168.             opisi[i] = nullptr;
  169.         }
  170.     }
  171. };
  172.  
  173.  
  174. class Narudzba:public Klijent
  175. {
  176.     //int IDnarudzbe;
  177.  
  178. };
  179.  
  180. class Restoran :public Jelo, public Pice,public Narudzba
  181. {
  182.     char *_naziv;
  183.     char *_mjesto;
  184. public:
  185.     Restoran() {
  186.         _naziv = nullptr;
  187.         _mjesto = nullptr;
  188.     }
  189.     void Podaci(char *naziv, char *lokacija)
  190.     {
  191.         _naziv = new char[strlen(naziv) + 1];
  192.         strcpy(_naziv, naziv);
  193.         _mjesto = new char[strlen(lokacija) + 1];
  194.         strcpy(_mjesto, lokacija);
  195.     }
  196.     void Meni()
  197.     {
  198.         Jelo::Ispis();
  199.         Pice::Ispis();
  200.     }
  201.     ~Restoran() {
  202.         delete[] _naziv;
  203.         _naziv = nullptr;
  204.         delete[] _mjesto;
  205.         _mjesto = nullptr;
  206.     }
  207.     void Ispis()
  208.     {
  209.         cout << "Naziv " << _naziv << endl;
  210.         cout << "Lokacija " << _mjesto << endl;
  211.     }
  212. };
  213.  
  214. int main()
  215. {
  216.     Restoran rest;
  217.     rest.Registracija("Haris", "Handzic", "061521431", "Delahmetovica bb");
  218.     //Klijent::Ispiss;
  219.     //rest.Klijent::Ispiss;
  220.     rest.Ispiss();
  221.     rest.Podaci("Kosmos", "Centar");
  222.     rest.Ispis();
  223.     rest.DodajJelo("Becka snicla", 11.70, "Pileca snicla na becki nacin");
  224.     rest.DodajJelo("Cevapi", 5, "Ljepote bosanske");
  225.     rest.DodajPice("Sok od jagode", 2.25, "Negazirani gusti sok");
  226.     rest.DodajPice("kola", 2.30, "Gazirano osvjezavajuce pice");
  227.     rest.Meni();
  228.     system("pause");
  229.     return 0;
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement