Sunteți pe pagina 1din 18

Elev: Profesor indrumator: prof.

Clasa: a XII-a

Cuprinsunsul lucrarii de atestat :

Bazele de date folosite pag 3

Prezentarea aplicatiei realizate pag 4 Codul-sursa al aplicatiei pag 8

Bibliografie pag

Bazele de date folosite:


Pentru realizarea aceste aplicatii am folosit 3 baze de date care sunt prezentate in continuare impreuna cu structurile acestora.

Operator.dbf are urmatoarea structura:


Nume Tip(lungime)
Cod_oper Nume Prenume Adresa

camp
numeric(12) caracter caracter memo

Curs_valutar.dbf
Nume Tip(lungime)
Valuta Simbol Cumparare Cumpar_ln Vanzare Vand_ln Data caracter caracter numeric numeric numeric numeric data

camp

Tranzactii.dbf
Nume Tip(lungime)
Tip_tranz Valuta Cantitate Valoare Nume Prenume Act_id Serie Data_tranz Ora_tranz Cod_oper caracter caracter numeric numeric caracter caracter caracter numeric data numeric numeric

camp

Aplicatia de fata a fost realizata cu ajutorul limbajului de programare FoxPro in Microsoft FoxPro 2.6a. Aceasta este formata dintr-un program principal si unul secundar, care inglobeaza procedurile folosite. Aplicatia poate fi folosita de catre o casa de schimb valutar si permite urmatoarele operatiuni : modificarea cursului valutar, afisarea cursului si crearea de buletine pentru vanzarea sau cumpararea de valuta. De asemenea pot fi afisate raportele zilnice sau lunare si balnta pe ziua in curs, cantitatile de valuta si respectiv lei.

Este foarte simplu de folosit, interfata grafica find insotita pe langa meniurile si popup-urile sugestive si de anumite explicatii care apar in partea de jos a ecranului. O data pornit programul se initializeaza fereastra principala impreuna cu meniul principal. Acesta contine principalele optiuni pentru : Curs Valutar, Tranzactii, Rapoate, Situatii si Iesire. Daca este aleasa optiunea Curs Valutar apare o fereastra in care utilizatorul urmeaza sa introduca parola de acces pentru a putea opera modificari asupra cursului valutar si pentru introducerea de valute noi si a cursurilor valutare corespunzatoare.

Se poate alege afisarea cursului valutar pe ecran sau tiparirea la imprimanta, acesta fiind luat din baza de date existenta la momentul respectiv. In cazul introducerii unei parole gresite utilizatorul va fi atentionat apoi aplicatia se va inchide. Alegand optiunea Tranzactii se pot realiza buletine de vanzare sau cumparare de valuta.

Acestea contin datele personale ale clientului impreuna cu tara de provenienta, in cazul in care acesta nu este rezident si ,pentru cazul in care clientul doreste sa fac o reclamatie, pe buletin sunt imprimate data si ora tranzactiei, precum si codul operatorului dupa care acesta poate fi identificat consultand baza de date Operator.dbf . Pentru buletinele de vanzare trebuie introdusa suma in valuta pe care clientul o solicita, valoarea in lei pe care acesta trebuie sa o primeasca este calculata automat in functie de cursul valutar curent. Pentru buletinele de cumparare este introdusa suma in lei pe care clientul o solicita, valoarea in valuta pe care acesta trebuie sa o

primeasca este calculata ca si in cazul vanzarii de valuta. Cursul valutar este luat automat din baza de date existenta, care contine toate cursurile actualizate. Alegand optiunea Rapoarte pot fi vizualizate informatii din tranzactiile de vanzarecumparare efectuate. Optiunea Situatii ofera informatii despre cantitatiile de valuta existente, respectiv cantitatea de lei detinuta de casa de schimb valutar la acel moment. Pentru iesire utilizatorul poate alege intre 2 optiuni accesand Iesire din bara de meniuri. Alegand Iesire apoi Aplicatie poate fi inchisa doar aplicatia curenta fara a fi inchis si FoxPro. In cazul in care este aleasa optiunea Fox Pro este inchis si acesta impreuna cu aplicatia.

** fisierul principal** set talk off set path to C:\temp\fox26\glodea set procedure to fis_sub clear define window fer_pr from 0,0 to 23,79; title "Casa de schimb Debis Exchange"; shadow nofloat nogrow double color scheme 7 set clock to 0,65 activate window fer_pr @ 5,30 say " $ $ " @ 6,30 say " $$$$$$" @ 7,30 say "$ $ $ " @ 8,30 say "$ $ $ " @ 9,30 say " $$$$$ " @ 10,30 say " $ $ $" @ 11,30 say " $ $ $" @ 12,30 say "$$$$$$ " @ 13,30 say " $ $ " define window w0 from 5,15 to 13,40; title "Parola" color scheme 1; shadow nofloat nogrow define window w1 from 2,6 to 20,72; title "Vanzare" color scheme 12; shadow nofloat nogrow define window w2 from 2,6 to 20,72; title "Cumparare" color scheme 5; shadow nofloat nogrow

define menu m_pr in window fer_pr define pad p1 of m_pr prompt '\<Curs Valutar'; message 'Introducere curs valutar' define pad p2 of m_pr prompt '\<Tranzactii'; message 'Afiseaza operatii efectuate' define pad p3 of m_pr prompt '\<Rapoarte'; message 'Listeaza rapoarte' define pad p4 of m_pr prompt '\<Situatii'; message 'Afisare situatii monetare' define pad p5 of m_pr prompt '\<Iesire'; message 'Inchidere aplicatie' on selection on selection m_tranz on selection m_rap on selection m_sit on selection m_inchid pad p1 of m_pr do parola pad p2 of m_pr activate popup pad p3 of m_pr activate popup pad p4 of m_pr activate popup pad p5 of m_pr activate popup

define popup m_tranz in window fer_pr from 1,15 shadow define bar 1 of m_tranz prompt '\<Vanzare'; message 'Afisare tranzactii vanzare' define bar 2 of m_tranz prompt '\<Cumparare'; message 'Afisare tranzactii cumparare' on sele bar 1 of m_tranz do vanzare on sele bar 2 of m_tranz do cumparare define popup m_rap in window fer_pr from 1,28 shadow
10

define bar 1 of m_rap prompt '\<Zilnic'; message 'Afisare rapoarte zilnice' define bar 2 of m_rap prompt '\<Lunar'; message 'Afisare rapoarte lunare' define popup m_sit in window fer_pr from 1,39 shadow define bar 1 of m_sit prompt '\<Lei'; message 'Cantitate lei' define bar 2 of m_sit prompt '\<Valuta'; message 'Cantitate valuta' define popup m_inchid in window fer_pr from 1,50 shadow define bar 1 of m_inchid prompt '\<Aplicatie'; message 'Inchide aplicatia' define bar 2 of m_inchid prompt '\<Fox Pro'; message 'Inchide Fox Pro' on sele bar 1 of m_inchid do inchide on sele bar 2 of m_inchid do quit activate menu m_pr clear popups clear menus clear windows return

** fisier de subprograme ** set talk off set cursor on set century on set date to french
11

procedure parola define window w3 from 2,2 to 15,70; title "Modificare curs valutar" color scheme 5; shadow nofloat nogrow activate window w0 @ 1,2 say "Introduceti parola:" dime r(6) for i=1 to 6 @ 2,8+i get m.p size 1,1 defa '' read b='' b=left(m.p,1) c=lower(b) store c to r(i) @ 2,8+i say '*' rele m.p endfor if asc(r(1))==98 and asc(r(2))==111 and asc(r(3))==103 and asc(r(4))==100 and asc(r(5))==97 and asc(r(6))==110 @ 4,4 say "Wellcome Bogdan!" @ 6,8 get m.b0 func "*h \<OK; \<Cancel" defa 1 read if m.b0=1 hide window w0 deactivate window w0 activate window w3 use curs_val brow freeze cumparare in window w3
12

brow freeze vanzare in window w3 replace all data with date() replace all cump_ln with cumparare/10000 replace all vanz_ln with vanzare/10000 list read deactivate window w3 else deactivate window w3 endif else @ 5,5 say "ACCES DENIED!!!" read do inchide endif deactivate window w0 return procedure vanzare hide window fer_pr activate window w1 dimension simbol(5) store 'USD' to simbol(1) store 'EUR' to simbol(2) store 'DMS' to simbol(3) store 'FOR' to simbol(4) store 'YEN' to simbol(5) dimension rez(2) store 'Da' to rez(1) store 'Nu' to rez(2) dimension cod(5) store '101' to cod(1) store '102' to cod(2)
13

store '103' to cod(3) store '104' to cod(4) store '105' to cod(5) @ 0,2 say "Emitent: Debis Exchange" @ 4,35 say "Data" get m.date defa date() disable @ 4,50 say "Ora" get m.ora defa time() disable @ 1,2 say "Sediul: Bd. Decebal 107" @ 2,15 get m.cod func "^ 101;102;103;104;105" default 0 @ 3,2 say "Cod operator" @ 1,35 say "Buletin de schimb valutar" @ 2,42 say "-Vanzare-" @ 6,3 say "Nume" get m.nume size 1,10 defa '' @ 7,3 say "Prenume" get m.prenume size 1,15 defa '' @ 6,30 say "Tara" get m.tara size 1,10 defa '' @ 7,30 say "BI/Pasaport" @ 7,42 say "Seria:" get m.seria size 1,2 defa '' @ 7,52 say "Nr:" get m.nr size 1,8 defa '' @ 8,3 say "Rezident:" get m.rez size 1,4,3 func "*rhn Da;Nu" @ 10,0 say " " @ 11,0 say "Suma incasataSimbolCurs schimbSuma platita clientuluiSimbol"

14

@ 12,0 say " " @ 13,0 say " Lei " @ 14,0 say " " @ 13,40 get m.suma_platita size 1,13 defa '' @ 13,2 get m.suma_incasata size 1,10 defa'' disable @ 12,58 get m.simbol2 defa 'USD' function "^ USD;EUR;DMS;FOR;YEN" @ 15,20 get m.b1 func "*h \<OK;\<Cancel" defa 1 read input m.suma_platita to sp m.suma_incasata=0 use curs_val use curs_val index s seek m.simbol2 goto recno() m.suma_incasata=vanzare*m.suma_platita @ 13,3 say m.suma_incasata

deactivate window w1 show window fer_pr return procedure cumparare activate window w2 hide window fer_pr
15

dimension simbol(5) store 'USD' to simbol(1) store 'EUR' to simbol(2) store 'DMS' to simbol(3) store 'FOR' to simbol(4) store 'YEN' to simbol(5) dimension rez(2) store 'Da' to rez(1) store 'Nu' to rez(2) dimension cod(5) store '101' to cod(1) store '102' to cod(2) store '103' to cod(3) store '104' to cod(4) store '105' to cod(5) @ 0,2 say "Emitent: Debis Exchange" @ 4,35 say "Data" get m.date defa date() disable @ 4,50 say "Ora" get m.ora defa time() disable @ 1,2 say "Sediul: Bd. Decebal 107" @ 2,15 get m.cod func "^ 101;102;103;104;105" default 0 @ 3,2 say "Cod operator" @ 1,35 say "Buletin de schimb valutar" @ 2,42 say "-Cumparare-" @ 6,3 say "Nume" get m.nume size 1,10 defa '' @ 7,3 say "Prenume" get m.prenume size 1,15 defa '' @ 6,30 say "Tara" get m.tara size 1,10 defa '' @ 7,30 say "BI/Pasaport" @ 7,42 say "Seria:" get m.seria size 1,2 defa ''
16

@ 7,52 say "Nr:" get m.nr size 1,8 defa '' @ 8,3 say "Rezident:" get m.rez size 1,4,3 func "*rhn Da;Nu" @ 10,0 say " " @ 11,0 say "Suma incasataSimbolCurs schimbSuma platita clientuluiSimbol" @ 12,0 say " " @ 13,0 say " " @ 14,0 say " " @ 13,1 get m.suma_incasata size 1,13 defa '' @ 12,15 get m.simbol1 defa 'USD' function "^ USD;EUR;DMS;FOR;YEN" @ 15,20 get m.b2 func "*h \<OK;\<Cancel" defa 1 read cycle deactivate window w2 show window fer_pr return procedure inchide deactivate menu m_pr set clock off clear all
17

return procedure quit quit

18

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