Documente Academic
Documente Profesional
Documente Cultură
REPUBLICII MOLDOVA
Colegiul „IULEA HASDEU” din Cahul
LUCRARE DE DIPLOMĂ
la specialitatea Informatica
Autor:
elevul gr. I-1441, MazîluSergiu,
_____________________
(semnătura)
Conducător ştiinţific:
gr. didactic I, Pîrvan Evgheni
____________________
(semnătura)
Cahul 2018
DECLARAŢIA pe propria răspundere
Mazîlu Sergiu
__________________
(semnătura)
Capitolul 1
1.1.1. Microsoft Visual Studio este un mediu de dezvoltare integrat de la Microsoft. Acesta
poate fi folosit pentru a dezvolta aplicații consolă și aplicații cu interfață grafică pentru
toate platformele suportate de Microsoft Windows.
C# este un limbaj de programare orientat pe obiecte, simplu, modern, ce deriva din C++
si Java.
Simplitatea limbajului este data de absenta pointerilor, mostenirea facilitatilor de
„garbage collection” si managementul automat al memoriei datorita integrarii pe
platforma .NET, iar operatiile nesigure precum manipularea directa a memoriei nu sunt
premise.
Modernitatea limbajului: C# este conceput pentru construirea de operatii scalabile,
robuste si interoperabile. Include un suport ”built in” pentru transformarea
componentelor in serviciu web pentru un acces mai usor.
Orientat pe obiecte: suporta incapsularea datelor. Interfetele, mostenirea si
polimorfismul. A introdus structurile (structs) pentru a permite tipurilor primitive sa
devina obiecte.
Type safe: nu se executa cast-uri nesigure, tablourile sunt neindexate si verificate,
depasirea tipurilor este verificabila, tipurile primitivelor sunt initializate cu zero si
tipurile de referinta cu null in mod automat de catre compilator.
Interoperabilitate: C# include suport pentru COM, permite utilizarea cu restrictii a
pointerilor, componente din VB.net si din alte limbaje pot fi folosite direct in C#.
Portabilitate: Codul C# poate rula pe mai mult de 2,2 miliarde de dispozitive cu
Windows, iOS, Android, Linux. C# este portabil intr-o gama larga de medii cum ar fi
telefonia mobila, Embedded, desktop si servere de calcul.
1.1.2. Avantajele față de celelalte limbaje de programare
Avantajele față de C++:
- Sistemul garbage-collection e nativ
- Biblioteca standard foarte bogată cu lucruri bine implementate și ușor de folosit
- Clasele și metodele pot fi setate să fie interne în ansamblul în care sunt declarate
- Permite tratarea semnăturilor de clasă-metode ca funcții libere( ignoră argumentul
pointer this) și creează astfel relații mai dinamice și flexibile între clase
- Permite folosirea blocurilor de cod atât native, cât și gestionate.
Avantajele față de Java:
- În loc de implementările de clase și EJB, C# are constructori proprii ușor de folosit
precum Properties sau Events
- Are variabile dinamice
- Are Lambda și LINQ suportând o parte de programare funcțională
- Permite definirea de tipuri noi
- Suportă expresia 'using' pe când Java o va implementa în Java 7
- Este integrat în Windows.
1.1.3. Istoric
Limbajul C# a fost dezvoltat de o echipă de ingineri de la Microsoft în frunte cu
Anders Hejlsberg. C# permite programarea structurată, modulară și orientată obiectual,
conform perceptelor moderne ale programării profesioniste.
Principiile de bază ale programării orientate pe obiecte (încapsulare, moștenire,
polimorfism) sunt elemente fundamentale ale programării C#. La baza acestuia stă
limbajul C dar sunt preluate și principiile de programare din C++. Au fost adăugate o
serie de tipuri noi de date sau funcțiuni diferite ale datelor din C++, iar în spiritul
realizării unor secvențe de cod sigure (safe), unele funcțiuni au fost adăugate ,
diversificate (tipul struct), modificate (tipul string) sau chiar eliminate (moștenirea
multiplă și pointerii către funcții). Unele funcțiuni cum ar fi accesul direct la memorie
folosind pointeri au fost păstrate, dar secvențele de cod corespunzătoare se consideră
„nesigure".
În momentul în care Microsoft a decis să susțină și să dezvole C# s-a hotărât ca acesta să
aibă o legatura deosebita cu mediul sau de rulare, arhitectura .NET. Pe de o parte, C# a
fost dezvoltat pentru crearea codului pentru arhitectura .NET, iar pe de alta parte
bibliotecile utilizate de C# sunt cele ale arhitecturii .NET. Atunci cand este compilat un
program C#, rezultatul compilarii nu este un cod executabil ci se se produce un fisier
într-un limbaj. Acest fisier IL poate fi copiat in orice calculator care dispune de .NET
CLR, prin intermediul compilatorului Just In Time, motorul comun de pogramare
transforma codul intermediar in cod executabil.
Creatorii C# au intenționat să înzestreze limbajul cu mai multe facilități. Succesul de
care se bucură în prezent, confirmă calitățile sale:
1.1.4. Comentarii
Limbajul C# admite trei tipuri de comentarii:
• comentariu pe un rând prin folosirea //. Tot ce urmează după caracterele // sunt
considerate, din acel loc până la sfârșitul rândului, drept comentarii.
• comentariu pe mai multe rânduri prin folosirea /* și */. Orice text cuprins
între simbolurile menționate mai sus se consideră a fi comentariu. Simbolurile /*
reprezintă începutul comentariului, iar */ sfârșitul respectivului comentariu.
• creare document în format XML folosind ///. Nepropunându-ne să intrăm în
amănunte, amintim că XML (eXtensible Markup Language) a fost proiectat în scopul
transferului de date între aplicații pe Internet, fiind un model de stocare a datelor
nestructurate și semi-structurate.
1.1.5. Nume
Definiție: Prin nume dat unei variabile, clase, metode etc. înțelegem o succesiune de
caractere care îndeplinește următoarele reguli:
1.1.7. Variabile
O variabilă în C# poate să conțină fie o valoare a unui tip elementar, fie o referință la un
obiect. C# este „case sensitive”, deci face distincție între litere mari și mici.
Tabelul de priorități:
1.1.10. Clase
Clasele reprezintă tipuri referință definite de utilizator.
O aplicație este formată din una sau mai multe clase, grupate în spatii de nume
namespaces.
O clasă este o structură de date care poate contine date: variabile și constante; și cod:
metode, proprietăți, evenimente, operatori, constructori și destructori.
O clasă poate să moștenească o singură clasă și poate implementa mai multe interfețe.
Clasele pot conține constante, cîmpuri, metode, proprietăți, evenimente, indexatori,
operatołi, constructori de instanță, destructori, constructori de clasă, tipuri inłbricate. Fiecare
membru poate conține un nivel de protecție, care controlează gradul de acces la cl.
O descriere este dată în table:
Modificator
Explicatii
access
protected folosit pentru clasele interioare semnificand accesul in clasa care-l contine
internal sau in tipurile derivate din clasa care-l contine
Metoda este un membru care implementează un calcul sau o acțiune care poate fi
efectuată asupra unui obiect sau asupra unei clase. Metodele statice sunt accesate prin
intermediul numelui de clasă, pe cînd cele nestatice sunt apelate prin intermediul unui obiect.
Operatorul este un membru care definește semnificația unui operator care se aplică
instanțelor unei clase. Sc pot supraîncărca operatorii binari, unari și de conversie.
Proprietatea este un membru care de acces la o caracteristică a unui obiect sau unei
clase. Exemplele folosite pină acum includeau lungimea unui vector, numărul de caractere ale
unui șir de caractere, etc.
Indexatorul este un membru care permite unui obiect să fie indexat în același mod ca
un tablou.
Cîmpul este un membru asociat fiecărui obiect; câmpul stochează o valoare
care contribuie la starea obiectului.
Evenimentul este un membru care permite unei clase sau unui obiect să pună la
dispoziția altora notificări asupra evenimentelor. Tipul acestei declarații trebuie să fie un tip
delegat. O instanță a unui tip delegate încapsulează una sau mai multe entități apelabile.
Constructorii instanță sunt membri care implementează acțiuni cerute pentru
inițializarea fiecărui obiect.
Proprietățile constructorilor:
Destructori
Destructorii sunt metode ale claselor actioneaza în sens invers, complementar, fata de
constructori. Destructorul elibereaza memoria alocata de constructori. Destructorul este apelat
automat, la ieșirea din blocul în care este recunoscut acel obiect.
Proprietatile destructorilor
Excepțiile nu sunt concepute pentru prevenirea bug-urilor. Chiar dacă programatorul elimină
toate bug-urile din programul său pot apărea erori pe care el nu le poate preveni:
În C# se pot arunca ca excepții obiecte de tip Systcm.Exeeption sau derivate ale lui. Pe lîngă
ierarhia de excepții pe care limbajul C# o are inclusă, programatorul își poate crea propriile sale
tipuri excepții.
Aruncarea și prinderea excepțiilor:
POO oferă o soluție pentru gestionarea erorilor: folosirea blocurilor try și catch. În scrierea
codului, programatorul va separa acele instrucțiuni care sunt sigure (adică nu pot fi
generatoare de excepții), de cele care sunt susceptibile să conducă la erori. Partea de program
care poate genera excepții o vom plasa într-un bloc try, iar partea corespunzătoare tratării
excepției, într-un bloc catch.
În cazul în care blocul try generează o excepție, Runtime întrerupe execuția și caută un bloc
catch apropiat care, în funcție de tipul său să poată trata respectiva eroare. In cazul în care
este găsit respectivul bloc catch programul continuă cu instrucțiunile din corpul catch. În
cazul în care nu se găsește nici un catch corespunzător, execuția programului este întreruptă.
Având in vedere că într-un corp try pot să apară excepții diferite, în program pot exista mai
multe blocuri corespunzătoare catch.
Blocul finaliy
Limbajul C# permite cala ieșirea dintr-un bloc try să fie executate obligatoriu, în cazul în care
programatorul dorește acest lucru, anumite instnłcțiuni. Pentru acest lucru, respectivele
instrucțiuni vor fi plasate într-un bloc finally.
Blocul finally este util fie pentru a evita scrierea unor instrucțiuni de mai multe ori, fie
pentru a elibera resursele după părăsirea excepției.
Succesiunea execuției este următoarea:
• se execută instrucțiunile din blocul try până la apariția unei exepții; în cazul în care nu se
declanșază nłci o exepțłc se execută întregul bloc;
• dacă a apărut o exepție sc compară lipul exepției eu tipurile din lista de catch și se
execută blocul de instrucțiuni corespunzător pentru tratarea exepției; o comparația se
face în ordinea in care apar blocurile catch; o după execuția unui bloc catch nu se
continuă cautarea în celelalte blocuri catch, deci excepțiile mai generale trebuie puse
după excepțiile particulare;
• se execută instrucțiunile din blocul linally (indiferent dacă a apărut sau nu o exepție și
indiferent dacă aceasta a fost tratată sau nu);
• daca nu a apărut nici o exeptie sau dacă excepțiaa rost tratată printr-un bloc catch
execuția continuă cu instrucțiunile de după blocul finally, altfel excepția este propagată
în apelator.
Blocurile catch și finally nu sunt obligatorii (unul dintre ele poale lipsi).
.3.1. Mediul de dezvoltare Microsoft Visual C#
.3.3. Controale
Unitatea de bază a unei interfețe Windows reprezintă un control. Acesta poate fi „primit” de
un container ce poate fi un formular sau un control. Un control este o instanță a unei clase
derivate din System.Windows.Forms și este reponsabil cu desenarea unei părți din container.
Visual C# vine cu o serie de controale standard, disponibile în Toolbox. Aceste controale pot fi
grupate astfel:
Controale de actiune (de exemplu button ) care, atunci când sunt acționate, se poate
executa o prelucrare. De exemplu, cel mai important eveniment pentru Button este Click
(desemnând acțiunea click stânga pe buton)
usurinta in utilizarea aplicatiei fata de utilizarea unui sistem de gestiune a bazelor de date
de catre utilizatorii finali;
asigurarea securitatii bazei de date prin restrictionarea accesului pentru utilizatorii finali;
asigurarea unui anumit mod de prezentare si vizualizare a datelor;
mentinerea integritatii datelor in vederea mentinerii caracteristicii de relevanta a acestora.
Se considera aplicatia Windows Forms destinata construirii unei baze de date cu structura creata
la.
Crearea conexiunii dintre aplicatie si baza de date presupune:
Succesiunea prezentata mai sus reprezinta pasii aplicatiei Data Source Configuration Wizard, iar
optiunile si selectiile precizate sunt salvate la fiecare pas traversat al aplicatiei.
Incheirea executiei aplicatiei wizard conduce la crearea DataSet, vizibil in structura proiectului
VB.NET
DataSet asigura copierea in memorie a datelor extrase din sursa de date. Este o locatie temporara
de stocare a datelor din baza de date, retinand toate modificarile care se opereaza asupra datelor
incarcate din baza de date originala. Vizializarea multimii de obiecte DataSet din aplicatie se
efectueaza din meniul Data, comanda Show Data Sources, fiind o alta forma de reprezentare a
DataSet. In cadrul aplicatiei, se deschide formularul in modul de vizualizare Design prin
aplicarea unui dublu-cliek de mouse pe fisierul cu denumirea formularului,
implicit Forml. vb.
Aducerea unui DataSet pe fołmular se realizeaza astfel:
DataGridView permite vizualizarea mai multor inregistrari la un moment dat, sub forma de tabel.
Prin selectarea optiunii Details din meniul asociat tabelului AccesAng, se obtine o alta
modalitate de vizualizare a datelor in formular, respectiv vizualizarea unei singure inregistrari la
un moment dat. Salvarea datelor in baza de date originala prin DataSet se realizeaza la apasarea
butonului Save din bara de instrumente asociata obiectului DataSet.
Obiecte asociate DataSet si rolurile acestora: