1




 



                    PROIECT  DE  SPECIALITATE



                                                TEMA


                            


              


                    Programare in Visual Fox Pro





Coordonator lucrare:                                  Elev:
Prof. Botezan Claudia                     Olariu Gladin Claudiu      



              STRUCTURA LUCRARII DE ATESTAT



Cap.I.     Denumirea si obiectul lucrarii
Cap.II.    Structura bazei de date
Cap.III.  Justificarea solutiei adoptate pentru realizarea lucrarii
Cap.IV.   Descrierea bazei teoretice a lucrarii
         Cap.V.     Descrierea structurii si a continutului lucrarii realizate
Cap.VI.    Anexe




















       Cap.I.   Denumirea si obiectul lucrarii

    Titlul lucrarii este: “Gestiunea echipei F.C. Valencia”.Operatiile executate in acest program asupra bazelor de date sunt cele primare, adica functiile relative ale unui SGBD asupra bazelor de date:

    Crearea bazei de date;
    Introducerea datelor in baza de date;
    Modificarea unor date deja existente in baza de date;
    Stergerea datelor din baza de date;
    Consultarea bazelor de date.






















  Cap.II. Structura bazei de date


Programul contine doua baze de date:
    table1.dbf
    table2.dbf

      Prima baza de date table1.dbf  este alcatuita din:

    jucator: Character 35
    numar tricou: Numeric 2
    pozitie: Character 15
    locul nasterii: Character 25
    anul nasterii: Numeric 4
    inaltime: Numeric 3
    greutate: Numeric 3
    debut: Date 8
    suma transfer: Numeric 12
   A doua baza de date table2.dbf contine:

    jucator: Character 35
    conditia fizica: Numeric 2
    viteza: Numeric 2
    puterea sutului: Numeric 2
    exactitatea pasei: Numeric 2
    forta: Numeric 2
    rezistenta: Numeric 2
    deposedare: Numeric 2
    agresivitate: Numeric 2
    total: Numeric 3







Cap.III.  Justificarea solutiei adoptate pentru  realizarea  lucrarii                                                                 

       Am utilizat limbajul de programare Visual FoxPro pentru creearea lucrarii de atestat, deoarece acest limbaj are un viitor in domeniul economic (de gestiune a bazelor de date),dar si pentru modul placut de lucru.
        Visual FoxPro este un Sistem de Gestiune a Bazelor de Date (SGBD), cunoscand in prezent o larga raspandire datorita aplicatiilor dezvoltate pentru domenii din cele mai diverse, cat si pentru interfata (meniuri,ferestre de dialog si alte caracteristici) care faciliteaza comunicarea usoara cu utilizatorul.
        SGBD-ul reprezinta sisteme informatice specializate in stocarea si prelucrarea unui volum mare de date. Un SGBD trebuie sa asigure urmatoarele functii elementare relative la bazele de date:
    definirea structurii(crearea bazei de date);
    introducerea datelor in bazelede date;
    modificarea unor date deja existente in bazele de date;
    stergerea datelor din bazele de date;
    consultarea bazelor de date (extragerea informatiilor).
       O serie de facilitatii ale SGBD-ului Visual FoxPro sunt date prin componentele specializate numite generatoare. Acestea ofera un mod de lucru comod si rapid, in ferestre specializate,utilizatorul acestor componente nu trebuie sa fie neaparat specializat in informatica si nu trebuie sa cunoasca foarte multe lucruri despre bazele de date. Cele mai utilizate generatoare sunt:
    generatoare de rapoarte;
    generatoare de meniuri;
    generatoare de ecran.








Cap.IV. Descrierea bazei teoretice a lucrarii

   
   In construirea programelor din acest proiect am folosit urmatoarele proceduri, functii si instructiuni:
    browse – afiseaza toate inregistrarile din baza de date;putem avea o fereastra BROWSE pentru fiecare zona de lucru cu conditia sa fie memorie suficienta;
    modi stru – permite modificarea campurilor in cadrul bazei de date;
    list – afiseaza toate inregistrarile;
    display – afiseaza inregistrarea curenta;
    go <nr> - pozitioneaza indicatorul de inregistrari pe inregistrarea nr;
    go top – pozitioneaza indicatorul de inregistrari pe prima inregistrare din BD;
    go bottom – pozitioneaza indicatorul de inregistrari pe ultima inregistrare din BD;
    skip – muta indicatorul de inregistrari relative lapozitia curenta a acestuia;
    record <nr> - are ca effect selectarea inregistrarii cu nr specificat;
    next <nr> - permite selectarea unui de nr inregistrarii incepand de la cea curenta inclusiv ea;
    rest – permite selectarea tuturor inregistrarilor , incepand de la cea curenta inclusiv ea si pana la sfarsitul tabelului;
    append – permite adaugarea de inregistrari in baza de date;
    append blank – permite adaugarea unei inregistrari vide la sfarsitul bazei de date;
    append before – permite adaugarea unei inregistrari inaintea ultimei inregistrari din baza de date;
    append blank before – permite adaugarea unei inregistrari vide pe penultima pozitie din baza de date;
    insert – insereaza o inregistrare dupa inregistrarea curenta;
    insert blank – insereaza o inregistrare vida dupa inregistrarea curenta;
    insert before – insereaza o inregistrare inaintea inregistrarii curente;
    insert blank before – insereaza o inregistrare vida inaintea inregistrarii curente;
    replace – termina executia unui program,predand controlul programului apelant,de pe nivelul anterior sau de pe cel mai inalt nivel, altui program sau fereastra de comanda;   
    delete – sterge logic o inregistrare;
    delete all – sterge logic toata baza de date;
    recall – permite recuperarea inregistrarilor sterse logic;
    pack – sterge fizic toate inregistrarile sterse logic;
    zap – sterge toata baza de date;
    ?recno() – afiseaza numarul inregistrarii curente;
    ?reccount() – afiseaza cate inregistrari sunt in BD;
    ?date() – afiseaza data curenta;
    Year(datan) – afiseaza anul current;
    Month(datan) – afiseaza luna curenta;
    Day(datan) – afiseaza ziua curenta;



 















Cap.V. Descrierea structurii si a continutului lucrarii realizate


         Forma principala contine 9 butoane de comanda:
    Despre ;
    Vizualizare – vizualizare jucatori ;
                            vizualizare calitati ;
    Adaugare – adaugare jucatori ;
                         adaugare calitati ;
    Cautare – cautare jucatori ;
                      cautare calitati ;
    Valoare ;
    Iesire .

             Butonul despre contine comenzile:
                                 thisform.release
                                 do form gladyinapoi
si ne duce in forma gladyinapoi.scx care contine: 4 label-uri si 1 buton si ofera date despre cel care a conceput acest proiect.
         Butonul adaugare jucator contine comenzile:
                                          thisform.release
                                          do form adaugare1
si ne duce in forma adaugare1.scx care contine: 9 label-uri, 9 text box-uri si 3 butoane si in care putem adauga noi jucatori si date despre acestia in prima baza de date.
         Butonul adaugare calitati contine comenzile:
                                         thisform.release
                                         do form adaugare2
si ne duce in forma adaugare2.scx care contine: 10 label-uri, 10 text box-uri si 3 butoane si in care putem adauga noi jucatori si date despre acestia in a doua baza de date.
          Butonul vizualizare jucatori contine comenzile:
                                         thisform.release
                                         do form vizualizare1
si ne duce in forma vizualizare1.scx care contine: 9 label-uri, 9 text box-uri si 6 butoane si care permite vizualizarea tuturor informatiilor despre jucatori, introduse in prima baza de date.
          Butonul vizualizare calitati contine comenzile:
                                         thisform.release
                                         do form vizualizare2
si ne duce in forma vizualizare2.scx care contine: 10 label-uri, 10 text box-uri si 6 butoane si care permite vizualizarea tuturor in formatiilor despre jucatori, introduse in a doua baza de date.
           Butonul cautare jucatori contine comenzile:
                                         thisform.release
                                         do form cautare1
si ne duce in forma cautare1.scx care contine: 9 label-uri, 8 text box-uri, 1 combo box si 4 butoane si care permite cautarea oricarui jucator dupa informatiile oferite de prima baza de date, dupa anumiti algoritmi bine stabiliti.
           Butonul cautare calitati contine comenzile:
                                         thisform.release
                                         do form cautare2
si ne duce in forma cautare2.scx care contine: 10 label-uri, 9 text box-uri, 1 combo box si 4 butoane si care permite cautarea oricarui jucator dupa informatiile oferite de a doua baza de date, dupa anumiti algoritmi bine stabiliti.
        Butonul VALOAREA este particular proiectului meu si
contine comenzile:
                                     thisform.release
                                     do form VALOAREA
si ne duce in forma VALOAREA.scx  care contine: 4 label-uri, 2 text box-uri si 3 butoane si care permite vizualizarea sumei de transfer a fiecarui jucator, precum si valoarea totala a clubului F.C. Valencia.
             Butonul  iesire contine comanda:
                                         thisform.release
si prin apasarea lui iesim din proiect.


1 Cap.VI.  Anexe

   In forma adaugare1 avem butoanele:

    Adaugare
 USE TABLE1.DBF
v1=alltrim(thisform.text1.value)
v2=thisform.text2.value
v3=alltrim(thisform.text3.value)
v4=alltrim(thisform.text4.value)
v5=thisform.text5.value
v6=thisform.text6.value
v7=thisform.text7.value
v8=thisform.text8.value
v9=thisform.text9.value
append blank
go bottom
replace jucator with v1
replace nr_tricou with v2
replace pozitie with v3
replace locul_nasterii with v4
replace anul_nasterii with v5
replace inaltime with v6
replace greutate with v7
replace debut with v8
replace suma_transfer with v9
THISFORM.TEXT1.VALUE=" "
THISFORM.TEXT2.VALUE=" "
THISFORM.TEXT3.VALUE=" "
THISFORM.TEXT4.VALUE=" "
THISFORM.TEXT5.VALUE=" "
THISFORM.TEXT6.VALUE=" "
THISFORM.TEXT7.VALUE=" "
THISFORM.TEXT8.VALUE=" "
THISFORM.TEXT9.VALUE=" "
THISFORM.REFRESH

    Renunt
thisform.text1.value=" "
thisform.text2.value=" "
thisform.text3.value=" "
thisform.text4.value=" "
thisform.text5.value=" "
thisform.text6.value=" "
thisform.text7.value=" "
thisform.text8.value=" "
thisform.text9.value=" "
thisform.refresh

    Back
THISFORM.RELEASE
do form glady

In forma adaugare2 avem butoanele:

    Adaugare
use table2.dbf
v1=alltrim(thisform.text1.value)
v2=thisform.text2.value
v3=thisform.text3.value
v4=thisform.text4.value
v5=thisform.text5.value
v6=thisform.text6.value
v7=thisform.text7.value
v8=thisform.text8.value
v9=thisform.text9.value
v10=thisform.text10.value
append blank
go bottom
replace jucator with v1
replace conditie_fizica with v2
replace vitaza with v3
replace puterea_sutului with v4
replace exactitatea_pasei with v5
replace forta with v6
replace rezistenta with v7
replace deposedare with v8
replace agresivitate with v9
replace total with v10
THISFORM.TEXT1.VALUE=" "
THISFORM.TEXT2.VALUE=" "
THISFORM.TEXT3.VALUE=" "
THISFORM.TEXT4.VALUE=" "
THISFORM.TEXT5.VALUE=" "
THISFORM.TEXT6.VALUE=" "
THISFORM.TEXT7.VALUE=" "
THISFORM.TEXT8.VALUE=" "
THISFORM.TEXT9.VALUE=" "
thisform.text10.value=" "
THISFORM.REFRESH

    Renunt
thisform.text1.value=" "
thisform.text2.value=" "
thisform.text3.value=" "
thisform.text4.value=" "
thisform.text5.value=" "
thisform.text6.value=" "
thisform.text7.value=" "
thisform.text8.value=" "
thisform.text9.value=" "
thisform.text10.value=" "
thisform.refresh

    Back
THISFORM.RELEASE
do form glady

In forma vizualizare1 avem butoanele:

    Inainte
if eof()=.T.
  messagebox("sfarsit de fisier")
else
   skip 1
   thisform.refresh
endif
    Inapoi
if bof()=.T.
   messagebox ("inceput de fisier")
else
 skip -1
thisform.refresh  
endif

    Modificare
thisform.command1.visible=.F.
thisform.command2.visible=.F.
thisform.command3.visible=.F.
thisform.command4.visible=.T.
thisform.command5.visible=.F.
thisform.command6.visible=.F.
thisform.text1.readonly=.F.
thisform.text2.readonly=.F.
thisform.text3.readonly=.F.
thisform.text4.readonly=.F.
thisform.text5.readonly=.F.
thisform.text6.readonly=.F.
thisform.text7.readonly=.F.
thisform.text8.readonly=.F.
thisform.text9.readonly=.F.

    Stergere
delete
pack
if recno ()<>1
skip -1
endif
thisform.refresh

    Ok
thisform.command1.visible=.T.
thisform.command2.visible=.T.
thisform.command3.visible=.T.
thisform.command4.visible=.F.
thisform.command5.visible=.T.
thisform.command6.visible=.T.
thisform.text1.readonly=.T.
thisform.text2.readonly=.T.
thisform.text3.readonly=.T.
thisform.text4.readonly=.T.
thisform.text5.readonly=.T.
thisform.text6.readonly=.T.
thisform.text7.readonly=.T.
thisform.text8.readonly=.T.
thisform.text9.readonly=.T.

    Back  
THISFORM.RELEASE
do form glady

In forma vizualizare2 avem butoanele:

    Inainte
if eof()=.T.
  messagebox("sfarsit de fisier")
else
   skip 1
   thisform.refresh
endif

    Inapoi
if bof()=.T.
   messagebox ("inceput de fisier")
else
 skip -1
thisform.refresh  
endif

    Modificare
thisform.command1.visible=.F.
thisform.command2.visible=.F.
thisform.command3.visible=.F.
thisform.command4.visible=.F.
thisform.command5.visible=.T.
thisform.command6.visible=.F.
thisform.text1.readonly=.F.
thisform.text2.readonly=.F.
thisform.text3.readonly=.F.
thisform.text4.readonly=.F.
thisform.text5.readonly=.F.
thisform.text6.readonly=.F.
thisform.text7.readonly=.F.
thisform.text8.readonly=.F.
thisform.text9.readonly=.F.
thisform.text10.readonly=.F.

    Stergere
delete
pack
if recno ()<>1
skip -1
endif
thisform.refresh

    Ok
thisform.command1.visible=.T.
thisform.command2.visible=.T.
thisform.command3.visible=.T.
thisform.command4.visible=.T.
thisform.command5.visible=.F.
thisform.command6.visible=.T.
thisform.text1.readonly=.T.
thisform.text2.readonly=.T.
thisform.text3.readonly=.T.
thisform.text4.readonly=.T.
thisform.text5.readonly=.T.
thisform.text6.readonly=.T.
thisform.text7.readonly=.T.
thisform.text8.readonly=.T.
thisform.text9.readonly=.T.
thisform.text10.readonly=.T.

    Back  
THISFORM.RELEASE
do form glady

In forma cautare1 avem butoanele:

    Modificare
thisform.command3.visible=.F.
thisform.command4.visible=.T.
thisform.command5.visible=.F.
thisform.command6.visible=.F.
thisform.text1.readonly=.F.
thisform.combo1.readonly=.F.
thisform.text3.readonly=.F.
thisform.text4.readonly=.F.
thisform.text5.readonly=.F.
thisform.text6.readonly=.F.
thisform.text7.readonly=.F.
thisform.text8.readonly=.F.
thisform.text9.readonly=.F.

    Stergere
delete
pack
if recno ()<>1
skip -1
endif
thisform.refresh

    Ok
thisform.command3.visible=.T.
thisform.command4.visible=.F.
thisform.command5.visible=.T.
thisform.command6.visible=.T.
thisform.text1.readonly=.T.
thisform.combo1.readonly=.T.
thisform.text3.readonly=.T.
thisform.text4.readonly=.T.
thisform.text5.readonly=.T.
thisform.text6.readonly=.T.
thisform.text7.readonly=.T.
thisform.text8.readonly=.T.
thisform.text9.readonly=.T.

    Back
THISFORM.RELEASE
do form glady

In forma cautare2 avem butoanele:
    Modificare
thisform.command3.visible=.F.
thisform.command4.visible=.F.
thisform.command5.visible=.T.
thisform.command6.visible=.F.
thisform.combo1.readonly=.F.
thisform.text2.readonly=.F.
thisform.text3.readonly=.F.
thisform.text4.readonly=.F.
thisform.text5.readonly=.F.
thisform.text6.readonly=.F.
thisform.text7.readonly=.F.
thisform.text8.readonly=.F.
thisform.text9.readonly=.F.
thisform.text10.readonly=.F.

    Stergere
delete
pack
if recno ()<>1
skip -1
endif
thisform.refresh

    Ok
thisform.command3.visible=.T.
thisform.command4.visible=.T.
thisform.command5.visible=.F.
thisform.command6.visible=.T.
thisform.combo1.readonly=.T.
thisform.text2.readonly=.T.
thisform.text3.readonly=.T.
thisform.text4.readonly=.T.
thisform.text5.readonly=.T.
thisform.text6.readonly=.T.
thisform.text7.readonly=.T.
thisform.text8.readonly=.T.
thisform.text9.readonly=.T.
thisform.text10.readonly=.T.

    Back
THISFORM.RELEASE
do form glady

In forma VALOAREA avem butoanele:
    Inainte
if eof()=.T.
  messagebox("sfarsit de fisier")
else
   skip 1
   thisform.refresh
endif

    Inapoi
if bof()=.T.
   messagebox ("inceput de fisier")
else
 skip -1
thisform.refresh  
endif

    Back
THISFORM.RELEASE

Cele mai ok referate!
www.referateok.ro