Sunteți pe pagina 1din 16

Unitatea de inavatamant Colegiul National Alexandru Lahovari

LUCRARE DE ATESTAT PROFESIONAL


PROFIL INFORMATICA

Profesor indrumator: Simona Ianc

Absolvent Raduica Andra-Gabriela Majari Maria Irina

Evidenta unei firme de inchirieri auto

DESCRIEREA LIMBAJULUI FOXPRO

Odata cu trecerea timpului si dezvoltarea informaticii, calculatorul s-a implicat in tot mai multe domenii de activitate, o multitudine de probleme gasindusi astfel rezolvarea prin intermediul sau. Datorita diversitatii problemelor rezolvate cu ajutorul calculatorului nu s-a putut realiza un program care sa rezolve (orice problema), realizandu-se in schimb mai multe programe (sau pachete de programe), fiecare specializat in rezolvarea unui anumit tip de problema. In functie de problema pe care o are de rezolvat, utilizatorul unui calculator alege acel program care se potriveste cel mai bine in realizarea scopului propus. S-a ajuns astfel la o specializare foarte accentuata a sistemelor informatice, orientate spre rezolvarea diverselor tipuri de probleme. O clasificare a problemelor rezolvate cu ajutorul calculatorului, tinand cont de volumul datelor si al prelucrarilor implicate in rezolvare ar putea fi urmatoarea : probleme care implica prelucrari putine asupra unui volum mare de date probleme a caror rezolvare presupune un volum mediu de prelucrari asupra unui volum mediu de date probleme in rezolvarea carora intra un volum mic de date asupra lor efectuanduse un volum mare de prelucrari. Sistemele de gestiune a bazelor de date (SGBD) reprezinta sisteme informatice specializate in stocarea si prelucrarea unui volum mare de date, in rezolvarea problemelor de primul tip, din clasificarea anterioara. Termenul de baza de date se va referi la datele de prelucrat, la modul de organizare a acestora pe suportul fizic de memorat iar termenul de gestiune se va referi la actiunea de memorare si prelucrare a acestor date.

Un SGBD trebuie sa asigure urmatoarele functiuni elementare, referitoare la bazele de date : definirea bazei de date introducerea datelor (adaugarea de noi date la baza de date) modificarea unor date existente in baza de date stergerea unor date interogarea bazei de date, adica extragerea informatiilor stocate in aceasta Pe masura dezvoltarii acestor sisteme lista s-a completat cu facilitati importante cum ar fi : generare de rapoarte modalitati noi de interogare a bazei de date (de exemplu un limbaj de tip SQL) noi tipuri de organizare a bazelor de date si noi tipuri de acces (de exemplu accesul indexat) FOXPRO 9.0 este un sistem de gestiune al bazelor de date relational iar in comparatie cu concurentii sai directi se mentine in frunte datorita performantelor sale. Principalele sale atuuri sunt modul relaiv simplu de lucru si limpezimea sintaxei, ceea ce il face si utilizat si in scop didactic. Comenzile FOXPRO permit descrierea tuturor functiunilor generale ale unui SGBD, anume :
1. gestionarea structurii conceptuale a bazei de date separat de structura fizica

(CREATE, MODIFY STRUCTURE, STRUCTURE, CREATE TABLE)

COPY

STRUCTURE,

DISPLAY

2. gestionarea datelor : incarcare (APPEND, INSERT), modificare (REPLACE,

EDIT, CHANGE), stergere (DELETE, ZAP, PACK, RECALL)


3. satisfacerea cerintelor de regasire rapida a datelor, fie prin specificarea unor

criterii complexe de selectie, cit si prin folosirea unor chei de acces (FIND, SEEK, LOCATE)

4. afisarea

datelor in diferite modalitati (CREATE/MODIFY REPORT,

CREATE/MODIFY LABEL, CREATE/MODIFY SCREEN)


5. programare structurata (IF, CASE, DO WHILE, SCAN) 6. modularizare si parametrizare (PROCEDURE, FUNCTION) 7. facilitati ale utilizatorilor in organizarea mediului de lucru (SET COLOR,

DEFINE WINDOW, DEFINE MENU).


8. protectie (SET LOCK, SET EXCLUSIVE, SET ENCRYPTION)

Elemente ale limbajului Foxpro folosite in aplicatie Un element important al mediului FoxPro este formularul, care reprezinta o portiune a ecranului tratata ca un unic element, cu anumite caracteristici ce determina actiunile ce se pot executa asupra acesteia. Formularele sunt definite de catre utilizator de catre utilizator, care pot fi utilizate in programele de aplicatii create sub mediul FoxPro. Modul de lucru cu aceste formulare este urmatorul:

mai intai acestea se creeaza, cu ajutorul comenzii CREATE FORM,

moment in care se precizeaza si atributele lor( poza de fond, dimensiunea ferestrei modul de deschidere);

dupa definire se vor creea pe ecran, folosind modelul grafic propus de

FOX PRO, butoane care sa faca legatura intre formulare aceasta legatura se formeaza prin secventa de instructiuni: thisform.relese() do form [nume formular]

se vor crea de asemenea si tabele in care se vor depunde informatiile

cu privire la abonatii firmei, abonamentele acestora ( clientii pot sa aiba mai multe abonamnete fiecare), costul suplimentar (pe langa cel al abonamntului)

Alaturi de formulare, rapoartele FoxPro dau acestui mediu si acestui limbaj o putere deosebita, atat datorita eficientei si comoditatii cu care se lucreaza cu aceste elemente, ci si datorita aspectului deosebit de placut pe care cele doua elemente il ofera programelor de aplicatii si mediului FoxPro. Formularul reprezinta un element FoxPro prin care se ofera utilizatorului posibilitatea selectarii unei anumite optiuni, dintr-o multime finita de optiuni posibile, afisata pe ecran total sau partial, urmand ca, in functie de selectarea facuta, sa se declanseze anumite actiuni, corespunzatoarea optiunii alese. Am preferat utilizarea formularului in locul meniului datorita interfatei mai prietenoase si a posibilatilor inserari de iamgini. Fiecare formular contine la randul lui anumite optiuni.

Modul de functionare este urmatorul:


-

se apasa dubluclick pe fiserul inchiriei_masini.exe, nu este necesara instalarea unei variante de FOX PRO.

- Utilizand butoanele formularelor se navigheza intre paginile proiectului

Mai sus este prezentata modalitatea de lucru cu instrumentele programului visual Foxpro 6.0.

Forma de mai sus realizeaza stergerea unei masini din lista pe baza unui id citit de la tastatura. Butonul reset are rolul de a seta textbox-ul in care se citeste de la tastatura cu valoare vida. Butonul Arata toate masini permite visualizarea continutului din tabela masini.dbf.

!!!Se va avea grija la modul de introducerii al adresei, intr-un mod compact pentru a nu ocupa spatii nimeroase

Aceasta forma realizeaza adaugarea datelor in tabela masini.dbf. Fiecarui camp din tabela masini.dbf i se asociaza continutul textbox-ului din foma adauga_masina.scx.

10

Utilizand astfel aceste instrumente (tabele, fromulare, rapoarte) ale Fox Proului reusim sa cream o aplicatie stabila care sa asigure o organizare precisa a datelor si o interfata prietenoasa cu utilizatorul.

APLICATIA: Oferim in cele ce urmeaza secvente de cod cu explicatii sumare:


Set talk off Clear Do form main.scx Read Events Return if empty(thisform.nume1.text) messagebox('Va rugam sa completati campul [nume]',16,'Eroare') return endif if (empty(thisform.prenume1.text)) messagebox('Va rugam sa completati campul [prenume]',16,'Eroare') return endif if (empty(thisform.cnp1.text)) messagebox('Va rugam sa completati campul [CNP]',16,'Eroare') return endif if (empty(thisform.tel1.text)) messagebox('Va rugam sa completati campul [Numar de telfon]',16,'Eroare') return ENDIF if (empty(thisform.zile1.text)) messagebox('Va rugam sa completati campul [Numarul de zile de inchiriat]',16,'Eroare') return ENDIF if (empty(thisform.id1.text)) messagebox('Va rugam sa completati campul [ID]',16,'Eroare') return ENDIF close all use masini IN 1 use clienti IN 2 11

sele 1 LOCATE FOR id =thisform.id1.text *alltrim (thisform.id1.text) IF !FOUND() messagebox('Nu exista nicio masina cu acest ID!',16,'Eroare') RETURN ENDIF sele 2 GO bottom append blank replace nume with alltrim(thisform.nume1.text), ; prenume with alltrim(thisform.prenume1.text), ; tel with alltrim(thisform.tel1.text), ; cnp with alltrim(thisform.cnp1.text), ; zile with val(thisform.zile1.text), ; id with alltrim(thisform.id1.text); messagebox("Inregistrarea cu succes",64,"Confirmare") CLOSE all use thisform.nume1.value="" thisform.prenume1.value="" thisform.tel1.value="" thisform.cnp1.value="" thisform.zile1.value="" thisform.id1.value="" if empty(thisform.marca1.text) messagebox('Va rugam sa completati campul [marca]',16,'Eroare') return endif if (empty(thisform.model1.text)) messagebox('Va rugam sa completati campul [model]',16,'Eroare') return endif if (empty(thisform.cmc1.text)) messagebox('Va rugam sa completati campul [cmc]',16,'Eroare') return 12

endif if (empty(thisform.an1.text)) messagebox('Va rugam sa completati campul [an fabricatie]',16,'Eroare') return ENDIF if (empty(thisform.stare1.text)) messagebox('Va rugam sa completati campul [stare]',16,'Eroare') return ENDIF if (thisform.stare1.text<>'a')and(thisform.stare1.text<>'b') messagebox('Va rugam sa completati corect campul [stare], a-avariata, bdisponibila',16,'Eroare') return ENDIF if (empty(thisform.nr1.text)) messagebox('Va rugam sa completati campul [numar de inmatriculare]',16,'Eroare') return ENDIF if empty(thisform.id1.text) messagebox('Va rugam sa completati campul [ID]',16,'Eroare') return endif if empty(thisform.pret1.text) messagebox('Va rugam sa completati campul [pret]',16,'Eroare') return endif close all use masini LOCATE FOR nr = alltrim (thisform.nr1.text) IF FOUND() messagebox('Acest numar de inmatriculare este alocat altei masini!',16,'Eroare') RETURN ENDIF LOCATE FOR id = alltrim (thisform.id1.text) IF FOUND() messagebox('Acest ID este asociat altei masini!',16,'Eroare') RETURN ENDIF GO bottom append blank replace Marca with alltrim(thisform.marca1.text), ; Model with alltrim(thisform.model1.text), ; 13

Cmc with val(thisform.cmc1.text), ; An with alltrim(thisform.an1.text), ; Stare with alltrim(thisform.stare1.text), ; Nr with alltrim(thisform.nr1.text),; pret with val(thisform.pret1.text),; id with alltrim(thisform.id1.text) ; messagebox("Inregistrarea cu succes",64,"Confirmare") CLOSE all use thisform.marca1.value="" thisform.model1.value="" thisform.cmc1.value="" thisform.an1.value="" thisform.stare1.value="" thisform.nr1.value="" thisform.id1.value="" use clienti locate for alltrim(thisform.nume1.text) =ALLTRIM(nume) and alltrim(thisform.prenume1.text) =ALLTRIM(prenume) if found() delete pack messagebox ('Stergere cu succes', 62 , 'Succes') else messagebox ('Nu s-a gasit acest nume in baza de date',16,'Eroare') REturn ENDIF CLOSE all use clienti brow use masini locate for alltrim(thisform.id1.text) =ALLTRIM(id) if found() delete pack messagebox ('Stergere cu succes', 62 , 'Succes') else 14

messagebox ('Nu s-a gasit acesta masina in baza de date',16,'Eroare') REturn ENDIF CLOSE all thisform.release() do form afisare use masini list marca,model,cmc,nr,stare,id close all thisform.Release() do FORM operatii_masini

BIBLIOGRAFIE

1. Gabriel si Mihai DIMA, FOXPRO, Editura TEORA, 1998. 2. Mariana, Ionut si Ioana Pantiru, Manual pentru clasa a XIIa, Editura L&S INFOMAT, 2002

15

CUPRINS

Descrierea limbajului FOXPRO .............................................................. Elemente ale limbajului Foxpro folosite in aplicatie............................... Modul de functionare................................................................................ Bibliografia ..............................................................................................

4 5 6 16

16

S-ar putea să vă placă și