Documente Academic
Documente Profesional
Documente Cultură
1
itacad.ro
Practice
Descrierea aplicației
Se dorește scrierea unei aplicații pentru consolă ce implementează un sistem de management al
operațiilor executate de un magazin de mașini. Va trebui să se implementeze atât infrastructura pentru
comunicația cu producătorii de mașini, pentru a le cere acestora fabricarea unor anumite modele, cât
și primirea cererilor de la clienți și vânzarea de mașini.
Enum Color
Definiți un enum cu numele Color ce va fi folosit pentru specificarea colorii pe care o poate avea o
mașină. Valorile pe care le poate lua o variabilă de tipul Color sunt: Red, Blue, White, Black,
Magenta.
Clasa Car
Membrii de tip variabilă ai acestei clase:
o Un string nestatic name ce va reține numele mașinii.
o Un string nestatic producer ce va reține numele producătorului mașinii
o O variabilă de tip long nestatică price pentru reținerea prețului mașinii
o O variabilă de tipul Color, carColor, enum-ul definit anterior
Membrii de tip metodă ai acestei clase:
o public void InitCar(string name, string producer, long price) primește ca parametrii numele
mașinii, numele producătorului și prețul, setând membrii clasei la valorile primite.
o public void SetColor(Color carColor) – seteaza membrul carColor la valoarea primită ca
parametru
o public string GetName() – metodă ce întoarce numele mașinii
o public long GetPrice() – metodă ce întoarce prețul mașinii
Academia Microsoft
2
itacad.ro
Clasa CarFactory
Membrii de tip variabilă ai acestei clase:
o Un întreg static producedUnits pentru obținerea numărului total de mașini produse
o O variabilă de tip long nestatică income ce va reține valoarea totală a mașinilor produse de
un producător.
o Un vector nestatic de 20 de elemente de tipul Car, availableCars, modelele de mașini pe
care producătorul le oferă.
o Un întreg carTypeCount, ce reține numărul de mașini disponibile pentru producător.
o Un string nestatic name ce va reține numele producătorului.
Membrii de tip metodă ai acestei clase:
o public void InitCarFactory(string name) primește ca parametrii numele producătorului și il
setează, inițializează la 0 income și instanțiază availableCars
o public void DesignCar(string carName, long carPrice) – instanțiază un obiect de tipul Car,
apelând apoi metoda InitCar pentru noul obiect trimițându-i parametrii primiți. Obiectul
obținut este introdus în vectorul availableCars.
o public Car ProduceCar(int carIndex, Color carColor) – va întoarce obiectul car de la indexul
carIndex , din vectorul availableCars.
Dacă indexul furnizat nu este valid, va arunca o excepție de tipul
IndexOutOfRangeExeption încluzând mesajul "No existing car has this index”
Pentru obiectul obținut se va apela apoi metoda SetColor pentru a seta culoare mașinii ce se
va produce. Se va întoarce apoi obiectul creat ca valoare de întoarcere a metodei.
o public void DisplayCar() – metodă pentru afișarea detaliilor (nume și preț) unei anumite
mașini ce poate fi produsă. Metoda trebuie să fie supraîncărcată, putând să primească atât
indexul din vectorul availableCars pentru care să se afișeze detaliile, cât și numele mașinii
pentru care se dorește afișarea.
Dacă indexul furnizat nu este valid, va arunca o excepție de tipul
IndexOutOfRangeExeption încluzând mesajul "No existing car has this index”
o public Car[] GetCars() – metodă ce întoarce instanța vectorului availableCars
Clasa Customer
Membrii de tip variabilă ai acestei clase:
o Un string nestatic name ce va reține numele clientului.
o O variabilă de tip long availableMoney, banii pe care îi are la dispoziție clientul pentru
cumpărarea unei mașini
o O variabilă de tip Car, ownedCar, în care se va trece mașina pe care o achiziționează clientul
Membrii de tip metodă ai acestei clase:
o public void InitCustomer primește ca parametru numele clientului și banii pe care acesta îi
are la dispoziție pentru cumpărarea mașinii. Va trebui numele clientului să fie salvat în
variabila name. De asemenea, variabila ownedCar va trebui inițializată la o valoare ce
semnifică o referință nulă.
o public string[] AffordableCars() – metodă ce generează o listă cu numele tuturor mașinilor
pe care clientul curent le poate cumpăra cu banii disponibili. Primește ca parametri un
Academia Microsoft
3
itacad.ro