Acest program permite crearea, afisarea, modificarea si stergerea unor agentii imobiliare, fiecare dintre acestea gestionand locuinte de diverse tipuri. Agentiile imobiliare sunt implementate cu ajutorul clasei AgentieImobiliara.
In cadrul agentiilor, sunt posibile adaugarea, afisarea, modificarea si stergerea locuintelor, cat si calculul si afisarea pretului de cumparare si chiriei, in functie de formule specifice fiecarui tip de locuinta ce iau in calcul lucruri precum suprafata utila si, unde este cazul, suprafata curtii/gradinii si dimensiunile piscinei.
Toate aceste optiuni sunt accesibile cu ajutorul unui meniu interactiv, care verifica de asemenea inputul primit pentru evitarea erorilor.
Prin urmare, o lista completa a optiunilor este:
- Adaugarea unei agentii imobiliare
- Afisarea agentiilor imobiliare
- Modificarea unei agentii imobiliare
- Stergerea unei agentii imobiliare
- Adaugarea unei locuinte
- Afisarea locuintelor
- Modificarea unei locuinte
- Stergerea unei locuinte
- Calculul si afisarea preturilor de cumparare
- Calculul si afisarea chiriilor
Programul permite crearea a mai multor tipuri de locuinte, precum apartamente, apartamente duplex, apartamente cu gradina, case, case cu curte sau case cu curte si piscina. Acest lucru este realizat folosind mai multe clase. Clasa de baza a tuturor acestor tipuri de locuinte este clasa Locuinta, care contine datele comune tuturor tipurilor de locuinte, care este si abstracta. Din aceasta clasa sunt apoi mostenite clasele Apartament si Casa. Din clasa Apartament mai sunt mostenite inca doua clase, ApartamentDuplex si ApartamentCuGradina, iar din clasa Casa este mostenita clasa CasaCuCurte, din care mai apoi este mostenita clasa CasaCuPiscina, fiecare dintre acestea extinzand modelul cu noi atribute specifice:
Astfel, o lista completa a claselor din cadrul proiectului si a atributelor acestora este:
AgentieImobiliara- numele agentiei si o lista a locuintelorLocuinta- numele clientului, discountul aplicat optional, materialul* din care este realizata structura de rezistenta, suprafata utila si numarul de camereApartament- toate atributele locuintei + etajApartamentDuplex- toate atributele apartamentului + numarul de etajeApartamentCuGradina- toate atributele apartamentului (etajul este obligatoriu 0) + suprafata gradiniiCasa- toate atributele locuintei + numarul de etajeCasaCuCurte- toate atributele casei + suprafata curtiiCasaCuPiscina- toate atributele casei cu curte + dimensiunile (lungime si latime) piscinei
*Materialele disponibile sunt definite intr-un enum.
