Service Auto [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

COLEGIUL NAŢIONAL „CALISTRAT HOGAS” – TECUCI

Atestat la informatică Service -Auto

Mai 2014 Visual Fox Professional

Profesor coordonator Ionescu Gabriela

Elev Paraschiv Cornel

Clasa a XII-a B

CUPRINS Capitolul I - Introducere.............................................................................................. 3 1.Denumirea temei.................................................................................................. 3 2.Enunţul temei....................................................................................................... 3 3.Motivația lucrării................................................................................................... 3 Capitolul II - Analiză.................................................................................................... 4 1.Descrierea activitatii analizate.............................................................................4 2. Prezentarea colecțiilor de date............................................................................4 3. Prezentarea suportului teoretic...........................................................................5 Capitolul III - Arhitectura sistemului............................................................................9 1. Modelul conceptual al datelor.............................................................................9 2. Implementarea aplicației................................................................................... 10 3. Prezentarea programelor................................................................................... 11 Interogări.................................................................................................................. 25 Capitolul IV- Listare program.................................................................................... 26 Bibliografie............................................................................................................... 26

Capitolul I - Introducere

1.Denumirea temei Evidenta unui service auto.

2.Enunţul temei Se va elabora un sistem informatic care să realizeze evidenta unui service auto folosind Visual FoxPro. Aplicaţia va conţine : -meniu -formulare pentru actualizarea bazei de date -interogări

3.Motivația lucrării Lucrarea a fost elaborata cu scopul de a tine evidenta unui service auto.

3

Capitolul II - Analiză

1.Descrierea activitatii analizate Evidenta unui service auto se realizează prin manipularea unor informaţii despre angajati (cod_ang, nume, prenume, localitate), masini (cod_masina, cod_ang, cod_serv, nume, an_fabr), servicii (cod_serv, nume, pret).

2. Prezentarea colecțiilor de date

Baza de date Service.dbc cuprinde 3 tabele utilizate în activitatea analizată: -tabela angajati.dbf are în componență 4 câmpuri care rețin informații cu privire la angajati. -tabela masini.dbf curpinde 5 câmpuri care furnizează informații despre masinile din service. -tabela servicii.dbf cuprinde 3 câmpuri cu informatii privind serviciile service-ului.

4

3. Prezentarea suportului teoretic

Pentru manipularea informaţiei in cadrul activităţii realizate au fost folosite următoarele tipuri de date: -tipul numeric, cu subtipul integer folosit pentru reprezentarea numerelor întregi; -tipul alfanumeric, care are ca subtip şirul de caractere (character) delimitat de doua apostrofuri sau ghilimele şi a cărui lungime maximă este de 254 de caractere;

Baza de date relaţionala este formata dintr-unul sau mai multe tabele între care s-au stabilit legături (relaţii). Relaţia dintre doua tabele este o legătură dintre un câmp sau un ansamblu de câmpuri dintr-un tabel (cheia primară) şi câmpurile corespunzătoare dintr-un alt tabel (cheia secundară). Există mai multe tipuri de relaţii determinate de conectivitățile maxime ale entităților ale căror înregistrări se află în tabele între care s-a stabilit o legătură printr-o asociere. În aplicaţia analizată s-a utilizat tipul de legătură 1 la n (1:n) adica o înregistrare din primul tabel este legată la mai multe înregistrari din al doilea tabel.

Actualizarea tabelului se poate face prin: Adăugarea de noi înregistrări: -adăugarea de înregistrări la sfârșitul tabelului prin intermediul comenzii append -adăugarea unei înregistrări vide : append blank -adăugarea înregistrărilor dintr-un alt tabel: append from [fields ] [for ]; -inserarea în interiorul tabelului: 5

insert [before] [blank];

Ştergerea înregistrărilor: -ştergere logica : delete [] [for ] [while ]; -refacerea înregistrărilor sterse logic : recall [] [for ] [while ]; -ştergerea fizica: pack; -ştergerea fizica a tuturor înregistrărilor : zap;

Modificarea înregistrărilor: -înlocuirea valorii unui câmp cu o valoare specificată : replace nume camp [] with [for ] [while ]; -interactiv, prin urmatoarele comenzi:  browse [fields ] [noappend] [noedit] [nodelete];  edit [fields ] [noappend] [noedit] [nodelete];  change [fields ] [noappend] [noedit] [nodelete];

Consultarea tabelului pentru obţinerea unor informaţii:  list/display [fields] [] [for ] [while

] [to printer \ to file ] [off];  list=dispay all;

Sortarea tabelului

În urma sortării unui tabel se creează un nou tabel în care înregistrările sunt rearanjate în urma criteriului de sortare folosit. Sintaxa comenzii este :

6

sort to on [/a] [/d] [/c] [ [/a] [/d] [/c] ...] [ascending] [descending] [] [for ] [while ] [fields ];

Indexarea tabelului Sintaxa comenzii este: index on to \tag [of ] [for] [ascending] [descending] [additive];

Comenzi tabela :

de

poziţionare

pe

o

înregistrare

din

1.după numărul înregistrării: a) goto | go n | top | bottom; b) skip [n];

2.după un criteriu logic de căutare : a) locate for [] [while ]; b) continue;

3.alte criterii:

a) reccount() - obţine numărul de inregistrări din tabela; b) recno() - obţine numărul înregistrării curente din tabela; c) eof() - fumizează un rezultat logic care este .T. daca pointerul este poziţionat

pe ultima înregistrare din tabela;

7

d) bof() - fumizează un rezultat logic care este .T. dacă pointerul este poziţionat

pe prima înregistrare din tabela; e) found() - furnizează un rezultat logic care este .T. dacă a avut succes operaţia de

căutare.

Raportul este o colecţie de informaţii obţinute din datele stocate in tabelele bazei de date, prezentate utilizatorului într-o formă cât mai clară si mai concisă. În general este conceput sub forma unui tabel având şi funcţia de sortare şi grupare a datelor. Raportul se compune din : secţiunea de date (Detail), antetul paginii (Page Header), subsolul paginii (Page Footer), antetul raportului (Report Header/Title), subsolul raportului (Report Footer/Summary), grupul (Group). Raportul este memorat într-un fişier cu extensia .frx si se poate tipări cu comanda: report form [heading ] [summary] [J [for ] [while ] [to printer | to file ].

Interogarea este operaţia prin care se extrag date din baza de date fară să fie şterse sau modificate - ce vor fi afişate într-un anumit format. Folosind o interogare se pot executa urmatoarele operaţii: -combinarea înregistrărilor din mai multe tabele într-un singur tabel; -selectarea numai a înregistrărilor care îndeplinesc un anumit criteriu; -afişarea înregistrărilor în ordinea dorita; -afişarea câmpurilor calculate.

În Visual FoxPro se poate crea o interogare : -interactiv folosind query designer; 8

-prin limbajul SQL (instrucţiunea select - diferită de comanda select folosită pentru selectarea unei zone de lucru). Interogarea este salvata într-un fişier cu extensia .qpr si se lanseaza în execuţie cu comanda: do .qpr

Capitolul III - Arhitectura sistemului 1. Modelul conceptual al datelor i)Tabela angajati:

Conține informații despre prenume(C,30), localitate(C,30);

angajati:

cod_ang(N,5),

nume(C,30),

ii)Tabela masini:

9

Conține informații despre masinile din service: cod_masina(N,5), cod_ang(N,5), cod_serv(N,10), nume(C, 20), an_fabr(N,10); iii)Tabela servicii:

Conține informații despre serviciile prestate de service: cod_serv(N,5), nume(C,20), pret(N,8);

2. Implementarea aplicației În aplicația analizată au fost implementate cu ajutorul formularelor proceduri de adăugare, ștergere, modificare, listare, căutare, sortare, interogare. Pentru fiecare dintre tabelele angajati, masini, servicii s-au efectuat: adăugare angajati, masini, servicii, ștergere angajati, masini, servicii și modificare angajati, masini, servicii. 10

De asemenea asupra tabelelor s-au executat prelucrări prin intermediul interogărilor. Toate aceste operații au fost incluse într-un meniu.

3. Prezentarea programelor

Adăugare Angajați

Butonul ADĂUGARE (click event): 11

PRIVATE PRIVATE PRIVATE PRIVATE

valcod_ang valnume valprenume vallocalitate

SET TALK OFF valcod_ang=VAL(ALLTRIM(thisform.editcod_ang.Text)) valnume=PROPER(ALLTRIM(thisform.editnume.Text)) valprenume=PROPER(ALLTRIM(thisform.editprenume.Text)) vallocalitate=PROPER(ALLTRIM(thisform.editlocalitate.Text)) IF VAL(ALLTRIM(thisform.editcod_ang.Text))=0 MESSAGEBOX("Nu ati introdus cod angajat!") RETURN ENDIF CLOSE ALL SELE 1 USE angajati LOCATE FOR (valcod_ang)=cod_ang IF FOUND()=.t. MESSAGEBOX("Exista deja acest angajat!") RETURN ENDIF CLOSE ALL USE angajati APPEND BLANK replace cod_ang WITH valcod_ang replace nume WITH PROPER(valnume) replace prenume WITH PROPER(valprenume) replace localitate WITH PROPER(vallocalitate) MESSAGEBOX("Adaugarea a reusit!")

Butonul RESETARE (click event): SET TALK OFF thisform.editcod_ang.Value="" thisform.editnume.Value="" thisform.editprenume.Value="" thisform.editlocalitate.Value=""

Butonul AFIŞARE (click event): SET TALK OFF USE angajati BROWSE NOEDIT NODELETE noappend

Adăugare Mașini

12

Butonul ADĂUGARE (click event): PRIVATE PRIVATE PRIVATE PRIVATE PRIVATE

valcod_masina valcod_ang valcod_serv valcod_n valan_fabr

SET TALK OFF valcod_masina=VAL(ALLTRIM(thisform.editcod_masina.Text)) valcod_ang=VAL(ALLTRIM(thisform.editcod_ang.Text)) valcod_serv=VAL(ALLTRIM(thisform.editcod_serv.Text)) valcod_n=PROPER(ALLTRIM(thisform.editcod_n.Text)) valan_fabr=VAL(ALLTRIM(thisform.editan_fabr.Text)) IF VAL(ALLTRIM(thisform.editcod_masina.Text))=0 MESSAGEBOX("Nu ati introdus cod masina!") RETURN ENDIF CLOSE ALL SELE 1 USE masini LOCATE FOR (valcod_masina)=cod_masina if FOUND()=.T. MESSAGEBOX("Exista deja aceasta masina in service!") RETURN ENDIF CLOSE ALL USE masini APPEND BLANK replace cod_masina WITH VALcod_masina

13

replace cod_ang WITH VALcod_ang replace cod_serv WITH valcod_serv replace nume WITH valcod_n replace an_fabr WITH valan_fabr MEssagebox("Adaugarea s-a efectuat!")

Butonul RESETARE(click event): SET TALK OFF thisform.editcod_masina.Value="" thisform.editcod_ang.Value="" thisform.editcod_serv.Value="" thisform.editcod_n.Value="" thisform.editan_fabr.Value=""

Butonul AFIŞARE (click event): SET TALK OFF USE mașini BROWSE NOEDIT NODELETE noappend

Adăugare Servicii

Butonul ADĂUGARE (click event): PRIVATE valcod_serv

14

PRIVATE valnume PRIVATE valpret SET TALK OFF valcod_serv=VAL(ALLTRIM(thisform.editcod_serv.Text)) valnume=PROPER(ALLTRIM(thisform.editnume.Text)) valpret=VAL(ALLTRIM(thisform.editpret.Text)) IF VAL(ALLTRIM(thisform.editcod_serv.Text))=0 MESSAGEBOX("Nu ati introdus cod serviciu!") RETURN ENDIF CLOSE ALL SELE 1 USE servicii LOCATE FOR (valcod_serv)=cod_serv IF FOUND()=.t. MESSAGEBOX("Exista deja aceast serviciu!") RETURN ENDIF CLOSE ALL USE servicii APPEND BLANK replace cod_serv WITH valcod_serv replace nume WITH valnume replace pret WITH valpret MEssagebox("Adaugarea s-a efectuat!")

Butonul RESETARE (click event): SET TALK OFF thisform.editcod_serv.Value="" thisform.editnume.Value="" thisform.editpret.Value=""

Butonul AFIŞARE(click event): SET talk OFF USE servicii BROWSE NOEDIT NODELETE noappend

Modificare Angajați

15

Butonul de MODIFICARE (click event): PRIVATE PRIVATE PRIVATE PRIVATE

valcod_ang valnume valprenume vallocalitate

SET TALK OFF valcod_ang=VAL(ALLTRIM(thisform.editcod_ang.Text)) valnume=PROPER(ALLTRIM(thisform.editnume.Text)) valprenume=PROPER(ALLTRIM(thisform.editprenume.Text)) vallocalitate=PROPER(ALLTRIM(thisform.editlocalitate.Text)) IF VAL(ALLTRIM(thisform.editcod_ang.Text))=0 MESSAGEBOX("Nu ati introdus cod angajat!") RETURN ENDIF CLOSE ALL USE angajati LOCATE FOR cod_ang=valcod_ang IF FOUND() IF LEN(ALLTRIM(valnume))0 replace nume WITH PROPER(valnume)

16

ENDIF IF LEN(ALLTRIM(valprenume))0 replace prenume WITH PROPER(valprenume) ENDIF IF LEN(ALLTRIM(vallocalitate))0 replace localitate WITH PROPER(vallocalitate) ENDIF MESSAGEBOX("Modificarea s-a efectuat!") ELSE MESSAGEBOX("Angajat inexistent!") ENDIF USE

Butonul AFIŞARE MODIFICARE (click event): SET TALK OFF valcod_ang=VAL(ALLTRIM(thisform.editcod_ang.Text)) SELECT * FROM angajati WHERE cod_ang=valcod_ang USE

Butonul Afisare (click event): SET TALK OFF CLOSE ALL USE USE angajati BROWSE NOEDIT NODELETE noappend USE

Butonul Resetare (click event): SET TALK OFF thisform.editcod_ang.Value="" thisform.editnume.Value="" thisform.editprenume.Value="" thisform.editlocalitate.Value=

Modificare Mașini

17

Butonul MODIFICARE (click event): PRIVATE PRIVATE PRIVATE PRIVATE PRIVATE

valcod_masina valcod_ang valcod_serv valcod_n valan_fabr

SET TALK OFF valcod_masina=VAL(ALLTRIM(thisform.editcod_masina.Text)) valcod_ang=VAL(ALLTRIM(thisform.editcod_ang.Text)) valcod_serv=VAL(ALLTRIM(thisform.editcod_serv.Text)) valcod_n=PROPER(ALLTRIM(thisform.editcod_n.Text)) valan_fabr=VAL(ALLTRIM(thisform.editan_fabr.Text)) IF VAL(ALLTRIM(thisform.editcod_masina.Text))=0 MESSAGEBOX("Nu ati introdus cod masina!") RETURN ENDIF CLOSE ALL USE masini LOCATE FOR cod_masina=valcod_masina IF FOUND()

18

IF valcod_ang0 replace cod_ang WITH valcod_ang ENDIF IF valcod_serv0 replace cod_serv WITH valcod_serv ENDIF IF LEN(ALLTRIM(valcod_n))0 replace nume WITH PROPER(valcod_n) ENDIF IF valan_fabr0 replace an_fabr WITH valan_fabr ENDIF MESSAGEBOX("Modificarea s-a efectuat!") ELSE MESSAGEBOX("Masina inexistenta!") ENDIF USE

Butonul AFIŞARE MODIFICARE (click event): SET TALK OFF valcod_masina=VAL(ALLTRIM(thisform.editcod_masina.Text)) SELECT * FROM masini WHERE cod_masina=valcod_masina USE

Butonul Afisare (click event): SET TALK OFF CLOSE all USE masini BROWSE NOEDIT NODELETE noappend

Butonul Resetare (click event): SET TALK OFF thisform.editcod_masina.Value="" thisform.editcod_ang.Value="" thisform.editcod_serv.Value="" thisform.editcod_n.Value="" thisform.editan_fabr.Value=""

Modificare Servicii

19

Butonul MODIFICARE (click event): PRIVATE valcod_serv PRIVATE valnume PRIVATE valpret SET TALK OFF valcod_serv=VAL(ALLTRIM(thisform.editcod_serv.Text)) valnume=PROPER(ALLTRIM(thisform.editnume.Text)) valpret=VAL(ALLTRIM(thisform.editpret.Text)) IF VAL(ALLTRIM(thisform.editcod_serv.Text))=0 MESSAGEBOX("Nu ati introdus cod serviciu!") RETURN ENDIF CLOSE ALL USE servicii LOCATE FOR cod_serv=valcod_serv IF FOUND() IF LEN(ALLTRIM((valnume)))0

20

replace nume WITH PROPER (valnume) ENDIF IF valpret0 replace Pret WITH valpret ENDIF MESSAGEBOX("Modificarea s-a efectuat!") ELSE MESSAGEBOX("Serviciu inexistent!") ENDIF USE

Butonul AFIŞARE MODIFICARE (click event): SET TALK OFF valcod_serv=VAL(ALLTRIM(thisform.editcod_serv.Text)) SELECT * FROM servicii WHERE cod_serv=valcod_serv USE

Butonul Afisare (click event): SET TALK OFF USE USE servicii BROWSE NOEDIT NODELETE USE

Ştergere Angajati

Butonul ŞTERGERE (click event): SELECT 1

21

USE angajati PRIVATE valcod_ang PRIVATE pozitie SET TALK OFF valcod_ang=VAL(ALLTRIM(thisform.editcod_ang.Text)) **use angajati LOCATE FOR cod_ang=valcod_ang pozitie=RECNO() IF EOF()=.T. AND FOUND()=.F. MESSAGEBOX("Inregistrarea de sters nu exista!") ELSE &&pozitie=recno() GOTO pozitie DELETE PACK MESSAGEBOX("Stergere reusita!") ENDIF USE

Butonul AFIŞARE (click event): SET TALK OFF SELECT * FROM angajati USE

Butonul RESETARE (click event): SET TALK OFF thisform.editcod_ang.Value="" CLOSE DATA

Butonul CĂUTARE ANGAJATI (click event): SET TALK OFF IF VAL(ALLTRIM(thisform.editcod_ang.Text))=0 MESSAGEBOX("Nu ati introdus cod angajat!") RETURN ENDIF valcod_ang=VAL(ALLTRIM(thisform.editcod_ang.Text)) SELECT * FROM angajati WHERE cod_ang=valcod_ang USE

Ştergere Mașini

22

Butonul ŞTERGERE (click event): SELECT 1 USE masini PRIVATE valcod_masina PRIVATE pozitie SET TALK OFF valcod_masina=VAL(ALLTRIM(thisform.editcod_masina.Text)) **use masini LOCATE FOR cod_masina=valcod_masina pozitie=RECNO() IF EOF()=.T. AND FOUND()=.F. MESSAGEBOX("Inregistrarea de sters nu exista!") ELSE &&pozitie=recno() GOTO pozitie DELETE PACK MESSAGEBOX("Stergere reusita!") ENDIF USE

Butonul CĂUTARE MASINA(click event): SET TALK OFF IF VAL(ALLTRIM(thisform.editcod_masina.Text))=0 MESSAGEBOX("Nu ati introdus cod masina!") RETURN ENDIF valcod_masina=VAL(ALLTRIM(thisform.editcod_masina.Text)) SELECT * FROM masini WHERE cod_masina=valcod_masina USE

23

Butonul AFIŞARE (click event): SET TALK OFF SELECT * FROM masini USE

Butonul RESETARE (click event): SET TALK OFF thisform.editcod_masina.Value="" CLOSE DATA

Ştergere Servicii

Butonul ŞTERGERE(click event): SELECT 1 USE servicii PRIVATE valcod_serv PRIVATE pozitie SET TALK OFF valcod_serv=VAL(ALLTRIM(thisform.editcod_serv.Text)) **use angajati LOCATE FOR cod_serv=valcod_serv pozitie=RECNO() IF EOF()=.T. AND FOUND()=.F. MESSAGEBOX("Inregistrarea de sters nu exista!") ELSE &&pozitie=recno() GOTO pozitie

24

DELETE PACK MESSAGEBOX("Stergere reusita!") ENDIF USE

Butonul AFIŞARE (click event): SET TALK OFF SELECT * FROM servicii USE

Butonul RESETARE (click event): SET TALK OFF thisform.editcod_serv.Value="" CLOSE DATA

Butonul CĂUTARE SERVICII (click event): SET TALK OFF IF VAL(ALLTRIM(thisform.editcod_serv.Text))=0 MESSAGEBOX("Nu ati introdus codul serviciului!") RETURN ENDIF valcod_serv=VAL(ALLTRIM(thisform.editcod_serv.Text)) SELECT * FROM servicii WHERE cod_serv=valcod_serv use

Interogări

25

1. 2. 3. 4. 5.

Select Select Select Select Select

* * * * *

from from from from from

angajati servicii masini angajati order by nume asc angajati where nume like '%escu'

Capitolul IV- Listare program Print Screens

26

27

Bibliografie

 Manual de Informatica - SGBD - Sisteme de Gestiune a Bazelor de Date- Mariana Milosescu, Editura Didactica si Pedagogica  Baze de date in Visual FoxPro-Mariana Milosescu, Editura Teora

28