Вы находитесь на странице: 1из 15

Liceul Teoretic “Horia Hulubei” cu cls.

I – XII
Lucrare de atestat

Lucrare de atestat

Data : mai 2009


Autor : Nicolau Albert
Profesor coordonator: Caprarescu Alina
Liceul Teoretic “Horia Hulubei” cu cls. I – XII
Lucrare de atestat

Program de gestiune
al unei case de schimb valutar

Data : mai 2009


Autor : Nicolau Albert
Profesor coordonator : Caprarescu Alina
1
Cuprins

1.Introducere

2.Prezentare generala
2.1 Fereastra principala
2.1.1 Meniul “Clienti”
2.1.2 Meniul “Curs valutar”
2.1.3 Meniul “Iesire”
2.2 Mod de folosire

3.Bibliografie
4.Anexe

2
1.Introducere / utilitatea lucrării

Programul prezentat serveste la gestiunea unei case de schimb valutar,fiind


realizat in limbajul de programare de la Microsoft,Fox Pro 2.6 .Alcatuit din 16
fisiere,dintre care 4 de tip bitmap(BMP),11 baze de date(DBF) si programul principal
(PRG),programul prezentat tine evidenta cursurilor de schimb(vanzare-cumparare)
pentru 9 monede:dolar american, dolar australian,dolar canadian, franc elvetian,franc
francez , gulden olandez,lira egipteana, lira sterlina,marca germana.

Introducerea de clienti noi,afisarea si cautarea acestora dupa un anumit


criteriu,schimbarea si afisarea cursului valutar,sunt numai cateva din posibilitatile
acestui program cu o interfata foarte usor de utilizat.

2.Structura programului

2.1 Meniuri / meniul principal

Fereastra principala cuprinde 3 meniuri,ce vor fi descrise in capitolele urmatoare:

 Clienti
 Curs valutar
 Iesire

Meniurile "Clienti" si "Curs valutar" sunt practic cele doua submeniuri de


baza alaferestrei principale, dispuse simetric, de-o parte si de alta a optiunii de iesire.

2.1.1 Meniul “Clienti”

E format din 4 submeniuri prin care se pot realiza urmatoarele:

- introducerea de clienti noi:

Acest meniu serveste introducerii in baza de date a unor clienti noi, mai
bine zis datele acestora: numele, buletinul si schimbul realizat - cele doua monede
care au luat parte la tranzactie. Practic, la aceasta optiune se va face apel ori de cate

3
ori se va realiza o tranzactie, nu doar cand apare un client care schimba pentru prima
data la casa de schimb; astfel, un o persoana apare de atatea cate schimburi a efectuat.

- sortare clienti dupa nume,prenume,data efectuarii schimbului valutar:

Se realizeaza astfel o 'ordonare' a bazei de date ce contine datele despre


clienti dupa anumite campuri - nume, prenume sau dta efectuarii schimbului.

- cautare clienti dupa nume,prenume,data efectuarii schimbului valutar:

Se cauta in baza de date clienti, in campul rspectiv - nume, prenume sau


data schimbului - articolul care sa coincida cu datele introduse de la tastatura.

- date informative cu privire la cantitatea de schimburi efectuate:

Arata sumele tranzactionate la vanzare si respectiv cumparare a unei sau


mai multor valute. Acestea sunt afisate in aceeasi fereastra in care sunt precizate
valutele la care se face referire.

2.1.2 Meniul “Curs valutar”

E format din 3 submeniuri ce se desfasoara astfel:

- modificarea cursului de schimb:

Alegerea optiunii "curs nou" din meniul "Curs valutar" aduce pe ecran
fereastra de modificare a raportului de schimb, care cere mai intai sa se precizeze care
dintre valutele disponibile pentru schimb este aleasa pentru a i se schimba cursul;
dupa selectare, daca se apasa <Enter> sau se da click pe "Accepta" - ceea ce face sa
se confirme intentia de a modifica cursul de schimb al monedei alese - cursul actual

va aparea in fereastra, dandu-i-se in acelasi timp utilizatorului dreptul de a modifica

4
acest curs. Dupa ce se introduc noile date, utilizatorul trebuie sa dea din nou "Accept"
pentru a salva noile data si a schimba astfel cursul. Daca se doreste renuntarea la
aceasta modificare, se apasa tasta <Esc> urmata de otiunea "Renunta".

- afisare curs de schimb curent sau curs de schimb trecut pentru moneda
aleasa:

Acest submeniu cere initial sa se specifice ce curs urmeaza a fi afisat, dupa


care (daca este aleasa comanda "Accepta") va afisa cursul curent al monedei alese.
Nu este posibila alegerea vizualizarii mai multor cursuri simultan.

- cautare curs de schimb pentru moneda si data alease:

Spre deosebire de "Afisare curs schimb curent", aceasta optiune permite


alegerea unei date pentru care sa afiseze cursul; astfel se poate afisa cursul de la o
anumita perioada.

2.1.3 Meniul “Iesire”

Realizeaza inchiderea programului, a ferestrelor si a bazelor de date. Ramane astfel


deschisa doar fereastra Fox. (optiunea "Iesire" nu este prevazuta cu o secventa de
incheiere)

2.2 Mod de instalare / utilizare

Programul se instaleaza in directorul “d:\valuta” si se lanseaza din fereastra


de comenzi din Fox Pro,cu comanda “do d:\valuta\valuta”. O alternativa ar fi dublu-
click pe unul din fisierele 'valuta.prg' sau 'valuta.fxp'.

5
Odata rulat programul, dupa ce s-a incheiat secventa de 'intro' acesta poate
fi intrerupt (realizandu-se iesirea din program, nu si din fereastra principala care
continuua sa ramana activa) prin executarea unui clik oriunde in afara barei de
meniuri - in cadrul ferestrei, in afara ei sau in bannerul acesteia. Pentru a reveni in
program este suficient un click-dreapta oriunde in fereastra FoxPro in care este
deschisa aplicatia. Iesire din program cu inchiderea ferestrei principale se realizeaza
prin clik sau <enter> pe optiunea "Iesire" din meniul principal.

In meniuri se poate naviga fie cu mouse-ul, fie cu tastatura, folosind taste


de baze cu functiile lor de baza - <Esc>,<Enter>, sageti s.a. Diferitele optiuni ce apar
in timpul executiei programului pot fi acceptate sau refuzate prin butoanele
“Accepta” sau “Renunta”.

6
BIBLIOGRAFIE :

- Mariana Panţiru / Ionuţ Panţiru - “Manual de informatică / Baze de date” / ‘L&S


‘, Bucureşti 2000;

- Cătălin Fâncu - “Informatică Economică” ( Manual pentru clasa a XII-a FoxPro) /


‘L&S ‘, Bucureşti 1999;

- Rodica Pintea / D. Oprescu / D. Grigoriu – “Texte de sinteză în


programare”/‘L&S ‘, Bucureşti 2001;

- Microsoft FoxPro 2.6 for Windows Help.

7
@9,i say ' realizat de Popa Vlad' style 'T'
3.Anexe @2,14 say 'Program de evidenta
Codul sursa al programului: a unei case de schimb valutar' style 'T'
wait '' timeout 0.01
endfor
clear set cursor off
hide window all wait '' timeout 3
define windows w1 from 3,15 to 19,85 title set bell to 1700,1
"Schimb valutar" close system fill file ??chr(7)
d:\valuta\bani.bmp set cursor on
activate window w1 release window w2
define menu m1 return
set century on
set date dmy procedure iesire
set cursor on show window all
set safety off set bell to 1700,1
set talk off ??chr(7)
set sysmenu off release window w1
define pad p1 of m1 prompt ' Clienti ' deactivate menu m1
define pad p2 of m1 prompt ' Iesire ' set cursor on
define pad p3 of m1 prompt ' Curs valutar ' return
define popup cli from 1,2
define bar 1 of cli prompt '- clienti noi' procedure delete
define bar 2 of cli prompt '- sortare set bell to 1700,1
clienti'+chr(16) ??chr(7)
define bar 3 of cli prompt '- cautare delete
clienti'+chr(16) pack
define bar 4 of cli prompt '- date informative' return
define popup crs from 1,51
define bar 1 of crs prompt '- curs nou' procedure clienti
define bar 2 of crs prompt '- afisare curs' do case
define bar 3 of crs prompt '- cautare curs' case bar()=1
do despre set bell to 1700,1
on sele popup cli do clienti ??chr(7)
on sele popup crs do curs define window w2 from 1,15 to 12,55 in
on sele pad p1 of m1 activate popup cli window w1 fill file d:\valuta\5.bmp style 'T'
on sele pad p2 of m1 do iesire panel
on sele pad p3 of m1 activate popup crs activate window w2
activate menu m1 use d:\valuta\clienti
on key label rightmouse do d:\valuta\valuta y=0
append blank
procedure despre @1,12 say 'Clienti noi' style 'BU'
define window w2 from 1,12 to 11,58 fill file @3,3 say 'Numele clientului :' get nume size
d:\valuta\2.bmp in window w1 none 1,11
activate window w2 @4,3 say 'Buletinul clientului:' get buletin size
set cursor off 1,11
for j=23 to 14 step -1 @5,3 say 'Codul monedei dorite:' get
clear cod_moneda size 1,11
@2,j say 'Program de evidenta a @6,3 say 'Tipul de schimb(c/v):' get
unei case de schimb valutar' style 'T' tip_schimb size 1,11
wait '' timeout 0.1 @7,3 say 'Suma primita :' get valoare_p
endfor size 1,11
wait ''timeout 1 @9,9 get y function '*H Accepta!;Renunta!'
for i=1 to 23 size 1,7,3
clear read cycle
if y=2 @0,7 say 'Informatii vanzare-cumparare' style
delete 'BUT'
pack @1,1 say 'Cod' style 'TU'
endif @1,11 say 'Nume' style 'TU'
if y=1 @1,28 say 'Vandut' style 'TU'
v=valoare_p @1,39 say 'Cumparat' style 'TU'
t=tip_schimb @2,2 say '1 ' style 'T' get o1 function '*C Dolar
m=cod_moneda SUA' style 'T'
replace data with date() @3,2 say '2 ' style 'T' get o2 function '*C
use d:\valuta\curs Dolar australian' style 'T'
val=0 @4,2 say '3 ' style 'T' get o3 function '*C
locate for cod=m Dolar canadian' style 'T'
if t='c' @5,2 say '4 ' style 'T' get o4 function '*C
val=v*cumparare Franc francez' style 'T'
endif @6,2 say '5 ' style 'T' get o5 function '*C
if t='v' Franc elvetian' style 'T'
val=v/vanzare @7,2 say '6 ' style 'T' get o6 function '*C Lira
endif egipteana' style 'T'
use d:\valuta\clienti @8,2 say '7 ' style 'T' get o7 function '*C Lira
go bottom sterlina' style 'T'
replace valoare_d with val @9,2 say '8 ' style 'T' get o8 function '*C
endif Marca germana' style 'T'
release window w2 @10,2 say '9 ' style 'T' get o9 function '*C
deactivate popup cli Gulden olandez' style 'T'
case bar()=2 @11,27 get y function '*H Accepta!;Renunta!'
set bell to 1700,1 size 1,7,3
??chr(7) read cycle
define popup sor2 from 2,21 use d:\valuta\clienti
define bar 1 of sor2 prompt '- nume' if y=1
on sele bar 1 of sor2 do nume clear
define bar 2 of sor2 prompt '- buletin' if o1=1
on sele bar 2 of sor2 do buletin sum all valoare_p for
define bar 3 of sor2 prompt '- data schimb' (tip_schimb='v')and(cod_moneda=1) to v1
on sele bar 3 of sor2 do datas sum all valoare_d for
activate popup sor2 (tip_schimb='c')and(cod_moneda=1) to v2
case bar()=3 @2,21 say str(v1)+' Lei' style 'T'
set bell to 1700,1 @2,34 say str(v2)+' Lei' style 'T'
??chr(7) endif
define popup cau from 3,21 if o2=1
define bar 1 of cau prompt '- nume' sum all valoare_p for
define bar 2 of cau prompt '- buletin' (tip_schimb='v')and(cod_moneda=2) to v1
define bar 3 of cau prompt '- data schimb' sum all valoare_d for
on sele popup cau do cauta (tip_schimb='c')and(cod_moneda=2) to v2
activate popup cau @3,21 say str(v1)+' Lei' style 'T'
case bar()=4 @3,34 say str(v2)+' Lei' style 'T'
set bell to 1700,1 endif
??chr(7) if o3=1
define window w2 from 1,10 to 14,60 in sum all valoare_p for
window w1 fill file d:\valuta\5 panel (tip_schimb='v')and(cod_moneda=3) to v1
activate window w2 sum all valoare_d for
y=1 (tip_schimb='c')and(cod_moneda=3) to v2
store 0 to o1,o2,o3,o4,o5,o6,o7,o8,o9 @4,21 say str(v1)+' Lei' style 'T'
x=' ' @4,34 say str(v2)+' Lei' style 'T'
do while y=1 endif
if o4=1

1
sum all valoare_p for return
(tip_schimb='v')and(cod_moneda=4) to v1
sum all valoare_d for procedure cauta
(tip_schimb='c')and(cod_moneda=4) to v2 do case
@5,21 say str(v1)+' Lei' style 'T' case bar()=1
@5,34 say str(v2)+' Lei' style 'T' set bell to 1700,1
endif ??chr(7)
if o5=1 define window w5 from 1,3 to 9,67 in window
sum all valoare_p for w1 fill file d:\valuta\5.bmp panel
(tip_schimb='v')and(cod_moneda=5) to v1 activate window w5
sum all valoare_d for use d:\valuta\clienti
(tip_schimb='c')and(cod_moneda=5) to v2 n=' '
@6,21 say str(v1)+' Lei' style 'T' @3,11 say 'Introduceti numele clientului:'style
@6,34 say str(v2)+' Lei' style 'T' 'T' get n style 'T'
endif read
if o6=1 brow for nume=n font 'MS Sans Serif',9
sum all valoare_p for noedit
(tip_schimb='v')and(cod_moneda=6) to v1 case bar()=2
sum all valoare_d for set bell to 1700,1
(tip_schimb='c')and(cod_moneda=6) to v2 ??chr(7)
@7,21 say str(v1)+' Lei' style 'T' define window w5 from 1,3 to 9,67 in window
@7,34 say str(v2)+' Lei' style 'T' w1 fill file d:\valuta\5.bmp panel
endif activate window w5
if o7=1 use d:\valuta\clienti
sum all valoare_p for n=' '
(tip_schimb='v')and(cod_moneda=7) to v1 @3,11 say 'Introduceti buletinul
sum all valoare_d for clientului:'style 'T' get n style 'T'
(tip_schimb='c')and(cod_moneda=7) to v2 read
@8,21 say str(v1)+' Lei' style 'T' brow for buletin=n font 'MS Sans Serif',9
@8,34 say str(v2)+' Lei' style 'T' noedit
endif case bar()=3
if o8=1 set bell to 1700,1
sum all valoare_p for ??chr(7)
(tip_schimb='v')and(cod_moneda=8) to v1 define window w5 from 1,3 to 9,67 in window
sum all valoare_d for w1 fill file d:\valuta\5.bmp panel
(tip_schimb='c')and(cod_moneda=8) to v2 activate window w5
@9,21 say str(v1)+' Lei' style 'T' use d:\valuta\clienti
@9,34 say str(v2)+' Lei' style 'T' d={//}
endif @3,11 say 'Introduceti data schimbului:'style
if o9=1 'T' get d style 'T'
sum all valoare_p for read
(tip_schimb='v')and(cod_moneda=9) to v1 brow for data=d font 'MS Sans Serif',9 noedit
sum all valoare_d for endcase
(tip_schimb='c')and(cod_moneda=9) to v2 release window w5
@10,21 say str(v1)+' Lei' style 'T' deactivate popup cli
@10,34 say str(v2)+' Lei' style 'T' return
endif
endif procedure nume
enddo set bell to 1700,1
use d:\valuta\clienti ??chr(7)
sum all valoare_p for define window w3 from 1,3 to 15,67 in
(tip_schimb='v')and(cod_moneda=1) to v1 window w1 panel
release window w2 activate window w3
deactivate popup cli use d:\valuta\clienti
endcase index on nume to x

2
on key label del do delete elvetian;Lira egipteana;Lira sterlina;Marca
brow title 'Afisare clienti' font 'MS Sans germana;Gulden olandez' style 'T'
Serif',9 noedit @11,20 get y function '*H Accepta!;Renunta!'
push key clear size 1,7,1
release window w3 read cycle
deactivate popup cli use d:\valuta\curs
if y=1
procedure buletin do case
set bell to 1700,1 case x='Dolar SUA'
??chr(7) go 1
define window w3 from 1,3 to 15,67 in @2,22 get vanzare
window w1 panel @2,31 get cumparare
activate window w3 read
use d:\valuta\clienti @2,22 say ' ' style 'T'
index on buletin to x replace data with date()
on key label del do delete v=vanzare
brow title 'Afisare clienti' font 'MS Sans c=cumparare
Serif',9 noedit use d:\valuta\d_sua
push key clear append blank
release window w3 replace vanzare with v
deactivate popup cli replace cumparare with c
replace data with date()
procedure datas case x='Dolar australian'
set bell to 1700,1 go 2
??chr(7) @3,22 get vanzare
define window w3 from 1,3 to 15,67 in @3,31 get cumparare
window w1 panel read
activate window w3 @3,22 say ' 'style 'T'
use d:\valuta\clienti replace data with date()
index on data to x v=vanzare
on key label del do delete c=cumparare
brow title 'Afisare clienti' font 'MS Sans use d:\valuta\d_austr
Serif',9 noedit append blank
push key clear replace vanzare with v
release window w3 replace cumparare with c
deactivate popup cli replace data with date()
case x='Dolar canadian'
procedure curs go 3
do case @4,22 get vanzare
case bar()=1 @4,31 get cumparare
set bell to 1700,1 read
??chr(7) @4,22 say ' 'style 'T'
define window w2 from 1,15 to 14,55 in replace data with date()
window w1 fill file d:\valuta\4 style 'T' panel v=vanzare
activate window w2 c=cumparare
y=1 use d:\valuta\d_canad
x=' ' append blank
do while y=1 replace vanzare with v
clear replace cumparare with c
@0,7 say 'Modificare curs curent' style 'BUT' replace data with date()
@1,21 say 'Vanzare' style 'UT' case x='Franc francez'
@1,29 say 'Cumparare' style 'UT' go 4
@2,2 get x function '*RV Dolar SUA;Dolar @5,22 get vanzare
australian;Dolar canadian;Franc francez;Franc @5,31 get cumparare
read

3
@5,22 say ' 'style 'T' read
replace data with date() @9,22 say ' 'style 'T'
v=vanzare replace data with date()
c=cumparare v=vanzare
use d:\valuta\f_franc c=cumparare
append blank use d:\valuta\m_germ
replace vanzare with v append blank
replace cumparare with c replace vanzare with v
replace data with date() replace cumparare with c
case x='Franc elvetian' replace data with date()
go 5 case x='Gulden olandez'
@6,22 get vanzare go 9
@6,31 get cumparare @10,22 get vanzare
read @10,31 get cumparare
@6,22 say ' 'style 'T' read
replace data with date() @10,22 say ' 'style 'T'
v=vanzare replace data with date()
c=cumparare v=vanzare
use d:\valuta\f_elvet c=cumparare
append blank use d:\valuta\g_oland
replace vanzare with v append blank
replace cumparare with c replace vanzare with v
replace data with date() replace cumparare with c
case x='Lira egipteana' replace data with date()
go 6 endcase
@7,22 get vanzare endif
@7,31 get cumparare enddo
read case bar()=2
@7,22 say ' 'style 'T' set bell to 1700,1
replace data with date() ??chr(7)
v=vanzare define window w2 from 1,5 to 15,65 in
c=cumparare window w1 fill file d:\valuta\4 panel
use d:\valuta\l_egipt activate window w2
append blank y=1
replace vanzare with v x=' '
replace cumparare with c @0,17 say 'Afisare curs de schimb' style 'BUT'
replace data with date() @3,21 say '\' style 'T'
case x='Lira sterlina' @4,22 say '|' style 'T'
go 7 @5,22 say '|' style 'T'
@8,22 get vanzare @6,22 say '|' style 'T'
@8,31 get cumparare @7,22 say '} Cursuri de schimb trecute' style
read 'T'
@8,22 say ' 'style 'T' @8,22 say '|' style 'T'
replace data with date() @9,22 say '|' style 'T'
v=vanzare @10,22 say '|' style 'T'
c=cumparare @11,21 say '/' style 'T'
use d:\valuta\l_sterl do while y=1
append blank on key label del do delete
replace vanzare with v @2,2 get x function '*RV Curs de schimb
replace cumparare with c curent;Dolar SUA;Dolar australian;Dolar
replace data with date() canadian;Franc francez;Franc elvetian;Lira
case x='Marca germana' egipteana;Lira sterlina;Marca germana;Gulden
go 8 olandez' style 'T'
@9,22 get vanzare @5,49 get y function '*V Accepta!;Renunta!'
@9,31 get cumparare size 1,7,3 style 'T'

4
read cycle @9,29 get y function '*V Accepta!;Renunta!'
if y=1 size 1,7,1
do case read cycle
case x='Curs de schimb curent' use d:\valuta\curs
use d:\valuta\curs if y=1
brow title 'Afisare curs de schimb' font 'MS do case
Sans Serif',9 noedit case x='Dolar SUA'
case x='Dolar SUA' use d:\valuta\d_sua
use d:\valuta\d_sua locate for data=d
brow title 'Afisare curs de schimb' noedit brow title 'Afisare curs de schimb' noedit
case x='Dolar australian' case x='Dolar australian'
use d:\valuta\d_austr use d:\valuta\d_austr
brow title 'Afisare curs de schimb' noedit locate for data=d
case x='Dolar canadian' brow title 'Afisare curs de schimb' noedit
use d:\valuta\d_canad case x='Dolar canadian'
brow title 'Afisare curs de schimb' noedit use d:\valuta\d_canad
case x='Franc francez' locate for data=d
use d:\valuta\f_franc brow title 'Afisare curs de schimb' noedit
brow title 'Afisare curs de schimb' noedit case x='Franc francez'
case x='Franc elvetian' use d:\valuta\f_franc
use d:\valuta\f_elvet locate for data=d
brow title 'Afisare curs de schimb' noedit brow title 'Afisare curs de schimb' noedit
case x='Lira egipteana' case x='Franc elvetian'
use d:\valuta\l_egipt use d:\valuta\f_elvet
brow title 'Afisare curs de schimb' noedit locate for data=d
case x='Lira sterlina' brow title 'Afisare curs de schimb' noedit
use d:\valuta\l_sterl case x='Lira egipteana'
brow title 'Afisare curs de schimb' noedit use d:\valuta\l_egipt
case x='Marca germana' locate for data=d
use d:\valuta\m_germ brow title 'Afisare curs de schimb' noedit
brow title 'Afisare curs de schimb' noedit case x='Lira sterlina'
case x='Gulden olandez' use d:\valuta\l_sterl
use d:\valuta\g_oland locate for data=d
brow title 'Afisare curs de schimb' noedit brow title 'Afisare curs de schimb' noedit
endcase case x='Marca germana'
endif use d:\valuta\m_germ
push key clear locate for data=d
enddo brow title 'Afisare curs de schimb' noedit
case bar()=3 case x='Gulden olandez'
set bell to 1700,1 use d:\valuta\g_oland
??chr(7) locate for data=d
define window w2 from 1,15 to 14,55 in brow title 'Afisare curs de schimb' noedit
window w1 fill file d:\valuta\4 panel endcase
activate window w2 endif
y=1 enddo
x=' ' endcase
do while y=1 release window w2
clear deactivate popup crs
@0,7 say 'Cautare curs de schimb' style 'BUT' retur
@2,2 get x function '*RV Dolar SUA;Dolar
australian;Dolar canadian;Franc francez;Franc
elvetian;Lira egipteana;Lira sterlina;Marca
germana;Gulden olandez' style 'T'
d={//}
@11,2 say 'Data:' style 'TU' get d

Вам также может понравиться