This shows you the differences between two versions of the page.
poo-is-ab:tema:01 [2024/10/30 20:40] marius.trifu [Testarea și verificarea temei] |
poo-is-ab:tema:01 [2024/11/05 18:25] (current) adrian.ciobanu1906 [Rulare cu parametri în linia de comandă] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Informatii generale ===== | ===== Informatii generale ===== | ||
<note important> | <note important> | ||
- | **Publicare:** 28.10.2024 \\ | + | **Publicare:** 30.10.2024 \\ |
**Deadline:** 13.11.2024, ora 23:59 | **Deadline:** 13.11.2024, ora 23:59 | ||
</note> | </note> | ||
Line 13: | Line 13: | ||
Locația de încărcare, unde veți găsi și structura de bază a temei, este specificată la finalul paginii, la punctul **5**. | Locația de încărcare, unde veți găsi și structura de bază a temei, este specificată la finalul paginii, la punctul **5**. | ||
+ | <note warning>În cadrul acestei teme, utilizarea claselor din **STL (Standard Template Library)** nu este permisă. Prin excluderea **STL**, obiectivul este să încurajăm implementarea și înțelegerea structurilor de date și a algoritmilor de la zero, **fără** a folosi **soluții preconstruite**. Aceasta permite o mai bună aprofundare a principiilor fundamentale ale **POO** și ale structurilor de date, de la scrierea propriilor containere până la realizarea algoritmilor de manipulare a acestora.</note> | ||
====== Tema: Gestionarea Datelor unui Magazin ====== | ====== Tema: Gestionarea Datelor unui Magazin ====== | ||
Line 31: | Line 32: | ||
- **output_stoc_ramas.txt** – Afișează produsele disponibile și stocul rămas după procesarea tuturor comenzilor, alături de prețul fiecărui produs. Acest fișier servește ca un inventar actualizat, indicând stocurile rămase. | - **output_stoc_ramas.txt** – Afișează produsele disponibile și stocul rămas după procesarea tuturor comenzilor, alături de prețul fiecărui produs. Acest fișier servește ca un inventar actualizat, indicând stocurile rămase. | ||
+ | |||
+ | |||
+ | ===== Rulare cu parametri în linia de comandă ===== | ||
+ | Programul trebuie să fie rulat cu parametri în linia de comandă, unde `argv[1]` este `produse.txt` și `argv[2]` este `clienti.txt`. | ||
+ | |||
+ | **Exemplu de rulare:** | ||
+ | |||
+ | ```bash | ||
+ | ./program produse.txt clienti.txt | ||
+ | |||
+ | |||
+ | === Rulare în Code::Blocks === | ||
+ | |||
+ | Deschideți proiectul în Code::Blocks și setați main.cpp (sau fișierul care conține funcția main) ca fișier de lansare. | ||
+ | Setați argumentele de linie de comandă: | ||
+ | Mergeți la Project > Set Program's Arguments. | ||
+ | În fereastra deschisă, introduceți produse.txt clienti.txt. | ||
+ | Apăsați OK pentru a salva. | ||
+ | Compilați și rulați programul apăsând Build and Run (F9). | ||
+ | Programul va rula acum cu produse.txt și clienti.txt ca argumente. | ||
+ | |||
+ | === Rulare în Dev-C++ === | ||
+ | |||
+ | Deschideți proiectul în Dev-C++. | ||
+ | Setați argumentele de linie de comandă: | ||
+ | Mergeți la Execute > Parameters. | ||
+ | În câmpul Parameters, introduceți produse.txt clienti.txt. | ||
+ | Apăsați OK pentru a salva. | ||
+ | Compilați și rulați programul apăsând Run (F10). | ||
+ | Programul va rula acum cu produse.txt și clienti.txt ca argumente, exact ca atunci când este rulat din terminal. | ||
+ | |||
+ | === Rulare în Visual Studio === | ||
+ | |||
+ | Urmăriți tutorialul de [[poo-is-ab:resurse:01#Extra 3 - Rularea temei 1 folosind Visual Studio| aici ]]. | ||
+ | |||
+ | <note tip>Notă: Asigurați-vă că fișierele produse.txt și clienti.txt se află în același director ca executabilul, sau specificați calea completă către fișiere dacă sunt localizate în altă parte.</note> | ||
===== Scopul Educațional al Temei ===== | ===== Scopul Educațional al Temei ===== | ||
Line 46: | Line 83: | ||
- **Restricții**: Modificarea fișierelor din folderul `teste` și a fișierului `Makefile` este interzisă. Aceste fișiere sunt esențiale pentru verificarea corectă și consistentă a soluției și trebuie să rămână neschimbate. | - **Restricții**: Modificarea fișierelor din folderul `teste` și a fișierului `Makefile` este interzisă. Aceste fișiere sunt esențiale pentru verificarea corectă și consistentă a soluției și trebuie să rămână neschimbate. | ||
- | Această temă oferă un cadru practic de aplicare a OOP în gestionarea unui sistem de magazin, exersând fluxul de date și logica de gestionare a comenzilor și inventarului. | + | Această temă oferă un cadru practic de aplicare a POO în gestionarea unui sistem de magazin, exersând fluxul de date și logica de gestionare a comenzilor și inventarului. |
Line 209: | Line 246: | ||
* După ce dați accept la Assignment, va fi creat automat un repository cu fișierele pentru structura de bază. | * După ce dați accept la Assignment, va fi creat automat un repository cu fișierele pentru structura de bază. | ||
{{ :poo-is-ab:tema:1.png?800 |}} | {{ :poo-is-ab:tema:1.png?800 |}} | ||
- | * Dați click pe butonul **Code** și apoi pe **SSH** și copiați link-ul (trebuie să aveți inclusă cheia de SSH de pe calculatorul dvs. în contul de GitHub; vezi tutorialul din [link]). | + | * Dați click pe butonul **Code** și apoi pe **SSH** și copiați link-ul (trebuie să aveți inclusă cheia de SSH de pe calculatorul dvs. în contul de GitHub; vezi tutorialul din [[poo-is-ab:resurse:02|]]). |
{{ :poo-is-ab:tema:2.png?800 |}} | {{ :poo-is-ab:tema:2.png?800 |}} | ||
Line 223: | Line 260: | ||
{{ :poo-is-ab:tema:3.png?800 |}} | {{ :poo-is-ab:tema:3.png?800 |}} | ||
- | * Pentru a vedea mai multe detalii despre starea testelor, dați click pe indicatorul de stare al acestora dupa care dati click pe Details! | + | * Pentru a vedea mai multe detalii despre starea testelor, dați click pe indicatorul de stare al acestora, după care dați click pe **Details**. |
- | {{ :poo-is-ab:tema:4.png?800| }} | + | {{ :poo-is-ab:tema:4.png?800 |}} |
- | * Selectati fiecare test pentru a vedea rezultatul | + | * Selectați fiecare test pentru a vedea rezultatul acestuia. |
- | {{ :poo-is-ab:tema:5.png?800| }} | + | {{ :poo-is-ab:tema:5.png?800 |}} |
+ | * Căutați mesajul pentru a vedea dacă cele 2 fișiere de output au rezultat **Failed** sau **Passed**. | ||
- | {{:poo-is-ab:tema:6.png?200|}} | + | {{ :poo-is-ab:tema:6.png?800 |}} |
- | ==== Vizualizarea detaliilor fiecărui test ==== | + | |
- | * Pentru a vedea detalii despre fiecare test, urmați pașii de mai jos: | ||
- | * [inserați imagine 1 explicativă] | ||
- | * [inserați imagine 2 explicativă] | ||