1. Deschideți editorul de cod Java și rulați Exemplul 1 din partea teoretică. Apoi realizați următoarele modificări:
a. Adăugați clasei Figura metoda: static void afisare(String autor) care va afișa autorul programului. Testați metoda în main().
b. Adăugați o nouă subclasă pentru clasa Figura. Instanțiați subclasa în main().
2. Se cere realizarea unei aplicații Java care să simuleze funcționarea unor aplicații digitale populare (rețele sociale, platforme educaționale, servicii de streaming).
a. Creați clasa abstractă Aplicatie, care va conține:
- atributul nume (de tip String);b. Creați cel puțin 3 clase care extind clasa Aplicatie:
- un constructor cu parametri pentru inițializarea atributului;
- metoda concretă afisareNume(), care afișează denumirea aplicației;
- metodele abstracte: login(), logout() și functionalitatePrincipala()
- AplicatieSocialMedia (ex.: Instagram, Facebook) în care supradefiniți:
metoda login() va afișa: „Utilizatorul s-a autentificat în aplicația X”metoda functionalitatePrincipala() va afișa: „Postează o imagine”
- AplicatieEducatie (ex.: platformă e-learning) în care supradefiniți:
metoda login() va afișa: „Utilizatorul s-a autentificat în aplicația X”metoda functionalitatePrincipala() va afișa: „Accesează un curs”
- AplicatieStreaming (ex.: video sau muzică)
c. Testarea în metoda mainmetoda login() va afișa: „Utilizatorul s-a autentificat în aplicația X”metoda functionalitatePrincipala() va afișa: „Redă un videoclip”
- creați un array de tip Aplicatie;
- adăugați obiecte din toate cele trei tipuri de aplicații;
- parcurgeți array-ul și apelați metodele definite.
3. Efectuați următoarele acțiuni:
a) Având dată următoarea clasă abstractă. Transcrieți această clasă în editorul de cod Java:
abstract class Policeman {
Vor urma 3 clase: Soldat din care se va deriva Sergent din care mai apoi se va deriva Locotenent. Metodele abstracte venit() și rang() vor fi implementate în clase. Metoda rang() va returna rangul omului legii. Va începe de la 1 pentru soldat, va urma 2 pentru sergent și 3 pentru locotenent.
b) Elaborați clasa Soldat pornind de la următorul codul sursă:
private String nume;
private String prenume;
private int staj;
public Policeman(String n, String p,int s) {
nume = n;prenume = p;staj = s;
}
public String getNume() {
return nume;
}
public String getPrenume() {
return prenume;
}
public int getStaj() {
return staj;
}}
public abstract double venit();
public abstract int rang();
Vor urma 3 clase: Soldat din care se va deriva Sergent din care mai apoi se va deriva Locotenent. Metodele abstracte venit() și rang() vor fi implementate în clase. Metoda rang() va returna rangul omului legii. Va începe de la 1 pentru soldat, va urma 2 pentru sergent și 3 pentru locotenent.
b) Elaborați clasa Soldat pornind de la următorul codul sursă:
class Soldat extends Policeman {
class Sergent extends Soldat {
Plata de bază pentru un sergent este 4700 lei pe lună. Salariul net constituie 82% din salariul de bază + 1.2 înmulțit la rădăcina pătrată din plata de bază înmulțit la staj. Rangul său este de 2 ori mai mare decât rangul soldatului care trebuie obținut cu ajutorul variabilei predefinite super.
d) Elaborați clasa Locotenent pornind de la următorul codul sursă:
4. Modelați un sistem de calcul al salariilor pentru diferite tipuri de angajați.
a) Creați clasa abstractă Angajat, care va conține:
protected static double plataBazaSoldat = 3600;
Soldat(String nume, String prenume, int staj) {
super(nume, prenume, staj);
}
public double getPlataSoldat(){}
}
Plata de bază pentru un soldat este 3600 lei pe lună. Salariul net constituie 85% din salariul de bază + 6% din rădăcina pătrată din plata de bază înmulțit la staj. Rangul său este 1.
c) Elaborați clasa Sergent pornind de la următorul codul sursă:
Plata de bază pentru un soldat este 3600 lei pe lună. Salariul net constituie 85% din salariul de bază + 6% din rădăcina pătrată din plata de bază înmulțit la staj. Rangul său este 1.
c) Elaborați clasa Sergent pornind de la următorul codul sursă:
class Sergent extends Soldat {
protected static double plataBazaSerjant = 4700;public Sergent(String nume, String prenume, int staj) {
super(nume, prenume, staj);
}
}
Plata de bază pentru un sergent este 4700 lei pe lună. Salariul net constituie 82% din salariul de bază + 1.2 înmulțit la rădăcina pătrată din plata de bază înmulțit la staj. Rangul său este de 2 ori mai mare decât rangul soldatului care trebuie obținut cu ajutorul variabilei predefinite super.
d) Elaborați clasa Locotenent pornind de la următorul codul sursă:
class Locotenent extends Serjant{
protected static double plataBazaLocotenent = 5900;public Locotenent(String nume, String prenume, int staj) {
super(nume, prenume, staj);
}
}
Plata de bază pentru un locotenent este 5900 lei pe lună. Salariul net constituie 80% din salariul de bază + 1.3 înmulțit la rădăcina pătrată din plata de bază înmulțit la staj. Rangul său este cu o unitate mai mare decât rangul locotenentului care trebuie obținut, de asemenea, cu ajutorul variabilei predefinite super.
e) Compuneți clasa TestPolitie în care instanţiați clasele programate și testați metodele acestora.
Plata de bază pentru un locotenent este 5900 lei pe lună. Salariul net constituie 80% din salariul de bază + 1.3 înmulțit la rădăcina pătrată din plata de bază înmulțit la staj. Rangul său este cu o unitate mai mare decât rangul locotenentului care trebuie obținut, de asemenea, cu ajutorul variabilei predefinite super.
e) Compuneți clasa TestPolitie în care instanţiați clasele programate și testați metodele acestora.
4. Modelați un sistem de calcul al salariilor pentru diferite tipuri de angajați.
a) Creați clasa abstractă Angajat, care va conține:
- atributul nume (String);- atributul salariuBaza (double);- constructor pentru inițializare;- metodă concretă afisareNume();- metode abstracte: calculeazaSalariu() și calculeazaBonus()
b) Creați cel puțin 3 clase:
- Programator. Despre programator se știe că bonus = 20% din salariul de bază și salariu final = salariuBaza + bonus.
- Manager. Despre manager se știe că bonus = 35% din salariul de bază și salariu final = salariuBaza + bonus- Intern, despre inter se știe că bonus = 0 și salariu final = salariuBaza
c) În metoda main:
- creați un array de tip Angajat;- adăugați obiecte (ex: 5000, 8000, 3000);- pentru fiecare:- afișați numele- calculați și afișați bonusul- calculați și afișați salariul final- calculați salariul total al tuturor angajaților- afișați angajatul cu salariul cel mai mare
5. Se dorește modelarea unui sistem de calcul al costului total pentru diferite tipuri de comenzi online.
a. Creați clasa abstractă Comanda, care va conține:
- atributul client (String);b. Creați cel puțin 3 clase:
- atributul valoareProduse (double);
- constructor pentru inițializare;
- metodă concretă afisareClient();
- metode abstracte: calculeazaLivrare() și calculeazaTotal()
- ComandaStandard, despre care se cunoaște că costul de livrare este 50 lei, iar totalul se va calcula conform formulei: total = valoareProduse + livrarec. În metoda main:
- ComandaExpress, despre care se cunoaște că costul de livrare este 100 lei, iar totalul se va calcula conform formulei: total = valoareProduse + livrare
- ComandaPremium, despre care se cunoaște că costul de livrare este 0 lei, iar totalul se va calcula conform formulei: total = valoareProduse (livrare gratuită)
- creați un array de tip Comanda;
- adăugați obiecte (ex: 500 lei, 300 lei etc.);
- pentru fiecare:
- afișați clientul
- calculați livrarea
- calculați totalul
- aplicați reducere de 10% pentru comenzile peste 500 lei
- afișați comanda cu cel mai mare total
Succes!
❤️
Niciun comentariu:
Trimiteți un comentariu
Vă mulțumesc pentru feedback!