This is an old revision of the document!


Laboratorul 04.

Problema 1

Se ofera clasa de baza Patrulater care descrie o figura geometrica reprezentata printr-un patrulater convex. Pornind de la clasa oferita, implementati urmatoarea ierarhie de clase, alegand constructorii considerati potriviti pentru fiecare clasa:

  • clasa Paralelogram care mosteneste Patrulater;
  • clasele Romb si Dreptunghi care mostenesc clasa Paralelogram;
  • clasa Patrat care mosteneste clasa Dreptunghi.

Implementati in fiecare clasa, exceptand clasa Patrulater, o metoda care calculeaza aria figurii geometrice, uzitand formula specifica. De asemenea, creati o clasa executabila pentru testarea claselor implementate.

Clasa Romb contine ca date, pe langa cele din clasa parinte, si dimensiunile diagonalelor.

Arie paralelogram = lat1 * lat2 * sin(unghi1)
Arie romb = (diag1 * diag2) / 2
Arie dreptunghi = lungime * latime
Arie patrat = latura * latura

Problema 2

Pornind de la clasa de baza Array oferita, implementati urmatoarele clase:

  • clasa SortedArray care modeleaza un vector de numere intregi sortat crescator, folosind mostenirea;
  • clasa MyStack care modeleaza o stiva care contine numere intregi, folosind agregarea.

Ambele clase vor utiliza metodele puse la dispozitie in clasa Array, in forma originala sau intr-o forma modificata, iar clasa MyStack trebuie sa ofere metodele push si pop, specifice acestei structuri de date. Metoda push va oferi posibilitatea introducerii unui numar intreg in varful stivei, in timp ce metoda pop va inlatura elementul din varful stivei si il va intoarce.

Creati o clasa ce contine un main pentru testarea claselor implementate.

Problema 3

Sa se implementeze o clasa HSet care modeleaza o multime realizata ca tabel de dispersie. Clasa este derivata din Hashtable si contine metodele: add, remove, toString.

Cheia si valoarea vor fi egale (cheile sunt elementele multimii). Pentru testare, folositi clasa Test3 din arhiva laboratorului.

//Adauga un element in multime, daca nu exista deja
public boolean add(Object value);
//returneaza un String cu elementele multimii (doar cheile, nu perechi)
public String toString();
//Sterge perechea corespunzatoare cheii, intorcand valoarea
public Object remove(Object key);

Se vor supradefini doar metodele care necesita acest lucru!

Problema 4

Sa se implementeze ierarhia de clase descrisa in figura de mai jos.

Pentru testare, se poate folosi clasa Test04 din arhiva laboratorului. Metoda addCourse din clasa Teacher verifica daca a fost deja asignat cursul respectiv profesorului si intoarce true doar daca acesta nu exista si a fost adaugat. De asemenea, metoda removeCourse intoarce true doar daca profesorul avea asignat cursul respectiv si s-a putut realiza stergerea.

Atentie la modul in care va definiti constructorii claselor copil (Student si Teacher)!

super

poo/laboratoare/04.1534847360.txt.gz · Last modified: 2018/08/21 13:29 by mihai.nan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0