marți, 11 februarie 2025

Conceptul de încapsulare. Fișă pentru instruirea practică


1. Creați o clasă Produs care să conțină atributul privat pret și atributul public denumire. Clasa va fi instanţiată cu ajutorul constructorului default generat de compilator. Valoarea atributului pret nu va putea fi accesată direct, ci doar prin metode publice (getter și setter).

La setarea prețului, verificați ca acesta să fie mai mare decât 0. Dacă se introduce o valoare nevalidă(mai mică sau egală cu 0), prețul nu va fi modificat, iar programul va afișa un mesaj de avertizare.

Creați, de asemenea, o clasă Test în care instanțiați clasa Produs și tetstați demonstrați funcționalitatea metodelor programate. 

2. Creați clasa Elev care să conțină două atribute private: media și absente, precum și un atribut public nume. Clasa va fi instanţiată cu ajutorul constructorului default generat de compilator. Atributele media și absente nu vor putea fi accesate direct, ci doar prin metode publice (getter și setter).

La setarea mediei, verificați ca valoarea să fie cuprinsă între 1 și 10. La setarea numărului de absențe, verificați ca valoarea să fie mai mare sau egală cu 0. Dacă se introduce o valoare greșită, atributul respectiv nu va fi modificat, iar programul va afișa un mesaj de avertizare.

Creați, de asemenea, o clasă Test în care să fie creat un obiect de tip Elev și să fie demonstrată funcționarea regulilor de validare.

3. Creați clasa ComandaOnline care va avea ca atribute numele clientului (atribut public) care face comanda, valoarea comenzii (atribut privat) și costul de livrare (atribut privat). Pentru instanţierea clasei se va folosi constructorul default generat de compilator. Clasa va avea ca metode:
  • metodele gett-eri care vor returna valorile variabilelor private;
  • metodă sett-er care va setează valoarea comenzii doar dacă este mai mare decât 0, altfel afișează mesaj de avertizare;
  • metodă sett-er care va seta costul livrării doar dacă acesta mai mare sau egal cu 0, altfel afișează mesaj de avertizare;
  • o metodă care va calcula și returna suma totală al comenzii, care constituie suma dintre valoarea comenzii și costul de livrare.
Creați și o clasă Test în care instanțiați clasa ComandăOnline și demonstrați funcționarea validărilor și a metodelor programate.

4. Creați clasa ContBancar care va avea următoarele atribute (date):
  • titular, atribut public de tip String care reprezintă numele și prenumele deținătorului de cont;
  • numarCont, atribut privat de tip String, care poate fi accesat doar prin metode publice de tip gett-er;
  • sold, atribut privat de tip double, care poate fi accesat doar prin metode publice gett-er și nu poate fi negativ.
Clasa va avea un constructor care inițializează toate atributele. La inițializarea soldului în constructor se va face o validare: dacă soldul introdus este negativ, acesta va fi setat la 0 și se va afișa un mesaj de avertizare.

Clasa va conține următoarele metode:
  • gett-er pentru numarCont care returnează numărul contului;
  • gett-er pentru sold care returnează soldul curent;
  • o metodă de efectuare a depunerii care va adaugă o sumă la sold numai dacă suma este pozitivă; altfel afișează mesaj de avertizare și nu modifică soldul;
  • o metodă care va efectua retragerea unei sume din cont care va scadea o sumă din sold numai dacă suma este pozitivă și nu depășește soldul disponibil; altfel afișează mesaj de avertizare și nu modifică soldul.
Creați și o clasă Test, în care să fie instanțiat un obiect de tip ContBancar și demonstrați funcționarea corectă a constructorului, a metodelor gett-er și a metodelor de depunere și retragere.

5. Creați o clasă ContBiblioteca care modelează contul unui utilizator într-o bibliotecă. Clasa va avea ca atribute
  • nume, atribut public de tip String care reprezintă numele utilizatorului;
  • cartiImprumutate, atribut privat de tip int care reprezintă numărul de cărți împrumutate;
  • limitaCarti, atribut privat de tip int, numărul maxim de cărți pe care utilizatorul le poate împrumuta.
Definiți în clasă un constructor parametrizat care va inițializa toate atributele clasei. În interiorul constructorului validați valoarea cărților împrumutate după regula: nu poate fi negativă și nu poate depăși limita de cărți, dacă valoarea introdusă nu este validă, se setează 0 și se afișează mesaj de avertizare. De asemenea constructorul va valida și valoare limitei de cărți conform cerinței: limita de împrumut trebuie să fie pozitivă, dacă nu atunci se va seta cu valoarea 5 și se afișează mesaj de avertizare. 

Clasa va conține ca metode:
  • gett-er pentru cartiImprumutate care returnează numărul curent de cărți împrumutate.
  • gett-er pentru limitaCarti care returnează limita maximă de cărți.
  • metoda imprumutaCarte(int nrCarti) care va crește cartiImprumutate cu nrCarti doar dacă numărul total nu depășește limitaCarti și nrCarti este pozitiv; altfel, afișează mesaj de avertizare.
  • metoda returneazaCarte(int nrCarti) care va scadea cartiImprumutate cu nrCarti doar dacă suma nu devine negativă și nrCarti este pozitiv; altfel, afișează mesaj de avertizare.
  • metoda verificaDisponibilitate() care va returna câte cărți mai poate împrumuta utilizatorul (limitaCarti - cartiImprumutate).
Creați o clasă Test în care să demonstrați:
  • Crearea unui cont cu valori valide și invalide.
  • Împrumutarea și returnarea cărților, cu verificarea mesajelor de avertizare.
  • Calculul cărților disponibile pentru împrumut.

Succes! 
❤️

sâmbătă, 8 februarie 2025

Set de probleme. Șiruri de caractere în Java. Clasa String

 1. Scrieți un program care:
- declară un șir de caractere ce conține numele dvs;
- afișează șirul la ecran;
- afișează lungimea șirului.

2. Creați un program care citește de la tastatură un șir de caractere și afișează primul și ultimul caracter al șirului.

3. Scrieți un program care citește două șiruri de caractere de la tastatură, verifică dacă șirurile sunt egale folosind equals() și afișează un mesaj corespunzător.

4. Realizați un program care:
- citește prenumele și numele unei persoane;
- concatenează datele într-un singur șir;
- afișează rezultatul sub forma: Nume complet: …
- verificați și afișează dacă numele complet conține mai mult de 15 caractere.

5. Scrieți un program care:
- citește un șir de caractere;
- întreabă utilizatorul cum dorește să afișeze textul introdus cu toate literele majuscule sau minuscule;
- afișează rezultatul corespunzător.

6. O platformă educațională generează automat username‑uri pentru elevi. Se citesc de la tastatură: numele, prenumele și anul nașterii. Username‑ul va fi format după următoarea regulă: prima literă din prenume + numele complet + ultimele două cifre ale anului. Username‑ul va fi afișat cu litere mici. Programul va afișa username-ul creat și lungimea acestuia.

7. Scrieți un program care verifică pentru o platformă de comerț online dacă e-mailul introdus de utilizator respectă criteriile de validare. Programul va cere utilizatorului să citească o adresă de e‑mail. Va verifica cerințele:
- Adresa specificată conține semnul @;
- Adresa specificată finisează cu .com sau .md;
Programul va afișa mesajul „Adresă validă” sau „Adresă greșită”.

8. Scrieți un program care va genera inițialele elevilor pentru rapoarte sau tichete. Se va citi de la tastatură numele complet (prenume și nume). Programul afișează inițialele majuscule. De exemplu, dacă se citi de la tastatură Ion Popescu, programul va afișa I.P. Metode de utilizat: charAt(), toUpperCase(), indexOf(), substring().

9. Scrieți o aplicație care să detecteze dacă textul introdus de la tastatură conține date numerice. Programul verifică dacă există cel puțin o cifră, după care afișează mesajul „Conține cifre” sau „Nu conține cifre”. Metode utilizate: charAt(), Character.isDigit(), length().

10. Scrieți un program care va analiza un mesaj SMS. Programul va cere utilizatorului să citească de la tastatură un mesaj text și va:
- Determina numărul total de caractere;
- Afișa mesajul fără spații la început și la sfârșit;
- Verifica dacă mesajul depășește 160 de caractere.
- Va informa dacă mesajul poate fi expediat sau nu. Mesajul poate fi expediat doar dacă conține până la 160 de caractere. Metode de utilizat: trim(), toUpperCase(), length().

11. Scrieți un program care permite unui magazin online să verifice validitatea codurilor produselor. Programul permite citirea unui cod (șir de caractere). Codul se consideră valid dacă are exact 8 caractere și începe cu literă mare. Programul va afișa: „Cod valid” sau „Cod greșit”. Metode de utilizat: length(), charAt(), Character.isUpperCase().

12. Scrieți un program care va verifica dacă o parolă este sigură sau nu. De la tastatură se citește o parolă. Parola este considerată validă dacă:
- are cel puțin 8 caractere;
- conține cel puțin o cifră;
- conține cel puțin o literă mare.
Metode de utilizat: length(), charAt(), Character.isUpperCase(), substring(). Afișați dacă parola este „Sigură” sau „Nesigură”.


Succes!


sâmbătă, 1 februarie 2025

Generatoare de cod QR

 

  • https://www.qrcode-monkey.com/ : QR Code Monkey este un generator gratuit și personalizabil de coduri QR, care permite utilizatorilor să creeze coduri QR de înaltă calitate pentru diverse scopuri, cum ar fi linkuri, texte, WiFi, vCard, rețele sociale și multe altele. Platforma oferă opțiuni avansate de design, inclusiv personalizarea culorilor, adăugarea de logo-uri și selectarea unui stil unic pentru codurile QR. Datorită rezoluției vectoriale, codurile generate pot fi utilizate pentru printuri de mari dimensiuni fără pierderi de calitate.