COORDONATOR ȘTIINȚIFIC ABSOLVENT Asist.univ.dr. Alexandrescu Adrian Stoina Costin CONSTANȚA 2014 UNIVERSITATEA „OVIDIUS” DIN CONSTANȚA FACULTATEA DE… [629675]
UNIVERSITATEA "OVIDIUS" DIN CONSTANȚA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ
LUCRARE DE LICENȚĂ
COORDONATOR ȘTIINȚIFIC ABSOLVENT: [anonimizat].univ.dr. Alexandrescu Adrian Stoina Costin
CONSTANȚA
2014
UNIVERSITATEA "OVIDIUS" DIN CONSTANȚA
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ
DEZVOLTAREA DE APLICAȚII
INFORMATICE, FOLOSIND
TEHNOLOGIA ADO.NET, CU DATE
SALVATE ÎN FIȘIERE XML
COORDONATOR ȘTIINȚIFIC ABSOLVENT: [anonimizat].univ.dr. Alexandrescu Adrian Stoina Costin
CONSTANȚA
2014
Cuprins
Introducere ………………………….. ………………………….. ………………….. 1
1 Mediul de dezvoltare Visual Studio ………………………….. ……… 3
1.1 Introducere ………………………….. ………………………….. ………………………….. ………….. 3
1.2 Mediul de proiectare (Designer) ………………………….. ………………………….. …………. 4
1.3 Editorul de cod (Code Editor) ………………………….. ………………………….. …………….. 5
1.4 Depanatorul (Debugger) ………………………….. ………………………….. ……………………. 6
2 Noțiuni generale despre tehnologiile folosite ……………………… 7
2.1 Platforma .NET ………………………….. ………………………….. ………………………….. ……. 7
2.2 Tehnologia ADO.NET ………………………….. ………………………….. ………………………. 9
2.2.1 Furnizorii de date (Data Providers) ………………………….. …………………………. 10
2.2.2 Setul de date (DataSet) ………………………….. ………………………….. ……………… 11
2.3 Tehnologia Windows Forms (WF) ………………………….. ………………………….. ……. 13
2.4 Limbajul Visual Basic .NET (VB.NET) ………………………….. …………………………. 15
2.5 Metalimbajul Extensible Markup Language (XML) ………………………….. ………… 17
2.5.1 Introducere ………………………….. ………………………….. ………………………….. ….. 17
2.5.2 Sintaxa ………………………….. ………………………….. ………………………….. ……….. 18
2.5.2.1 Elementele ………………………….. ………………………….. ………………………… 18
2.5.2.2 Atributele ………………………….. ………………………….. ………………………….. 19
2.5.2.3 Entitățile ………………………….. ………………………….. ………………………….. . 19
2.5.2.4 Declarația tipului de document ………………………….. ………………………… 20
2.5.2.5 Secțiunile CDATA ………………………….. ………………………….. …………….. 21
2.5.2.6 Instrucțiuni de preprocesare ………………………….. ………………………….. … 21
2.5.2.7 Comentariile ………………………….. ………………………….. ……………………… 22
3 Procesul de dezvoltare al aplicației ………………………….. …….. 23
3.1 Cerințele aplicației ………………………….. ………………………….. ………………………….. 23
3.2 Descrierea domeniului conceptual ………………………….. ………………………….. …….. 25
3.3 Arhitectura aplica ției ………………………….. ………………………….. ……………………….. 26
3.4 Proiectarea bazei de date ………………………….. ………………………….. ………………….. 27
3.5 Proiectarea formularelor ………………………….. ………………………….. ………………….. 30
3.5.1 Formularul de login ………………………….. ………………………….. ………………….. 30
3.5.2 Formularul de înregistrare ………………………….. ………………………….. …………. 31
3.5.3 Formularul de schimbare a parolei ………………………….. ………………………….. 32
3.5.4 Formularul Aplicație ………………………….. ………………………….. ………………… 33
3.5.4.1 Tab-urile specifice administratorului (decanului) ………………………….. .. 33
3.5.4.2 Tab-urile specifice utilizatorilor (secretarilor) ………………………….. ……. 35
3.6 Manualul de utilizare ………………………….. ………………………….. ………………………. 39
Concluzii ………………………….. ………………………….. …………………….. 41
Bibliografie ………………………….. ………………………….. …………………. 42
Anexe ………………………….. ………………………….. …………………………. 44
1
Introducere
În această l ucrare este prezentat modul de re alizare a unei aplicații desktop , utilizând
ca tehnologii principale ActiveX Data Objects (ADO) și Windows Forms (WF),
componente ale platformei .NET, împreună cu limbaju l de programare Visual Basic .NET ,
mediul integrat de de zvoltare Visual Studio și metalimbajul Extensible Markup Language
(XML) .
Am ales această temă deoarece am vrut să -mi însușesc mai multe cunoștiințe în ceea
ce privește dezvoltarea aplicațiilor desktop, ce nu utilizează o bază de date pentru a
prelucr a și stoca date, și pentru a experimenta tehnologiile puse la dispoziție de Microsoft
pentru realizarea acestora.
Unele dintre avantajele utiliză rii acestor tehnologii sunt urmă toarele :
Visual Studio dispune de un debugger excelent, ce facilitează detectar ea
erorilor și înțelegerea codului aplicației, datorită posibilită ții de parcurgere a
acestuia pas cu pas.
Limbajul de programare Visual Basic .NET (VB.NET) suportă dezvoltarea
rapidă a aplicațiilor sau RAD, deoarece acesta este ușor de înțeles și de utilizat .
Oferind mai multe tipuri de controale tehnologia Windows Forms permite
realizarea rapidă și interactivă a interfeței grafice.
Tehnologia ADO ofer ă posibilitatea de a lucra cu mai multe tabele simultan și
permite ca legarea tabelelor la diverse controale să se realizeze intr -un mod
ușor.
Fișierele XML oferă flexibilitate pentru stocarea datelor, doare ce nu impun
restricții pentru mă rimea și tipul datelor ce vor fi stocate. Aceste fișiere se pot
deschide cu editoare text ce su nt compatibile cu formatul XML, iar informația
codată din acest ea, este ușor de citit și de înț eles.
Aplicația are ca scop ținerea evidenței candidaților înscriși la concursul de admitere
într-o anumită facultate, și de a permite în final generarea listelo r cu rezultatele concursului
de admitere.
2
Pentru realizarea acestei aplicații, am avut în vedere ca utilizarea acesteia să se
realizeze în tr-un mod plăcut, iar în viitor aceasta să poată fi îmbunătățită sau ex tinsă prin
adăugarea de noi facilități.
Lucrar ea este împărțită în trei capitole după cum urmează :
Capitolul 1 – Mediul de dezvoltare Visual Studio
o Primul capitol al acestei lucrări, descrie pe scurt mediul de dezvoltare
Visual Studio, cu ajutorul căruia s -a realizat aplicația.
Capitolul 2 – Noțiuni generale despre tehnologiile folosite
o Cel de -al doilea capitol conține informații elementare despre
tehnologiile folosite , pentru dezvoltarea aplicației.
Capitolul 3 – Procesul de dezvoltare al aplicației
o În ultimul capitol , este prezentat detaliat modul d e implementare al
aplicației.
3
Capitolul 1
1 Mediul de dezvoltare Visual Studio
În acest capitol sun t prezentate informații elementare despre mediul de dezvoltare
Visual Studio, ce se poate utiliza pentru a realiza aplicații desktop de tip consolă sau cu
interfață grafică, dar și pentru servicii și aplicații web.
1.1 Introducere
În anul 1995 a fost lansată prima versiune sub numele de Visual Studio 4.0. Anterior
acestei versiuni au existat Visual Souce Safe, și limbajele Visual FoxPro, Visual C++ și
Visual Basic 3 , dar ca și produse independente. Mai jos este prezentat istoricul versiunilor
acestui program.
Denumire Versiune Versiune
.NET Framework Anul
lansării
Visual Studio 4.0 – 1995
Visual Studio 97 5.0 – 1997
Visual Studio 6.0 6.0 – 1998
Visual Studio .NET 7.0 1.0 2002
Visual Studio .NET 2003 7.1 1.1 2003
Visual Studio 2005 8.0 2.0 2005
Visual Studio 2008 9.0 3.5 2007
Visual Studio 2010 10.0 4.0 2010
Visual Studio 2012 11.0 4.5 2011
Visual Studio 2013 12.0 4.5.1 2013
Tabelul 1.1 : Istoric Visual Studio
Visual Studio este un mediu integrat de dezvoltare (IDE) de la Microsoft, utilizat
pentru crearea, depanarea și rularea aplicații lor, ce se pot fi scrise intr -o varietate de
limbaje suportate de platforma .NET (vezi secțiunea 2.1), cum ar fi : Visual C# , Visual
C++, Visual Basic .NET, etc. De asem enea oferă pentru aceste limbaje editor de cod ,
compilator/debugger și un mediu de proiectare, cunoscut și sub numele de designer.
Pe lângă limbajele enumerate mai sus, acest program oferă suport și pentru alte
limbaje, ca de exemplu: Python, Ruby, JavaScript, CSS, XML, HTML , etc.
4
Versiunea curentă a acestui IDE, este Visua l Studio 2013 și este disponibilă în mai
multe variante, fiecare gândită pentru tipuri diferite de utilizatori :
Visual Studio 2013 – Express
Visual Studio 2013 – Test Professional
Visual Studio 2013 – Professional
Visual Studio 2013 – Premium
Visual Studio 2013 – Ultimate
Dintre variantele enumerate , varianta Express este gratuit ă, și vizează utilizatori
casnici și studenț ii, care pot realiza cu acest program aplicații necomerciale.
1.2 Mediul de proiectare (Designer)
Acestă caracteristică este folosită pentru dezvolt area rapidă a aplicațiilor , ce
utilizează o interfață grafică și nu numai. Mediul de proiectare include o serie de unelte
cum ar fi :
Windows Forms Designer
o Este utilizat pentru realizarea de aplicații cu interfață grafică (GUI), ce
folosesc Windows Forms (WF). Interfața se poate crea într-un mod
simplu adău gând în formular , controale predefinite sau create , utilizând
tehnica drag and drop . Legarea controalelor la o bază de date poate fi
realizată prin adăugarea elementelor din fereas tra Surse de Date, pe
suprafața aces tora. De asemenea designer -ul generează cod Visual C#
sau Visual Basic.NET pentru aplicație, în funcție de tipul acesteia.
Windows Presentation Foundation (WPF) Designer
o A fost introdus odată cu Visual Studio 2008, iar la fel ca și celălalt
designer, suportă tehnica drag and drop pentru adăugarea controalelor.
Acesta generează fișiere Extensible Application Markup Language
(XAML) pentru interfața grafică, ce sunt compatibile cu Microsoft
Expression Design .
5
Class Designe r
o Acestă unealtă este folosită pentru editarea claselor după modelul
Unified Modeling Language (UML), oferind posibilitatea de a vizualiza
structura acestora și relațiile dintre acestea dar și de a crea noi clase
utilizând acest mediu vizual de proiectare. De asemenea poate genera
diagrame de clase din cod, unde clasele sunt declarate manual.
Data Desinger
o Designerul de date se poate folosi pentru editarea grafică a schemelor
bazelor de date utilizate, incluzând tabele, chei primare sau străine și
constrân geri, dar și pentru proiectarea de interogări pentru acestea.
1.3 Editorul de cod (Code Editor)
Visual Studio dispune de un editor de cod sofisticat, ce u șurează scrierea și
gestionarea acestuia. Acest editor oferă mai multe seturi de caracteristici, ce pot avea un
comporta ment diferit pentru diferitele limbaje suportate. Dintre aceste caracteristici cele
mai importante sunt următoarele :
Evidențierea avertismentelor și erorilor în timp real pe masură ce codul este
scris, prin sublinierea acestora cu linie ondulată de diferite culori, în funcție de
problema detectată. De exemplu roșul este folosit pentru a evidenția erori de
sintaxă, albastrul pentru erorile de compilare, verdele indică avertismente, iar
culoarea violet este folosită pentru a evidenția alte tipuri de erori.
Evidențierea modificărilor făcute într -un fișier. Acest lucru este reprezentat
printr -o bară în partea stângă , de culoare galbenă, în dreptul porțiunii de cod
modificate sau adăugate. Această bara devine verde după ce fișierul este salvat .
Dacă este anulată o modificare după salv area fișierului, bara devine po rtocalie.
IntelliSense accelerează procesul de codare al aplicațiilor , prin reducerea
erorilor de scriere. În timpul scrieri i codului , prin intermediul unei ferestre de
tip pop-up se vor afișa sugesti i cum ar fi : numele variabilelor, denumirea
metodelor și proprietăților , parametrii utilizați de acele metode împreună cu
6
tipul și semnifi cația lor, etc. A ceste sugestii sunt filtrate, în f uncție de
caracterele introduse de la tastatură.
Figura 1.1 : Sugestii IntelliSense
1.4 Depanatorul (D ebugger)
Depanatorul integrat în Visual Studio funcționează atât pentru depanarea la nivel de
sursă, cât și pentru cea de la nivelul mașină. Una din cele mai importante facilități oferite
de acest depanato r este aceea de a edita codul în timpul depanării, ce permite utilizat orului
să corecteze erorile fără a mai fi nevoit să oprească programul, sau să iasă din modul de
depanare. Acestă facilitate, cunoscută și sub numele Edit and Continue , permite ca greșel i
comune, să fie corectate cu ușurință și cu o economie mare de timp , deoarece nu mai este
necesară recompilarea codului.
O altă facilitate o reprezintă setarea puncte lor de întrerupere , în mod normal, sau
însoțite de o condiție, ceea ce înse amnă că pentru a declanșa întreruperea, trebuie să se
îndeplinească condiția setată anterior. Pe lângă punctele de întrerupere se pot seta și
contoare, pentru a monitoriza valorile variabilelor pe parcursul executării codului.
Depanatorul oferă posibilitate a de a parcurge codul din interiorul metodelor pas cu
pas, și permite utilizatorului să poată inspecta valorile variabilelor, prin intermediul unui
tooltip , ce este afișat atunci câ nd peste variab ilă este aș ezat cursorul mouse -ului.
Prin intermediul feres trei Immediate , se pot depana și evalua expresii, efectua
declarații, apela metode și s eta parametrii pentru acestea, î n timpul depanării , etc. Această
fereastră beneficiază de asemenea de IntelliSense .
7
Capitolul 2
2 Noțiuni generale despre tehnologiile fo losite
Acest capitol con ține informații despre platforma .NET , tehnologiile oferite de aceasta
ce au fost folosite pentru dezvoltarea aplicației , și meta limbajul XML utilizat pentru
stocarea datelor.
2.1 Platforma .NET
.NET este o platformă/cadru ( framework ), pentru dezvoltarea de software , ce
reunește mai multe tehnolog ii (XML, ADO, WF, Active Server Pages , Language –
Integrated Query , Simple Object Access protocol , etc) și limbaje de programare cum ar fi :
VB.NET, Visual C++, Visual C#, Visual F#, etc.
Platform a este oferită utilizatorilor odată cu sistemul de operare Microsoft Windows,
și asigură portabilitatea codului compilat între calculatoarele ce utilizează acest sistem de
operare, cât și reutilizarea codului în diferite programe, indiferent de limbajul ut ilizat.
Figu ra 2.1 : Tehnologii incluse în .NET Framework (sursa: http:// en.wikipedia.org )
Pentru a putea fi integrate în .NET Framework , limbajele de programare enumerate
mai sus, sunt constrânse să respecte un set de specificații elementare ,
8
cunoscut sub numele de Common Language Specification (CLS) , în acest fel se asigură
interoperabilitatea între aplicații, indiferent de limbajul folosit pentru implementarea
acestora.
Common Type System (CTS) este un set de tipuri, definit de CLS, și este f olosit
pentr u a permite programelor scrise î n diferite limbaje de programare, s ă poată partaja
informații cu uș urință.
Limbajele au ca elemente de bază : clase, interfețe, structuri, enumerări, delegări, și
suportă mecanisme cum ar fi : moștenirea, polimorfi smul și tratarea excepțiilor.
Un ansamblu de biblioteci numit Framework Class Library (FCL) , este folosit de
aceste limbaje pentru realizarea aplicațiilor desktop sau web.
O altă componentă a platformei, este Common Language Runtime (CLR) , ce este
utiliza tă de toate limbajele suportate de .NET Framework. În timpul compilări i, conform
CLS, codul este transformat în Microsoft Intermediate Language (MSIL) . Codul obținut
are extensia „.exe”, dar nu este direct executabil, instrucțiunil e acestuia fiind executat e de
către o mașină virtuală inclusă î n CLR.
Figu ra 2.2 : Arhitectura .NET Framework
Platforma conține compilatoare, bliblioteci și alte executabile necesare pentru
rularea aplicațiilor .NET. De obicei fișierele corespunzătoare sunt instalate î n dosarul
C:\Windows \Microsoft.NET \Framework \v… (corespunzător versiunii instalate).
Versiunea curentă a acestei platforme este .NET Framework 4.5.2, iar utilizarea
acesteia rămâne cel mai ușor mod de a dezvolta aplicații, pentru platforma Microsoft.
9
2.2 Tehnologia ADO.NET
ADO.NET este o componentă import antă a platformei .NET , ce permite conectarea
la diferite surse de date, pentru extragerea, manipularea și actualizarea datelor.
În general o sursă de date este o bază de date, dar mai pot fi utilizate de asemenea
fișiere text, XML, Xlsx (fișier Excel), etc. Lucrul cu o sursă de date se poate face fie
conectat, fie deconectat de la sursa de date , ambele moduri de lucru fiind suportate de către
acestă tehnologie.
Aplicațiile ce lucrează în mod deconectat cu sursa de date, se conectează la aceasta
doar pentru a extrage și actualiza datele, reducând astfel numărul conexiunilor deschise
simultan la acea sursă.
Există însă și aplicații care încă folosesc lucrul în mod conectat, acestea consumând
mai multe resurse , datorită conexiunilor ce trebuiesc menținute deschise. Tot din acest
motiv, și server -ul de baze de date va răspunde mai lent solicitărilor clienților.
ADO.NET oferă instrumente de utilizare și reprezentare XML, facilitând schimbul
de date cu alte aplica ții sau componente, furnizând o reprezentare comună a datelor. Din
acest motiv, nu mai este necesară conversia explicită a datelor, la transferul între aplicații,
fapt ce duce la creșterea performanțelor acestora.
Principalele componente ale ADO.NET utiliz ate pentru accesarea și manipularea
datelor sunt furnizorul de date (Data Provider), și setul de date (DataSet)
Figu ra 2.3 : Arhitectura ADO.NET (sursa: http:// msdn.microsoft.com )
10
2.2.1 Furnizorii de date (Data Provider s)
Datorită existenței a mai multor surse de date, fiecare utilizând un protocol de
comunicare d iferit, platforma .NET are implementată câte o bibliotecă specializată de clase
(denumite furnizori de date), pentru fiecare dintre aceste protocoale.
Furnizorul de date, permite aplicației să se conecteze la o sursă de date, oferind apoi
posibilitatea de a executa comenzi, sau de a salva rezultate.
Un furnizor de date, are incluse următoarele componente :
Connection , asigur ă conectivitatea la sursa de date.
Command , este o componentă ce permite : accesul la baza de date,
trimiterea și preluarea de informații parametrizate, executarea de proceduri
stocate, iar prin intermediul comenzilor SQL (Select, Insert, Update,
Delete) , preluarea sau modificarea datelor.
DataReader , oferă un flux de date, de înaltă performanță, între aplicație și
sursa de date.
DataAdapter , realizează legătura între sursa de date, și componenta
DataSet .
Furnizorii de date incluși în .NET Framework sunt :
.NET Framework Data Provider for SQL Server , permite accesul la
date, pentru Microsoft SQL Server.
.NET Framework Data Prov ider for SQL Server Compact 4.0 , este
utilizat pentru a accesa date, de la Microsoft SQL Server Compact 4.0 .
.NET Framework Data Provider for OLE DB , folosit pentru surse de
date de tipul Object Linking and Embedding Database.
.NET Framework Data Provider for Oracle , pentru surse de date Oracle.
.NET Framework Data Provider for ODBC , utilizat pentru susele ce
utilizeaz ă standardul Open Database Connectivity .
EntityClient Provider , oferă accesul la date de tipul Entity Data Model
(EDM) .
11
2.2.2 Setul de date (DataSet)
DataSet -ul este o reprezentare a datelor recepționate din sursa de date, în memoria
cache , și este o componentă majoră a arhitectur ii ADO.NET.
Acesta este format din tabele ( obiecte de tipul DataTable) între care se pot stabili
legături/relații, reprezentate printr -o colecție de obiecte DataRelation, utilizate pentru
memorarea legăturilor părinte -copil, cheilor străine, și constrângerilor de unicitate.
La rândul lui, un DataT able este format dintr -o colecție de obiecte DataRow și
DataColumn. ADO.NET permite lucrul simultan, cu mai multe DataTable -uri, ce se pot
afla în DataSet -uri diferite.
În imaginea de mai jos, e ste prezentat un DataSet ce conț ine două DataTable -uri,
legate printr -un obiect de tipul DataRelation.
Figu ra 2.4 : Data Designer
ADO.NET beneficiaz ă de toate calitățile XML, pentru a oferi acces la date în mod
neconectat, tehnologia ADO.NET fiind proiec tată pe baza claselor XML, ambele fiind
părți componen te ale platformei .NET .
DataSet -ul oferă posibilitatea de a folosi fișiere XML, pentru încărcarea și stocarea
datelor sau a schemelor. Aceste fișiere pot fi apoi transmise prin intermediul internetului ,
pentru a fi utilizate de către alte aplicații, ce su portă acest tip de fișiere.
Pentru salvarea sau încărcarea schemei unui DataSet, se folosesc metodele
WriteXmlSchema , respectiv ReadXmlSchema (vezi Anexa 1 ).
12
Utilizarea acestor metode este exemplificată în următoarea secvență de cod:
Nume DataSet.WriteXmlSchema( "C:\" & "Nume Fișier.Xml ")
Nume DataSet.ReadXmlSchema( "C:\" & "Nume Fișier.Xml ")
De asemenea, aceste metode se pot utiliza si în mod explicit pentru un anumit
DataTable, din DataSet:
Nume DataSet. Nume DataTable. WriteXmlSchema( "C:\" & "Nume Fișier.Xml ")
Nume DataSet. Nume DataTable. ReadXmlSchema( "C:\" & "Nume Fișier.Xml ")
Metodele ReadXml, și WriteXml pot fi folosite î n același mod ca cele de mai sus,
dar pentru încărcarea, respectiv salvarea datelor în fișiere.
ADO.NET permite legarea contr oalelor (TextBox, ComboBox, GridView, etc) la
DataSet, prin DataBinding, utilizând obiecte de tipul Bid ingSource, ce vor comunica cu
obiectele de la care se obțin datele. Realizarea legături i se poate rea liza atât din editorul de
cod, cât și din mediul de proiectare.
În următoarea secvenț ă de cod este prezentată legarea unui ComboBox
(cmbExemplu ), la DataTable -ul Specializari , ce conține două coloane : IdSpecializare și
Denumire .
Me.cmbExemplu .DataSource = SpecializariBindingSource ' realizarea leg ăturii
Me.cmbExemplu. DisplayMember = "Denumire " ' setarea valorilor ce vor fi
afișate în listă
Me.cmbExemplu. ValueMember = "IdSpecializare " ' setarea valorilor ce vor fi
returnate, când este invocată proprietatea SelectedValue, a ComboBox -ului
Figu ra 2.5 : Afișarea valori i selectate
13
Același lucru se poate realiza și din mediul de proiectate, cu câteva click -uri de
mouse .
Figu ra 2.6 : DataBinding din mediul de proiectare (designer)
2.3 Tehnologia Windows Forms (WF)
Această tehnologie este utilizată pentru dezvoltarea aplicațiilor des ktop, bazate pe
platforma .NET , la realizarea interacț iunii cu utilizatorul . Utilizând Windo ws Forms, se pot
crea aplica țíi, numite și Smart Clients , ce beneficiază de urmă toarele avantaje:
sunt ușor de implementat , și de actualizat
pot accesa resurse locale, de la compu ter-ul de pe care a u fost rulate
pot funcționa atât conectate, câ t și deconectate de la Internet
sunt capabile s ă comunice la distanță cu alte computere, prin intermediul unei
rețele
Un fo rmular (Form) este reprezentarea în programarea .NET, a unei ferestre din
Microsoft Windows. Acest sistem de operare foloseș te pentru c rearea acestora, rutinele din
biblioteca Win32 .
În general este de formă d reptunghiulară, și este caracterizat de următo arele
elemente : o bară de titlu, un meniu, bări de unelte (Toolbars), bări de navigare, și o zonă
client (Client Area).
14
Formularele sunt utilizate atâ t pentru afișarea datelor către utilizator, cât și pentru
solicitarea introducerii anumitor date, de către acesta, și pot fi de mai multe feluri, cum se
poate observa în Figura 2.7:
1. ferestre standar d;
2. ferestre copil (child), intr -o interfa ță MD I (Multiple Document Interface);
3. suprafețe pentru repezentarea rutinelor grafice;
4. casete de dialog;
Figu ra 2.7 : Tipuri de formulare
În momentul creării unui formular, este constuit un obiect de tipul unei clase, care
moștenește clasa Form , din spațiul de nume System.Windows.Forms . În consecință , un
formular este un obiect , ale cărui trăsături pot fi modificate după cum urmează:
aspectu l, utilizând proprietăți (Name, Text, Size, BackgroundImage , etc)
comportamentul, folosind metode (Show, Refresh , Hide, Close, etc)
interacțiunea cu utilizatorul, prin intermediul evenimentelor (Load, Leave,
GotF ocus, Lost Focus, Closed, etc)
Când crează un formular, utilizatorul, are posibilitatea de a al ege dacă acest
formular moșteneș te clasa Form din .NET Framework, sau un alt formular creat anterior.
Cel mai simplu mod de a crea și edita un formular , este utilizând Windows Forms
Designer , selectând controlul dorit, apoi adăugându -l în formular, în poziția dorită folosind
tehnica drag and drop .
Windows Forms conține o mare varietate de cont roale ce pot fi adăugate într -un
formular , cum ar fi: Label, B utton, RadioButton, ComboBox , TextBox, ListBox , etc.
15
Cont roalele enumerate anterior se gă sesc in Toolbox, iar pe lângă acestea,
utilizatorul își poate crea propriile controale, în funcție de nevoile sale, utilizând clasa
UserControl , sau elemente pentru in terfața grafică, folosind spațiul de nume
System.Drawing . Acesta, conține un număr mare de clase, care permit afișarea unor forme
geometrice (linii, dreptunghiuri, cercuri, etc), direct pe sup rafața unui formular.
Un formular realizat cu ajutorul designeru lui, este o clasă, iar aceasta este folosită
drept șablon pentru crearea formularului, atunci câ nd este afișată o instanță a acestuia.
Figu ra 2.8 : Windows Forms Designer
2.4 Limbajul Visual Basic .NET (VB.NET)
Visual Basic .NET este un limbaj de p rogramare orientat pe obiect e, modern, de
nivel înalt, dezvoltat de Mi crosoft, ce combină eficacitatea platformei .NET și Common
Language Runtime (CLR), cu beneficii de productivitate, acestea fiind și semnele
distinctive ale acestui limbaj.
Sintaxa acestu i limbaj este asemănă toare cu limba Eng leză, acest fapt oferind o
înțelegere mai bună și lizibilitate, codului scris.
Deși este proiectat pentru a fi accesibil și ușor de învățat, totodată este suficient de
puternic pentru a satisface nevoile programatori lor cu experiență.
16
La fel ca și celela lte limbaje incluse in .NET Framework, VB.NET dispune de suport
complet pentru con ceptele programării orientate pe obiect e.
Totul în acest limbaj , este considerat a fi un obiect, începând de la tipurile de date
cele mai simple ( Byte, Integer, String, Boolean, etc) până la tipurile definite de utiliz ator,
evenimente și structuri . Toate aceste obiecte, fiind derivate din clasa de bază Object.
Deși Visual Basic .NET este s uccesor limbajului clasic Visual Basic , acestea sunt limbaje
diferite. Codul scris în versiunile mai vechi, nu este compatibil în VB.NET, și nici invers.
Fiind implementat pe platforma .NET, limbajul de programare, beneficiază de acces
complet la toate bib liotecile conținute de această platformă.
De asemenea este posibilă rularea programelor scrise în acest limbaj, nu numai în
sistemul de operare Windows, ci și în Linux sau Mac OSX, utilizând platforma Mono
(alternativă open -source pentru .NET Framework).
Utilizând Visual Basic .NET, se pot dez volta atât aplicații desktop, câ t și aplicații
web sau pentru dispozitive mobile. Ca și celela lte limbaje i ntegrate în platforma .NET,
acesta beneficiază de securitatea și in teroperabilitatea codului scris, oferind un mod plăcut
și rapid de a dezvolta aplicații bazate pe această platformă.
Fișierele ce conțin cod scris în limbajul VB.NET, au extensia „.vb ”. Conținutul unui
astfel de fișier (Module1 .vb) este prezentat mai jos :
Module Module1
Sub Main()
MsgBo x("Mesaj de test")
End Sub
End Module
Compilarea acestui fișier , va afi șa următorul rezultat:
Figu ra 2.9 : Rezultatul compil ării fișierului Module1.vb
17
2.5 Metalimbajul Extensible Markup Language (XML)
2.5.1 Introducere
XML este un limbaj de marcare , definit în anul 1996 , în cadrul Consorțiului World
Wide Web (W3C) , și dezvoltat apoi de un grup de cercetare condus de Jon Bosak de la Sun
Microsystems .
La fel ca și limbajul HyperText Markup Language (HTML ), acesta este derivat din
limbajul Standard Generalized Markup Language (SGML) și este folosit pentru marcarea
structurală a documentelor.
Spre deosebire de HTML, care este folosit pentru afișarea datelor, XML a fost creat
pentru stocarea datelor și transportul acestora între aplicații, indiferent de software -ul sau
hardware -ul sistemului de calcul, pe care aceste aplicații rulează.
Figu ra 2.10 : Limbaje derivate din SGML
Semnificația acestui limbaj, se află de fapt î n denumirea acestuia :
Este un limbaj asemănător cu HTML, dar mult mai flexibil, deoarece oferă
posibilitatea de a crea propriile marcaje (tag-uri). Totodată este și un
metalimbaj, întrucât se pot crea ș i alte limbaje derivate din acesta, cum ar fi:
Mathematical Markup Language (MathML) sau Rich Site Summary (RSS).
Pentru că oricine poate extinde acest limbaj, pentru a crea diferite moduri de
a-l utiliza, XML este un limbaj extensibil .
Fiind utilizat pentru a descrie date sau simboluri, prin intermediul marcajelor ,
acesta este un limbaj de marcare .
Un fi șier XML este format în general din dou ă părți : un prolog (header ), în care se
află informații destinate unui parser , sau aplicațiilor privind modul de interpretare, și de
18
utilizare al documentului, și o parte de conținut ( content ), aceasta r eprezentând datele
documentului.
Parser-ul este un program, de obicei parte a unui compilator, utilizat pentru a
identifica st ructura unui fișier de intrare, căutând totodată erori de sintaxă în acesta, dar și
pentru aducerea fișierului la o formă convenabilă, spre a fi utilizat de alte componente ale
compilatorului.
Figu ra 2.11 : Structura unui fi șier XML
2.5.2 Sintaxa
Fișierele XML, po t conține mai multe tipuri de marcaje, cum ar fi : elemente ,
atribute , entități, declarația tipului de fișier , secțiu ni CDATA, instrucțiuni de preprocesare,
și comentarii .
2.5.2.1 Elementele
La fel ca și în HTML, marcajele , se folosesc în pereche. Ele încep cu semnul mai
mic („<”) și se sfârșesc cu semnul mai mare („ >”), și sunt folosite pentru a indica începutul
și sfârșitul unui element . Marcajul de final se deosebește de cel de început, prin semnul
slash („/”) așezat imediat după semnul mai mic.
19
O pereche de marcaje , ca cele din Figura 2.11 (de exemplu : <Nume>…</Nume>),
se nume ște element. Un element este o unitate logică de informație, a unui fișier XML , și
pot fi utilizat e atât pentru definirea structurii, cât și pentru stocarea de informații.
Acest lucru poate fi observat și în Figura 2.11, unde elementele : <Candidati> și
<Set_Date>, s unt utilizate pentru definirea structurii datelor, iar celelalte elemente
(<Nume>, <Prenume>, < Legitimatie >, <Specializare>, <Rezultat>, etc ) sunt utilizate
pentru st ocarea datelor, deoarece acestea conțin informații.
Sintaxa unui element este următoarea : <NumeMarcaj>…informație…</NumeMarcaj>
2.5.2.2 Atributele
La crearea unui element, marcajul de început, oferă un spațiu pentru specificarea
atributelor. Un atribut este folosit pentru a preciza, o singură proprietate a unui element,
utilizând perechi de forma : NumeAtribut = "valoare".
Este important, ca valo area s ă fie specificată î ntre ghilimele , în caz contrar,
parse r-ul XML, va semnala o eroare. Același lucru se întâ mplă și atunci când pentru un
atribut, nu este specificată o valo are.
Atât timp, cât sun t specificate corect, pentru un singur element se pot preciza mai
multe atribute.
Sintaxa generală pentru atribute este:
<NumeMarcaj nume_atribut1 = "valoare" nume_atribut2 = "valo are"…>…</NumeMarcaj>
2.5.2.3 Entitățile
O entitate este reprezentată ca fiind o unitate de text, care la rândul său , poate
însemna orice, începând de la un singu r caracter, până la un fișier complet sau chiar o
referință la o entitate. Aceasta din urmă , reprezentând de fapt pointer -ul către acea entitate.
Sintaxa unei referin țe la o entitate este următoarea : &NumeEntitate ;
20
Referințele către entități sunt cel mai des folosite, atunci când se dorește utilizarea
unor caractere, ce ar duce la semnalarea unor erori din parea parser -ului XML, acest lucru
însemnând că aceste caracter e nu vor apărea în text în forma lor normală.
Soluția a constat în introducerea a cinci entități, în XML, ce vor fi utilizate , în locul
acelor caractere. Cele cinci entități sunt :
Entitate Referin ța
< <
> >
' '
" "e;
& &
Tabelul 2.1 : Entitățile din XML
Când aceste referințe căt re entități sunt detectate de că tre parser -ul XML, acesta o
va substitui cu datele pe care le referă, iar la final va returna un fișier/document, în care
toate aceste înlocu iri au fost realizate.
2.5.2.4 Declarați a tipului de document
Declarația tipului de document , este reprezentată de un marcaj special, ce poate fi
utilizat în fișierele XML, pentru a specifica existența și locația definiției tipului de
document, sau Document Type Definition (DTD).
Un DTD este un set de reguli, ce definesc structura unui fișier XML, și indică
parser -ului ce DTD trebuie utilizat pentru a verifica și valida fișierul.
Pentru un fiși er XML (Fișier.Xml) și un set de reguli (Reguli.dtd), declarația tipului
de document, se realizează, ins erând în fișierul XML, imediat după declarația XML,
următorul marcaj : <!D OCTYPE r ădăcină SYSTEM "Reguli.dtd "> .
În marcajul de mai sus, rădăcina , reprezintă elementul rădăcină (root) al
documentului XML, iar fișierul Reguli.dtd , reprezintă numele fiș ierului DTD, asociat
acelui document.
21
2.5.2.5 Secțiunile CDATA
Aceste secțiuni sunt utlizate în general atunci când se dorește ca marcajele incluse
într-un document XML să nu fie interpretate de către parser, ci să fie considerate date de
tip caracter. Sintaxa u nei astfel de secțiuni este următoarea: <![CDATA[ … date…]]> .
Sunt folosite de exemplu a tunci când se dorește afiș area unui cod HTML ca atare,
către utilizator, cum ar fi declararea unei liste:
<?xml version="1.0" standalone="yes"?>
<exemplu_list ă>
Creare a unei liste în HTML :
<! [CDATA[
<ul>
<li>ElementListă1 </li>
<li>ElementListă2 </li>
<li>ElementListă3 </li>
</ul>
]]>
</exemplu_listă >
2.5.2.6 Instrucțiuni de preprocesare
Aceste instrucțiuni sunt reprezentate printr -un tip special de marcaj, ce conține
informații despre aplicațiile ce urmează să fie rulate. Numele aplicațiilor trebuie să fie
diferite de „XML” sau alte moduri de scriere ale acestui cuvânt .
Sintaxa instrucțiunilor este următoarea:
<?Nume Aplica ție Instrucțiune = "Valo are" ?>
22
2.5.2.7 Comentariile
Acestea reprezintă secvențe de caractere, ce pot apărea oriunde în fișier, în afara
altor marcaje, și nu fac parte din datele documentului.
Ele au următoarea sintaxă: <! – comentariu –>.
Mai jos se afl ă un exemplu de utilizare a comentariilor :
<?xml version="1.0" standalone="yes"?>
<Candidati>
<!– Numele și prenumele candidatului –>
<Nume>Fotă</Nume>
<Prenume>Ștefan -Răzvan</Prenume>
<!– Numărul legitimației de concurs –>
<Legitimatie>1</Legitimatie>
</Candidati>
23
Capitolul 3
3 Procesul de dezvoltare al aplicației
În acest capitol este prezentat modul de realizare al aplicației pentru evidența
candidaților înscriși la concursul de admitere, într -o faculta te de Matematică și Informatică
ce are trei specializări : Matematică, Informatică și Matematică și Informatică.
Candidații au posibilitatea de a se înscrie la specializările enumerate mai sus, și de a
alege pentru fiecare specializare opțiunile dorite.
Media de admitere se va calcula în functie de media obținută la examenul de
Bcalaureat, și nota obținută la examenul de admitere.
După calcularea mediilor, candidații vor fi repartizați în funcție de opțiunile alese,
fiind departajați prin anumite criterii.
În final se vor genera listele cu rezultatele concursului d e admitere, unde se va
specifica pentru fiecare candidat , rezultatul obținut.
3.1 Cerințele aplicației
Aplicația va fi creată pentru platforma .NET, și va utiliza ca tehnologie principală
ADO.NET, iar datele vor fi salvate în fișiere XML.
Cerințele aplicației sunt următoarele:
Va permite înregistrarea a două tipuri de utilizatori (decan, secretar),
Secretarii vor putea introduce în aplicație datele despre candidați și opțiunile
alese de aceștia,
Aplicația va permite generarea listelor cu candidați, pentru exam enul de
admitere în funcție de specializare,
Se vor putea introduce ulterior în aplicație notele obținute, și modifica starea
candidaților (înmatriculat, neînmatriculat, retras),
Media de admite se va calcula automat, în funcție de anumite ponderi ale
notelor, ce vor putea fi setate în aplicație,
24
Se vor putea genera în final listele, cu rezultatele concursului de admitere ,
Fișierele XML se vor cripta, petru a securiza datele,
Interfața aplicației va fi una simplă, pentru ca utilizarea acesteia să se realize z
intr-un mod plăcut și intuitiv,
Se va oferi posibilitatea de a extinde în viitor aplicația, sau de a adăuga noi
facilități.
Figura 3.1 : Diagrama cazurilor de utilizare
25
3.2 Descrierea domeniului conceptual
Figura 3.2 : Diagrama entității -asociații
26
3.3 Arhitectura aplica ției
Aplicația este alcătuită din patru formulare, și trei rapoarte, ce comunică cu două
componente DataSet, și trei module, după cum se poate observa în imaginea următoare.
Figura 3.3 : Părțile componente ale aplicației
Aceste componente comunică între ele după următoarea schemă :
Figura 3.4 : Legături între părțile componente
27
3.4 Proiectarea bazei de date
Deoarece aplicația utilizează fișiere XML, pentru stocarea datelor, DataSet -ul
aplicației poate fi reprezentat ca și o bază de date.
Figura 3.5 : DataSet -ul aplicației
DataSet -ul conține șapte tabele, și anume :
Candida ți
o Tipuri de date utilizate:
String : Nume, Prenume, In țială, Specializare, Opțiunea_1,
Opțiunea_2, Rezultat, Observaț ii
Int32 : IdCandidat, Legit imație
Double : Medie_Bac, Notă _Test, Medie_Admitere
o Constr ângeri de totalitate : IdCandidat, Nume, Prenume, Ini țială,
Legitimație, Medie_bac, Notă _Tes t, Specializare, Opțiunea_1,
Opțiunea_2, Me die_Admitere, Rezultat, Observaț ii
o Constrângeri de unicitate : IdCandidat, Nume + Prenume + Inițială +
Specializare (Același candidat, nu se poate înscrie de mai multe ori la o
anumită specializare )
28
Utilizatori
o Tipuri de date utilizate :
String : Nume, Prenume, Nume_Utilizator, P arolă , Indiciu,
Întrebare, Răspuns
Boolean : Administrator, Cont_Activat
Int 32 : IdUtilizator
o Constrângeri de totalitate : IdUtilizator, Nume, Prenume,
Nume_Utilizator, Parolă , Indiciu, Întrebare, Răspuns, Administrator,
Cont_Activat
o Constrângeri de unicitate : IdUtilizator, Nume_Utilizator (nu pot
exista mai mulți utilizatori cu același nume de utilizator/ username )
Specializ ări
o Tipuri de date utilizate :
String : Denumire
Int 32 : IdSpecializare
o Constrângeri de totalitate : IdSpecializare, Denumire
o Constrângeri de unicitate : IdSpecializare, Denumire (nu pot exista
mai multe specializări cu același nume, în cadrul unei facultăți)
Săli
o Tipuri de date utilizate :
String : Denumire
Boolean : Laborator
Int32 : NrLocuri, IdSal ă
o Constrângeri de totalitate : IdSală, Denumire, NrLocuri, Laborator
o Constrângeri de unicitate : IdSală, Denumire ( nu pot exista mai
multe săli cu aceiași denumire )
29
Taxe
o Tipuri de date utilizate :
String : Specializare
Int32 : Id, Tax ă
o Constrângeri de totalitate : Id, Specializare, Taxă
o Constrângeri de unicitate : Id, Sp ecializare (nu se pot stabili mai
multe taxe pentru o singură specializare)
Opțiuni
o Tipuri de date utilizate :
String : Denumire
Int32 : IdOp țiune
o Constrângeri de totalitate : IdOpțiune, Denumire
o Constrângeri de unicitate : IdOpțiune, Denumire (nu pot exista mai
multe opțiuni cu aceiași denumire)
Cifră_Școlarizare
o Tipuri de date utilizate :
String : Specializare, Op țiune
Int32 : Id, NrLocuri
o Constrângeri de totalitate : Id, Specializare, Op țiune, NrLocuri
o Constrângeri de unicitate : Id, Specia lizare + Opțiune (numărul de
locuri nu se poate aloca de mai multe ori pentru o anumită opțiune,
în cadrul unei specializări)
30
3.5 Proiectarea formularelor
3.5.1 Formularul de login
Figura 3. 6 : Formul arul Login
Formularul de Login, este primul formular ce va fi afișat după executarea aplicației,
iar odată cu acesta, este încărcat și fișierul Utilizatori.enc (fișier XML, criprat), ce va fi
decriptat, pentru a putea fi utilizat. Acest formular conține două TextBox -uri, unde
utilizatorul va completa Numele de utiliz ator și Parola , pentru a se putea loga în aplicație.
În partea de jos se găsesc trei butoane, și anume :
Înregistrare , ce deschide formular ul Înregistrare utilizator nou , unde
utilizatorul se va înregistra, pentru a putea folosi aplicația
Schimbare parolă , deschide formularul Schimbare Parolă , de unde
utilizatorul își poate schimba parola
Login , deschide fereast ra principală a aplicației, dacă informațiile din
TextBox -uri au fost completate corect. În caz contrar prin intermediul unui
Label, aflat în partea de sus a formularului, vo r fi afișate mesajele de eroare
La prima rulare a aplicației, neavând utilizatori înregistrați anterior, butoanele
Schimbare parolă și Login , vor fi dezactivate.
Acestea se vor activa atunci când în aplicație s -a înregistrat primu l utilizator.
31
3.5.2 Formularul de înregistrare
Figura 3.7 : Formular ul Înregistrare utilizator nou
Va fi afișat la apăsarea butonului Înregistrare , din formularul de Login. Aici
utilizatorul are posibilitatea de a se înregistra în aplicație, completând cele opt TextBox -uri
cu datele necesare.
Datele introduse sunt verificate cu expresii regulate, și în cazul în care sunt
introduse corect, va fi afișat un mesaj de confirmare prin intermediul unui ErrorProvider,
cu steag verde. În caz contrar, când datel e sunt introduse greșit, tot prin intermediul unu i
ErrorProvider, de această dată cu steag roșu, este afișat un mesajul de eroare.
În partea de jos se află trei butoane:
Înregistrare , ce va fi activat, atunci când toate TextBox -urile au fost
completate cor ect. După ce este apăsat, datele introduse sunt criptate, și salvate
în fișier, iar utilizatorul primește un mesaj de confirmare a înregistrarii în
aplicați e, prin intermediul unui MsgBox
Golește formular , se va utiliza pentru a readuc e formularul în stare a inițială
Anulare , care va fi folosit, atunci când se doreș te închiderea acestui formular
32
Primul utilizator înregistrat în aplicație va fi administratorul/ decanul, iar următorii
vor fi utilizatorii/ secretari i.
Ca o măsură de siguranță, pentru a nu permite oricărui utilizator ce se înregistrează,
să aibă acces la datele candidaților, conturile utilizatorilor sunt dezactivate după
înregistrare a în aplicație . Aceste conturi vor fi activate ulterior , de catre admini strator .
Utilizatorii care s -au înregistrat și doresc să se logeze în aplicație vor primi un mesaj,
identic cu cel din Figura 3. 6.
3.5.3 Formularu l de schimbare a parolei
Figura 3. 8 : Formularul Schimbare parolă
În acest formular, utilizatorul are posibilitate de a -și schimba parola, în două moduri :
Folosind parola veche – acest mod va fi utilizat atunci când se dorește schimbarea
parole i, și se cunoaște vechea parolă
33
Folosind întrebarea de securitate – utilizând acest mod, parola poate fi schimbată
pe baza întrebări de securitate, și a răspunsului la aceasta, ce au fost setate de
utilizator la înregistrare a în aplicație
3.5.4 Formularul Aplicație
Elementul principal al formularului, este un control de tipul TabControl, prin
intermediul căruia sunt afișat e tab -uri diferite în funcție de tipul utilizatorului.
3.5.4.1 Tab-urile specifice administrator ului (decan ului)
Figura 3. 9 : Tab-ul Setări
În acest tab, administratorul are posibilitatea, de a gestiona accesul în aplicație al
utilizatorilor, prin intermediul u nui GridView.
În partea de jos, se află cele trei butoane (Editează, Anulează, Salvează), ce permit
administratorului să editeze coloana Cont_Activat, să anuleze modificările făcute, și
respectiv să salveze modificările făcute , în fișier.
În partea dreaptă, prin intermediul unui FolderBrowserDialog, administratorul
poate alege folderul /dosarul , în care se află fișierele XML, de intrare, specifice facultății,
34
ce vor fi utilizate în cadrul aplicației. Fișierele necesare vor fi copiate în folderul aplic ației,
de unde vor fi utilizate.
Figura 3. 10 : Tab-ul Total taxe
În tab -ul, prezentat mai sus, administatorului îi sunt prezentate intr -un raport, date
privind taxele și numărul de locuri totale, specifice fiecărei specializări din cadrul
facultății.
Deasemenea tot aici sunt prezentate informații despre numărul de locuri ocupate la
fiecare specializare, și totalul banilor strânși, din achitarea taxelor de către candidați.
35
3.5.4.2 Tab-urile specifice utilizatori lor (secretari lor)
Figura 3. 11 : Tab-ul Înscriere candidați
După înscriere candidaților la concursul de admitere, în acest tab, utilizatorul, va
introduce datele specifice fiecărui candidat.
Domeniul la care s -a făcut înscrierea și prima opțiune aleasă de către candidat, sunt
introduse în aplicație prin intermediul două contoale ComboBox. Numărul legitimației de
concurs, este calculat automat, în funcție de numărul candidaților ce au fost deja
înregistrați în aplicație, iar a doua opțiune , în funcție de prima opțiune aleasă.
Datele desp re candidat sunt introduse în patru controale TextBox, și sunt validate
utilizând expresii regulate. În cazul în care datele introduse sunt eronate, utilizatorului i se
va semnala acest lucru, prin intermediul unui ErrorProvider . Același lucru se va întâmp la și
cazul în care datele au fost introduse corect.
După ce datele au fost introduse corect, este activat butonul Adaugă candidat, ce
permite utilizatorului să salveze datele introduse, în tabel, și să le vizualizeze prin
intermediul unui GridView.
La a păsarea butonului Salvează, datele introduse sunt criptate , și salvate (vezi
Anexa 2) în fișier, iar utilizatorul va primi un mesaj de confirmare, în acest sens.
36
Figura 3. 12 : Tab-ul Repartizare pentru examen
După înregistrarea candidaților în aplicație, utilizatorii pot genera listele, ce vor
conține repartizarea candidaților pe săli, în funcție de specializarea aleasă.
În tab -ul prezentat mai sus, utilizatorii, pot alege specializarea candidaților ce vor
da testul, tipul sălilor în care se va da examenul (săli de curs sau laboratoare), si sălile în
care acesta va fi susținut. În cazul în care capacitatea sălilor, este mai mică decât numărul
de candidați înscriși la specializrea selectată, butonul Generează raport, devine inactiv, iar
utilizato rul este avertizat.
De asemenea, utilizatorii, pot seta de aici, data când va fi susținut examenul, ora
începerii examenului, și durata acestuia.
37
Figura 3. 13 : Tab -ul Editeaz ă date candidați
În acest tab, utilizatorilor, li se oferă posibilitatea de a introduce notele obținute la
examen de către candidați, la examenul de admitere. Apoi aceștia pot seta ponderiile
notelor ce vor participa la calcularea mediei de admitere, specificând procentul acestora.
Operațiile enumerate, pot fi efectuate după a păsarea butonului Editează.
La apăsarea butonului Calculează medie, media de admitere este calculată în mod
automat, pentru toți candidații, pe baza notelor obținute și a ponderilor setate în aplicație.
Tot aici, utilizatorii au posibilitatea de a edita s tarea candidaților (Neînmatriculat,
Înmatriculat, Retras), prin intermediul ComboBox -urilor, aflate pe coloana Observații.
De asemenea se oferă posibilitatea de a salva temporar datele, la nivelul DataSet –
ului, sau de a anula modificările efectuate. Cripta rea și salvarea datelor, se va efectua
atunci când este apăsat butonul Salvează datele în fișier.
38
Figura 3. 14 : Tab -ul Rezultate admitere
După calcularea mediei de admitere, în tab -ul din Figura 3.13, utilizatorii, pot
genera din acest tab, raportul ce conține lista candidaților înscrisi, ș i rezultatele obținute de
aceștia la concursul de admitere.
Apăsând butonul Generare raport, candidații sunt sortați descrescătot, în funcție de
criteriile de departajare, apoi pe rând pentru fiecare sunt verificat e opțiunile alese.
Se va verifica dacă pentru prima opțiune aleasă, există suficiente locuri. În cazul în
care sunt locuri disponibile, candidatul va fi admis, în caz contrar se va verifica și locurile
disponibile pentru cea de -a doua opțiune. În cazul ace sta, la fel ca și pentru prima opțiune,
dacă există locuri libere, candidatul este admis, iar dacă nu rezultatul concursului de
admitere, pentru acsta, va fi „Respins ”.
39
3.6 Manualul de utilizare
Aplicația a fost creată pentru a ține evidența candidaților înscriși, la concursul de
admitere, într -o anumită facultate , și oferă următoarele facilități :
Generarea listelor cu candida ți, repatizați pe săli, în funcție de specializarea
aleasă, pentru examenul de admitere
Crearea listei , cu rezultatele finale ale co ncursului de admitere
Generarea rapotului, ce conține informații despre taxele percepute la
concursul de admitere, și suma de bani obținută din plata acestora de către
candidați.
Pașii ce trebuiesc urmați, pentru utilizarea programului, sunt următorii:
1. Se deschide aplic ația, și se apasă butonul Înregistrare ;
2. Completați formularul de înregistrare , și apăsați butonul Înregistrare
(primul utilizator înregistrat va fi administratorul/decanul) ;
3. Se vor înregistra în program și ceilalți utilizatori ( pasul 2);
4. Com pleta ți în fereastra de Login , câmpurile Nume utilizator și Parolă apoi
apăsați butonul Login ;
5. Se vor seta fișierele de intrare, apăsând butonul Selectează Dosar (tab-ul
Setari) ;
6. Se va permite utilizatorilor înregistrați, să utilizeze aplicația, prin bifarea
căsuței , de pe coloana Cont_Activat , din dreptul fiecăruia ;
7. Din partea de sus a ferestrei se apasă pe nume, și se alege Logout ;
8. Urmând pasul 4, se logează în aplicație, un utilizator ;
9. În tab -ul Înscriere candidați , se vor completa datele despre fie care
candidat în parte, după care se apasă butonul Adaugă candidat ;
10. Se salveaz ă datele, apăsând butonul Selvează ;
11. Se vor înregistra în aplicație toți candidații înscriși urmând pașii 9 și 10 ;
12. Listele cu candida ți, pentru examenul de admitere, vor fi genera te din tab -ul
Repartizare pentru examen ,
13. Notele obținute de către candidați se vor introduce în tab -ul Editează date
candidați (se apasă butonul Editează , apoi se trec notele );
40
14. După adăugarea notelor, media de admitere se va calcula automat apăsând
butonul Calculează medie (în funcție de ponderile setate );
15. Se salvează datele apăsând butonul Salvează date în fișier ;
16. Rezultatele concursului de admitere vor fi generate din tab -ul Rezultate
Admitere , apăsând butonul Generează raport ;
17. Exexutați pasul 7, după care se va loga în aplicație administratorul;
18. Informa țiile despre taxe și banii încasați se vor vizualiza în tab -ul Total
taxe, apăsând butonul Generează raport .
41
Concluzii
Realiz area acestei aplicații m-a ajutat să îmi îmbunătățesc, cunoștiințele despre
tehnologiile incluse în platforma .NET , și să descopăr tehnologii noi. Am învățat cum pot
fi utilizate îm același context, tehnologii precum ADO.NET, XML, Windows Forms,
pentru realizarea unei aplicații desktop, ce nu utilizează o bază de date , pentru stocarea
datelor.
Scopul lucrării de licență a fost atins , dar aplicația p oate fi extinsă pe viitor. Printre
activitățile care vor fi luate în considerare, se numără:
Îmbunătățirea modului de criptare a d atelor, și securizare a documentelor
Implementarea unui nou mod de autentificare, folosind autentificarea
Windows, și renunțar ea la înregistrare pentru utilizatori
Optimizarea structurii aplicației
Organizarea elementelor de interfață într -un mod mai plăcut și mai intuitiv
pentru utilizatori
Colaborarea cu domnul profesor Alexandrescu Adrian, coordonatorul lucrării de
licență, a decurs foarte bine, sfaturile primite din partea acestuia , au ajutat la atingerea
scopului acestei lucrări, iar cu această ocazie țin să îi mulțumesc pentru ajutorul acordat.
42
Bibliografie
1. Rod Stephens , Visual Basic 2010 Programmer's Reference , Wiley / Wrox , 2010
2. Tim Patrick , Microsoft ADO.NET 4 Step by Step (Step by Step Developer) ,
Paperback , 2010
3. Jose Luis Latorre Millas , Microsoft .NET Framework 4.5 Quickstart Cookbook ,
Packt Publishing , 2013
4. Jeff Martin and Richard Banks, Visual Studio 2013 Cookbook, Packt
Publishing, 2014
5. Note de curs
6. Documentație Visual Studio
a. http://msdn.microsoft.com/en -us/library/efc4xwkb.aspx
b. http://msdn.microsoft.com/en -us/library/hcw1s69b.aspx
c. http://msdn.microsoft.com/en -us/library/dd831853.aspx
7. Documentație ADO.N ET
a. http://msdn.microsoft.com/en –
us/library/h43ks021%28v=vs.110%29.aspx
b. http://msdn.microsoft.com/pl –
pl/library/27y4ybxw%28v=vs.110%29.aspx
c. http://msdn.microsoft.com/en –
us/library/system.data.dataset%28v=vs.110%29.aspx
8. Documentație .NET Framework
a. http://ms dn.microsoft.com/en –
us/library/bb822049%28v=vs.110%29.aspx
b. http://dotnet.xhost.ro/
9. Documentație Visual Basic.NET
a. http://msdn.microsoft.com/en -us/library/2x7h1hfk.aspx
b. http://msdn.microsoft.com/en –
us/library/aa712050%28v=vs.71%29.aspx
43
10. Documentație Windows Forms
a. http://msdn.microsoft.com/en –
us/library/vstudio/bb514232%28v=vs.100%29.aspx
b. http://msdn.microsoft.com/en –
us/library/aa984079%28v=vs.71%29.aspx
c. http://msdn.microsoft.com/en –
us/library/dd30h2yb%28v=vs.110%29.aspx
11. Documentație XML
a. http://www.w3.org/X ML/
b. http://www.w3.org/TR/REC -xml/
c. http://www.mulberrytech.com/papers/HowAndWhyXML/contents.html
12. Criptarea datelor
a. http://msdn.microsoft.com/en –
us/library/system.security.cryptography.aes%28v=vs.110%29.aspx
b. http://programmers -en.high -way.info/vb/aes.html
44
Anexe
Anexa 1
Schema dataset -ului Set_Date
<?xml version="1.0" standalone="yes"?>
<xs:schema id="Set_Date" targetNamespace="http://tempuri.org/Set_Date.xsd"
xmlns:mstns="http://tempuri.org/Set_Date.xsd" xmlns="http://tempuri.org/Set_Date.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas –
microsoft -com:xml -msdata" xmlns:msp rop="urn:schemas -microsoft -com:xml -msprop"
attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="Set_Date" msdata:IsDataSet="true"
msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs= "unbounded">
<xs:element name="Utilizatori">
<xs:complexType>
<xs:sequence>
<xs:element name="IdUtilizator" msdata:AutoIncrementSeed="1"
msprop:Generator_ColumnVarNameInTable="columnIDUtilizator"
msprop:Generator _ColumnPropNameInRow="IDUtilizator"
msprop:Generator_ColumnPropNameInTable="IDUtilizatorColumn"
msprop:Generator_UserColumnName="IdUtilizator" type="xs:int" />
<xs:element name="Nume" type="xs:string" />
<xs:element name="Prenum e" type="xs:string" />
<xs:element name="Nume_Utilizator" type="xs:string" />
<xs:element name="Parola" type="xs:string" />
<xs:element name="Indiciu" type="xs:string" />
<xs:element name="Intrebare" type="xs:string" />
<xs:element name="Raspuns" type="xs:string" />
<xs:element name="Administrator" type="xs:boolean" minOccurs="0" />
<xs:element name="Cont_Activat"
msprop:Generator_ColumnVarNameInTable="columnCo nt_activat"
45
msprop:Generator_ColumnPropNameInRow="Cont_activat"
msprop:Generator_ColumnPropNameInTable="Cont_activatColumn"
msprop:Generator_UserColumnName="Cont_Activat" type="xs:boolean" minOccurs="0"
/>
</xs:sequence>
</xs:complexT ype>
</xs:element>
<xs:element name="Specializari">
<xs:complexType>
<xs:sequence>
<xs:element name="IdSpecializare" msdata:AutoIncrement="true" type="xs:int"
/>
<xs:element name="Denumire" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Optiuni">
<xs:complexType>
<xs:sequence>
<xs:element name="IdOptiune" msdata:AutoIncrement="true" type="xs:int" />
<xs:element name="Denumire" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Sali">
<xs:complex Type>
<xs:sequence>
<xs:element name="IdSala" msdata:AutoIncrement="true" type="xs:int" />
<xs:element name="Denumire" type="xs:string" />
<xs:element name="NrLocuri" type="xs:int" />
<xs:element name="Laborator" type="xs:boolean" />
46
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Candidati">
<xs:complexType>
<xs:sequence>
<xs:element name="IdCandidat " type="xs:int" />
<xs:element name="Nume" type="xs:string" />
<xs:element name="Prenume" type="xs:string" />
<xs:element name="Initiala" type="xs:string" />
<xs:element name="Legitimatie" type="xs:in t" />
<xs:element name="Medie_Bac" type="xs:double" />
<xs:element name="Nota_Test" type="xs:double" />
<xs:element name="Specializare" type="xs:string" />
<xs:element name="Optiunea_1" type="xs:string" />
<xs:element name="Optiunea_2" type="xs:string" />
<xs:element name="Medie_Admitere" type="xs:double" />
<xs:element name="Rezultat" type="xs:string" />
<xs:eleme nt name="Observatii" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Cifra_Scolarizare">
<xs:complexType>
<xs:sequence>
<xs:element name="Id" msd ata:AutoIncrement="true" type="xs:int" />
<xs:element name="Specializare" type="xs:string" />
<xs:element name="Optiune" type="xs:string" />
<xs:element name="NrLocuri" type="xs:int" />
47
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Taxe">
<xs:complexType>
<xs:sequence>
<xs:element name="Id" type="xs:int" />
<xs:element name="Specializare" type="xs:string" />
<xs:element name="Taxa" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1">
<xs:selector xpath=".//mstns:Utilizatori" />
<xs:field xpath="mstns:Nume_Utilizator" />
</xs:unique>
<xs:unique name="Constraint2">
<xs:selector xpath=".//mstns:Utilizatori" />
<xs:field xpath="mstns:IdUtilizator" />
</xs:unique>
<xs:unique name="Specializari_Constraint1" msdata:ConstraintName="Constraint1">
<xs:selector xpath=".//mstns:Specializari" />
<xs:field xpath="mstns:IdSpecializare" />
</xs:unique>
<xs:unique name="Specializari_Constraint2" msdata:Constrain tName="Constraint2">
<xs:selector xpath=".//mstns:Specializari" />
<xs:field xpath="mstns:Denumire" />
48
</xs:unique>
<xs:unique name="Optiuni_Constraint1" msdata:ConstraintName="Constraint1">
<xs:selector xpath=".//mstns:Optiuni" / >
<xs:field xpath="mstns:IdOptiune" />
</xs:unique>
<xs:unique name="Optiuni_Constraint2" msdata:ConstraintName="Constraint2">
<xs:selector xpath=".//mstns:Optiuni" />
<xs:field xpath="mstns:Denumire" />
</xs:unique>
<xs:unique name="Sali_Constraint1" msdata:ConstraintName="Constraint1">
<xs:selector xpath=".//mstns:Sali" />
<xs:field xpath="mstns:IdSala" />
</xs:unique>
<xs:unique name="Sali_Constraint2" msdata:ConstraintName="Constraint2">
<xs:selector xpath=".//mstns:Sali" />
<xs:field xpath="mstns:Denumire" />
</xs:unique>
<xs:unique name="Candidati_Constraint1" msdata:ConstraintName="Constraint1">
<xs:selector xpath=".//mstns:Candidati" />
<xs:field xpath="mstns:IdCandidat" />
</xs:unique>
<xs:unique name="Cifra_Scolarizare_Constraint1"
msdata:ConstraintName="Constraint1">
<xs:selector xpath=".//mstns:Cifra_Scolarizare" />
<xs:field xpath="mstns:Id" />
</xs:unique>
<xs:uni que name="Specializare -Optiune">
<xs:selector xpath=".//mstns:Cifra_Scolarizare" />
<xs:field xpath="mstns:Specializare" />
<xs:field xpath="mstns:Optiune" />
49
</xs:unique>
<xs:unique name="Taxe_Constraint1" msdata:ConstraintName=" Constraint1">
<xs:selector xpath=".//mstns:Taxe" />
<xs:field xpath="mstns:Specializare" />
</xs:unique>
<xs:unique name="Taxe_Constraint2" msdata:ConstraintName="Constraint2">
<xs:selector xpath=".//mstns:Taxe" />
<xs:field xpath="mstns:Id" />
</xs:unique>
<xs:keyref name="T_Specializare" refer="Specializari_Constraint2"
msdata:ConstraintOnly="true">
<xs:selector xpath=".//mstns:Taxe" />
<xs:field xpath="mstns:Specializare" />
</xs:keyref>
<xs:keyref name="CS_Specializare" refer="Specializari_Constraint2"
msdata:ConstraintOnly="true">
<xs:selector xpath=".//mstns:Cifra_Scolarizare" />
<xs:field xpath="mstns:Specializare" />
</xs:keyref>
<xs:keyref name="CS_Optiune" refer="Op tiuni_Constraint2"
msdata:ConstraintOnly="true">
<xs:selector xpath=".//mstns:Cifra_Scolarizare" />
<xs:field xpath="mstns:Optiune" />
</xs:keyref>
<xs:keyref name="Optiune_1" refer="Optiuni_Constraint2"
msdata:ConstraintOnly="true">
<xs:selector xpath=".//mstns:Candidati" />
<xs:field xpath="mstns:Optiunea_1" />
</xs:keyref>
<xs:keyref name="Optiune_2" refer="Optiuni_Constraint2"
msdata:ConstraintOnly="true">
50
<xs:selector xpath=".//mstns:Candidati" />
<xs:field xpath="mstns:Optiunea_2" />
</xs:keyref>
<xs:keyref name="Specializare" refer="Specializari_Constraint2"
msdata:ConstraintOnly="true">
<xs:selector xpath=".//mstns:Candidati" />
<xs:field xpath="mstns:Specializare" />
</xs:ke yref>
</xs:element>
</xs:schema>
51
Anexa 2
Înregistrări din fișierul Candidați.xml (necriptat)
<?xml version="1.0" standalone="yes"?>
<Set_Date xmlns="http://tempuri.org/Set_Date.xsd">
<Candidati>
<IdCandidat>8</IdCandidat>
<Nume>Câmpeanu< /Nume>
<Prenume>Marius</Prenume>
<Initiala>I.</Initiala>
<Legitimatie>8</Legitimatie>
<Medie_Bac>9.87</Medie_Bac>
<Nota_Test>10</Nota_Test>
<Specializare>Matematică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Opt iunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>9.95</Medie_Admitere>
<Rezultat>ADMIS -MAT(FT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>133</IdCandidat>
<Nume>Stanciu</Nume>
<Prenu me>Marina</Prenume>
<Initiala>D.</Initiala>
<Legitimatie>23</Legitimatie>
<Medie_Bac>9.77</Medie_Bac>
<Nota_Test>10</Nota_Test>
<Specializare>Matematică -Informatică</Specializare>
52
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>9.91</Medie_Admitere>
<Rezultat>RESPINS -MI</Rezultat>
<Observatii>Retras</Observatii>
</Candidati>
<Candidati>
<IdCandidat>35</IdCandidat>
<Nume>Tomescu</Nume>
<Prenume>Alexan dru-Gheorghe</Prenume>
<Initiala>G.</Initiala>
<Legitimatie>35</Legitimatie>
<Medie_Bac>9.73</Medie_Bac>
<Nota_Test>10</Nota_Test>
<Specializare>Matematică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (c u taxă)</Optiunea_2>
<Medie_Admitere>9.89</Medie_Admitere>
<Rezultat>RESPINS -MAT</Rezultat>
<Observatii>Retras</Observatii>
</Candidati>
<Candidati>
<IdCandidat>20</IdCandidat>
<Nume>Grigore</Nume>
<Prenume>Irina -Alexandra< /Prenume>
<Initiala>L.</Initiala>
<Legitimatie>20</Legitimatie>
<Medie_Bac>9.98</Medie_Bac>
<Nota_Test>9.8</Nota_Test>
53
<Specializare>Matematică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Opt iunea_2>
<Medie_Admitere>9.87</Medie_Admitere>
<Rezultat>ADMIS -MAT(FT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>18</IdCandidat>
<Nume>Gemil</Nume>
<Prenume>Ilden</Prenume>
<Init iala>B.</Initiala>
<Legitimatie>18</Legitimatie>
<Medie_Bac>9.65</Medie_Bac>
<Nota_Test>10</Nota_Test>
<Specializare>Matematică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>9.86</Medie_Admitere>
<Rezultat>ADMIS -MAT(FT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>28</IdCandidat>
<Nume>Munteanu</Nume>
<Prenume>Adrian -Florin</Prenume>
<Initiala>M.N.</Initiala>
<Legitimatie>28</Legitimatie>
<Medie_Bac>9.58</Medie_Bac>
54
<Nota_Test>10</Nota_Test>
<Specializare>Matematică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>9.83</Medie_Admitere>
<Rezultat>ADMIS -MAT(FT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>4</IdCandidat>
<Nume>Barbu</Nume>
<Prenume>Andreea -Gabriela</Prenume>
<Initiala >C.</Initiala>
<Legitimatie>4</Legitimatie>
<Medie_Bac>8.67</Medie_Bac>
<Nota_Test>9.1</Nota_Test>
<Specializare>Matematică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admi tere>8.93</Medie_Admitere>
<Rezultat>ADMIS -MAT(FT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>21</IdCandidat>
<Nume>Ionescu</Nume>
<Prenume>Gabriela -Raluca</Prenume>
<Initiala>I.< /Initiala>
<Legitimatie>21</Legitimatie>
55
<Medie_Bac>8.8</Medie_Bac>
<Nota_Test>9</Nota_Test>
<Specializare>Matematică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere> 8.92</Medie_Admitere>
<Rezultat>ADMIS -MAT(FT)</Rezultat>
<Observatii>Înmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>16</IdCandidat>
<Nume>Focan</Nume>
<Prenume>Elena -Victoria</Prenume>
<Initiala>C.</Initiala>
<Legitimatie>16</Legitimatie>
<Medie_Bac>7.97</Medie_Bac>
<Nota_Test>9.5</Nota_Test>
<Specializare>Matematică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>8.89</Medie_ Admitere>
<Rezultat>ADMIS -MAT(FT)</Rezultat>
<Observatii>Înmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>89</IdCandidat>
<Nume>Maurer</Nume>
<Prenume>Bogdan</Prenume>
<Initiala>R.</Initiala>
56
<Legitimatie>49< /Legitimatie>
<Medie_Bac>9</Medie_Bac>
<Nota_Test>8.7</Nota_Test>
<Specializare>Informatică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>8.82</Medie_Admitere>
<Rezu ltat>ADMIS -INF(FT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>50</IdCandidat>
<Nume>Bita</Nume>
<Prenume>Mihai -Octavian</Prenume>
<Initiala>T.</Initiala>
<Legitimatie>10</Legitimatie>
<Medie_Bac>7.91</Medie_Bac>
<Nota_Test>8.1</Nota_Test>
<Specializare>Informatică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>8.02</Medie_Admitere>
<Rezultat> ADMIS -INF(FT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>106</IdCandidat>
<Nume>Oprea</Nume>
<Prenume>Oana -Violeta</Prenume>
57
<Initiala>M.</Initiala>
<Legitimatie>66</Legitimatie>
<Medie_Bac>6</Medie_Bac>
<Nota_Test>8.5</Nota_Test>
<Specializare>Informatică</Specializare>
<Optiunea_1>ZI (cu taxă)</Optiunea_1>
<Optiunea_2>ZI (fără taxă)</Optiunea_2>
<Medie_Admitere>7.5</Medie_Admitere>
<Rezultat>ADMIS -INF(CT)< /Rezultat>
<Observatii>Înmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>54</IdCandidat>
<Nume>Ciumacenco</Nume>
<Prenume>Andreea</Prenume>
<Initiala>F.</Initiala>
<Legitimatie>14</Legitimatie>
<Medie_Bac>8.65</ Medie_Bac>
<Nota_Test>6.7</Nota_Test>
<Specializare>Informatică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>7.48</Medie_Admitere>
<Rezultat>ADMIS -INF(CT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>86</IdCandidat>
<Nume>Lemnaru</Nume>
58
<Prenume>George -Cătălin</Prenume>
<Initiala>M.</Initiala>
<Legitimatie>46</Legitimatie>
<Medie_Bac>8.64</Medie _Bac>
<Nota_Test>6.7</Nota_Test>
<Specializare>Informatică</Specializare>
<Optiunea_1>ZI (fără taxă)</Optiunea_1>
<Optiunea_2>ZI (cu taxă)</Optiunea_2>
<Medie_Admitere>7.48</Medie_Admitere>
<Rezultat>ADMIS -INF(CT)</Rezultat>
<Observatii>Neînmatriculat</Observatii>
</Candidati>
<Candidati>
<IdCandidat>97</IdCandidat>
<Nume>Moglan</Nume>
<Prenume>Cristian</Prenume>
<Initiala>T.</Initiala>
<Legitimatie>57</Legitimatie>
<Medie_Bac>6</Medie_Bac>
<Nota_Test>8.4</Nota_Test>
<Specializare>Informatică</Specializare>
<Optiunea_1>ZI (cu taxă)</Optiunea_1>
<Optiunea_2>ZI (fără taxă)</Optiunea_2>
<Medie_Admitere>7.44</Medie_Admitere>
<Rezultat>ADMIS -INF(CT)</Rezultat>
<Observatii>Ne înmatriculat</Observatii>
</Candidati>
</Set_Date>
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: COORDONATOR ȘTIINȚIFIC ABSOLVENT Asist.univ.dr. Alexandrescu Adrian Stoina Costin CONSTANȚA 2014 UNIVERSITATEA „OVIDIUS” DIN CONSTANȚA FACULTATEA DE… [629675] (ID: 629675)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
