Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-is-ab:resurse:01 [2024/11/01 16:38]
razvan.cristea0106 [Introducere]
poo-is-ab:resurse:01 [2024/11/05 18:22] (current)
adrian.ciobanu1906
Line 5: Line 5:
 ===== Introducere ===== ===== Introducere =====
  
-**Visual Studio** este unul dintre cele mai puternice și populare **medii de dezvoltare integrate (IDE)** disponibile pe piață. Creat de Microsoft, **Visual Studio** oferă o gamă largă de instrumente și caracteristici care simplifică dezvoltarea aplicațiilor pentru mai multe platforme și limbaje de programare. În cazul C++, **Visual Studio** se remarcă prin suportul său robust, integrarea perfectă cu diverse librării și framework-uri,​ și un set complet de instrumente care îmbunătățesc semnificativ productivitatea programatorilor.+**Visual Studio** este unul dintre cele mai puternice și populare **medii de dezvoltare integrate (IDE)** disponibile pe piață. Creat de cei de la Microsoft, **Visual Studio** oferă o gamă largă de instrumente și caracteristici care simplifică dezvoltarea aplicațiilor pentru mai multe platforme și limbaje de programare. În cazul C++, **Visual Studio** se remarcă prin suportul său robust, integrarea perfectă cu diverse librării și framework-uri,​ și un set complet de instrumente care îmbunătățesc semnificativ productivitatea programatorilor.
  
 Comparativ cu alte **IDE-uri** precum **Code::​Blocks** sau **Dev-C++**,​ **Visual Studio** oferă avantajul unei interfețe intuitive și a unui ecosistem de pluginuri și extensii care pot fi personalizate pentru nevoile fiecărui dezvoltator. De asemenea, include un debugger avansat, funcționalități de completare automată a codului prin **IntelliSense** și suport nativ pentru gestionarea proiectelor mari, făcându-l o alegere excelentă pentru dezvoltatorii care scriu cod în C++. Comparativ cu alte **IDE-uri** precum **Code::​Blocks** sau **Dev-C++**,​ **Visual Studio** oferă avantajul unei interfețe intuitive și a unui ecosistem de pluginuri și extensii care pot fi personalizate pentru nevoile fiecărui dezvoltator. De asemenea, include un debugger avansat, funcționalități de completare automată a codului prin **IntelliSense** și suport nativ pentru gestionarea proiectelor mari, făcându-l o alegere excelentă pentru dezvoltatorii care scriu cod în C++.
Line 74: Line 74:
  
 Aceste setări vor face ca în cadrul întregului proiect să puteți folosi funcția **„strcpy”** fără probleme. Aceste setări vor face ca în cadrul întregului proiect să puteți folosi funcția **„strcpy”** fără probleme.
 +
 +==== Extra 3 - Rularea temei 1 folosind Visual Studio ====
 +
 +Pentru a putea rula tema 1 folosind IDE-ul Visual Studio sunt necesari mai mulți pași:
 +
 +== Pasul 1 - Crearea proiectului == 
 +
 +După ce s-a realizat clonarea repository-ului de pe GitHub într-un folder local pe calculator, se va deschide Visual Studio și se va intra în următoarele meniuri, conform pozei:
 +
 +{{ :​poo-is-ab:​resurse:​poza_1_-_creare_proiect.png?​direct&​600 |}}
 +
 +Aici, mai exact, se va intra în: **File -> New -> Project from existing code...**. Mai departe se va deschide următoarea fereastră:
 +
 +{{ :​poo-is-ab:​resurse:​poza_2.png?​direct&​600 |}}
 +
 +Aici se verfică să fie selectat **Visual C++** și se apasă **Next**.
 +
 +{{ :​poo-is-ab:​resurse:​poza_3.png?​direct&​600 |}}
 +
 +  - Locația folderului ce conține clonarea fișierelor de pe GitHub
 +  - Numele proiectului
 +  - Apăsați **Finish** când primii pași s-au terminat
 +
 +Acum s-a creat proiectul și se pot edita fișierele necesare rezolvării temei. Dar pentru a putea rula programul corect și fără erori, dar și pentru facilitarea lucrului cu Git mai departe, mai sunt etape de parcurs până când proiectul poate fi folosit normal.
 +
 +== Pasul 2 - Setări privind consola ==
 +
 +Implicit, Visual Studio setează ca mediu de afișare o aplicație Windows când se creează un proiect folosind fișiere existente. Pentru a modifica acest lucru se intră în setările proiectului:​
 +
 +{{ :​poo-is-ab:​resurse:​poza_4_-_setari_rulare.png?​direct&​600 |}}
 +
 +Și mai departe:
 +
 +{{ :​poo-is-ab:​resurse:​poza_5.png?​direct&​600 |}}
 +
 +Calea efectivă este **Linker -> System -> SubSystem** și valoarea la care trebuie setat acest câmp este **Console**.
 +
 +== Pasul 3 - Setări privind rularea ==
 +
 +Așa cum ați citit în detaliile temei 1, sunt necesare 2 argumente din linia de comandă. Pentru a realiza acest lucru în Visual Studio cea mai ușoară metodă este copierea fișierelor **produse.txt** și **clienti.txt** în același folder ca fișierele .cpp și .h (copy-paste din folderele de test în folderul principal al proiectului). De aici se reintră în proprietățile proiectului (Vezi prima poză de [[poo-is-ab:​resurse:​01#​Pasul 2 - Setări privind consola| aici ]]):
 +
 +{{ :​poo-is-ab:​resurse:​poza_6_-_setare_argumente_de_intrare.png?​direct&​600 |}}
 +
 +Aici calea este **Debugging -> Command arguments** și adăugați numele celor 2 fișiere în ordinea **obligatorie**:​ produse.txt clienti.txt.
 +
 +Acum programul va rula și ca ați setat ca parametri în linia de comandă cele 2 fișiere. După rulare, dacă nu ați rtealizat nicio altă modificare în interiorul fișierelor .cpp și .h se va deschide următoarea consolă:
 +
 +{{ :​poo-is-ab:​resurse:​poza_7_-_exemplu_consola.png?​direct&​600 |}}
 +
 +== Pasul 4 - Setări pentru Git ==
 +
 +După clonare și după ce ați parcurs pașii de mai sus, dacă mai modificați și câteva fișiere .h sau .cpp lista de fișiere modificate în Git va arăta în felul următor:
 +
 +{{ :​poo-is-ab:​resurse:​poza_8_-_exemplu_de_prim_commit_gresit.png?​direct&​600 |}}
 +
 +Puteți vedea că în afara fișierelor .cpp și .h mai există și multe foldere și fișiere generate de Visual Studio. Pentru rezolvarea cât mai corectă a temei este necesar să facem **Push** strict la fișierele .h și .cpp, nu altele. Astfel vom modifica fișierul **.gitignore** clonat astfel încât să se ignore toate fișierele, mai puțin cele .h și .cpp. Conținutul fișierului **.gitignore** ar trebui să fie:
 +<​file>​
 +# Ignoră Makefile
 +Makefile
 +
 +# Ignoră folderul de teste
 +teste/
 +
 +.vs/
 +
 +[Dd]ebug/
 +[Dd]ebugPublic/​
 +[Rr]elease/
 +[Rr]eleases/​
 +x64/
 +x86/
 +bld/
 +[Bb]in/
 +[Oo]bj/
 +[Ll]og/
 +
 +
 +*.vcxproj
 +*.vcxproj.filters
 +*.vcxproj.user
 +
 +*.txt
 +
 +*.sln
 +</​file>​
 +În fișierul de **.gitignore** modficat se ignoră următoarele:​
 +  *Primele 2 fișiere sunt cele de **Makefile** și întreg folderul de **teste**.
 +  *Tot folderul ascuns **.vs/**. (!! Dacă nu se ignoră vor apărea erori fatale în Git și nu se va putea realiza nicio acțiune de tip **Push** !!)
 +  *Toate folderele create cu executabile și alte fișiere adiacente.
 +  *Fișierele privind proiectul. (cele cu .vcxproj)
 +  *Fișierele clienti.txt și produse.txt,​ ne dorim ca pe GitHub ele să rămână doar în interiorul folderelor
 +  *Fișierul ce reprezintă efectiv proiectul creat în Visual Studio (.sln)
 +
 +Astfel, după modificarea fișierului **.gitignore** noua listă de fișiere modificate în Git va fi:
 +
 +{{ :​poo-is-ab:​resurse:​poza_9_-_gitignore_si_fisiere_de_commit_corecte.png?​direct&​600 |}}
 +
 +== Pentru verificare == 
 +
 +Pentru verificarea corectitudinii temei scrise de voi, va trebui să modificați conținutul fișierelor **produse.txt clienti.txt** cu fiecare valoare din folderele test0, test1 șamd. Pentru ușurință,​ puteți face **Push** la fișierele .h și .cpp modificate de voi și se vor rula automat toate testele direct pe platforma GitHub. Totuși, pentru un debugging mai detaliat se recomandă rularea testelor separat, local și încărcarea pe GitHub periodică pentru a primi punctajele asociate fiecărui test și să vedeți dacă ați "​stricat"​ ceva pe parcurs (ex: a trecut testul 3 însă testul 0, 1 și 2 acum dau eroare).
poo-is-ab/resurse/01.1730471886.txt.gz · Last modified: 2024/11/01 16:38 by razvan.cristea0106
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