Sunteți pe pagina 1din 7

Enunul problemei de rezolvat

S se realizeze un program pentru evidena angajailor unei firme. Scopul este proiectarea unui sistem soft a crui obiectiv este facilitarea obinerii diverselor informaii despre toi angajaii unei firme prin centralizarea informaiilor despre acetia: datele personale, salarii, beneficii, vechime, ore lucrate, etc.

1.

Obiectivele sistemului soft

Obiectivul este proiectarea unei aplicaii soft care s fie operabil pe o arie larg de calculatoare, aceasta trebuie s ndeplineasc principalele cerine pentru evidena i managementul tuturor serviciilor dorite. Deinerea unei astfel de aplicaie aduce avantaje tuturor prilor implicate, att angajailor ct i angajatorului, prin centralizarea informaiilor (securitate date, structurarea tuturor datelor de acelai fel ntr-un singur loc), fluxul de informaii este mult mai mare i n acelai timp mai rapid, posibilitatatea unei analize atente a fiecrui angajat. Aadar, aplicaia trebuie s ofere posibilitatea operrii, studiul informaiilor coninute i s ndeplineasc cerinele tuturor prilor implicate.

2.

Specificarea cerintelor fata de aplicatie

Pentru ca aplicatia sa fie operabila si sa-si atinga obiectivele, trebuie sa fie indeplinite o serie de conditii, atat suportul fizic, tehnic de rulare, (cerinte non-functionale) cat si functionalitatea (scopul aplicatiei, cine o utilizeaza, organizarea datelor, tabele, interogari), indeplinirea acestor conditii duce la o buna functionare si la o usoara utilizare.

2.1 Cerinte non-functionale Aplicatia trebuie sa fie functionala pe orice sistem de operare, in principal pe Windows (sistem preferat pe terminalele din companii pentru interfata facila cu utilizatorul), se impune posibilitatea rularii pe versiuni de la Windows 95 incoace. 1

2.2 Cerinte functionale Aplicatia trebuie sa indeplineasca din punct de vedere functional doua cerinte fundamentale: 2.2. 1.vizualizare date despre fiecare angajat (salariu, functie, etc) 2.2 2. actualizare informatii din baza de date, aceasta amplica adaugare, stergere si eventuale modificari ale datelor existente.

3.

Elemente de analiza sistemului informational existent

Pentru a determina gradul de eficienta pentru proiectarea acestei aplicatii au avut loc diferite discutii cu persoane angajate la diferite firme, in felul acesta afland informatiile necesare care ar putea fi stocate in baza de date si o serie de necesitati pentru optimizarea fluxului informational. Metoda aleasa pentru analiza eficientei proiectarii aplicatiei, este analiza de tip SWOT- acronim din limba engleza i este descriptiv: Strengths (puncte tari), Weaknesses (puncte slabe), Opportunities (oportuniti), Threats (riscuri).

3.1 Strenghts(Puncte tari) - centralizare informatii: organizarea datelor pe categorii, plasarea in acelasi loc ceea ce confera accesul mai usor si mai rapid la informatii posibilitatea efectuarii diferitelor operatii cu date, in functie de necesitati - resurse hardware necesare reduse: datorita simplitatii nu este nevoie de resurse de procesare ridicate, sau sisteme de operare speciale, instalarea pachetului Office este posibila in ziua de astazi pe majoritatea PC-urilor, in functie de fluxul de date vehiculat in baza de date este nevoie de capacitate de stocare (zeci de Gbytes) - operativitate la un nivel ridicat: se pot obtine informatii dorite intr-un timp foarte scurt, in mod structurat, ceea ce ofera posibilitatea unei analize mai bune a afacerii - simplitate de navigare baza: aplicatia are un meniu de navigare relativ simplu, in limba romana, pe o structura arborescenta de parcurgere, se pleaca de la o fereastra principala si se parcurge in

adancime prin deschiderea altor ferestre, in functie de scopul fiecarui utilizator, dar si drepturile acestuia .

EVIDENTA ANGAJATILOR

Proiectul nostru de atestat poate fi considerat o aplicaie care s in angajatilor unei mici firme.

evidenta

Am folosit facilitatile oferite de mediul de programare Microsoft Visual C++, pentru a crea o interfata prietenoasa aplicatiei noastre, insa in realizarea proiectului am utilizat, in principal, principiile programarii invatate in orele de informatica. Microsoft Visual C++ permite programarea orientata spre obiecte. Acest tip de programare se bazeaza pe clase. O clasa este un tip de date care defineste o multime de valori si operatiile care actioneaza asupra acestor valori. Valorile se numesc date membru, iar operatiile se numesc functii membru (metode). Intr-un proiect creat cu ajutorul instrumentului App Wizard (un adevarat vrajitor oferit de Visual C++) avem clase predefinite (de exemplu, in aplicatia mea, exista clasele

CProiectDlg si CAboutDlg, generate odata cu proiectul) si clase generate in momemtul in care se adauga aplicatiei resurse de tip dialog (CDatePersonale asociata resursei IDD_DIALOG1 ce permite introducerea unui datelor personale pentru un angajat, CFis asociata resursei IDD_DIALOG5 ce permite specificarea numelui unui fisier din care se va face preluarea unor date, COm asociata resursei IDD_DIALOG2 ce permite introducerea numelui unui angajat ce va fi cautat in baza de date, CPas asociata resursei

IDD_DIALOG3 in care va fi introdusa parola ce permite utilizarea aplicatiei, CSal asociata resursei IDD_DIALOG4 utilizata pentru a putea modifica salariul angajatilor. Toate aceste clase sunt generate automat de AppWizard, insa eu le-am putut dezvolta prin adaugarea de date si metode membre). Pentru a pastra datele personale ale fiecarui angajat in parte am definit o structura tagOm cu ajutorul careia se pot retine numarul angajatilor si apoi am declarat un masiv m_angAngajati[30] pentru a retine numarul maxim de angajati ai firmei. struct tagOm { CString sNume; int nServciu; int nVirsta;

double dSalariu; long lTelefon; }; Cu ajutorul unui control arbore, se vor afia angajaii, grupai pe servicii, iar cu ajutorul unui control lista se va afia lista tuturor angajailor cu informaii suplimentare: vrst i salariu. Cu ajutorul unui control de tip lista derulant se pot selecta operaiile aplicaiei: Cumul salarii, Angajare, Concediere, Modificare Salariu, Date personale, Modificare date, Preluare date din fiier.

Pentru aceste operaii am implementat funcii ce realizeaz prelucrri elementare asupra vectorilor.

n rndurile urmtoare prezentm cteva din aceste funcii.


// funcie ce terge un element dintr-un vector elementul de pe poziia poz

void CProiectDlg::sterg(tagOm v[50], int &dim, int poz) { for(int i=poz;i<dim-1;i++) v[i]=v[i+1]; dim--; }

// funcie ce ntoarce poziia n vector a omului cutat sau -1 dac acesta nu exist

int CProiectDlg::cautare(tagOm v[50],int dim, tagOm om) { for(int i=0;i<dim;i++) { 5

v[i].sNume.MakeUpper(); om.sNume.MakeUpper(); if(v[i].sNume==om.sNume &&v[i].nServciu==om.nServciu) return i; } return -1; }

// funcie ce preia informaiile dintr-un fiier i le introduce ntr-un vector

void CProiectDlg::dateFisier() { if(dlgF.DoModal()!=IDCANCEL) { fstream f(dlgF.m_fis,ios::in); char nume[100]; CString h; int y; f>>y; for(int i=0;i<y;i++) { f>>nume; m_angAngajati[m_nNumar].sNume.Format("%s",nume); f>>m_angAngajati[m_nNumar].nServciu; f>>m_angAngajati[m_nNumar].nVirsta; f>>m_angAngajati[m_nNumar].dSalariu; f>>m_angAngajati[m_nNumar].lTelefon; m_nNumar++; } Populeaza(); PopuleazaLista(); }

BIBLIOGRAFIE

1) DATA STRUCTURES- A PSEUDOCODE APPROACH WITH C++ Richard F. Gilberg, Behrouz A. Forouzan

2) FUNDAMENTALS OF DATA STRUCTURES IN C Ellis Horowitz, Sartaj Sahni, Susan Anderson Computers Scince Press, New York, 1993

3) DATA STRUCTURES AND ALGORITHMS K. Mellhorn Springer Verlag, 1984

4) TRATAT DE PROGRAMAREA CALCULATOARELOR. SORTARE SI CAUTARE. D.E.Knuth Editura tehnica Bucuresti, 1976

5) ANALIZA SI SINTEZA ALGORITMILOR Leon Livovski, Horia Georgescu Editura Stiintifica, Bucuresti 1986