inchirieri masini
TRANSCRIPT
Unitatea de inavatamantColegiul National „Alexandru Lahovari”
LUCRARE DE ATESTAT PROFESIONAL
PROFIL INFORMATICA
Profesor indrumator:Simona Ianc
AbsolventRaduica Andra-Gabriela
Majari Maria Irina
Evidenta unei firme de inchirieri auto
2
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 gasindu-
si 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 efectuandu-
se 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.
3
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, COPY STRUCTURE, DISPLAY
STRUCTURE, CREATE TABLE)
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
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)
5
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
6
Mai sus este prezentata modalitatea de lucru cu instrumentele programului visual
Foxpro 6.0.
7
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.
8
!!!Se va avea grija la modul de introducerii al adresei, intr-un mod compact pentru a nu ocupa spatii nimeroase
9
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 Pro-ului 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 offClearDo form main.scxRead EventsReturn
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')
returnendifif (empty(thisform.tel1.text))
messagebox('Va rugam sa completati campul [Numar de telfon]',16,'Eroare')return
ENDIFif (empty(thisform.zile1.text))
messagebox('Va rugam sa completati campul [Numarul de zile de inchiriat]',16,'Eroare')return
ENDIFif (empty(thisform.id1.text))
messagebox('Va rugam sa completati campul [ID]',16,'Eroare')return
ENDIF
close all
11
use masini IN 1use clienti IN 2
sele 1LOCATE 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 bottomappend 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 alluse
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
12
if (empty(thisform.cmc1.text))messagebox('Va rugam sa completati campul [cmc]',16,'Eroare')
returnendifif (empty(thisform.an1.text))
messagebox('Va rugam sa completati campul [an fabricatie]',16,'Eroare')return
ENDIFif (empty(thisform.stare1.text))
messagebox('Va rugam sa completati campul [stare]',16,'Eroare')return
ENDIFif (thisform.stare1.text<>'a')and(thisform.stare1.text<>'b')
messagebox('Va rugam sa completati corect campul [stare], a-avariata, b-disponibila',16,'Eroare')
returnENDIFif (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 alluse 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
13
ENDIF
GO bottomappend blank
replace Marca with alltrim(thisform.marca1.text), ;Model with alltrim(thisform.model1.text), ;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 alluse
thisform.marca1.value=""thisform.model1.value=""thisform.cmc1.value=""thisform.an1.value=""thisform.stare1.value=""thisform.nr1.value=""thisform.id1.value=""
use clientilocate for alltrim(thisform.nume1.text) =ALLTRIM(nume) and alltrim(thisform.prenume1.text) =ALLTRIM(prenume)
if found()
delete packmessagebox ('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
14
use masinilocate for alltrim(thisform.id1.text) =ALLTRIM(id)
if found()
delete packmessagebox ('Stergere cu succes', 62 , 'Succes')else 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
15
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
16
CUPRINS
Descrierea limbajului FOXPRO .............................................................. 4
Elemente ale limbajului Foxpro folosite in aplicatie............................... 5
Modul de functionare................................................................................ 6
Bibliografia .............................................................................................. 16
17