OO1/Lab 3 2021

Izvor: SI Wiki
< ОО1
Datum izmene: 1. februar 2021. u 23:59; autor: KockaAdmiralac (razgovor | doprinosi) (Dodata postavka V1 modifikacija sa L3)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

V1

Postavka zadatka bez modifikacija se može naći na stranici predmeta. Ispod su date modifikacije:

  • (20 poena) Transakcija se stvara sa zadatim računom sa koga se vrši prenos (racun1), računom na koji se prenosi (racun2), iznosom za prenos i datumom transakcije. Svi podaci koji se zadaju prilikom stvaranja mogu da se dohvate. Transakcija sadrži još i informaciju o tome da li je uspešna. Prilikom stvaranja transakcije vrši se prenos zadatog iznosa sa računa racun1 na račun racun2 i postavlja informacija da je transakcija uspešna. Moguće je transakciju proglasiti neuspešnom (~transakcija) i dohvatiti informaciju da li je uspešna (*transakcija). Transakcija se u izlazni tok ispisuje (it<<transakcija) u obliku T:racun1->racun2:iznos-datum-uspeh.
  • (25 poena) Dinarski račun je bankovni račun čija je oznaka valute RSD. Ukoliko se prenos vrši na zadati račun koji je devizni, potrebno je izvršiti konverziju zadatog iznosa iz valute RSD u valutu EUR i na taj konvertovani iznos dodati deviznom računu. Devizni račun je bankovni račun čija je oznaka valute EUR. Devizni račun sadrži srednji kurs po kome može da se vrši konverzija valute EUR u RSD i obrnuto. Srednji kurs je isti za sve račune, može da se dohvati i može da mu se postavi nova vrednost. Ukoliko se prenos vrši na zadati račun koji je dinarski, potrebno je izvršiti konverziju zadatog iznosa iz valute EUR u valutu RSD i taj konvertovani iznos dodati dinarskom računu.
  • (10 poena) Lista sadrži proizvoljan broj podataka nekog tipa. Može da se doda jedan element u listu, kao i da se dohvati broj elemenata liste. Može da se postavi na prvi element, da se prelazi na sledeći element u odnosu na tekući, da se ispita da li postoji tekući element i da se dohvati podatak u tekućem elementu uz mogućnost promene. Moguće je izbaciti tekući element iz liste. Greška je ako ne postoji tekući element u momentu pokušaja dohvatanja i izbacivanja.
  • (10 poena) Klijent je osoba koja sadrži listu bankovnih računa. Stvara se bez računa, a računi mogu naknadno da se dodaju. Moguće je dohvatiti račun sa zadatim brojem računa, greška je ako nema takvog računa. Klijent se izlazni tok ispisuje (it<<klijent) tako što se prvo ispiše osoba, a zatim u zasebnim redovima njeni računi.
  • (25 poena) Evidencija banke je lista klijenata i sadrži listu njihovih transakcija. Stvara se prazna sa zadatim nazivom banke. Moguće je dodati novu transakciju koja će biti stvorena u memoriji za dinamičku dodelu; greška je ako bar jedan vlasnik od dva računa transakcije nije u listi klijenata. Moguće je dohvatiti sve uspešne transakcije koje su se dogodile na zadati datum. Prilikom nestajanja evidencije treba obrisati i sve transakcije. Evidencija se u izlazni tok ispisuje ( ) tako što se prvo ispiše naziv banke, a u zasebnim redovima njeni klijenti.

(5 poena) Napisati glavnu funkciju koja napravi jednu osobu, jedan devizni i jedan dinarski račun čiji je ona vlasnik. Zatim doda neke iznose na te račune, napravi jednu uspešnu transakciju prenosa sa jednog na drugi račun i ispiše transakciju. (5 poena) Napraviti jednog klijenta, jedan devizni i jedan dinarski račun čiji je vlasnik klijent. Zatim klijentu dodati te račune, a računima dodati neki iznos i napraviti jednu transakciju prenosa između ta dva računa. Napraviti evidenciju, dodati joj prethodno napravljenu transakciju i ispisati evidenciju.

V2

V5