OO1/Lab 2 2022

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu

Druga laboratorijska vežba održana je 12. decembra.

V1

Postavka domaćeg zadatka može se pronaći na stranici predmeta.

Napisati na jeziku C++ sledeće klase (klase opremiti onim konstruktorima, destruktorom i operatorima dodele koji su potrebni za bezbedno i efikasno korišćenje klasa):

  • Cvet ima naziv, celobrojnu nabavnu i celobrojnu prodajnu cenu, koji se zadaju pri stvaranju i mogu da se dohvate. Moguće je izračunati zaradu od prodaje cveta. Moguće je uporediti dva cveta na jednakost (cvet1==cvet2). Cvetovi su jednaki ukoliko su im jednaki nazivi. Moguće je ispisati cvet u izlazni tok (it<<cvet) tako što se ispisuje njegov naziv.
  • Buket sadrži proizvoljan broj cvetova. Stvara se prazan, nakon čega je cvetove moguće dodavati pojedinačno. Moguće je izračunati nabavnu i prodajnu cenu buketa. Moguće je izračunati zaradu od prodaje buketa. Moguće je uporediti dva buketa (buket1>buket2) tako što se upoređuju njihove prodajne cene. Moguće je ispisati buket u izlazni tok (it<<buket) tako što se ispisuju svi različiti cvetovi u buketu odvojeni zarezima i prodajna cena buketa u obliku(cvetovi)prodajna_cenaRSD.
  • Vreme se sastoji iz sata i minuta koji se zadaju pri stvaranju (podrazumevano 00:00). Moguće je uporediti dva vremena (vreme1>vreme2). Moguće je ispisati vreme u izlazni tok (it<<vreme) u obliku sati:minuti, pri čemu se oba dela vremena ispisuju na širini od dve cifre sa vodećom nulom po potrebi.
  • Porudžbina se sastoji iz buketa i vremena dostave koji se zadaju pri stvaranju i mogu da se dohvate. Moguće je izračunati zaradu od dostavljene porudžbine kao zbir zarade od prodaje buketa i cene dostave. Cena dostave zavisi od vremena dostave i iznosi 100 dinara ukoliko je vreme dostave između 09:00 i 16:59, odnosno 250 dinara u suprotnom. Moguće je ispisati porudžbinu u izlazni tok (it<<porudzbina) u formatu vreme-buket.
  • Cvećara sadrži proizvoljan broj buketa uređenih rastuće po prodajnoj ceni i celobrojnu zaradu koja je pri stvaranju 1000. Stvara se prazna, nakon čega je bukete moguće dodati pojedinačno. Dodavanje buketa se ignoriše ukoliko je procenat (u odnosu na nabavnu cenu) od prodaje buketa manji od 20%. Pri dodavanju buketa u cvećaru, zarada cvećare se umanjuje za nabavnu cenu buketa. Moguće je prodati buket sa zadate pozicije. Prodati buket se uklanja iz cvećare, a potom se uvećava zarada cvećare za prodajnu cenu buketa. Cvećaru je moguće obavestiti o dostavi zadate porudžbine i tada se zarada cvećare uvećava za zaradu od dostavljene porudžbine.Moguće je ispisati cvećaru u izlazni tok (it<<buket), tako što se u prvom redu ispisuje zarada u obliku zarada=zaradaRSD, a potom se buketi ispisuju u pojedinačnim redovima.
  • Dostavljač cveća se stvara zadavanjem cvećare za koju je angažovan i sadrži određen broj porudžbina, uređenih rastuće po vremenu dostave, čiji je maksimalan broj zadat pri stvaranju. Stvara se prazan, nakon čega je porudžbine moguće dodati pojedinačno. Moguće je dohvatiti trenutni broj porudžbina. Moguće je dostaviti porudžbinu sa najranijim vremenom dostave i tada se cvećara obaveštava o dostavi porudžbine, koja se potom uklanja. Moguće je ispisati dostavljača u izlazni tok (it<<dostavljac) tako što se sve nedostavljene porudžbine ispisuju u zasebnim redovima.

Napisati glavnu funkciju koja pravi cvećaru sa nekoliko buketa i dostavljača sa nekoliko porudžbina koje redom dostavlja. Ispisati cvećaru nakon formiranja i nakon dostave svake porudžbine.


Napomene

Modifikacije su napisane po sećanju studenata koji ih su radili.