Sunteți pe pagina 1din 3

Semestrul I

Laborator 5 Programare III


săptămâna 28.10.2019 –1.11.2019
OBIECTIVE:

- Însuşirea fenomenului de moştenire în Java prin crearea claselor derivate


- Folosirea claselor abstracte
- Interfețe
- Excepții

1. (Gestionare Banca) Modelaţi activitatea unui ghişeu bancar. Sistemul este


format din următoarele entităţi, cu atributele corespunzătoare:

a. Banca: clienţi (tablou de elemente de tip Client); codBanca (şir de


caractere)

b. ContBancar: numarCont (String); suma(float)

c. Client: nume (String); adresa (String); conturi (tablou de elemente


de tip ContBancar; un client poate să aibă cel puţin un cont, dar nu mai
mult de cinci conturi)

Conturile bancare pot fi în RON şi în EUR. Pentru conturile în RON, dobânda se


calculează astfel: 0,3 RON pe zi pentru sume sub 500 RON si 0,8 RON pe zi pentru
sume mai mari. Conturile în EUR au o dobândă de 0,1 EUR pe zi. Operaţiunile posibile
asupra unui cont sunt depunerea sau extragera unei sume specificate. Transferuri se pot
efectua doar între conturile în RON (public void transfer(ContBancar contDest, float
suma)).

Toate conturile implementează o interfaţa Operaţiuni care are metodele:


- public float getSumaTotala() //la suma existentă în cont se adaugă dobânda
aferentă
- public float getDobanda()
- public void depunere(ContBancar contDest, float suma)
- public void extragere (ContBancar contDest, float suma)
Toate clasele vor avea constructori şi metode de prelucrare şi de afişare a datelor
membru. De asemenea, se va crea o clasă ClientBanca pentru instanţierea de obiecte
ale celor trei clase specificate şi realizarea de scenarii de lucru cu conturile.
2. Se consideră o ierarhie de obiecte reprezentând aparate electrice sau electronice
dintr-o încăpere. De asemenea se va considera existenţa unui controler care poate opri
seara, respectiv porni dimineaţa acele aparate care implementează interfaţa
(protocolul) "Intreruptibil".

Să se scrie un program care implementează ierarhia din figură.


Constrângeri:
a. Interfaţa Intreruptibil va avea 2 metode: opresteSeara(), pornesteDimineata()
b. Clasa abstractă Aparat va avea atributele: putereConsumata şi pornit (boolean),
metodele porneste(), opreste(), aflaStare() şi o metodă abstractă stare() care va
determina starea aparatului
c. Clasele Electronic şi Electric vor fi declarate abstracte
d. Clasa Fax va avea atributul rataTransmisie; clasa Calculator – frecvenţa, memoria,
clasa Monitor – diagonala, clasa Radio – marca.
e. Se va crea un tablou format din cele 6 aparate şi se vor face următoarele operaţii:
aparatele se pornesc dimineaţa, se afişează starea lor în timpul zilei, seara se opresc, se
afişează starea lor noaptea şi se pornesc din nou dimineaţa, afişându-se starea lor.

3. Scrieţi o clasa Coordonate care conţine două câmpuri latitudine şi longitudine.


Latitudinea este o valoare reală cuprinsă între [-90, 90] de grade şi longitudinea
între [-180, 180] de grade. Realizaţi metode de setare a latitudinii, longitudinii şi
translatarea unui punct în alt punct (modificarea poziţiei curente), trataţi excepţiile
care pot apărea. Definiţi o clasă de excepţii proprie.

4. Să se scrie un program care citeşte de la tastatură perechi de numere în care primul


număr trebuie să fie mai mic decât al doilea. Dacă această condiţie nu este
îndeplinită, folosind mecanismul excepţiilor, se va semnala eroare şi se va trata
această eroare prin cererea unei alte perechi de numere. Toate perechile de numere
care îndeplinesc condiţia vor fi afișatepe ecran.

Temă : TERMEN 15.11.2019

1. Fie clasa Navă care are următorii membrii: latitudinea şi longitudinea la care este
poziţionată nava, nume navă şi nume proprietar. Realizaţi un program care
a. Creeaza un șir de nave si afiseaza informatiile despre nave
b. Contine o clasă internă care permite transformarea latitudinii şi longitudinii din
două variabile double în formatul (grade, minute, secunde)
c. Afişează toate navele din şir care nu aparţin unui proprietar. Numele
proprietarului este primit ca parametru pe linia de comandă.
d. Afişează navele din şir care sunt în perimetrul unei nave. Se dă o navă şi o rază
de proximitate pentru perimetrul razei.

2. Modelati printr-un program Java mai multe tipuri de avioane care formează flota
aeriană a unei ţări. Se presupune că ţara dispune de avioane de călători şi de avioane
de luptă. Avioanele de călători sunt de mai multe tipuri, de exemplu: Boeing şi
Concorde. Avioanele de luptă pot fi, de exemplu: Mig-uri şi TomCat-uri (F-14).
Fiecare tip de avion va fi modelat printr-o clasă, iar avioanele propriu-zise vor fi
instanţe ale claselor respective. Fiecare avion poate să execute o anumită gamă de
operaţii şi proceduri, după cum se specifică în cerinţele de implementare. Se cere
să se "construiască" mai multe avioane de diferite tipuri şi să se execute diferitele
operaţii disponibile pentru fiecare avion.

Cerinţe/Sugestii de implementare:
Fiecare avion trebuie să conţină:
- două atribute: un identificator_avion de tip String şi puterea motorului de tip
întreg
şi
- două metode, care să returneze valoarea identificatorului avionului şi respectiv,
valoarea puterii motorului avionului.
Deoarece fiecare avion trebuie să poată decola, zbura şi ateriza, este normal ca
pentru fiecare obiect din program să putem apela metodele public void decolare(),
public void zboara() şi public void aterizeaza(). Aceste metode vor afişa mesaje pe
ecran.

Avioanele de călători şi numai acestea trebuie să conţină un membru


numar_maxim_Pasageri de tip întreg şi o metodă care să returneze valoarea acestui
membru.

S-ar putea să vă placă și