PROGRAMUL DE STUDII UNIVERSITARE DE LICENȚĂ: [627931]
UNIVERSITATEA DIN PITE ȘTI
FACULTATEA DE ȘTIINȚE, EDUCAȚIE FIZICĂ ȘI
INFORMATICĂ
PROGRAMUL DE STUDII UNIVERSITARE DE LICENȚĂ:
INFORMATICĂ
LUCRARE DE LICENȚĂ
Coordonator științific,
Conf.univ.dr. Doru CONSTANTIN
Absolvent: [anonimizat]
2019
2
UNIVERSITATEA DIN PITE ȘTI
FACULTATEA DE ȘTIINȚE, EDUCAȚIE FIZICĂ ȘI
INFORMATICĂ
PROGRAMUL DE STUDII UNIVERSITARE DE LICENȚĂ:
INFORMATICĂ
Aplica ție Informatic ă pentru
managementul
depart amentului resurselor
umane
Coor donator științific,
Conf. univ. dr. Doru CONSTANTIN
Absolvent: [anonimizat]
2019
3
Cuprins
Introducere ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ………. 4
Capitolul I. Noțiuni fundamentale despre Microsoft ………………………….. ………………………….. ………………………….. ….. 5
1.1 Istoric ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ………… 5
1.2 Versiuni C# ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. … 7
1.2.1 Structura Visual Studio. NET 2002 ………………………….. ………………………….. ………………………….. ……………………… 7
1.2.2 Structura Visual Studio 2008 ………………………….. ………………………….. ………………………….. ………………………….. ….. 8
1.2.3 Structura Visual Studio 2017 ………………………….. ………………………….. ………………………….. ………………………….. ….. 9
1.3 Versiuni SQL Serve r ………………………….. ………………………….. ………………………….. ………………………….. ……………… 10
1.3.1 Structura SQL Server 1.0 ………………………….. ………………………….. ………………………….. ………………………….. ……… 10
1.3.2 Structura SQL Server 7.0 ………………………….. ………………………….. ………………………….. ………………………….. ……… 11
1.3.3 Structura SQL Server 2005 ………………………….. ………………………….. ………………………….. ………………………….. …… 12
1.3.4 Structura SQL Server 2017 ………………………….. ………………………….. ………………………….. ………………………….. …… 13
1.4 Tehnologii si elemente de programare privind SQL ………………………….. ………………………….. ………………………….. … 14
1.4.1 Elemente de programare privind C# ………………………….. ………………………….. ………………………….. …………………… 16
1.4.2 Principiile programării orientate obiect ………………………….. ………………………….. ………………………….. ………………. 17
Capitolul II. Concepte si metodologii pentru proiectarea unei aplicații ………………………….. ………………………….. …. 20
2.1 Analiza nevoilor de dezvoltare a aplicației ………………………….. ………………………….. ………………………….. …………….. 20
2.2 Analiza uzului viitoarei aplicații ………………………….. ………………………….. ………………………….. ………………………….. . 20
2.3 Analiza și testarea tehnologiilor ………………………….. ………………………….. ………………………….. ………………………….. . 20
2.4 Baza de date ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. 21
Arhitectura unei aplicații ………………………….. ………………………….. ………………………….. ………………………….. ……………… 23
Interfața grafica a bazei de date ………………………….. ………………………….. ………………………….. ………………………….. …….. 24
2.5 Librării ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. …….. 25
Conceptul Aplicației ………………………….. ………………………….. ………………………….. ………………………….. ……………………. 26
Capitolul III. Dezvoltarea si implem entarea aplicației ………………………….. ………………………….. ………………………….. 27
3.1.1 Baza de date ………………………….. ………………………….. ………………………….. ………………………….. ……………………….. 28
3.1.2 Form 1 ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ….. 36
3.1.3 CV ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ………… 38
3.1.4 Elementele vizuale din Forma principală ………………………….. ………………………….. ………………………….. ……………. 39
3.1.5 CV ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ………… 40
3.1.6 Funcționalitatea controalelor formei CV ………………………….. ………………………….. ………………………….. …………….. 41
3.1.7 Interf ața Administrator ………………………….. ………………………….. ………………………….. ………………………….. ………… 43
3.1.8 Forma Angajat ………………………….. ………………………….. ………………………….. ………………………….. ……………………. 44
Interfața User ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. …. 47
Fereastra Rapoarte ………………………….. ………………………….. ………………………….. ………………………….. ………………………. 48
Funcționalitatea aplicației într-un scenariu real ………………………….. ………………………….. ………………………….. ……………. 53
Concluzi a studiului si dezvoltării aplica ției ………………………….. ………………………….. ………………………….. …………………. 60
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ……. 61
4
Introducere
SQL Server este sistemul de gestionare și administrare a bazei de date relaționale Microsoft
lansat în anul 1989 în colaborare cu Sybase SQL Server este o bază de date concepută de Microsoft
care c uprinde caracteristici complete , proiectată pentru a p utea concura împotriva Oracle Dat abase
și MySQL. La fel ca majoritatea celorlalte sisteme de gestiune și administrare a bazelor de date
relaționale, SQL Server acceptă ANSI SQL , limbajul standard SQL.
La fel ca și SQL Server , C# a fost conceput și dezv oltat tot de compania Microsoft,
principalii creatori ai limbajului fiind Andres Hejlsberg , Scott Wiltamuth și Pețer Golde. Limbajul
C# es te un derivat al limbajului C++ , fiind dezvoltat pentru a concura cu limbajul Java. Este un
limbaj de programare nou conceput, simplu , modern, de utili tate generală , fiind un limbaj de
programare orientat pe obiecte care se află în strâ nsă legătură cu . NET Framework , o bogată
platformă pentr u dezvoltarea implementarea și executarea aplicațiilor distribuite.
Tema „ Aplicație Informatică pentru mana gementul departamen tului resurselor umane” va
consta în conceperea și dezvoltarea unei aplicații care va putea efectua cu ușurință anumite acțiuni
pe care atât utilizatorul cât și administr atorul au nevoie de a le efectua . Această aplicație v a avea
scopul de a ușura munca cât și accesul la informații angajaților.
Totuși procesul d e dezvoltare nu se va opri aici , pe lângă opțiunea de a administra și a accesa
anumite informați i folositoare angajaților, se vor ad ăuga noi caracteristici, precum adăugarea u nui
set de întrebări bazate pe un algoritm care va analiza compatibilitatea vizitatorilor cu jobur ile pe
care compania le deține, securizarea informațiilor persona le prin utilizar ea unui interfețe de log -in
care conține us er și a unei parole pentru vizuali zarea date lor personale, în funcție de user și parolă ,
cât și un serviciu de notificări care va anunța angajații cu privire la noi promovări sau anumite
informații ale companiei respective, informațiile fiind updatate zilnic cu ajutorul administratorului
aplicației.
Lucrarea va fi alcătuită din trei capitole structurate special pentru cuprind erea noțiunilor de
programare și de implementare. Primul capitol va acoperi istoria Microsoft , de la începuturil e
companiei și primele versiuni de software, pan ă la cele mai recente proiecte și inovații științifice. Al
doilea capitol, va oferi posibi litatea de a analiza conceptele , etapele și pașii necesari dezvoltării unei
aplicații, în timp ce al treilea capitol va conține dezvoltarea propriu -zisă a aplicației.
5
Capitolul I. Noțiuni fundamentale despre Microsoft
1.1 Istoric
În anul 1975 Bill Gates și Paul înființează compania numită Microsoft. Datorită muncii
asidue depuse de compania Microsoft, în 1985 , la 10 ani după înființarea companiei , apar e oficial
Microsoft Windows , prim ul sistem de operare de ultimă generație , care a oferit o interfață grafică
și un mediu multitasking pentru computerele IBM.
Fig. 1.1 -Microsoft Windows 1.0
Acesta a fost începutul accesiuni companiei Microsoft, el fi ind călăuza companiei în
dezvoltarea noilor tehnologii de astăzi. Datorită acestui sistem de operare Microsoft a început să
investească în dezvoltarea sistemelor de operare , ajungând astăzi la versiunea Microsoft Windows
10. În anul 1 990 Microsoft debuteaz ă cu suita de aplicații Microsoft Office, aplicații software
pentru productivitate cum ar fi Microsoft Word și Microsoft Excel.
Fig. 1.2 –Microsoft Word
6
Datorită ascensiu ni și succesului obținut în urma dezvoltării aplicațiilor software, Microsoft a
început dezvoltarea unui nou limbaj de programare bazat pe limbajul C++, acesta fiind un limbaj de
programare modern numit C#, fiind lansat la sfâ rșitul anilor 90’ .
Pentru utilizarea noului limbaj , Microsoft a creat un set de instrumente numit Visual Stud io,
set de ins trumente pentru dezvoltarea de aplicații ASP.NET, Servicii Web XML, aplicaț ii desktop și
aplicații mobile, Visual Basic, Visual C++, Visual C# .
ASP.NET reprezintă o tehn ologie dezvoltată de Microsoft pentru crearea de aplicații și
servici i web. ASP.NET este succesorul ASP (Active Services Pages) care beneficiază de putere a
platformei de dezvoltare .NET , dar și de setul de instrumente oferite de mediul de dezvoltare al
aplicației Visual Studio.
Având în vedere aspectele de mai sus , trebui e să continuăm prezentarea cu tehnologia
dezvoltată tot de celebra companie Microsoft , .NET1, o platformă de de zvoltare gratuită open
source , pentru dezvoltarea a numeroase tipuri de aplicații, datorită posibilității de a utiliza mai multe
limbaje de progr amare , librării și editoare , toate pentru a dezvolta aplicații pentru web, mobil ,
desktop.
Fig. 1.3 – Arhitectura . NET
1 https://docs.microsoft.com/en -us/dotnet/standard/get -started
7
1.2 Versiuni C#
1.2.1 Structura Visual Studio . NET 2002
Este primul set instrumente c are conține și limbajul C# având numele de cod „Rainer” ,
limbaj care se bazează pe platforma . Net Framework, fiind prima versiune de Visual Studio care se
bazează pe platformă Windows NT. Aceasta a fost prima versiune de Visual S tudio care a avut
nevoie de o platformă Windows bazată pe NT , instalarea sa, impunând asta . Acest set de
instrumente a apărut în 4 ediții , Academic, Professional , Enterprise , Developer și Enterprise
Arhitect.
Cerințele de sistem necesare rulării în condiții optime sunt2:
– RAM 192 MB;
– Spatiu HDD 2,5 GB;
– Frecventa Procesor 450 MHz;
– Compatibil cu urmatoarele sisteme de operare : Microsft Windows 2000
Professional , Microsft Windows 2000 Server , Microsft Windows NT WorkStation;
Fig. 1.4 Interfața Visual Studio . NET 2002
2 https://en.wikipedia.org/wiki/Microsoft_Visual_Studio
8
1.2.2 Structura Visual Studio 2008
Este prima versiune care permite accesul dezvoltatorilor de a utiliza versiuni de . Net
Framework, ac esta fiind bazat pe versiunea 3.5 a Net Framework. Noile funcții ale Visual Studio
2008 i nclud un designer bazat pe XAML . Disp une de un set de îmbunătățiri de widget -uri UI, atât
pentru Windows Forms , cât și pentr u WPF, un motor de construire cu mai multe fire de execuție
(Msbuild) pentru a compila mai multe fișiere s ursă, cât și suport pentru compilarea resurselor icoană
în form at PNG.
Datorită acestor upgrade -uri aduse setul ui de instrumente Visual St udio, cerințele minime de a
rula în condiții optime a c rescut față de predecesorii lui , aducând noi funcții și caracteristici, acestea
fiind net superioare față de versiunile anter ioare , mai jos având detaliile d espre cerințele de sistem:
– Frecventa procesor 2,2 GHZ ;
– RAM 1 GB;
– Spatiu HDD 2,2 GB;
– Compatibil cu urmatoarel e sisteme de operare: Microsft Windows XP , Microsft
Windows Vista, Microsft Windows Server 2003 ;
Fig. 1.5 Interfața Visual Studio 2008
9
1.2.3 Structura Visual Studio 2017
Datorită muncii asidue și necontenite pe care compania Microsoft a dus-o de -a-lungul
timpului spre crearea unui set de instrumente cât mai ușor de folosit de către utilizatorii săi, a dat
roade , dezvoltând recent cel mai rece nt set de astfel de instrumente , mult mai prietenoase față de
utilizator, comenzi simplificate, meniu interactiv , și asistentă AI.
Este cel mai nou set de instrumente ofe rit de Microsoft ca soluție de dezvoltare software , el
oferind numeroase funcții noi , precum suport pentru EditorConfig3, suport pentru Ngen , seturi .NET
Core și setul de instrumente Docker,editor XAML. Microsoft a îmbunătăți t IntelliSense, dar și
experiența IDE, producții îmbunătăți te IntelliSens e, dar și experiență IDE , productivitatea și
depănarea.
Acest fapt s -a datorat și din ca uza evoluției hardware de care omenirea a avut p arte în ultimul
timp, astfel limitele impuse de partea hardware în trecut , fiind depășite cu ajutorul noilor tehnologii .
Fig. 1.6 Interfața Visual Studio 2017
3 https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#2017
10
1.3 Versiuni SQL Server
1.3.1 Structura SQL Server 1.0
Prima apariție a SQL Server a debutat în anul 19 89 cu versiunea SQL Server 1.0, un server pe
16 biți pentru sistemul de operare WIN OS/2. Microsoft s -a alăturat lui Aston -Tate și companiei
Sybase4 pentru a crea o variantă de Sybase SQL Server pentru OS/2, acest a fiind anul în care
Microsoft își face intrarea pe pi ața bazelor de date relaționale , concurând cu Oracle , IBM.
Fiind deja de domeniul trecutu lui, aceasta reprezintă unul dintre primii paș i de automatizare a
umanității , acest program făcând parte din istorie.
Fig. 1.6 Interfața SQL Server
4 https://en.wikipedia.org/wiki/Microsoft_SQL_Server
11
1.3.2 Structura SQL Server 7.0
SQL Server 7.0 a apărut în anul 1998 fiind o schi mbare majoră f ață de celelalte versiuni ,
datorită implementării sa le noi în limbajul C++ față de versiunile anterioare ce erau implementate în
C. Una din noile caracterist ici care au făcut remarcate noua versiune a softului dezvoltat de căt re
compania Microsoft a fost Microsoft Management Console (MMC) .
SQL Server 7.0 introduce câteva elemente administrative (Wizards) pentru uș urarea taskurilor
comune care v ă permit să efectuați mai multe acțiuni de manageriere a bazelor de date, in cluzând
crearea bazelor de date, a ta belelor, indexurilor , alerte, proceduri stocate .
Pentru mărirea performanțelor , echip a Microsoft a adus câteva schimbări nucleului structurii
bazei de date și a motorului query. Una di ntre schimbă rile aduse a fost mărirea dimensiunilor
paginii SQL Server de la 2kb la 8kb , mărirea ext ensiilor de la 2kb la 8 kb și mărirea dimensiunii I/O
pentru scanare la 64 KB.
Una dintre cele mai bune îmbunătățiri software a Microsoft SQL Server a fost introducerea
resurselor dinamice. Cu introd ucerea acestei noi îmbunăt ățiri, managerierea resurselor dinamice a
eliminat nevoia de a p realoca o anumită memorie NT și a unui anumit spațiu pe hardisk pentru SQ L
Server. Caracteristica cea mai important ă adusă acestui s oftware a fost implementarea sa bazată pe
GUI. GUI reprezint ă o interfață care se bazează pe un sistem de afișaj , care utilizează elemente
grafice pentru a putea ușura munca utilizatorului .
Fig. 1.7 Interfața Microsoft SQL Server 7.0
12
1.3.3 Structura SQL Server 2005
SQL Server 2005 a fost lansat în luna Noiembrie a anului 2005 aducând noi caracteristici
vechilor versiuni de SQL Server. Cele mai importante caracteristici pe care compania Microsoft le –
a implementat în noul program, a fost integrarea fișierelor XML, introducerea unei noi îmbunătățiri,
SQL Mail, fiind disponibilă direct în motorul bazei de date, aceasta rezolvând pro blema
dependenței utilizatorilor SQL Server de Outlook sau MAPI.
Cu ajutorul acestei no i funcții implementate de echipa Microsoft, utilizatorul poate sto ca
fișiere XML complete în baza de date, ele putând fi interogate , și pot fi create și indexuri de tipul
XML.
Integrarea CLR
Această caracteristică permite utilizat orilor SQL Server crearea de aplicații asincron,
proceduri stocate, declanșatoare și funcții, bazate pe mesaje î n baza de date în întregime prin TSQL
utilizând limbaje precum C# sau VB. Clasificarea funcțiilor reprezintă un mare progres datorită
priorit izării returnării rezultatelor , acest ea putând fi setate de a afișa rezultatele în funcție de
dorințele utilizatori lor.
Fig. 1.8 Int erfața Microsoft SQL Server 2005
13
1.3.4 Stru ctura SQL Server 2017
Microsoft SQL Server 2017 este cea mai recentă versiune valabilă pe piață , ea fiind lansată pe
data de 2 Octombrie a anului 2017 împreună cu suportul pentru sistemu l de operare Linux.
În tandem cu evoluția la care omenirea ia parte , Microsoft a adus noi caracteristicii și funcț ii,
cum ar fi Graph Database , în cadrul motorului baze de date, Adaptive Query5 cu ajutorul căruia
SQL Server poate evalua durata de execuți e a unei comenzi și poate face co mparații între execuția
curentă , reluarea unei operații de reconstrucție a indexului online de unde execuția s -a oprit din
cauza unor evenimente cum ar fi eșecuri de baze de date, depășirea spațiului pe disc sau pauze cât ș i
Suport pentru tranzacții distribuite.
Noile car acteristici menționate mai sus aduc un plus de simplificare a utilizării ș i administrării
bazelor de date , setul de unelte fiind mult mai intuitiv, dar și partea de UI având un rol important
fiind mult mai prietenoasă cu utilizatorul .
Fig. 1.9 Interfața Microsoft SQL Server 2017
5 https://docs.microsoft.com/en -us/sql/?view=sql -server -2017
14
1.4 Tehnologii si elemente de programare privind SQL
SQL (Structured Query La nguage) este la momentul actual, cel mai dezvoltat limbaj structurat
dezvol tat special pentru inte rogarea informațiilor stocate pe bazele de date relaționale.
Metodele de baz ă existente privind implementarea limbajului SQL sunt următoarele:
– apelare direct ă (Direct Invocation);
– modular ă (Modul Language);
– încapsulată (Embedded SQL);
Gruparea instrucțiu nilor în SQL se pot organiza astfel :
– instrucțiuni care permit expunerea structurii bazei de date , aceasta numindu -se
instrucțiunea de def inire a datelor ;
– instrucțiuni care permit adăugarea , editarea sau ștergerea anumitor, date , aceasta
numindu -se instruc țiunea de prelucrare a datelor;
– care permit interogarea bazei de date, aceasta numindu -se instrucțiunea de selec ție;
– instrucțiuni de procesare a datelor care se afl ă in transfer;
1.4.1 Elementele de baz ă ale SQL:
Numele
Obiectele din baza de date au un nume , acest num e poate fi un șir de caractere de maxim 30
de caractere, primul caracter fiind obligatoriu o literă, numele obiectelor fiind unice , într -o bază de
date existând un singur obiect cu acel nume.
Cuvinte rezervate
Cuvintele rezervate sunt șiruri de litere rezervate care nu pot fi utilizate cu alt scop, scopul
acestora fiind pentru crearea instrucțiunilor limbajului.
Constante
Ele sunt d e 2 tipuri , constante numerice , și constante alfanumerice supranumite și „ șir de
caractere ”
Variabile
Datele care pot avea în timp valori diferite se numesc variabile, ele având întotdeauna un
nume pentru a putea fi referite.
Ele se împart în 2 categorii :
– variabile sistem;
– variabile asociate numelor coloanelor din tabele;
Expresii
Alcătu irea unei expresii este format ă din constante, variabile , operatorii și funcții.
15
Exemple de utilizare a elementelor SQL :
Pentru crearea și afișarea unui nou tabel în baza de date , am utilizat codul de mai jos:
– Create table LogIn
(Username_Angajat varchar(50) not null,
Password_Angajat varchar(50) not null,
Tip_Angajat varchar(50) not null)
Select* from LogIn
Instrucțiunea de mai jos face pos ibilă interogarea bazei de date , interogarea fiind precis ă
datorit ă clauzei where:
– Select * from Angajat where Cod_Angajat =’C01’
A 2 a instrucțiune face posi bilă interogarea bazei de date , ordonând rezultatul afișat in funcție
de codul departamentului.
Fig. 2.0 Exemple Elemente SQL Server
16
1.4.1 Elemente de programare privind C#
Limbajul C# cuprinde mai multe facilități av angardiste, printre care cele mai importante fiind
suportul i ncorporat pentru componente software. Limbajul oferă facilități prin care se
implementează direct conceptele care formează s tructurile software, cum ar fi proprietățile,
metodele și evenimentele. Cel mai mare be neficiu de care dispune C# este aptitudinea de a lucra
într-un mediu cu limbaj mixt.
Arhitectur a. NET definește un cadru de p rogramare care permite crearea , dezvoltarea și
execuția aplicațiilor indiferent de platformă. Ea oferă posibilita tea d e a programa în limbaj mixt,
oferind facilități de securitate și de portabilitate a programelor, fiind disponibil ă doar pentru
platformele Windows momentan.
Legat de C#, arhitectura . NET def inește două entități importante :
– biblioteca de clase . NET ;
– motorul comun de programare sau Common Language Runtime (CLR).
C# nu conține o bibliote că de clase proprie, utilizând astfel di rect biblioteca de clase .NET.
De exemplu, atunci când se execută un program care efectuează operații de intrare -ieșire, cum ar fi
afișarea unui text pe ecran, se va utiliza biblioteca de clase . NET.
Common Language Runtime (CLR) se ocupă cu lansarea programelor C#. De asemenea CLR
asigură programarea în limbaj mixt și securitatea programelor. În cazul în care este compilat un
program C#, sau un program în limbaj mixt, rezultatul compilării nu este un cod executabil, în locul
acestuia, producându -se un fișier alcătuit dintr -un tip de pseudocod , numit limbaj intermediar (I L).
Fișierul IL poate fi copiat în orice calcu lator care dispune de . NET CLR.
Cu ajutorul compilatorului denumit JIT (Just I n Time), CLR, CLAS transform ă codul
intermediar în cod executabil. Procesul de conversie decurge astfel:
– programul . Net este rulat;
– Common Language Runtime6 (CLR) acți onează compilatorul JIT ;
– Compilatorul JIT convertește fișierul IL în cod executabil pe măsura necesității
fiecărei părți din program;
6 https://docs.microsoft.com/en -us/dotnet/standard/clr
17
1.4.2 Principiile programării orientate obiect
Metodologiile de programare s -au schimbat continuu de la apariția primelor calculatoare,
pentru a putea ține pasul cu mărirea complexității programelor în curs de dezvoltare. Programarea
primelor calculatoare s -a rea lizat introducând instrucțiuni mașină scri se în codul binar.
Datorită evoluției programelor și crește rea nevoii de programe mai mari , s-a inventat
limbajul de asa mblare, un limbaj în care se put eau gestiona programe mari prin utilizarea unor
reprezentări. Cum program ele continuau să crească, s -au creat și introdus limbaje de nivel înalt,
precum FORTRAN și COB OL, inventându -se ulterior programarea structurată.
Programarea orientată pe obiecte a preluat cele mai bune concepte de la programarea
structurată, combin ându-le cu idei no i, astfel , rezultatul acestor concepte a oferit o modalitate
difer ită de a organiza un program , el putând fi organizat în 2 moduri:
– în jurul codului (mod de lucru valabil în cazul programării structurate) ;
– sau în jurul datelor (mod de lucru valabil în cazul programării orientate pe obiecte);
Toate limbajele POO7 dețin pa tru caracteristici comune: încapsularea, polimorfismul,
moștenirea și reutilizarea.
Încapsularea
Încapsularea este un sistem care îmbină codul și datele pe care le operează, menținând
integritatea acestora față de suprapunerea cu lumea exterioară . Supranumi tă și realizarea de cutii
negre , încapsularea ascunde funcționalitatea proceselor. Atunci când codul și datele sunt încapsulate
se creează un obiect, codul și datele putând fi publice sau private în cadrul obiectului creat.
Codul și datele pri vate sunt utilizabile doar în mediul aceluiași obiect, în timp ce codul și
datele publice pot fi accesibile și din alte părți ale programulu i care există în afară acelui obiect,
unitatea fundamentală de încapsulare fiind clasă.
Clasele indică datele și codul care operează asupra datelor. O clasă determină forma unui ob iect,
ea reprezentând o matriță, astfel , un obiect reprezentând o instanță a clasei.
Polimorfismul
Polimorfismul este „însușirea care îngăduie unei interfețe să aibă acces la un gr up generic de
acțiuni” 8. Termenul este proveni t din cuvintele din limba greac ă „polis” și „morphe” având ca
semnificație “cu mai multe forme”. Conceptul de polimorfism este expus prin expresia “o singură
interfață mai multe metode” 9.
7 https://docs.microsoft.com/en -us/dotnet/csharp/programming -guide/concepts/object -oriented -programming
8 https://docs.microsoft.com/en -us/dotnet/csharp/programming -guide/concepts/object -oriented -programming
9 https://www.math.uaic.ro/~cgales/csharp/Curs1.pdf
18
Moștenirea
Moștenirea este a bilitatea deținută de un obiect , prin care obiectul poate dobândi
caracteristicile altui obiect. Concordanța cu conceptul de animal este sugestivă. Spre exemplu, să
considerăm o pasăre . Aceasta deține toate car acteristicile unui animal , însă are în plus și o altă
caracteristică care o definește , și anume: vederea la distante mari. Să considerăm un vultur.
Acesta este o pasăre zburătoare de pradă. Vulturul are toate caracteristicile unei păsări, însă
deține și propriile sale caracteri stici. Așadar, un vultur moștenește c aracteristicile unei păsări. O
pasăre moștenește caracteristicile unui animal. Astfel, sistemul moștenirii este cel care face posibil
că un obiect să fie o instanță a unui caz mai general.
Reutilizarea
Atunci cân d este concepută o clasă, aceasta poate fi folosită pentru a concepe o mulțime de
obiecte. Prin folosirea moștenirii și încapsulării clasa evocată poate fi reutilizată , fără a mai fi
nevoie de a testa codul respectiv , ci doar de a -l utiliza corect.
Windo ws Forms
Windows Forms10 este o tehnologie client inteligent pentru . Net Framework, un set de librării
gestiona te, care simplific ă acțiunile obișnuite ale unei aplicații precum cititul , sau scrisul în sistemul
de fișiere. Tehnologia conține o varietate de controale pe care programator ul le poate adaugă în
formulare :
– casete de text,
– butoane;
– casete drop -down ;
– butoane radio ;
– pagini web;
cele de mai sus , fiind doar câtev a exemple din multitudinea de controale care pot fi adăugate în
formular (Fig. 2.1).
10 https://docs.microsoft.com/en -us/dotnet/framework/winforms/index
19
Fig. 2.1 Exemple Controale Windows Forms
20
Capitolul II . Concepte si metodologii pentru proiectarea unei
aplicații
Proiectarea unei aplicații se face pe baza une i analize riguroase a nevoilor , a detaliilor și a
tehnologiilor care se vor folosi pentru dezvoltarea acesteia.
Fiecare dintre aceste etape sunt extre m de importante , fiecare având rolu l ei în dezvoltarea
aplicației.
2.1 Analiza nevoilor de dezvoltare a aplicației
Aplicațiile informatic e sunt dezvoltate în concord anță cu nevoile cerute de oameni , ele
ușurând munca pe care oamenii o depun zi de zi. Pentru o analiza corect ă, vom stabili nevoile
principale ale departamentului resurselor umane , el fiind tema aleas ă de dezvoltator.
Principa lele sarcini administrate d e depa rtamentul resurselor umane sunt :
– recrutarea viitorilor noi angajați ;
– administrarea personalului unei companii/firme;
– salarizarea și furnizarea infor mațiilor personale către angajați;
Analizând riguros cerințele pe care viitoarea aplicaț ie care se afl ă în curs de dezvoltare ,
ajungem la etapa de creare a conceptului aplicației , crearea pseudocodului si analiza eficientei
aplicației.
2.2 Analiza uzului viitoarei aplicații
Fiind o aplicație destinat ă departamentului resurse lor umane , ea va fi întrebuințat ă atât de
partea de managemen t a personalului , de partea de furnizare a informațiilor personale către angajații
companiei cat și de partea de recrutare. Acestea fiind spuse, datorit ă acestor informaț ii, aplicația va
fi construit ă pe 3 inte rfețe grafice, ușor de utilizat , fiec are interfaț ă creat ă special pentru îndeplinirea
sarcinilor cerute de departament.
2.3 Analiza și testarea tehnologiilor
Pentru ca aplicația s ă devin ă reală, având datele necesare adunate în urma analizei nevoilor
departamentului resurselor umane , următorul pas ne călăuzește spre analiza si testarea anumitor
tehnologii , tehnologii cu care vom crea aplicația în sine.
21
2.4 Baza de date
Pentru stocarea informațiilor cu care aplicația va l ucra efectuând sarcinile cerute , va fi nevoie
de crearea unei baze de date, baz ă de date ce va fi creat ă cu ajutorul programului SQL Server. Fiind
o colecție de date , informațiile stocate in ea , pot fi accesate cu ușurinț ă, manageriat e c updatate.
Din cauz ă că datele sunt indexa te și organizate în rând uri, coloane si tabele , ele pot fi
accesate cu ușurinț ă, oferind utilizatorilor posibilitatea de a căuta, updata si manageria datele cu
ușurinț ă. Astfel baza de date va forma prima piesă a aplicației care se va dezvolta , ea fiind mo torul
principal al aplicației.
În funcț ie de nevoile departamentului , baza de date oferă posibilitatea de a crea relații în
tabelele care stochează informațiile necesare departamentului resurselor umane, rel ațiile create în
baza de date , reprezi ntă asoc ierea dintre entitățile tabelelor.
Relaț iile din baza de date pot fi :
– Relații de 1 la 1 (1 : 1 ), Relațiile de 1 la 1 sunt de forma : un obiect are legătur ă cu
un singur obiect;
– Relații de 1 la n ( 1 :n), Re lațiile de 1 la n sunt de forma : un obiect are legătur ă cu
mai multe obiecte;
Constrângerea reprezintă modul prin care baza de date previne inserția de date invalide în
tabelele bazei de date. Ele sunt utilizate pentru crearea regulilor în baza de date , astfel evitându -se
eventualele erori.
Fiind alcătuite din mai multe tipuri , constrângerile se împart astfel :
– Unique , asigur ă unicitatea tuturor valorilor dintr -o coloană ;
– Not Null , previne nulitatea înregistrărilor dintr -o coloan ă;
– Check , verific ă dacă fiecare înregistrare dintr -o coloan ă se supune unei anumite
condiții;
– Index , utilizarea ei fiind necesar ă pentru a crea și a obține înregistrări dintr -o baz ă de
date foarte rapid;
– Primary Key , fiind un amalgam alcătuit din constrângerile Not Null si Unique ,
„impune valori unice si nenule pentru coloana în cauz ă”;
– Foreign Key , este constrânge rea care se utilizează împreun ă cu Primary Key , ea fiind
utilizat ă pentru a rezolva problema integrității referențiale.
22
Exemple constrângeri și comenzi SQL11:
Utilizarea unei constrângeri de tip Primary Key:
(Cod_Firma varchar(50) constraint pk_fir primary key ;
Utilizarea unei constrângeri de tip Foreign Key:
Cod_Firma varchar(50) constraint fk_fir foreign key
(Cod_Firma ) references Firma (Cod_Firma) ;
Utilizarea constrângerii de tip Not Null:
Nume_Angajat varchar(50) not null ;
Utilizarea constrângerii de tip Index :
Create Index idx_Nume
On Angajat(Nume_Angajat,Prenume_Angajat) ;
Utilizarea constrângerii de tip Unique:
Create Tabel Angajat(
Id char(10) not null Unique );
Utilizarea constrângerii de tip Check :
Salariu numeric(10) Check (Salariu>=2000) ;
11 https://docs.microsoft.com/en -us/sql/relational -databases/databases/databases?view=sql -server -2017
23
Arhitectura unei aplicați i
Fig. 2.2 Arhitectura unei aplicați i
24
Interfața grafica a baze i de date
O interfaț ă grafic ă reprezintă puntea de intera cționare dintre utilizator și dispozitiv. Ea este
conceput ă dintr -un sistem de afișaj bazat pe utilizarea elementelor graf ice, ușurând astfel munca
depus ă de utilizator in utilizarea dispozitivelor .
Fig. 2.3 Straturile unei Interfețe Grafice
25
2.5 Librării
Cea mai important ă parte din dezvoltarea unei aplicații, sunt librăriile. Librăriile sunt
reprezentate de colecția datelor nevolatile utilizate de programele software sau pentru dezvoltar ea
software.
Ele sunt alcătuite dintr -o colecție de fișiere, programe, rutine , scripturi sau funcții care pot fi
folosite ca modu le reutilizabile în dezvoltarea aplicațiilor cu ajutorul importării acestora.
Librăriile de baz ă utilizate în „Common Language Infrastructure” sunt următoarele :
– System care definește atât clasa Obiect cat și tipurile de date de baz ă, cum ar fi numere
întregi, zecimale,caractere sau stringuri;
– System.Threading definește tipurile care activeaz ă programarea pe mai multe fire de
execuție;
– System.Net ofer ă posibilitatea de a utiliza protocoalele de rețea ;
– System.Collections reprezintă mai multe tipur i de containere folosite în dezvoltarea
aplicațiilor , dicționare , liste, stive;
– System.Security este folosit ă pentru a reprezenta permisiunile și securitatea sistemului;
– System.Diagnostics este utilizat ă pentru a of eri abilitatea de a diagnostica potențialele
erori ale aplicației care se afl ă în curs de dezvoltare;
Fiind reutilizabile , ele pot fi creat e de orice dezvoltator, astfel , posibilitățile de a
reduce atât timpul câ t și munca, de dezvoltatorii de aplicații.
Exemple de librarii:
– folosit ă pentru a putea utiliza formele de tip Ferestre:
using System.Windows.Forms;
– folosit ă pentru a putea utiliza serviciul de email :
using System.Net.Mail;
– folosit ă pentru a putea utiliza și a putea crea leg ătura dintre SQL și Visual Studio;
–
using System.Data.SqlClient;
SqlConnection con = new SqlConnection( "Data Source=DESKTOP –
0AE22R9\\DOBRASQL;Initial Catalog=Licenta;Integrated Security=T rue");
26
Conceptul Aplicației
Având i nformațiile necesare provenite din procesul analizei de dezvoltare a unei aplicații ,
conceptul aplicației poate fi crea t. Conceptul va fi baza dezvoltării aplicației , astfel toate datele
acumulate din cercetările an terioare , vor fi utilizate ca modu le pentru conceperea aplicației .
Având în vedere c ă una dintre necesitățile pe care aplicația trebuie sa o satisfacă este
administrarea informațiilor personalului angajat , nucleul a plicației va fi o baz ă de date , creat ă
special nevoilor pe care departa mentul resurselor umane le are. Baza de date va fi stru cturat ă astfel
încât sa respecte normele impuse de cei din departamentul resurselor umane, utilizând astfel
constrângerile și interogările. Scopul aplicației fiind atât ușurarea muncii depuse de departamentul
resurselor umane , cat și simplificarea com unicării personalului firmei cu departamentul resurselor
umane , baza de date va fi accesat ă și utilizat ă cu ajutorul unei interfețe create in limbajul C#.
Ținând cont de a spectele menționate mai sus , interf ața va fi creat ă pe 3 straturi , astfel
diferențiind atât a ccesul cat și drepturile pe care angajații îl vor avea , în funcție de funcția pe care o
dețin in cadrul companiei. Astfel tranziția de la o int erfață la alta , va fi realizat ă cu ajutorul unei
ferestre de tip Log In, accesul în aplicaț ie, în cazul personalului, făcându -se în funcție de drepturile
pe care acesta le deține.
Ferestrele vor fi numite aferent scopului lor , astfel interfața va fi formata din:
– Fereastra Log In;
– Fereastra CV;
– Fereastra User;
– Fereastra Administrator;
27
Capitolul III . Dezvoltarea si implementarea aplicației
Având toate datele necesare dezvoltării aplicației, concluzion ăm că aplicația trebuie s ă
îndeplinească cerințele impuse de departamentul resurselor umane. Astfel , cunoscând nevoile pe
care aplicația trebuie sa le îndeplinească, dezvoltarea ei va putea fi făcută strict pe nevoile cerute.
Scopul aplicației aflata in curs de dezvoltare, are rolul de a crea o legătur ă virtual ă între
angajații firmei și departamentul resurselor umane , pentru eventualele informați i ușurând astfel
procesul prin care angajații trec pentru a procura informații personale. Pentru eliminarea procesului
cu privire la administrarea informațiilor d e către cei din cadrul d epartamentului resurselor umane ,
aplicația oferind astfel posibilitatea de a putea administra toate informaț iile cu care acestea lucrează,
utilizând doar interfața care a fost special creat ă astfel încât, ea poate fi utilizat ă chiar și pentru
administrare a de un s implu angajat , fiind dezvoltat ă cu scopul de a putea fi cat mai ușor de înțeles.
Abilitatea specială pe care aplicația o deține în setul să u de instrumente , este abilitatea de a
putea prezice jobul care i se potrivește can didatu lui care aplic ă pentru un job în cadrul companiei.
Astfel , candidatul va putea comunica direct cu HR -ul printr -o cale virtual ă, cale creat ă cu
ajutorul poștei virtuale. Candidatul va completa câmpurile din ferea stra special creat ă, își va putea
adăuga CV -ul său, la finalul sesiunii de completare , atât datele cat si câmpurile completate de
candidat , vor fi transmise direct către HR , împreună cu prezicerea făcută de aplicație , astfel încât
aplicația se va implica direct în recrutarea de candidați.
Structura apl icației va fi făcută pe etape , astfel încât procesele de dezvoltare și de
implementare sa fie luate pas cu pas , pentr u a acoperi toate câmpurile de nevoi.
Acestea fiind spuse, aplicația își propune sa creeze un mediu prin care comunicar ea să fie cat
mai ușor de realizat , taskurile pe care fiecare angajat le are , sa poată fi r ezolvate cu ajutorul
aplicației , dar și abilitatea special ă de a putea prezice jobul pentru a putea uș ura atât sortarea
candidaților, c ât și calea prin care aceștia candidează, nefiind nevoie de o selecție făcută de candidat
pentru candidarea pe un anumit post.
Dezvoltarea aplicației va începe prin prezentarea conceptului creat cu a jutorul analizei
nevoilor , astfel punându -se accent pe modulele care creează componen ta aplicației dezvoltat ă,
făcându -se astfel trecerea de la partea teoretic ă la partea de implementare.
28
3.1 Module componente
Aplicati a este alcatuit ă dintr-o bază de date, conceput ă special pentru o firmă fictiv ă, pentru a
putea lucra cu informa tiile și 13 formuri create special pentru simplificarea uzului aplicatiei.
3.1.1 Baza de date
Utilizând analiza riguroasă a datelor cu care vom lucra, am creat baza de date , am structurat
modelul relațional, apoi am trecut la partea de implementare. Reprezentând una dintre cele mai
importante etape a realizării bazei de date , modelul re lațional a fost conceput astfel încât s ă respecte
condițiile impuse de relațiile pe care departamentele din companie le au.
Modelul relațional este următorul :
– Angaj at (CodAngajat , Nume_Angajat , Prenume _Angajat , Cnp, Cod_Departament,
Cod_Firma, Adresa_Email) ;
– Contract ( Cod_Contract , Cod_Angajat , Tip_Contract , Data_Angajare , Data_Finalizare ,
Salariu , Zile_Concediu );
– Departament ( Cod_Departament , Nume_Departament , Sef_Departament, Secretara);
-Firma ( Cod_Firma , Nume_Firma, Locatie, Adresa, Numar_Telefon);
– Rol_Angajat ( Cod_Rol , Cod_Angajat , Denumire_Rol , Descriere_Rol );
-Certificat ( Cod_Certificat , Cod_Training , Cod_Angajat , Denumire_Certificat );
-Training ( Cod_T raining , Descriere_Training , Pret_Training );
-LogIn ( Username , Password , Tip);
Relațiile din Baza de date sunt următoarele:
-Relații de 1 la 1 (1:1) în care :
– un angajat are un singur contract ;
Relații de 1 la n (1:n) în care :
-un departament are ma i mulți angajați;
– o firmă are mai mulți angajați;
-un angajat poate avea mai multe roluri ;
– un singur training poate avea mai multe certificate;
29
Fig. 2.4 Diagrama bazei de date
Implementarea bazei de date :
1. Crearea bazei de date este realizată cu ajutorul comenzii “create database Licența “
2. Tabelul Angajat
Crearea tabelului Angaja t este realizată cu ajutorul comenzilor de mai jos , proiectată special
cu scopul de a memora inform ațiile inserate în baza de date , fiind nucleul bazei de date, acest tabel
aflându -se în rel ație cu toate celelalte tabele:
Angajat
Cod_Angajat
Nume_Angajat
Prenume_Angajat
CNP
Cod_Departament
Cod_Firma
Adresa_Email
Certificat
Cod_Certificat
Cod_Training
Cod_Angajat
Denumire_Certificat fk_angjtContracte
Cod_Contract
Cod_Angajat
Tip_Contract
Data_Angajare
Data_Finalizare
Salariu
Zile_Concediu fk_angajatDepartament
Cod_Departament
Nume_Departament
Sef_Departament
Secretara
fk_dep
Firma
Cod_Firma
Nume_Firma
Locatie
Adresa
Numar_Telefon fk_firLogIn
Username
Password
Tip
Rol_Angajat
Cod_Rol
Cod_Angajat
Denumire_Rol
Descriere_Rol fk_ang
Training
Cod_Training
Descriere_Training
Pret_Training fk_trn
30
create table Angajat
(Cod_Angajat varchar(50) constraint pk_ang primary key,
Nume_Angajat varchar(50) not null ,
Prenume_Angajat varchar(50) not null,
CNP char (13) not null,
Cod_Depart ament varchar(50) constraint fk_dep foreign key
(Cod_Departament) references Departament (Cod_Departament),
Cod_Firma varchar(50) constraint fk_fir foreign key
(Cod_Firma) references Firma (Cod_Firma),
Adresa_Email varchar(50) not null)
Figura ne arat ă relați ile care se creează util izând constrângerile de tip primary key si foreign key.
Fig. 2.5 Schema relațională a tabelului Angajat
2. Tabelul Firm ă
Crearea tabelului Firm ă este realizată cu ajutorul comenzilor de mai jos , proiectată special cu
scopul de a memora inform ațiile inserate în baza de date , tabelul aflându -se în relație de 1:n (1:n) cu
tabelul Angaja t :
create table Firma
(Cod_Firma varchar(50) constraint pk_fir primary key,
Nume_Firma varchar(50) not null,
Locatie varchar(50) not null,
Adresa varchar(50) not null,
Numar_Telefon char(50) not null)
Figura ne arată relați ile care se creează utilizând constrângerile de tip primary key și foreign
key:
31
Fig. 2.6 Schema relațională a tabelului Firma
3.Tabelul Departament
Crearea tabelului Departament este realizată cu ajutorul comenzilor de mai jos , proiectată
special cu scopul de a memora inform ațiile inserate în baza de date , tabelul aflându -se în relație de
1: n (1:n) cu tabelul Angajat :
create table Departament
(Cod_Departament varc har(50) constraint pk_dep primary key,
Nume_Departament varchar(50) not null,
Sef_Departament varchar(50) not null,
Secretara varchar(50) not null)
Fig. 2.7 Schema relațională a tabelului Departament
32
4. Tabelul Contracte
Crearea tabelu lui Contract e este realizată cu ajutorul comenzilor de mai jos , proiectată special
cu scopul de a memora inform ațiile inserate în baza de date , tabelul aflându -se în relație de 1:n (1 la
n) cu tabelul Angajat:
create table Contracte(
Cod_Contract varchar(50) constra int pk_con primary key,
Cod_Angajat varchar(50) constraint fk_angajat foreign key
(Cod_Angajat) references Angajat (Cod_Angajat),
Tip_Contract varchar(20) not null,
Data_Angajare varchar(20) not null,
Data_Finalizare varchar(15) not null,
Salariu numeric (10) not null,
Zile_Concediu varchar(15) not null)
Fig. 2.8 Schema relațională a tabelului Contracte
5. Tabelul Rol Angajat
Crearea tabelului Rol Angajat este realizată cu ajutorul comenzilor de mai jos , proiectată
special cu scopul de a memora inform ațiile inserate în baza de date , tabelul aflându -se în relație de 1
la n (1:n) cu tabelul Angajat :
create table Rol_Angjat
(Cod_Rol varchar(50) constraint pk_rol primary key,
Cod_Angajat varchar(50) constraint fk_ang foreign key
(Cod_Angajat) references Angajat (Cod_Angajat),
Denumire_Rol varchar(50) not null,
Descriere_Rol varchar(50) not null)
Fig. 2.9 Schema relațională a tabelului Rol Angajat
33
6. Tabelul Certificat
Crearea tabelului Certific at este realizată cu ajutorul comenzilor de mai jos , proiectată
special cu scopul de a memora inform ațiile inserate în baza de date , tabelul Certificat aflându -se în
relație de n la 1 (n:1) cu tabelul Training:
create table Certificat
(Cod_Certificat varchar(50) constraint pk_cer primary key ,
Cod_Training varchar(50) constraint fk_trn foreign key
(Cod_Training) references Training (Cod_Training),
Cod_Angajat varchar (50) constraint fk_angjt foreign key
(Cod_Angajat) references Angajat(Cod_Angajat),
Denumire_Certificat varchar(50) not null)
Fig. 3.0 Schema relațională a tabelului Certificat
7. Tabelul Training
Crearea tabelului Traini ng este realiza tă cu ajutorul comenzilor de mai jos , proiectată special
cu scopul de a memora inform ațiile inserate în baza de date , tabelul Training aflându -se în relație de
1 la n (1:n) cu tabelul Certificat:
create table Training
(Cod_Training varchar(50) constra int pk_trn primary key ,
Descriere_Training varchar(50) not null,
Pret_Training numeric (10) not null )
Fig. 3.1 Schema relațională a tabelului Training
34
8. Tabelul Log In
Față de celelalte tabele , tabelul Log In a fost proiectat diferit , el neaflâ ndu-se în r elație cu
nici-o altă tabel ă, fiind creat cu s copul de a memora informațiile necesare Log In-ului în aplicație ,
fără a avea vreo urmare negativă în cazul unei erori de administrare a tabelului, tabelul fiind creat
cu ajutorul codului de mai jos :
Create table LogIn
(Username_Angajat varchar(50) not null,
Password_Angajat varchar(50) not null,
Tip_Angajat varchar(50) not null)
9.Inserare
După terminarea im plementări , vom insera câteva î n informații în fiecare tabel , cu ajutorul
comenzilor de ma i jos pentru verificarea proiectării bazei de date :
insert into
Angajat(Cod_Angajat,Nume_Angajat,Prenume_Angajat,CNP,Cod_Departament,Cod_
Firma,Adresa_Email)
values
('a01','Patrascu','Viorel','1900302467174','d01','f21','patrascuV@gmail.c
om'),
('a02','Mo lifta','Ion','1890302461138','d01','f21','moliftaI@gmail.com'),
('a03','Bancescu','Victor','1940605378699','d04','f03','bancescuV@gmail.c
om'),
insert into
Contracte(Cod_Contract,Cod_Angajat,Tip_Contract,Data_Angajare,Data_Finali
zare,Salariu,Zile_Conced iu)
values('c001','a01','03/09/2012','03/09/2050','Nedeterminat','3000','13),
('c002','a02','8h','03/10/2022','Nedeterminat','2500','8'),
('c003','a03','12h','27/09/2035','27/09/2029','4000','3'),
insert into
Firma(Nume_Firma,Cod_Firma,Locatie,Numar_Tel efon,Adresa)
values ('Bluehole ','f01','Romania','0212121727','Pitesti'),
('EaGames','f02','Romania','0312001000','Bucuresti'),
('Gameloft','f03','Rusia','0336819002','Moscova'),
insert into
Certificat(Cod_Certificat,Cod_Angajat,Cod_Training,Denumire_Cert ificat)
values ('c01','a01','t1','TAP'),
('c02','a02','t2','PIA'),
('c03','a03','t3','BD'),
insert into
Training(Cod_Training,Descriere_Training,Pret_Training)
values ('t1','Programming','1000'),
('t2','Programming','1500'),
('t3','SQL','1700'),
insert in to
Rol_Angajat(Cod_Rol,Cod_Angajat,Descriere_Rol,Denumire_Rol)
35
values ('r1','a01','','SpecialistIT'),
('r2','a02','Linux','SpecialistIT'),
('r3','a03','.NET','Developer'),
insert into
Departament(Cod_Departament,Nume_Departament,Sef_Departament,Secretara )
values ('d01','IT','Diaconu','Tara'),
('d02','Programare','Vochin','Simion'),
('d03','Mentenanta','Neacsiu','Alexa'),
insert into Login(Username,Password,Tip) values('user1','pass1', 'user'),
('user2','pass2', 'user'),
('user3','pass3', 'user'),
Final izând inserarea datelor , verificarea si vizu alizarea lor se va face în prim ă instanță cu
ajutorul interogărilor de mai jos , pentru verificarea si prevenirea eve ntualelor probleme de inserție ,
astfel evitându -se posibilele erori, in terogările putând fi exec utate pe rând sau toate in același timp.
select *from Angajat
select *from Firma
select *from Departament
select *from Certificat
select *from Contracte
select *from Training
select *from Rol_Ang ajat
select *from LogIn
Figura de mai jos repre zintă rezultatul interogărilor .
Fig. 3.2 Rezultatul interogărilor
36
Având în vedere aspectele de mai sus, și reușita în crearea bazei de date , vom trece la cea de
a 2 a parte a implementării aplicației . În a 2 a parte vom crea leg ătura dintre baza de da te creată
anterior și aplicația pe care o vom dezvolta în programul Visual Studio cu ajutorul limbajului C# .
3.1.2 Form 1
Prima formă este alcătuită din 2 text-boxuri și 3 butoane , cât și o legătură de afișare dintre
browser și aplicație. Fiecare buton are propriul său design cu o iconiță corespunzătoa re funcției
atribuite butonului , cât și forma în sine are propriul său design, fiind principala formă , și prima parte
din interfață cu care utilizatorul va lucra.
Fig.3.3 Form 1
Inițializarea primului buton din Form1 constă în crearea legăturii di ntre baza de date și
aplicație, cât și logarea în aplicație în funcție de tipul de utilizator.
Pentru a realiza comanda din spatele butonului Log -In, vom utiliza selectarea tipului de
utilizator p recizat în tabelul Log -In cu ajutorul comenzii select , apoi vom aplica condiția if pentru a
putea diferenția tipurile de angajați. Daca utilizatorul aplicației , introduce datele care aparț in tipului
de utilizator User, aplicația îl va redirecționa în fereastra User , însă dacă datele sunt de tip
Administrator el va fi redirecționat spre fereastra Administrator. Pentru a putea fi cât mai simpl ă și
ușor de utilizat , codului i s-au adăugat căsuțe de dialog , pentru a anunța posibilele erori in cazul în
care utilizatorul greșește username -ul sau parola.
Log-In
private void button1_Click( object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection( "Data Source=DESKTOP –
0AE22R9\\DOBRASQL;Initial Catalog=Licenta;Integrated Security=True" );
string query = "Select * from LogIn where username ='" +
Username.Text.Trim() + "' and password = '" + Password.Text.Trim() + "'";
SqlDataAdapter sda = new SqlDataAdapter(query, sqlcon);
DataTable dtbl = new DataTable();
sda.Fill(dtbl);
if (dtbl.Rows.Count > 0)
{
37
Tip = dtbl.Rows[0][2].ToString().Trim();
if (Tip == "user")
{
MessageBox.Show( "Bun venit user" );
this.Hide();
User us = new User();
us.Show();
}
else
{
MessageBox.Show( "Bun venit Administrator" );
this.Hide();
Administrator admin = new Administrator();
admin.Show();
}
}
else
{
MessageBox.Show( "Utilizatorul sau parola sunt inc orecte");
}
}
După conectarea aplicației cu succes la baza de date cu ajutorul constructorului
”SqlConnection” , se creează un string care conține interogarea sql ”select * from “ cu ajutorul c ăreia
putem inițializa logarea , stringul, căutând în tabe lul precizat datele înserate de utilizator.
Pentru definirea tipului de utilizator și crearea log -in ului cu drepturi , am conceput un cod cu
ajutorul condiției if , condiție prin care algoritmul verifică dacă tipul de utilizator are dreptu ri de user
sau a dministrator.
Dacă tipul de utilizator este user , atunci algoritmul îl va redirecționa către forma concepută
special pentru el numită User, unde își poate verifica, datele, cât și informațiile principale, iar în caz
contrar va fi redi recționat către fe reastra Admin, unde poate avea acces la toate informațiile
cuprinse în baza de da te, fiind eligibil să le modifice .
În cazul în care util izatorul introduce informații eronate, algoritmul îl va atenți ona afișându -i
un mesaj, acest lucru întâmplându -se și în cazul în care utiliza torul se loghează în forma User , el va
fi infor mat că se află în forma User , cât și dacă se va loga în Admin , primind același tip de mesaj ,
diferit fiind doar numele formei în care se află.
Această metodă de Log -In are ca rol , crearea unei singure aplicații, cu rol multiplu , fiind
utilizată de orice utilizator , în funcție de drepturile acestuia.
38
Fig. 3.4 Butonul Log In
3.1.3 CV
Cu ajutorul funcției create și adăugate în butonul CV , aplicația va deschide froma Curriculum
Vitae , formă în care vizitatorii companiei cât și angajații au ac ces fără necesitatea de a se loga,
forma fiind concepută special pentru utilizator cu rolul de a comunica dir ect cu personalul din
cadrul departamentului HR, în aplicarea de joburi.
private void Button3_Click( object sender, EventArgs e)
{
MessageBox.Show( "Bun venit Curriculum Vitae" );
this.Hide();
CV cv = new CV();
cv.Show();
}
Fig.3.5 Butonul CV
EXIT
Are rolul de a închide aplicația , în cazul in care utilizatorul nu dorește sa utilizeze aplicația.
private void Exit_Click( object sender, EventArgs e)
{
this.Close();
}
Fig.3.6 Butonul Exit
39
3.1.4 Elementele vizuale din Forma principal ă
Elemen tele vizuale adăugate in form ă au rolul de a crea un medi u cât mai intuitiv, și mai
plăcut utilizatorului , acestea fi ind esențiale în orice interfaț ă grafic ă datorit ă importan ței lor majore.
Datorit ă funcțiilor pe care f ormurile create in C# le dețin , adăugarea de elemente grafice se face
într-un mod plăcut și ușor de utilizat , creâ ndu-se astfel o legătură direct ă între dezvoltator si
concept , astfe l ușurând munca dezvoltatorului , adăugarea de elemente grafic e făcându -se fără
nevoia de a coda .
Crearea unui mediu c ât mai intuitiv de lucru are ca rol s porirea capacitaților de lucru, modul
prin care util izatorul lucrează cu aplica ția cât și înțelegerea mediului în care utilizator ul își
desfășoară activitatea. Fiind dezvoltată p entru o companie multinațională , aplicației i s -a adăugat o
metodă prin care compania își prezintă inovațiile, conceptele, creațiile, c ât și detalii despre
companie cu ajutorul unei pagini web atașate aplicației.
Metoda de mai jos , creează legătura dintre browserul inst alat în calculator și aplicație ,
afișân d pagina web , cu ajut orul linkului inserat în metodă , oferind utilizatorilor posibilitatea d e a
putea naviga pe site -ul web , pentru eventualele informații și detalii de care au nevoie. Astfel
funcționalita tea legăturii devine o unealtă utilizabilă, nu doar un element vizual pl in de informații.
Metoda este de forma :
private void Form1_Load( object sender, EventArgs e)
{
webBrowser1.Navigate( "https://georgeconstantin75.wixsite.com/website" );
}
private void webBrowser1_Navigating( object sender,
WebBrowserNavig atingEventArgs e)
{
this.Text = "Navigating" ;
}
private void webBrowser1_DocumentCompleted( object sender,
WebBrowserDocumentCompletedEventArgs e)
{
this.Text = e.Url.ToString() + " loaded" ;
}
40
Fig. 3 .7 Pagina Web
3.1.5 CV
Dezvoltarea celei de a 2 a forme a survenit datorită analizelor efectuate anterior , în capitolul
2, analize care susțin fa ptul că rolul acestei ferestre , este unul extrem de important datorită
funcționalității sale multiple. Princi pala funcționalitate a acestei forme , este cea de recrut are a
posibililor noi angajați , doritori de o carieră la compania deținătoare a aplicației. Forma cu nume
special creat pentru scopul acesteia , este alc ătuită din 7 textbox -uri și 3 butoane , fiecare, cu un rol
bine stabilit.
Rolul acestei forme este acela de a ține vizitatorii cât și an gajații în legătură directă cu cei din
ramura re surselor umane, oferind utilizatoril or posibilitatea de a completa 6 din cele 7 textbox -uri
cu informații primordiale , care-i caracterizează, cu posibili tatea de a atașa CV -ul personal , aplicația
returnând o prezicere prin care sorteaz ă posibilii viitori angajați în funcție de jobul care li se
potrivește.
Fig. 3.8 Forma CV
41
3.1.6 Funcționalitatea controalelor formei C V
Browse
Denumit Browse , primul buton are rolul de a permite utilizatorului să at așeze fișiere în orice
format, dând posibilitatea utilizato rului de a-și atașa propriul CV , în cazul depunerii candidaturii
pentru un nou post dorit de acesta.
Metoda cr eează o legătură, între aplicație și directorul C , astfel permițându -i utilizatorului să-și
descarce și să încarce CV -ul în aplicație, creându -se astfel legătura de funcționalitate între pag ina
web atașată în prima formă și forma CV .
Metoda este de forma :
private void Button2_Click( object sender, EventArgs e)
{
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = "C# Corner Open File Dialog" ;
fdlg.InitialDirectory = @"c:\";
fdlg.Filter = "All files (*.*)|*.*|All files (*.* )|*.*";
fdlg.FilterIndex = 2;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
textBox1.Text = fdlg.FileName;
}
Fig. 3.9 Butonul Browser
Send us your CV
Pentru crearea buton ului denumi t “Send us your CV ” am utilizat librăria “System.Net.Mail”,
librărie ce conține clasele necesare utilizării de a face posibilă trimiterea de mail -uri către un server
pentru livrare denumit SMTP (Simple Mail Transfer Protocol). După ce utilizatorul își introduc e
datele personale în căsuțele creat e în formă , acesta are posibilita tea de a-și atașa propriul CV, apoi
de a trimite un e -mail direct către HR cu ajutorul aplicației , ea afișându -i la finalul trimiterii ,
prezicerea cu privire la jobul care i se potr ivește.
Pentru a putea face prezicerea , am creat un algoritm bazat pe informațiile pe care utilizator ul
le introduce în text -boxuri , acestea fi ind analizate de către algoritm , la final afișând prezicerea.
Fiind o companie de programare , regulile pe c are algoritmul se baze ază sunt reprezentate de
studiile pe care candidatul le are , acceptate fiind doar studiile care se bazează în special pe științele
exacte , sau pe psihologie.
Algoritmul de mai jos , preia inf ormația introdusă de utilizator, o identi fică, o compară cu
informațiil e pe care algoritmul le deține , iar apoi returnează un răspuns . Indiferent de tipul de litere
42
pe care utilizatorul le introduce, mici sau mari , algoritmul le va recunoaște și le va compara, joburile
viitoare fiind disponibile doar în conformit ate cu cererile departamentului .
Metoda utilizată este de forma :
string post="";
if (textBox6.Text.ToUpper().Contains( "INFORMATICA" ) ||
textBox6.Text.ToUpper().Contains( "CIBERNETICA" ) ||
textBox6.Text.ToUpper().Contains( "AUTOMATICA"))
{
post = "PROGRAMATOR" ;
MessageBox.Show( "Esti potrivit pentru job -ul de Programator" );
}
else if (textBox6.Text.ToUpper().Contains( "RETELISTICA" ) ||
textBox6.Text.ToUpper().Contains( "CALCULATOARE" ) ||
textBox6.Text .ToUpper().Contains( "ELECTRONICA" ))
{
post = "Administrator" ;
MessageBox.Show( "Esti potrivit pentru job -ul de Administrator" );
}
else if (textBox6.Text.ToUpper().Contains( "LITERE" ) ||
textBox6.Text.ToUpper().Contains( "PSIHOLOGIE") ||
textBox6.Text.ToUpper().Contains( "SOCIOLOGIE" ))
{
post = "Secretara" ;
MessageBox.Show( "Esti potrivit pentru job -ul de Secretara" );
}
După deducția făcută de algoritm , aplicația va adăuga toate informațiile inserate anterior de
utilizator, în corpul unui ema il, email care se va numi CV. Emailul va conține toate datele inserate
de utilizator , clasificate după tiparul de mai jos cât și fișierul atașat de utilizator ca re va fi CV ul
său:
try
{
MailMessage m ail = NewMethod();
SmtpClient SmtpServer = new SmtpClient( "smtp.gmail.com" );
mail.From = new MailAddress( "hr2company1@gmail.com" );
mail.To.Add( new MailAddress( "georgeconstantin756@gmail.com" ));
mail.Subject = "CV " + textBox 4.Text;
mail.Body = "Informatii:" + "\n" +
"Nume si prenume: " + textBox4.Text + "\n" +
"Numar Telefon: " + textBox3.Text + "\n" +
"Ultima forma de invatamant: " + textBox6.Text + "\n" +
"Ultimul loc de munca: " + textBox5.Text + "\n" +
"Cea mai buna aptitudine: " + textBox2.Text + "\n" +
"Trei cuvinte care definesc caracterul: " + textBox7.Text + "\n" +
"\n"+
"Candidatul " + textBox4.Text + " este potrivit pentru postul de " +
post;
43
Pentru a face posibilă trimiterea e -mailului cu ajutorul aplicației, vom utiliza server ul STMP
cu portul de transfer prestabilit 857, pentru autentificare prin care se va realiza transferul datelor
fiind nevoie de adresa de email cât și de parola acesteia.
SmtpServer.Port = 587;
SmtpServer.Credentials = new
System.Net.NetworkCredential( "hr2company1@gmail.com" , "asadar31" );
SmtpServer.EnableSsl = true;
Daca transferul reuseste , aplicatia va afisa mesajul de mai jos , iar
forma se va inchide.
SmtpServer.Send(mail);
MessageBox.Show( "Emailul a fost trimis ca tre HR. " + "\n" + "Va
multumim pentru interesul acordat" );
Form1 frm = new Form1();
frm.Show();
this.Close();
}
Fig.4.0 Butonul Send us Your CV
3.1.7 Interfața Administrator
Interfața Administrator este concepută special pentr u a defini un panou de control. La fel ca
și în celelalte cazuri , interfaț a este alcătuită din 10 butoane , concepute special cu scopul de a
sistematiza interfețele în funcție de nevoile de lucru ale utilizatorului.
Astfel , aceste butoane perm it accesul în fiecare fereastră dorită de utiliz ator în care se va putea
edita informațiile stocate pe baza de date. Conceptul acestui siste m de dezvoltare a acestei forme , a
pornit de la dorința dezvoltatorului de a cr ea o aplicație cât mai simplă, și ușo r de folosit , extrem de
bine sistematizată. Sistematizarea s-a realizat cu ajutorul creației a celor 10 butoane.
Fiecare buton conceput este denumit după numele tabelului la care acesta permite editarea.
Astfel se creează o sistematizare, atât a comenzilo r, cât și a modului de lucru. Datorită sistematizării
modului de lucru cu ajutorul aplicației, ei i s -au implementat metode care permit reîntoarcerea la
panoul de control , astfel evitând relogarea în aplicație .
Private void Back1_click(object sender,Event Args e)
{
This.Hide();
Administrator admin8 = new Administrator();
44
Admin8.ShowDialog();
This.Close();
}
Fig. 4.0 Butonul Back
Fig.4.1 Fereastra Administrator
Fiind accesate din formul Administrator , celelalte forme sunt identice , atât ca design c ât și ca
funcționalitate , astfel , vom defini funcționalitatea si utilitatea unei singure forme.
3.1.8 Forma Angajat
Forma Angajat este structurat ă special pentru a îndeplini nevoile și cerințele editării
înregistrărilor făcute în tabela Angajat , ea fiind co mpus ă din 6 butoane , 7 tex boxuri , DataGridView
și DataTimePicker.
DataGridView -ul are scopul de a încărca și afișa informațiile cuprinse în tabela Angajat , pentru a
putea fi vizualizate fără a accesa baza de date.
Butonul Search
Cu ajutorul butonului Search, utilizatorul, poate căuta orice informație pe care acesta o
dorește în funcție de codul angajatului.
Comanda pe care butonul o efectuează este conceput ă cu ajutorul unui select , astfel, instrucțiune ce
aparține limbajului SQL.
45
Metoda pentru a con cepe comanda butonului search este :
private void Search_Click( object sender, EventArgs e) {
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from Angajat where Cod _Angajat = '" +
textBox1.Text + "'";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
}
Fig.4.2 Butonul Search
Butonul Insert
Dezvoltarea funcției butonului a luat naștere prin prisma adăugării de noi informații în tabela
Angajat, astfel s -a dezvoltat funcția Insert , astfel încât , sa permită utilizatorului sa poată adăuga
informații noi în tabela Angaja t din baza de date, fără a fi nevoit sa acceseze interfața programului
de dezvoltare a bazelor de date.
Metoda , fiind astfel extrem de folositoare , simplificând astfel modul prin care
administratorul bazei de date administrează informațiile înregistrate in ea.
Metoda pentru dezvoltarea comenzii butonului insert este :
private void Insert_Click( object sender, EventArgs e)
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "insert into Angajat values('" + textBox1.Text +
"','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text +
"','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text +
"')";
cmd.ExecuteNonQuery();
con.Close();
disp_data ();
MessageBox.Show( "inserarea s -a realizat cu succes succes" );
}
Fig.4.3 Butonul Insert
46
Butonul Update
Reprezentativ denumit , butonul are rolul de a updata informațiile stocate în tabelă , astfel
încât să se realizeze cu succes editarea înregistrărilor . Astfel utilizând metoda afișată mai jos , mărim
câmpul de utilitate al aplicației , cât și funcționalitatea acesteia , sistematizând și ușurând fiecare pas
pe care utilizatorul îl face pentru a îndeplini sarcinile dorite.
Metoda prin care se cr ează functia de update este:
private void Update_Click( object sender, EventArgs e)
{ con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "update Angajat set Cod_Angajat= '" +
textBox2.Text + "' where Nume_Angajat='" + textBox1.Text + "'";
cmd.ExecuteNonQuery();
con.Close();
disp_data();
MessageBox.Show( " update -ul a fost realizat cu succes" );}
Fig. 4.3 Butonul Update
Butonul Display
Butonul Display per mite utilizatorului , posibil itatea de a afișa totalitatea înregistrărilor aflate
în tabelul Angajat, prin intermediul funcției Display concepută pentru a fi apelată în structura
butonului.
Funcția Display
public void disp_data()
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from Angajat" ;
cmd.ExecuteNonQuery();
DataTable dta = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dta);
dataGridView1.DataSource = dta;
con.Close();
}
Fig.4.4 Butonul Display
47
Butonul Delete
Uneori , pot apărea erori în editarea sau înregistrarea informațiilor aflate în baza de date,
astfel , conceptul de dezvoltare a buto nului delete a pornit de la simplul fapt numit greșeală .
Utilizând butonul Delete , utilizatorul poate șterge datele pe care acesta le dorește , fără a fi
nevo it să accese ze sau s ă utilizeze programul care permite crearea datelor . La fel ca și în cazurile
anterioare , funcționalitatea acestui buton este primordial , datorit ă potențialelor erori care pot apărea .
Metoda pentru conceperea butonului Delete este :
private void button4_Click( object sender, EventArgs e) // stergerea
datelor din tabelul Angajat
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "delete from Angajat where Cod_Angajat='" +
textBox1.Text + "'";
cmd.ExecuteNonQuery();
con.Close();
disp_data();
MessageBox.Show( " stergerea a fost realizata cu succes" );
}
Fig. 4.5 Butonul Delete
Interfața User
Interfața User a fost concepută pentru a putea realiza legătura dintre accesul angajaților la
informațiile dorite , fără a fi nevoiți sa intre în contact direct cu cei din departamentul resurselor
umane . La fel ca și în cazurile anterioare , conceptul acestei interfețe este unul primordial , datorită
întrebuințărilor și funcționalităților pe care acesta le oferă .
Fig. 4.7 Fereastra USER
48
Formatul interfeței este alcătuit din 3 butoane construite atât din punct de vedere grafic câ t și
din punct de vedere funcțional , un text box și DataGridView.
Butonul Search
La fel ca și în cazurile anterioare, butonul Search este utilizat pentru a put ea căuta
informațiile necesare pentru utilizator. Selectarea informațiilor din baza de date , se face cu ajutorul
Codului de contract, fiind o înregistrare obligatorie pentru fiecare angajat , codul de contract fiind un
cod unic pentru fiecare angajat în parte.
Metoda utilizată pentru căutarea informațiilor este:
private void button1_Click( object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from Contracte where Cod_Contract = '"
+ textBox1.Text + "'";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
}
Fig. 4.8 Butonul Search
Fereastra Rapoarte
Ținând cont ca vederea în ansamblu mereu a avut bonificații multiple , crearea unei comenzi
astfel încât sa poată uni mai multe informații într-o singură tabel ă, a fost primordial ă. Astfel a luat
naștere conceptul butoanelor raport, butoane care au rolul de a uni informațiile din mai multe tabele ,
într-o singur ă tabel ă.
Uneori, nu numai vizualizarea și editarea datelor este necesară, astfel încât fereastra intitulată
Rapoarte are un rol primordial î n funcționalitatea aplicației, ea fiind capabilă să creeze rapoarte cu
ajutorul uniunilor dintre tabele, exportându -le în doc umente Excel. Fereastra a fost concepută și
dezvoltată cu ajutorul unor librării speciale care permit conexiunea dintre aplicația î n sine și
aplicația Microsoft Excel.
Alcătuirea ferestrei Rapoarte este realizată prin utilizarea a 6 butoane cu funcții special create
pentru mărirea funcționalității aplicației, un DataGridView și un DataTimePicker .
49
Butonul Raport Angajat -Departament
Butonul Raport Angajat -Departament are rolul de a uni datele din tabelul Angajat împreună cu
datele din tabelul Departament pentru a putea crea un raport. Astfel, după crearea raportului,
DataGridView -ul va afișa informațiile adunate de select.
Pentru a putea realiza această operație am folosit codul de mai jos:
private void Button6_Click( object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select a .Prenume_Angajat + a.Prenume_Angajat as
'Nume prenume angajat',a.CNP as 'CNP',d.Nume_Departament as
'Departament',d.Sef_Departament as 'Sef departament',d.secretara as
'Secretara departament'from Angajat a,Departament d where
a.Cod_Departament = d.Cod_Depa rtament order by a.Nume_Angajat,
a.Prenume_Angajat" ;
cmd.ExecuteNonQuery();
DataTable dta = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dta);
dataGridView1.DataSource = dta;
con.Close();
}
Fig. 4.9 Buton Raport Angajat -Departament
Butonul Raport Angajat -Firm ă
Rolul acestui buton a fost conceput cu scopul de a putea realiza uniunea dintre
tabela Angajat – Firm ă. Astfel rolul acestui buton este bine definit , ușurând munca depusă de
utiliz atorul aplicați ei, în crearea documentațiilor , și a rapoartelor. Funcționalitatea butonului Raport
Angajat -Departament a fost realizată cu ajutorul utilizării comenzilor în limbajul SQL , comanda
principal ă fiind select, astfel codul de mai jos descrie funcționalitatea butonului:
private void Raport_Angajat -Firma_Click( object sender, EventArgs e) {
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select a.Nume_Angajat + a.Pr enume_Angajat as
'Nume prenume angajat',a.CNP as CNP,f.Nume_Firma as 'Nume
50
firma',f.Locatie as 'Locatie firma',f.Adresa as 'Adresa firma'from
Angajat a,Firma f where a.cod_firma = f.cod_firma order by f.nume_firma" ;
cmd.ExecuteNonQuery();
DataTable dta = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dta);
dataGridView1.DataSource = dta;
con.Close();
}
Fig. 5.0 Butonul Raport -Firm ă
Butonul Raport Angajat -Contracte
Butonul specificat mai sus are ca funcționalitate uniunea informațiilor stocate în tabelele
Angajat și Firmă, și crearea unei singure tabele provizorii. Astfel utilizând metoda de mai sus,
procesul prin care informațiile pot fi vizualizate este mult mai rapid, creând astfel o funcț ionalitate
deosebită adusă butonului.
Pentru realizarea comenzilor butonului Raport Angajat -Contracte a fost utilizată comanda
select, comandă prin care datele care se află stocate pe baza de date, sunt afișate.
Codul butonului Raport Angajat -Contracte es te:
private void Button7_Click( object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select a.Nume_Angajat + a.Prenume_Angajat as
'Nume prenume angajat',a.CNP as CNP,c.Tip_Contract as 'Tip
contract',c.Data_Angajare as 'Data angajare',c.Data_Finalizare as 'Data
final contract'from angajat a,Contracte c where a.cod_angajat =
c.cod_angajat order by a.nume_angajat, a.Prenume_Angajat " ;
cmd.Execu teNonQuery();
DataTable dta = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dta);
dataGridView1.DataSource = dta;
con.Close();
}
Fig. 5.1 Butonul Raport Angajat -Contracte
51
Butonul Raport Angajat -Certificate
La fel ca și în cazurile anterioare, crearea rapoartelor de tip Angajat -Certificate sunt esențiale.
Ele prezintă situația angajaților în concordanță cu certificatele pe care aceștia le pot obține pentru
perfecționarea lor în câmpul muncii, dar și în cadrul vieții sociale.
private void Button4_Click( object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select a.Nume_Angajat + a.Pren ume_Angajat as
'Nume prenume angajat',a.CNP as CNP,c.Denumire_Certificat as 'Denumire
certificat',t.Descriere_Training as 'Descriere training',t.Pret_Training
as 'Pret training'from Angajat a,Certificat c,Training t where
a.Cod_Angajat = c.Cod_Angajat and c.Cod_Training = t.Cod_Training order
by a.Nume_Angajat, a.Prenume_Angajat" ;
cmd.ExecuteNonQuery();
DataTable dta = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dta);
dataGridView1.DataSource = dta;
con.Close();
}
Fig. 5.2 Butonul Raport Angajat -Certificat
Având în vedere faptul că crearea rapoartelor a fost realizată cu succes în cadrul aplicației,
nevoia de dezvoltare, ne împinge spre a implementa o nouă funcționalitate aplicației.
Funcționalitatea de a realiza exporturi între aplicația în sine și Microsoft Excel. Astfel pentru
realizarea acestei funcționalități, se vor utiliza 2 librării specifice:
using System.Configuration;
using System.IO;
Prima parte a dezvoltării funcționalități i butonului export , constă în crearea metodei prin care
datele vor fi copiate și introduse în cadrul unui nou document de tip Excel.
Astfel , construcția comenzii consta în:
private void ToCsV(DataGridView dGV, string filename)
{
string stOutput = "";
// Export titles:
string sHeaders = "";
for (int j = 0; j < dGV.Columns.Count; j++)
52
sHeaders = sHeaders.ToString() +
Convert.ToString(dGV.Columns[j].HeaderText) + "\t";
stOutput += sHeaders + "\r\n";
for (int i = 0; i < dGV.RowCount – 1; i++)
{
string stLine = "";
for (int j = 0; j < dGV.Rows[i].Cells.Count; j++)
stLine = stLine.ToString() +
Convert.ToString(dGV.Rows[i].Cells[j].Value) + "\t";
stOutput += stLine + "\r\n";
}
Encoding utf16 = Encoding.GetEncoding(1254);
byte[] output = utf16.GetBytes(stOutput);
FileStream fs = new FileStream(filename, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(outp ut, 0, output.Length);
bw.Flush();
bw.Close();
fs.Close();
}
Datele fiind copiate, pasul final al algoritmului constă în deschiderea și crearea unui nou
document de tip Excel unde se vor introduce valorile copiate.
SaveFileDialog s fd = new SaveFileDialog();
sfd.Filter = "Excel Documents (*.xls)|*.xls" ;
sfd.FileName = "export.xls" ;
if (sfd.ShowDialog() == DialogResult.OK)
{
ToCsV(dataGridView1, @"c:\export.xls" );
ToCsV(dataGridView1, sfd.FileNa me);
}
}
Astfel, unind cele 2 compone nte ale algoritmului de mai sus , aplicația dezvoltă
funcționalitatea prin care utilizatorul poate exporta rapoartele întocmite în fereastra cu ac elași nume ,
informațiile fiind stocate în documente de tip Excel.
Fig.5.3 Butonul Export Excel
53
Funcționalitatea aplicației într-un scenariu real
Pentru a putea clarifica dacă aplicația respectă condițiile pentru mediul de lucru în care va fi
folosită, aceasta va trece prin câteva cazuri pentru a pute a observa dacă aplicația poate rezolva
taskurile cerute.
Primul caz va fi cel de logare, astfel vom observa dacă metoda pentru a crea logarea a fost
implementată corect. Astfel, în funcție de datele introduse, vom avea 3 instanțe:
Prima instanță
Când utilizatorul este de tip user , și este redirecționat către fereastra USER:
Fig.5.4 Instanța 1
Instanța 2
Când utilizatorul este de tip administrator este redirecționat către fereastra Administrator :
Fig. 5.5 Instanța 2
54
Instanța 3
Când utilizator ul greșește numele de utilizator sau parola:
Fig. 5.6 Instanța 3
Testarea ferestrei User
Testarea ferestrei User constă în verificarea funcționării, fiabilității și îndeplinirii dorințelor
utilizatorului. Cerințele acestei ferestre sunt doar cele de a vizualiza anumite informații, informații
care pot fi selectate de utilizator în funcție de dorința sa.
Fig. 5.7 Funcționalitatea ferestrei User
55
Testarea ferestrei Administrator
Aici, utilizatorul va întâlni o fe reastr ă de tip panou de control , unde va putea selecta comenzile
dorite cu ajutorul butoanelor create.
Testarea va consta în:
– Editarea informațiilor stocate dintr -o tabe lă care se afl ă in baza de date;
– căutarea informațiilor în funcție de utilizatorul care utilizează aplicația;
– gener area și exportarea raporturilor , în funcție de nevoile pe care utilizatorul le
dorește;
Fig. 5.8 Inserare tabel Departament
Următoarea testare va fi testarea funcționalității butonului de delete.
Fig. 5.9 Delete Coloana Tabel Departament
56
Testarea Fere strei Rapoarte
La fel ca și în cazul celorlalte ferestre d in cadrul panoului de control , fereastra Rapo arte poate
fi accesat ă doar de angajații care posed ă un username și o parol ă de Administrator. Astfel , cu
ajutorul acestei ferestre, utilizatorul poate întocmi rapoarte despre anumite situații cu ajutorul
butoanelor aferente.
Instanța 1
Fig.6.0 Raport Angajat -Departament
Instanța 2
În cadrul celei de -a 2 a ins tanțe , algoritmu l furnizează informațiile compu se din tab ela
Angajat și tabela Contracte , astfel creându -se un raport despre si tuația contractelor angajaților .
Rezultatul instanței 2
Fig.6.1 Raport Angajat -Contracte
57
Instanța 3
Algoritmul funcționând la standardele normale , aplicația returnează rezultatul raportului creat
între tabela An gajat și tabela Firma , astfel creându -se un raport despre angajații firmelor.
Rezultatul instanței 3
Fig.6.2 Raport Angajat -Firma
Instanța 4
Ulterior ca zurilor de mai sus , atât algoritmul cât și aplicația în sine funcționând la standarde
normale , rezultatul returnat va fi r aportul dintre tabela Angajat și tabela Certificate, creându -se
astfel raportul certificatelor angajaților
Rezultatul instanței 4
Fig.6.3 Raport Angajat -Certificate
58
Instanța 5
Cu ajutorul instanței 5 putem testa dacă exportul s e realizează cu succes, astfel demonstrând
că implementarea algoritmului a fost realizată cu succes.
Fig. 6.4 Export Excel
Testarea ferestrei CV
Fereastra CV va putea fi accesată de orice utilizator ce își dorește să înceapă o carier ă în
cadrul compan iei, sau ce dorește o schimbare. Complexitatea ferestrei CV este reprezentată de
abilitatea ei specială de a prezice potrivirea jobului viitorului candidat, astfel el făcând o sortare a
informațiilor , returnând un răspuns .
Primul pas va consta în adăugarea informațiilor în text-boxurile afișate și atașarea CV-ului.
După completarea câmpurilor corespunzătoare , se va utiliza butonul Send us Your CV . Dacă
informațiile au fost inserate corespunzător , și algoritmul a funcționat conform standardelor create ,
rezultatul va fi cel de mai jos:
Instanța 1
Fig. 6.5 Instanța 1 Prezicerea
După ce s-a finalizat prima instanță a prezicerii , algoritmul va începe desfășurarea celei de a
2 a instanțe , astfel , el va trimite informațiile acumulate direct prin mail , celor ce se ocup ă cu partea
de recrutare.
Instanța 2
59
Fig.6.6 Instanța a 2 a algoritmului
După ce s-a finalizat a 2 a instanță a programului , tot ce rămâne de făcut , este verificarea
emailului pentru vizualizarea informațiilor colectate de aplicație .
Fig. 6.7 Instanța a 3 a Primirea Informațiilor
60
Concluzia studiului si dezvoltării aplica ției
Având în vedere circumstanțele de dezvoltar e la care aplicația a luat part e, putem admite
faptul c ă cursul de dezvoltare și implementare a ei a fost un succes. Aplicația dezvoltat ă
îndeplinește taskurile propuse la începutul cercetării , ea putând îndeplinii t oate taskuri precum,
administrarea și editarea informațiilor aflate în baza de date.
Datorită dorinței de dezvoltare și evoluție au fost adăugate noi caracteristici suplimentare
pentru a dezvolta utilitatea aplicației, precum prezicerea jobului, în care utilizatorului îi este permis
să comunice direct cu cei ce se ocupă de recrutarea personalului, aflând astfel ce job i se potrivește,
dar și partea de rapoarte, în care informațiile din tabele diferite pot fi unite pentru a crea anumite
rapoarte, dar și funcționalitatea de a putea face export rapoartelor dezvoltate anterior în documente
de tip Excel.
Designul aplicației a fost conceput astfel încâ t să păstreze atât simplitatea de utilizare prin
care programul se recomandă, dar să -și păstreze și aspectul de produs premium. Astfel aspectul a
fost dezvoltat pentru a fi plăcut din punct de vedere vizual dar și pentru a accentua funcțiile
aplicației, pa rtea vizuală jucând un rol important în dezvoltarea de produse software.
Cu ajutorul datelor acumulate pe parcursul cercetării depuse în scopul dezvoltării aplicației, a
luat naștere un nou produs software. Un produs software eligibil ce poate fi utili zat în cadrul
companiilor doritoare de sistematizare și de ușurare a muncii depuse de angajat. Astfel conceptul
aplicației a devenit un produs finit, fiind creat datorită studiului și cercetării efectuate, aplicația a
devenit realitate.
Acestea fiind s puse, aplicația respectă cerințele cerute de utilizator, devenind astfel un produs
software care dorește să sistematize și să ușureze munca depusă de utilizator, fiind eligibilă atât
pentru noi funcționalități și update -uri cât și pentru utilizarea ei la s cară internațională,
aplicabilitatea ei la scară largă fiind un pas enorm în dezvoltarea procesului de sistematizare și
centralizare a informațiilor.
61
Bibliografie
1. Erik Brown -Windows Forms Programming with C #, Editura Manning Public ations CO. ,
2002.
2. Jhon Sharp Microsoft Visual C# Step by Step, 8th Edition , Editura Microsoft Press ,
Washington, 2015.
3. Jaime Chan – Learn C# in One Day and Learn It Well: C# for Beginners with Hands -On
Project , Editura Learn Coding Fast , 2015.
4. Itzik Ben -Gan T-SQL Fundamentals , Editura Microsoft Press , 2016
5. Liviu Negrescu , Lavinia Negrescu -Limbajul C# pentru incepatori. Volumul VI – Mediul de
programare Visual Studio C# ,Editura Albastra, 20121
1. https://docs.microsoft.com/en -us/
2. https://www.wikipedia.org/
3. https://www.oracle.com/index.html
4. https://www.ibm.com/ro -en
5. https://www.computerworld.com/
6. https://stackoverflow.com/
7. https://www.codecademy.com/learn/learn -c-sharp
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: PROGRAMUL DE STUDII UNIVERSITARE DE LICENȚĂ: [627931] (ID: 627931)
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.
