Sunteți pe pagina 1din 5

Problema bonus pentru vacanta de iarna

Puncte bonus: 10
Deadline: 8.01.2023 ora 23:59
Încărcare pe github: https://classroom.github.com/a/Ku2N7UCP
Tutorial încărcare pe github: https://github.com/Laborator-POO-2022-2023/Tutorial

Pentru orice întrebări dați reply la postarea de pe Teams!

Punctare:
Fiecare întrebare de la ouput realizata corect pentru toate testele = 1p (7 puncte in total)
Împărțire pe fișiere cpp + header implementate corect = 1p
Alocare și eliberare corectă a memoriei = 1p
Scriere corectă, eficientă și indentare = 1p

Fără puncte din oficiu

Va exista un checker unde vă puteți verifica corectitudinea rezolvării programului.


Nu aveți voie să folosiți biblioteci externe de STL (exemplu vector, algorithms etc).
Problema se va rezolva folosind clase și principiile învățate la laboratorul de POO.

Problema

O fabrică de mobilă are nevoie de un program care să calculeze consumul de material și să


optimizeze tăierea acestuia.
Fabrica produce toată mobila din cateva componente de bază plăci de pal, carton, uși, sertare,
bare, picioare, polițe. Aceste componente pot fi incluse oricum în orice produs conform
cerințelor clienților.
Bucățile de pal vin în dimensiuni de 6 m x 4 m (1.8 cm grosime sau 1.6 cm grosime), din acest
pal se fac și ușile, sertarele și polițele.
Cartonul este folosit pentru a acoperi spatele mobilierului, acesta este cumpărat la dimensiunea
de 4 m x 3 m o bucată.
Fiecare sertar și ușă are un maner iar fiecare sertar contine 2 perechi de șine glisante.

Sertarul are o lungime(D), o lățime(W) și o înălțime(H) precum este ilustrat în poza de mai jos.
Lungimea șinelor pentru sertar este lungimea D.
Formatul datelor de intrare

Toate datele sunt de tip numere întregi cu excepția grosimii palului care este de tip double cu 2
posibile valori 1.6 cm sau 1.8 cm
Elementele sunt definite astfel și toate lungimile sunt în cm:

Picioare Uși
Număr_bucăți Înălțime Număr_bucăți Înălțime Lățime

Pal Sertare
Lungime Lățime Grosime_pal Număr_bucăți D W H Grosime_pal

Carton Polite
Număr_bucăți Lungime Lățime Număr_bucăți Lungime Lățime Grosime_pal

Bare
Număr_bucăți Lungime

Datele de intrare vor fi citite dintr-un fișier input.txt


Fiecare corp de mobilă va avea un număr de identificare în funcție de poziția în fișierul de input,
primul corp este numărul 1, al doilea corp este numărul 2 etc
Primul rand din fișierul de intrare ne specifică cate corpuri de mobilă trebuie realizate.
Pentru fiecare corp de mobilă am o denumire(Masa, Dulap etc), pe următorul rând este un
număr întreg K care ne spune cate componente are mobila, următoarele 2*K rânduri conțin
informațiile despre componentele corpului de mobilă.

Input.txt
Număr_corpuri_de_mobilă
Nume_corp_mobilă
Număr_componente
Nume_componentă
Proprietăți_componentă
Nume_componentă
Proprietăți_componentă

Format date de ieșire

Acestea vor fi scrise într-un fișier output.txt


Pe fiecare rând al fișierului va exista răspunsul la o întrebare în ordinea de mai jos:

De cât pal(m2) am nevoie?


x m2 de 1.6
x m2 de 1.8
De cât carton(m2) am nevoie?
x m2
De cate mânere am nevoie?
x
Care corp de mobilă necesita cel mai mult pal?
Număr_corp
De câte șine pentru sertare am nevoie și de ce lungimi? Le scrieți în ordinea corpurilor de mobila.
Număr_bucăți Lungime
Câte bucăți de carton trebuie cumparate pentru a realiza mobila?
x
Câte bucăți de pal și de ce grosimi trebuie cumpărate pentru a realiza mobila?
y de 1.6
x de 1.8

La calcularea de m2 rotunjiti la 2 zecimale în sus, exemplu 2.234 = 2.24 ; 4.426=4.43


Atenție la conversia din cm din m respectiv în m2.

Exemplu 1
input.txt
1
Masa
2
Picioare
4 75
Pal
1 120 60 1.8

output.txt
0 m2 de 1.6
0.72 m2 de 1.8
0 m2
0
1
0
0
0 de 1.6
1 de 1.8

Exemplu 2
input.txt
3
Dulap
5
Pal
2 180 50 1.8
Pal
2 90 50 1.8
Usi
2 180 45 1.8
Bara
1 90
Carton
1 180 90
Dulap
10
Pal
2 180 50 1.8
Pal
2 140 50 1.8
Pal
1 160 50 1.8
Usi
2 180 45 1.8
Usi
1 180 50 1.8
Bara
1 90
Carton
1 180 90
Polite
3 50 48 1.6
Sertare
4 45 48 10 1.6
Carton
4 45 48
Comoda
8
Pal
2 80 60 1.8
Pal
3 120 60 1.8
Pal
1 50 60 1.8
Polite
3 58 60 1.8
Usi
1 50 60 1.8
Sertare
3 58 55 15 1.8
Carton
3 58 55
Carton
1 80 120

output.txt
3.59 m2 de 1.6
14.31 m2 de 1.8
5.07 m2
13
2
4 45
3 58
1
1 de 1.6
1 de 1.8

S-ar putea să vă placă și