Skip to content

mdino/Red-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

U programskom jeziku C++ napišite program koji će simulirati red u banci. Program treba raditi neovisno o implementaciji reda.

a. Napišite funkciju koja će generirati niz od N četvorki <ai, bi, ci, di> slučajnih brojeva. Korisnik odmah nakon pokretanja programa putem tipkovnice unosi vrijednost N za slučajno generirane trojke. Svaka slučajno generirana četvorka predstavlja klijenta u redu sa prioritetnim načinom posluživanja od strane djelatnika banke na šalteru. Svaki klijent ulazi u red ai jedinica vremena nakon prethodnog. Nakon što klijent dođe na šalter, on/ona obavlja transakciju koja traje bi vremenskih jedinica te potom izlazi iz reda i napušta banku. Oba broja (ai i bi) mogu poprimiti vrijednosti između 100 i 500. Treći broj (ci) predstavlja prioritet klijenta, a može poprimiti vrijednosti između 1 i 6 (1 – umirovljenici, 2 – invalidi, 3 – trudnice, 4 – VIP klijenti banke, 5 – ostali klijenti banke, 6 – nisu klijenti banke) gdje 1 predstavlja najviši, a 6 najniži prioritet. Posljednji broj (di) označava transakciju koju klijent želi obaviti (1 – uplata, 2 - isplata, 3 - plaćanje računa, 4 – krediti). Kod generiranja slučajnih brojeva potrebno je u obzir uzeti sve nemoguće scenarije (primjerice, osobe koje nisu klijenti banke ne mogu obaviti transakciju isplate i sl.).

b. Napišite funkciju koja će dodavati zapise o klijentima banke u red. Zapis se treba sastojati od imena i prezimena klijenta, datuma rođenja, stanja na tekućem računu (u kunama) i stanja na deviznom računu (u valuti koju samostalno odaberete). Unesite po pet unosa za svaku vrstu transakcije koju treba obaviti. Ukoliko klijent sa višim prioritetom dođe u red klijenata sa nižim prioritetima, funkcija ga stavlja na šalter. Ukoliko klijenti u redu imaju isti prioritet, tada se oni poslužuju slijedno tj. prema vremenu dolaska u red. Potrebno je ispisati sve klijente koji na računu imaju više od 10.000,00 kuna u odabranoj stranoj valuti.

c. Napišite funkciju koja će simulirati red brzih transakcija te u njih pustiti sve osobe koje žele obaviti transakciju plaćanja računa. U redu brzih transakcija se također poštuje prioritet klijenta. Po premještanju osoba sa transakcijama plaćanja računa u brzi red, redoslijed preostalih klijenata u glavnom redu treba ostati nepromijenjen. Potrebno je ispisati posebno stanje glavnog, a posebno brzog reda.

d. Napišite funkciju koja će iz glavnog reda izbrisati sve VIP klijente mlađe od 30 godina koji žele izvršiti transakciju uplate, a na tekućem računu imaju manje od sto kuna te sve umirovljenike koji žele obaviti transakciju isplate, a na računu imaju više od pet tisuća kuna. Redoslijed preostalih klijenata u glavnom redu mora ostati nepromijenjen. Potrebno je ispisati stanje na redu.

e. Napišite funkciju koja će simulirati otvaranje novog šaltera u banci. Po otvaranju novog šaltera, 30% klijenata koji se nalaze pri kraju glavnog reda će požuriti prema novom šalteru gdje će prvi u redu biti klijent koji je u glavnom redu bio posljednji u redu (dakle klijenti će u red doći obrnutim redoslijedom u odnosu na glavni red). Potrebno je ispisati stanje u novom i glavnom redu. U realizaciji ove funkcije nije dozvoljeno koristiti pomoćni red već rekurziju.

About

FOI - red - c++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published