Differences

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

Link to this comparison view

poo-is-ab:resurse:01 [2024/10/08 16:45]
adrian.ciobanu1906 created
poo-is-ab:resurse:01 [2024/11/05 18:22] (current)
adrian.ciobanu1906
Line 3: Line 3:
 **Autor: Dănuț Ciobanu** **Autor: Dănuț Ciobanu**
  
-==== 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++.
  
-=== Pasul 1 - Descărcarea installer-ului ===+==== Pasul 1 - Descărcarea installer-ului ​====
  
 Prin accesarea [[https://​visualstudio.microsoft.com/​vs/​community/​|paginii oficiale]] a celor de la Microsoft vi se va deschide următoarea pagină web: Prin accesarea [[https://​visualstudio.microsoft.com/​vs/​community/​|paginii oficiale]] a celor de la Microsoft vi se va deschide următoarea pagină web:
  
-{{ :​poo-is-ab:​resurse:​vs_resursa_poza_2_-_descarcare_initial.png?​direct&​800 |}}+{{ :​poo-is-ab:​resurse:​vs_resursa_poza_2_-_descarcare_initial.png?​direct&​600 |}}
  
 Unde puteți apăsa pe butonul de „Download” și descărcarea installer-ului va începe, precum în imaginea: Unde puteți apăsa pe butonul de „Download” și descărcarea installer-ului va începe, precum în imaginea:
  
-{{ :​poo-is-ab:​resurse:​vs_resursa_poza_3_-_descarcare_final.png?​direct&​800 |}}+{{ :​poo-is-ab:​resurse:​vs_resursa_poza_3_-_descarcare_final.png?​direct&​600 |}}
  
-=== Pasul 2 - Instalarea efectivă și alegerea opțiunilor ===+==== Pasul 2 - Instalarea efectivă și alegerea opțiunilor ​====
  
 Prima data când se va deschide fișierul descărcat la pasul 1 veți fi înâmpinați de următorul ecran: Prima data când se va deschide fișierul descărcat la pasul 1 veți fi înâmpinați de următorul ecran:
Line 27: Line 27:
 Aici apăsați pe butonul de „Continue” și, odată ce s-a terminat instalarea se va deschide meniul de unde veți selecta pachetele ce trebuie alese pentru realizarea laboratoarelor din cadrul acestei materii: Aici apăsați pe butonul de „Continue” și, odată ce s-a terminat instalarea se va deschide meniul de unde veți selecta pachetele ce trebuie alese pentru realizarea laboratoarelor din cadrul acestei materii:
  
-{{ :​poo-is-ab:​resurse:​vs_resursa_poza_6_-_pachetele_necesare.png?​direct&​800 |}}+{{ :​poo-is-ab:​resurse:​vs_resursa_poza_6_-_pachetele_necesare.png?​direct&​700 |}}
  
 În acest meniu cele mai importante selecții de făcut sunt: În acest meniu cele mai importante selecții de făcut sunt:
Line 36: Line 36:
 Odată terminată selectarea opțiunilor se va apăsa butonul „Install” și se va deschide următoarea (și ultimă) fereastră din procesul de instalare: Odată terminată selectarea opțiunilor se va apăsa butonul „Install” și se va deschide următoarea (și ultimă) fereastră din procesul de instalare:
  
-{{ :​poo-is-ab:​resurse:​vs_resursa_poza_7_-_descarcare_si_instalare_vs.png?​direct&​800 |}}+{{ :​poo-is-ab:​resurse:​vs_resursa_poza_7_-_descarcare_si_instalare_vs.png?​direct&​700 |}}
  
-=== Extra 1 - Crearea unui proiect folosind Visual Studio ===+==== Extra 1 - Crearea unui proiect folosind Visual Studio ​====
  
 Pentru a crea un proiect, când se deschide aplicația Visual Studio, inițial o să apară următorul ecran: Pentru a crea un proiect, când se deschide aplicația Visual Studio, inițial o să apară următorul ecran:
Line 56: Line 56:
 Aici putem introduce numele proiectului dar și locația unde dorim să îl salvăm. După introducerea acestora și apăsarea butonului „Create” se va crea proiectul și se va deschide fereastra de lucru default din Visual Studio: Aici putem introduce numele proiectului dar și locația unde dorim să îl salvăm. După introducerea acestora și apăsarea butonului „Create” se va crea proiectul și se va deschide fereastra de lucru default din Visual Studio:
  
-{{ :​poo-is-ab:​resurse:​vs_resursa_poza_11_-_proiectul_deschis.png?​direct&​800 |}}+{{ :​poo-is-ab:​resurse:​vs_resursa_poza_11_-_proiectul_deschis.png?​direct&​700 |}}
  
-=== Extra 2 - Rezolvarea problemei C4996 privind funcția „strcpy” ===+==== Extra 2 - Rezolvarea problemei C4996 privind funcția „strcpy” ​====
  
-În cadrul laboratoarelor vom mai folosi biblioteca **cstring** și în special funcția **strcpy** din cadrul acesteia pentru copierea valorilor din șiruri de caractere. Visual Studio consideră această funcție depreciată și dacă se va rula vreun program cu această funcție, compilatorul va arunca următoarea eroare: **error C4996: '​strcpy':​ This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation,​ use _CRT_SECURE_NO_WARNINGS. See online help for details.**+În cadrul laboratoarelor vom mai folosi biblioteca **cstring** și în special funcția **strcpy** din cadrul acesteia pentru copierea valorilor din șiruri de caractere. Visual Studio consideră această funcție depreciată și dacă se va rula vreun program cu această funcție, compilatorul va arunca următoarea eroare: ​ 
 +**error C4996: '​strcpy':​ This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation,​ use _CRT_SECURE_NO_WARNINGS. See online help for details.**
  
 Pentru rezolvarea acestei probleme se va face click dreapta pe proiect (numele ales de voi scris cu font îngroșat, nu pe „Solution '​*'​ (1 of 1 project)”) și apoi **Properties** (ultima opțiune de jos). Următorii pași vor fi explicați pe următoarea imagine: Pentru rezolvarea acestei probleme se va face click dreapta pe proiect (numele ales de voi scris cu font îngroșat, nu pe „Solution '​*'​ (1 of 1 project)”) și apoi **Properties** (ultima opțiune de jos). Următorii pași vor fi explicați pe următoarea imagine:
Line 73: 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.1728395133.txt.gz · Last modified: 2024/10/08 16:45 by adrian.ciobanu1906
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