Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Sisteme de gestiune a bazelor de date -foxpro

SISTEME DE GESTIUNE A BAZELOR DE DATE -FOXPRO


1. Fie o baza de date numita Elevi.dbf care contine urmatoarele informatii: nume(c,10), prenume(c,10), clasa (c,3), medie(n,5,2). Baza de date Olimp.dbf contine rezultatele la olimpiadele scolare ale elevilor din scoala si are structura nume(c,10), prenume(c,10), disciplina (c,15), rezultatul obtinut (c,15) (premiul I, premiul II, premiul III, mentiune, participant). Cerinte:

a)    sa se afiseze elevii premianti (I,II,III) din fiecare clasa;

b)     Sa se creeze o noua baza de date, numita Rezultate.dbf, care sa contina elevii din baza Olimp cu structura nume, prenume, disciplina, rezultatul obtinut, clasa, media.




a)   Use prob 1 in 1

Sele 1

Display all

Use olimp in 2 order nume

Sele 2

Display all

Sele 2

Set relation to nume into b

Index on clasa tag clasa

List a.nume, a.clasa, b.rez_obtin for b.rez_obtin='1' or b.rez_obtin='2' or b.rez_obtin='3'


b) copy to rezultate fields a.nume, b.prenume, b.disciplina, b.rez_obtin, a.clasa, a.medie

use rezultate in 3

sele3

display all

erase rezultate.dbf


2. La o biblioteca exista bazele de date carti.dbf cu campurile cod(N,2), autor(C,12), editura(C,12), pret(N,6), dataintr(D), deteriorat(L), si denumire.dbf cu campurile cod(N,2) si carte(C,12).

Se cer:

1)     Sa se afiseze pentru fiecare carte in parte numele ei, numele autorului, editura si pretul sub forma de raport. Sfarsitul raportului va contine o linie cu pretul total al cartilor.

2)     Sa se afiseze pretul total al cartilor din fiecare editura in parte.


3.Se da o situatie a cartilor unei biblioteci numita Biblio.dbf, care contine campurile: titlu (c,10), autor (c,30), editura (c,10), pret (n, 9,3), data de imprumut (d,8). Cerinte:

a)     pentru o editura ceruta de utilizator, sa se listeze titlul, autorul si pretul cartilor ordonate dupa un criteriu dat (autor sau pret sau titlu);

b)     sa se mareasca pretul cartilor din editura x cu p% unde p , x sunt citite de la tastatura.


a) use prob3 in 1

sele 1

list

accept ,nume editura' to x

index on autor tag autor

list titlu, autor, pret for editura =x

browse


b) accept 'editura?' to y

input to z

replace pret with pret=pret*z/100 for editura=y

sele 1

display all


4.Se da baza de date ELEVI.DBF avand articolele cu urmatoarea structura:

NUME - nume elev;

CLASA - 3 caractere din care doua semnifica anul, urmatorul litera clasei;

N1,N2,N3 - note obtinute la examen;

MED - media generala;

Se considera respins la examen elevul care are cel putin una din note mai mica decat 5 sau media generala mai mica decat 6.

Se cer urmatoarele:

a)     Sa se completeze campul MED cu media aritmetica a notelor N1, N2, N3 pentru toate inregistrarile.

b) Sa se afiseze numele elevului cu cea mai mare medie din fiecare clasa


a) Use prob4 in 1

Sele 1

List

Replace all media with (n1+n2+n3)/3

Display all


b) index on clasa tag clasa

calculate max(media) to x

list clasa, nume for media=x


5. Se da o situatie a cartilor unei biblioteci numita Biblio.dbf, care contine campurile: titlu (c,10), autor (c,30), editura (c,10), pret (n, 9,3), data de imprumut (d,8), data de restituit (d,8) si date cititor (c,40) (contine numele cititorului si orasul in care locuieste). Cerinte:

a)     sortarea alfabetica a tuturor cartilor unui autor specificat prin introducere de la tastatura si crearea cu acestea a bazei de date Copie.dbf;

b)     sa se creeze baza de date Restantiri.dbf care sa contina toti restantierii, in ordine alfabetica;


a) use prob5 in 1

sele 1

index on titlu tag titlu

accept ,nume autor' to x

sort to copie on titlu for autor=x

use copie in 2

display all


b) sele 1

index on date_cititor tag date cititor

sort to restantieri on date_cititor for empty(data_rest)

use restantieri in 3

display all


6. Se da baza de date ELEVI.DBF avand articolele cu urmatoarea structura:

NUME - nume elev;

CLASA - 3 caractere din care doua semnifica anul, urmatorul litera clasei;

ABS - numarul total de absente;

N1,N2,N3 - note obtinute la examen;

MED - media generala;

ADMIS - are valoarea .T. (admis, promovat) sau .F. (respins, nepromovat);

Se considera respins la examen elevul care are cel putin una din note mai mica decat 5 sau media generala mai mica decat 6.

Se cer urmatoarele:

a)Sa se listeze inregistrarile pentru o clasa citita de la tastatura cu elevii a caror medie este mai mare decat 8.

b)Sa se numere inregistrarile pentru care campul MED este mai mic decat 5 .


a)     use prob 6 in 1

sele 1

list

replace all med with (n1+n2+n3)/3

browse

accept ,nume clasa' to x

list cls, nume for clasa=x and med>8


b)     count to y all for med<5

'nr elevi cu media<5 este ', y


7.     Se da baza de date ELEVI.DBF avand articolele cu urmatoarea structura:

NUME - nume elev;

CLASA - 3 caractere din care doua semnifica anul, urmatorul litera clasei;

N1,N2,N3 - note obtinute la examen;

MED - media generala;

ADMIS - are valoarea .T. (admis, promovat) sau .F. (respins, nepromovat);

Se considera respins la examen elevul care are cel putin una din note mai mica decat 5 sau media generala mai mica decat 6.

Se cer urmatoarele:

a)Sa se ordoneze inregistrarile pe clase si in cadrul claselor pe medii;

b)Sa se obtina lista elevilor cu medii intre 9 si 10.


a) use prob7 in 1

sele 1

display all

replace all med with (n1+n2+n3)/3

display all

index on cls +str(med) tag t

display all


b) display all for med>=9 and med<=10



8. Se da o baza de date numita CARTI.DBF cu urmatoarea structura: titlu C(30), autor C(30), editura C(20), an N(4), pret N(7), nr N(5), gen C(15). Realizati un program intr-un SGBD care sa permita urmatoarele operatii:

Introducerea de date noi prin intermediul unei machete.

Calculul valorii tuturor cartilor din baza de date si a cartilor de un anumit gen (dat de la tastatura);

Cautarea unei carti dupa nume sau autor.


a) use prob8 in 1

goto bottom

append blank

@1,5 say 'introducerea datelor'

@3,5 say 'titlu' get titlu

@5,5 say 'autor' get autor

@7,5 say 'editura' get editura

@9.5 say 'an' get an

@11,5 say 'pret' get pret

@13,5 say 'numar' get nr

@15,5 say 'gen' get gen

read

display all

b) calculate sum(pret)

accept 'genul' to x

calculate sum(pret) for gen=x

c) accept 'titlul cartii' to y

accept 'nume autor' to z

list gen, pret for titlu=y and autor=z

9.Se da o baza de date numita ELEVI.DBF cu urmatoarea structura: nume C(40), clasa C(3), matricol N(5), adresa C(30), telefon C(10). Realizati un program intr-un SGBD care sa permita urmatoarele operatii:

Introducerea de date noi prin intermediul unei machete

Cautarea unui elev dupa nume sau numarul matricol;

Stergerea unui elev;


a)     use prob9 in 1

goto bottom

append blank

@1,5 say 'introducerea datelor'

@3,5 say 'numele' get nume

@5,5 say 'clasa' get clasa

@7,5 say 'nr. matricol' get matricol

@9.5 say 'adresa' get adresa

@11,5 say 'nr. tel' get telefon

read

display all


b)     accept ,nume elev' to x

locate for nume=x

?recno()


c)accept ,nume elev' to y

delete for nume=y

pack

display all


  1. Se da o baza de date numita MASINI.DBF cu urmatoarea structura: numar C(7), marca C(20), culoare C(15), an_fabric N(4), proprietar C (30), adresa C(20). Realizati un program intr-un SGBD care sa permita urmatoarele operatii:

Introducerea de date noi prin intermediul unei machete;

Cautarea unei masini dupa numar;

Afisarea tuturor masinilor in ordine descrescatoare dupa anul fabricatiei, apoi alfabetic dupa marca.

a)     use prob10 in 1

goto bottom

append blank

@1,5 say 'introducerea datelor'

@3,5 say 'nr masina' get numar

@5,5 say 'culoare' get culoare

@7,5 say 'marca' get marca

@9.5 say 'an fabricatie' get an_fabric

@11,5 say 'proprietar' get proprietar

@13,5 say 'adresa' get adresa

read

display all


b)     accept ,numar cautat' to x

list all for numar=x


c)     index on an_fabric to y descending

display all

index on marca to z

display all


  1. Se da o baza de date numita MAGAZIN.DBF cu urmatoarea structura: nume C(30), pret N(10), data_f D(8), pret N(10), cantitate N(5). Realizati un program intr-un SGBD care sa permita urmatoarele operatii:

Introducerea de date noi prin intermediul unei machete;

Afisarea tuturor produselor in ordine descrescatoare dupa data fabricatiei, apoi crescator dupa pret;

Calculul valori tuturor produselor din baza de date.

a)use prob11 in 1

goto bottom

append blank

@1,5 say 'introducerea datelor'

@3,5 say 'nume produs' get nume

@5,5 say 'pret' get pret

@7,5 say 'data fabricatiei' get data_f

@9.5 say 'cantitate' get cantitate

read

display all

b)index on data_f tag x descending

display all


c)replace all valoare with pret*cantitate

display all

  1. Se da o baza de date numita CASETE.DBF cu urmatoarea structura: interpret C(25), album C(25), pret N(6), data D(8), gen C (30). Realizati un program intr-un SGBD care sa permita urmatoarele operatii:

Introducerea de date noi prin intermediul unei machete;

Modificarea informatiilor despre o caseta;

Afisarea tuturor casetelor in ordine crescatoare dupa data aparitiei, apoi alfabetic dupa interpret.


a)     use prob12 in 1

goto botoom

append blank

@1,5 say 'introducerea datelor'

@3,5 say 'interpret' get interpret

@5,5 say 'album' get album

@7,5 say 'pret' get pret

@9.5 say 'data lansarii' get data_l

@11,5 say 'genul muzicii' get gen

read

display all


b)     browse

display all


c)     index on data_l tag x ascending

display all interpret, album, data_l

index on interpret tag interpret

display all

  1. Se da o baza de date numita BANCA.DBF cu urmatoarea structura: valuta C(25), data D(8), valoare N(5), cantitate N(10). Realizati un program intr-un SGBD care sa permita urmatoarele operatii:

Introducerea de date noi prin intermediul unei machete;

Afisarea pretului maxim al unei valute date dintr-o anumita luna;

Calculul valorii tuturor valutelor vandute intr-o anumita zi .


a) use prob13 in 1

goto bottom

append blank

@1,5 say 'introducerea datelor'

@3,5 say 'denumire valuta' get valuta

@5,5 say 'data schimb' get data_schimb

@7,5 say 'valoarea unei valute' get valoare

@9.5 say 'cantitatea schimbata' get cantitate

read

display all

b) input to x

accept 'numele valutei' to y

calculate all max(valoare) for valuta=y nad month(data_schimb)=x


c)input to z

replace all valoare with valoare*cantitate for day(data_schimb)=z

14. Se da baza de date ACTOR.DBF cu urmatoarea structura :

NUME                            C(30)

SEX                                 C(1)

NRFILME                       N(3)

a)     Sa se afiseze toti actorii care au jucat in mai mult de 10 filme

b)     Sa se afiseze toate actritele debutante (0 filme)

c)     Sa se afiseze in ordine descrescatoare a filmelor jucate actorii si apoi actritele


a) use prob14 in 1

display all

display all nume for nr_filme>10


b)display all nume for nr_filme>10


c)index on nr_filme tag x descending

display all nume, nr_filme for sex='m'

display all nume, nr_filme for sex='f'


15. Se da baza de date ELEV.DBF cu urmatoarea structura :

NUME              C(30)

NOTA1 N(5,2)

NOTA2 N(5,2)

MEDIA              N(5,2)

Baza de date se considera completa.



a)     Sa se formeze o baza de date ADMISI.DBF care contine campurile nume, media, la fel ca in ELEVI.DBF cu elevii care au media >=5 si o baza de date RESPINSI.DBF care sa contina campurile nume, media, la fel ca in ELEV.DBF, cu elevii care au media<5

b)     Sa se listeze pe ecran in ordine descrescatoare a mediilor elevii admisi si in ordine alfabetica elevii respinsi


a) use prob 15 in 1

sele 1

display all

replace all media with (nota1+nota2)/2

copy to admis fields nume, media for media>=5

use admis in 2

sele 2

index on media tag x descending

display all

copy to respinsi fields nume, media for media<5

use respinsi in 3

sele3

index on nume tag y

display all

16. Se da baza de date STUDENT.DBF care contine campurile :

NUME                            C(30)

MEDIA                           N(5,2)

TIPBURSA                     C(1)

0                daca nu are bursa (media<8)

1                daca are bursa tip1-1.000.000(media intre 8-9.49)

2                daca are bursa tip2-2.000.000(media intre 9.50-10)

a)     Sa se scrie un program pentru a completa tipul de bursa si in cazul in care studentii sunt bursieri, sa se completeze si suma corespunzatoare.

b)     Sa se afiseze studentii bursieri cerand tipul bursei, si sa se calculeze sumele totale necesare pentru fiecare tip de bursa.


a) Use prob 16 in 1

Display all

Replace all tipbursa with '0' for media<8

Replace all tipbursa with '1' for media>=8 and media<9.50

Replace all tipbursa with'2' for media.=9.50 and media<10

Replace all valoare with 1000000 for tipbursa='1'

Replace all valoare with 2000000 for tipbursa='2'

Display all


b) display all nume, tipbursa for tipbursa<>0

calculate sum(valoare) for tipbursa='1'

calculate sum(valoare) for tipbursa='2'

17. Se da baza de date STATE.DBF cu urmatoarea structura :

NUME_TARA               C(30)

CAPITALA C(20)

POPULATIE                                N(15)

CONTINENT                               C(20)

Baza de date se considera completa .

a)     Dandu-se numele tarii, sa se afiseze capitala si populatia

b)     Sa se afiseze toate tarile cu capitalele lor dintr-un continent

c)     Sa se afiseze cat este populatia lumii si populatia unui continent dat.


a)use problema 17 in 1

dislplay all

accept'nume tara' to x

display all nume-tara,capitala,populatie for nume tara=x

b)accept 'nume continent'tag y

index on continent tag t

display all nume tara,capitala for continent=y

c)calculate num(populatie)

accept 'nume,continent'to t

calculate sum(populatie)for continent=t


18. Se da baza de date ATESTAT.DBF cu urmatoarea structura :

NUME                            C(40)

NUMETEMA   C(30)

LIMBAJ                          C(20)

NOTAP1                        N(5,2) -NOTA PROF.1

NOTAP2                        N(5,2) -NOTA PROF.2

NOTAF                           N(5,2) -NOTA FINALA

a)     Sa se actualizeze aceasta baza de date (adaugare , modificare, stergere)

b)     Sa se listeze in ordine descrescatoare, dupa NOTAF, rezultatele elevilor la atestat.

a)use problema 18 in 1

display all

replace all nota f with (nota p1+nota p2)/2

browse

display all

b)index on nota f tag x

descending

display all nume,nota f

19. Se da baza de date PRODUSE.DBF. Se considera datele introduse.

CODPRODUS                             C(10)

DENUMIRE            C(30)

CANTITATEA                              N(5)

PRETCUMP            N(7)

PRETVANZ             N(7)

a)     Sa se scrie un program care afiseaza intr-o fereastra, produsele a caror cantitate este mai

mare decat 0.

b)     Sa se efectueze o vanzare a unui produs, cerandu-se codul produsului.

c)     Sa se listeze valoarea stocului la pret de cumparare si la pret de vanzare .

use problema 19 in 1

a)display all

browse fields denumire,cantitatea

for cantitate>0

replace all valoare_cump with cantitatea X

pret cump

b)accept 'codul produsului' to x

display all cod produs,pret vanzare

c)replace all valoare_vanz with cantitatea

pret-vanz.

calculate sum(valoare-cumparare)

calculate sum(valoare-vanzare


20 Se da baza de date SPITAL.DBF cu datele introduse si cu urmatoarea structura:

NUME                            C(30)

BOALA                           C(20)

NRZILETRAT    N (3)

a)     Sa se afiseze toti bolnavii care au o anumita boala.

b)     Sa se introduca numele si sa se afiseze boala pacientului si numarul zilelor de tratament.

c)     Sa se afiseze toti pacientii in ordine alfabetica.

a) use prob20 in 1

display all

accept 'nume boala' to x

display all nume for boala=x

b)accept 'nume pacient' to y

display all boala nrziletrat for nume=y


c)index on nume tag z

display all nume


21 Se da baza de date FORTAM.DBF cu urmatoarea structura :

MESERIE                       C(20)

NRPOSTDISP  N(2)

a)     Sa se faca un program care sa adauge in baza de date meserii noi sau decat numarul de posturi disponibile daca meseria deja exista.



b)     Sa se stearga inregistrarile pentru care numarul de posturi disponibile este 0

c)     Sa se afiseze numarul de meserii la un moment dat si numarul total de slujbe disponibile.

Use pb 21 in 1

Display all

a) accept 'nume meserie' to x

input to p

locate for meserie=x

if found( )

replace nrpostdisp with p

else

append blank

endif

replace all meserie with x


b) delete all for nrpostdisp=0

c) count to y

@1,60 say 'nr de meserii este: '

@1,80 say y

Count to z for nrpostdisp=0

@3,60 say 'nr de meserii disponibile'

@3,80say z


22 Se da baza de date ELEVI.DBF, in care se considera completate campurile nume, nota_rom si nota_mat.

NUME                            C(30)

NOTA_ROM    N(5,2)

NOTA_MAT                  N(5,2)

MEDIA                           N(5,2)

a)     Sa se scrie un program pentru a calcula mediile elevilor.

b)     Sa se listeze in ordine descrescatoare dupa medie, elevii admisi(media si notele>=5).

c)     Sa se tipareasca la cererea unui nume, notele si media acelui elev.


a) use pb22 in 1

display all

replace all media with (nota_rom+nota_mat)/2


b)index on media tag x descending

display all for media>=5 andnota_rom>=5 and nota_mat>=5


c) accept 'numele elevului' to y

display all nume, nota_rom, nota_mat, media for nume=y

23 Se da baza de date MUNCITOR.DBF cu urmatoarea structura:

NUME                            C(30)

DATAN                           DATE(8)

SALARIU                        N(6)

Baza de date se considera corecta.

a)     Sa se calculeze suma totala necesara pentru plata muncitorilor.

b)     Sa se afiseze toti muncitorii cu un salariu citit de la tastatura.

c)     Sa se stearga logic din baza de date muncitorii care nu au salariul completat.

a) use pb23 in 1

display all

calculate sum(salariu)


b) accept 'salariu calculat' to x

display all nume, salariu


c) delete all for empty (salariu)

display all

24 Sa se creeze baza de date Bac1.dbf cu urmatoarea structura:

Numele si prenumele caracter(30)

Nota1 numeric(5,2)

Nota2 numeric(5,2)

Nota3 numeric(5,2)

Media numeric(5,2)

Sa se introduca minim 5 inregistrari in baza de date. Sa se calculeze prin intermediul programului valorile pentru campul media.

Sa se afiseze datele in ordine descrescatoare dupa campul media.


Use pb24 in 1

Display all

Replace all media with (nota1+nota2+nota3)/3

Index on media tag x descending

Display all


25. Sa se creeze baza de date Agenda.dbf cu urmatoarea structura:

Numele si prenumele caracter(30)

Adresa memo

Telefon numeric(10)

Sa se introduca minim 5 inregistrari in baza de date.

Sa se afiseze persoanele in ordine alfabetica.

Sa se caute in baza de date telefonul unei persoane citite si in cazul in care s-a gasit, sa se afiseze.


Use pb25 in 1

Display all

Index on nume_prenumetag x

Display all nume_prenume

Accept 'numele persoanei' to y

If empty(telefon)

@1,60 say 'nu are telefon'

Else

?telefon

endif

26 Sa se creeze baza de date Absente.dbf cu urmatoarea structura:

Numele si prenumele caracter(30)

Absente motivate numeric(3)

Absente nemotivate numeric(3)

Total absente numeric(3)

Sa se introduca minim 5 inregistrari in baza de date. Sa se calculeze prin intermediul programului valorile pentru campul Total absente.

Sa se afiseze elevii in ordine descrescatoare dupa campul. Total absente.


Use pb26 in 1

Display all

Replace all total_abs with abs_n+abs_m

Index on total_abs tag x descending


27 Sa se creeze baza de date Farmacie.dbf cu urmatoarea structura:

Medicament caracter(20)

Data_exp data(8)

Numar numeric(3)

Sa se introduca minim 5 inregistrari in baza de date.

Sa se afiseze medicamentele expirate in ordine alfabetica.


Use pb28 in 1

Display all

Index on medicament tag x

Display all for data_exp<date( )


28 Sa se creeze baza de date Admitere.dbf cu urmatoarea structura:

Numele si prenumele caracter(30)

Nota1 numeric(5,2)

Nota2 numeric(5,2)

Media numeric(5,2)

Rezultat caracter(10)

Sa se introduca minim 5 inregistrari in baza de date.

Sa se calculeze prin intermediul programului valorile pentru campul media.

Sa se calculeze prin intermediul programului valorile pentru campul rezultat, astfel: "ADMIS" pentru elevii cu media>=5 si "RESPINS", pentru elevii cu media<5 .

Sa se afiseze elevii admisi in ordine descrescatoare dupa campul media.

Sa se afiseze elevii respinsi in ordine descrescatoare dupa campul media.

Use pb28 in 1

Display all

a)     replace all media with (nota1+nota2)/2

b)     replace all rezultat with 'admis' for media>=5

replace all rezultat with 'respins' for media<5

c)index on media tag x descending

display all nume_prenume, media for media>=5

d)display all nume_prenume, media for media<5