Sunteți pe pagina 1din 18

Gestionarea unei biblioteci

Programul pregtit pentru susinerea probei de atestat realizeaz operaiunile principale pentru inerea evidenei crilor ntr-o bibliotec. Acest program permite urmtoarele operaii: - crearea fiierului de baz de date care conine toate crile; - modificarea structurii fiierului baz de date care conine crile; - introducere de cri noi; - mprumutare de cri ; - returnare de cri ; - afiare de restanieri (i numrul acestora) ; - terminarea programului. Inregistrarile datelor se fac in bazele de date CITITORI.DBF, OPERATII.DBF i CARI.DBF, care au urmtoarele structuri : CARTI.DBF Number of data records: 20 Date of last update : 04/04/04 Field Field Name Type Width 1 CODUL Character 2 TITLUL Character 3 AUTORUL Character 4 EDITURA Character 5 PRETUL Numeric 6 IMPRUMUT Character ** Total ** Dec 2 20 20 15 6 2 65 Index Collate

CITITORI.DBF Number of data records: 20 Date of last update : 04/04/04 Code Page :0 Field Field Name Type Width Dec 1 CODUL Character 20 2 NUMELE Character 20 3 ADRESA Character 4 4 TEL Numeric 15 5 BI Numeric 3
** Total ** 63

Index Collate

Meniul principal al programului este compus din urmatoarele optiuni:

OPERATII

LISTARI

IESIRE

La selectarea optiunii OPERATII a meniului principal, se va activa un submeniu cu urmatoarele optiuni:

OPERATII ADAUGARE CARTI STERGERE CARTI ADAUGARE CITITORI STERGERE CITITORI MODIFICARE CARTI MODIFICARE CITITORI

LISTARI

IESIRE

RESTITUIRE CARTI IMPRUMUT CARTI

Prima optiune a submeniului OPERATII ne permite adaugarea unor carti noi in baza de date CARTI.DBF. A doua optiune ne permite stergerea unor carti existente in baza de date CARTI.DBF A treia optiune ne permite adaugarea in CITITORI.DBF a unor persoane care vor sa imprumute carti. A patra optiune ne permite stergerea unor persoane din baza de date CITITORI.DBF. A cincea optiune ne permite modificarea in baza de date CARTI.DBF a codului, titlului, editurii si a pretului unei carti. A sasea optiune ne permite modificarea in baza de date CITITORI.DBF a codului, numelui,adresei, nr. de telefon, BI. A saptea optiune ne permite CARTI.DBF. A opta optiune OPERATII.DBF. ne restituirea unei carti din baza de date imprumutarea unei carti folosind

permite

La selectarea celei de-a doua optiuni a meniului principal se va activa un submeniu ca in figura de mai jos:

OPERATII CARTI CITITORI

LISTARI

IESIRE

TOATE CARTILE IMPRUMUTATE TOTI CITITORII CARE AU LUAT CARTI

Submeniul LISTARI ne permite afisarea pe ecran a datelor uneia sau mai multor carti si cititori in functie de optiunea aleasa. La alegerea primei optiuni se vor afisa date ale cartii. La alegerea celei de-a doua optiuni se vor afisa date ale cititorului. La alegerea celei de-a treia optiuni se vor afisa numele cititorului, cartea imprumutata si data imprumutarii. La alegerea celei de-a patra optiuni se va afisa numele cititorilor care au luat carti.

Ultima optiune a meniului principal este IESIRE DIN PROGRAM, care ne permite sa parasim programul in doua moduri: iesind in mediul FoxPro 2.6, odata cu alegerea optiunii IESIRE IN FoxPro sau iesind in sistemul de operare MsDos sau Windows odata cu alegerea optiunii IESIRE IN MsDos

OPERATII

LISTARI

IESIRE

IESIRE IN FoxPro IESIRE IN MsDos

Programul Principal
set talk off set safety off set date to british set confirm on set century on set cursor off deac wind all set cursor on clear @ 0,0,24,79 box replicate(chr(177),9) use carti in 1 use cititori in 2 use operatii in 3 defi wind fer from 0,0 to 4,79 shadow double color r*/n acti wind fer @ 1,5 say 'P R O G R A M D E G E S T I U N E A U N E I B I B L I O T E C I'; color n/r define wind fereastra from 5,5 to 20,71; shadow noclose color scheme 8 title 'Aveti grija ce modificati'; footer 'Iesire cu CTRL+END' define wind ferea from 5,6 to 20,72; shadow noclose color scheme 13
7

define wind fereastra1 from 5,6 to 20,72; shadow noclose color scheme 7 define wind fereastra2 from 5,6 to 20,72; shadow noclose color scheme 13 title 'Imprumut carti' define wind fereastra3 from 5,6 to 20,72; shadow noclose color scheme 13 title 'Adaugare cititori' define wind fereastra4 from 5,6 to 20,72; shadow noclose color scheme 13 title 'Adaugare carti' define wind fereastra5 from 5,6 to 20,72; shadow noclose color scheme 13 title 'Stergere carti' define wind fereastra6 from 5,6 to 20,72; shadow noclose color scheme 13 title 'Stergere cititori' define wind fereastra7 from 5,6 to 20,72; shadow noclose color scheme 13 title 'Restituire carti' define wind fereastra8 from 5,6 to 20,72; shadow noclose color scheme 13 title 'Toate cartile imprumutate' define wind fereastra9 from 5,6 to 20,72; shadow noclose color scheme 13 title 'Toti cititorii care au luat carti' define menu orizontal define pad mar1 of orizontal prompt ' define pad mar2 of orizontal prompt ' define pad mar3 of orizontal prompt ' defi popup vertical3 from 1,44 to 4,64 defi bar 1 of vertical3 prompt 'FoxPro' defi bar 2 of vertical3 prompt 'MS-DOS' define popup vertical1 from 1,0 to 10,20 define bar 1 of vertical1 prompt 'Adaugare carti'
8

Operatii ' Listari ' Iesire '

define bar 2 of vertical1 prompt 'Stergere carti' define bar 3 of vertical1 prompt 'Adaugare cititori' define bar 4 of vertical1 prompt 'Stergere cititori' define bar 5 of vertical1 prompt 'Modificare carti' define bar 6 of vertical1 prompt 'Modificare cititori' define bar 7 of vertical1 prompt 'Restituire carti' define bar 8 of vertical1 prompt 'Imprumut carti' define popup vertical2 from 1,17 to 6,48 define bar 1 of vertical2 prompt 'Carti' define bar 2 of vertical2 prompt 'Cititori' define bar 3 of vertical2 prompt 'Toate cartile imprumutate' define bar 4 of vertical2 prompt 'Toti citit. care au luat carti' on selection pad mar1 of orizontal activate popup vertical1 on selection pad mar2 of orizontal acti popup vertical2 on selection pad mar3 of orizontal acti popup vertical3 on selection bar 1 of vertical3 deac menu orizontal on selection bar 2 of vertical3 quit on selection bar 1 of vertical1 do ad_carti on selection bar 2 of vertical1 do st_carti on selection bar 3 of vertical1 do ad_cititori on selection bar 4 of vertical1 do st_cititori on selection bar 5 of vertical1 do modif_carti on selection bar 6 of vertical1 do modif_cititori on selection bar 7 of vertical1 do rest on selection bar 8 of vertical1 do impr on selection bar 1 of vertical2 do list_carti on selection bar 2 of vertical2 do list_cititori on selection bar 3 of vertical2 do list_mar1 on selection bar 4 of vertical2 do list_mar2 acti wind fereastra1 acti menu orizontal deac wind fereastra1 deac wind fer clear
9

procedure impr sele 3 acti wind fereastra2 cc=0 nn=space(20) h={} g=date() @ 2,2 say 'Codul cartii: ' get cc picture '99' valid cau(cc); error 'Acest cod mai exista' @ 3,2 say 'Numele cititorului:' get nn picture replicate('X',20) valid test(nn) error 'Nu exista' @ 4,2 say 'Data imprumutului: ' get g @ 5,2 say 'Data redarii: ' get h valid h>g; error 'Data redarii trebuie sa fie mai mare decat data imprumutului' read locate for upper(alltrim(nume))=upper(alltrim(nn)) hg=codc sele 3 appe blank replace codc with hg replace data_i with g replace data_r with h replace cod with cc deac wind fereastra2 return procedure rest sele 3 acti wind fereastra7 cont='D' do while cont='D' or cont='d' a=0 b=0 @2,2 say 'Dati codul cartii: ' get a picture replicate('9',2) valid a<>0 and cau1(a); error 'Nu exista cartea sau nu este imprumutata'
10

read gg=cod sele 1 locate for cod=gg if found() @ 3,2 say titlu endif sele 3 delete all for cod=a pack @7,0 say 'Doriti sa continuati?(D/N)' get cont read enddo deac wind fereastra7 return procedure ad_carti acti wind fereastra4 sele 1 cont='D' do while cont='D' or cont='d' a=0 b=space(20) c=space(20) d=space(20) e=0 @1,0 say 'Dati codul: ' get a picture replicate('9',2) valid cau2(a); error 'Acest cod mai exista' @2,0 say 'Dati titlu: ' get b picture replicate('X',20) valid b<>' '; error 'Dati titlul' @3,0 say 'Dati autorul:' get c picture replicate('X',20) valid c<>' '; error 'Dati autorul' @4,0 say 'Dati editura:' get d picture replicate('X',20) valid d<>' '; error 'Dati editura' @5,0 say 'Dati pretul: ' get e picture replicate('9',6) valid e>0; error 'Dati pretul mai mare decat 0' read
11

appe blank replace cod with a replace titlu with b replace autor with c replace editura with d replace pret with e @ 7,0 say "Continuati ?(D/N)" get cont read enddo deac wind fereastra4 return procedure ad_cititori acti wind fereastra3 sele 2 cont='D' do while cont='D' or cont='d' a=0 b=space(20) c=space(20) d=0 e=space(20) @1,0 say 'Dati codul: ' get a picture replicate('9',2) valid caut(a); error 'Acest cod mai exista' @2,0 say 'Dati numele: ' get b picture replicate('X',20) valid b<>' '; error 'Dati numele' @3,0 say 'Dati adresa: ' get c picture replicate('x',20) valid c<>' '; error 'Dati adresa' @4,0 say 'Dati telefonul:' get d picture replicate('9',6) valid telef(d); error 'Acest telefon mai exista sau nu ati dat nr. corect' @5,0 say 'Dati BI: ' get e picture replicate('x',8) valid len(alltrim(e))=8 error '8 caractere' read appe blank
12

replace codc with a replace nume with b replace adresa with c replace tel with d replace bi with e @10,0 say "Continuati ?(D/N)" get cont read enddo deac wind fereastra3 return procedure st_cititori acti wind fereastra6 sele 2 cont='D' do while cont='D' or cont='d' a=space(20) @1,0 say 'Dati numele cititorului:' get a picture replicate('X',20) valid numec(a); error 'Nu exista acest nume' read locate for alltrim(nume)=alltrim(a) fg=codc delete all for alltrim(nume)=alltrim(a) pack sele 3 locate for codc=fg if found() dele all for codc=fg pack endif @7,0 say "Continuati ?(D/N)" get cont read enddo deac wind fereastra6 return procedure st_carti acti wind fereastra5 sele 1 cont='D'
13

do while cont='D' or cont='d' a=space(20) @1,0 say 'Dati titlu cartii:' get a picture replicate('X',20) valid titl(a); error 'Nu exista aceasta carte' read delete all for titlu=a pack @7,0 say "Continuati ?(D/N)" get cont read enddo deac wind fereastra5 return procedure modif_carti sele 1 acti wind fereastra browse fields cod:r,titlu,editura,pret nodelete noappend window fereastra deacti wind fereastra return procedure modif_cititori sele 2 acti wind fereastra browse fields codc:r,nume,adresa,tel,bi nodelete noappend window fereastra deac wind fereastra return procedure list_carti sele 1 clear go top acti wind ferea brow nodelete noappend noedit nomenu window ferea deacti wind ferea return procedure list_cititori sele 2 go top
14

acti wind ferea brow nodelete noappend noedit nomenu window ferea deacti wind ferea return procedure list_mar1 sele 3 go top set cursor off acti wind fereastra8 do while not eof() carte=cod cit=codc sele 1 go top locate for cod=carte titl=titlu sele 2 go top locate for codc=cit nu=nume sele 3 @ 2,2 say 'Numele cititorului:' @ 2,25 say nu @ 3,2 say 'Cartea imprumutata:' @ 3,25 say titl @ 4,2 say 'Data imprumutului:' @ 4,25 say data_i c=inkey(20) clear skip enddo set cursor on deacti wind fereastra8 return procedure list_mar2 sele 2 go top set cursor off
15

acti wind fereastra9 do while not eof() a=codc sele 3 go top locate for codc=a if found() sele 2 @ 2,2 say 'Numele cititorului:' @ 2,25 say nume c=inkey(20) clear endif sele 2 skip enddo set cursor on deacti wind fereastra9 return function cau2 param c sele 1 locate for cod=c if found() return .F. else return .T. endif function cau param c sele 1 locate for cod=c if found() sele 3 locate for cod=c if found() return .F.
16

else return .T. endif else return .F. endif function cau1 param c sele 1 locate for cod=c if found() sele 3 locate for cod=c if found() return .T. else return .F. endif else return .F. endif function telef param c sele 2 locate for tel=c if found() return .F. else if len(alltrim(str(c)))=6 return .T. else return .F. endif endif function caut param c
17

sele 2 locate for codc=c if found() return .F. else return .T. endif function numec param c sele 2 locate for nume=c if found() return .T. else return .F. endif function titl param c sele 1 locate for titlu=c if found() return .T. else return .F. endif function test param g sele 2 locate for upper(alltrim(nume))=upper(alltrim(g)) if found() return .T. else return .F. endif

18

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