Sistemele de gestiune a bazelor de date (SGBD)-identificarea datelor care intervin intr-o problema si aplicarea algoritmilor fundamentali de prelucare a acestora.
Baza de date relationala este un instrument complex de organizare a datelor. Aceasta este prevazuta cu posibilitatea realizarii de legaturi intre doua sau mai multe baze de date , legaturi ce permit accesarea simultana a unor date care se afla intr-o anumita relatie din baze de date diferite. O baza de date poate fi prvita ca un tabel.
SGBD-trebuie sa asigure:
VISUAL FoxPro este cea mai noua versiune a sistemului de gestiune a bazelor de date FoxPro.Termenul visual inseamna ca aplicatia dispune de instrumente folosite de programarea vizuala.
Sistemul de gestiune a bazelor de date FoxPro este cel mai raspandit produs de acest tip pentru microcalculatoare.
FoxPro este un sistem de gestiune a bazelor de date relational dezvoltat de firma FoxSoftware.
Inca din cele mai vechi timpuri, omul a cautat metode prin care sa poata transporta diferite materiale sau hrana pe distanțe mult mai mari. Astfel, el a construit, folosindu-și inteligenta cu care este inzestrat, diferite mijloace de transport, de la cele mai rudimentare, atingand apogeul in sec. al XIX-lea, odata cu invenția automobilului.In zilele noastre automoblilul este cel mai important mijloc de transport fiind foarte util si practic.Exista o gama variata de automobile de la masini mici de oraș pana la autocamioane de transport internațional.Populația Terei deține un numar foarte mare de automobile care sunt intrebuințate in diferite scopuri.Pentru cei care nu dețin un automobil și au nevoie de un mijloc de transport exista o soluție:inchirierea acestuia.
In acest atestat tema mea este inchirierea de automobile. Proiectul meu este o aplicație pur didactica care poate fi utilizata cu mici modificari intr-o companie reala.Acest program reține informații cu privire la mașinile aflate in parcul auto și inchirierea acestora pe baza unui contract de inchiriere.Am gestionat in diferite tabele date despre mașini,clienți precum și inchirierea acestora.
Tabelele sunt relaționate astfel:mașina-client o relație n:n pe care am transformat-o cu ajutorul tabelei inchiriere intr-o relație de 1:n si 1:1.
Am utilizat limbajul de programare Visual FoxPro pentru crearea lucrarii de atestat, deoarece acest limbaj are un viitor in domeniul economic (de gestiune a bazelor de date),dar si pentru un mod rapid,corect si placut de lucru
MASINA
-campul 'id' este de tip numeric(5) si reprezinta id-ul masinii
-campul 'marca' este de tip character(15) si reprezinta denumirea masinii
-campul ' model' este de tip character(10) si reprezinta modelul masinii
-campul 'an_fab' este de tip numeric(5) si reprezinta anul de fabricatie al masinii
-campul 'cp' este de tip numeric(5) si reprezinta puterea dezvoltata de motorul masinii
-campul 'carburant' este de tip character(10) si reprezinta carburantul utilizat de masina
-campul 'culoare' este de tip character(10) si reprezinta culoarea masinii
-campul 'foto' este de tip general si reprezinta fotografia masinii
Masina.dbf
CLIENT
-campul 'cod_client' este de tip numeric(5) si reprezinta codul clientului
-campul 'nume' este de tip character(15) si reprezinta numele clientului
-campul 'prenume' este de tip character(15) si reprezinta prenumele clientului
-campul 'cnp' este de tip numeric(13) si reprezinta codul numeric personal al clientului
-campul 'telefon' este de tip character(10) si reprezinta numarul de telefon al clientului
-campul 'email' este de tip logical si reprezinta existenta adresei de mail a clientului
-campul 'adresa' este de tip memo si reprezinta adresa clientului
Client.dbf
INCHIRIERE
-campul 'nr' este de tip integer si reprezinta numarul inchirierii
-campul 'data' este de tip date si reprezinta data la care a fost inchiriata masina
-campul 'durata_ore' este de tip numeric(5) si reprezinta durata inchirierii masinii
-campul 'restituire' este de tip logical si reprezinta returnarea masinii
-campul 'id' este de tip numreic(5) si reprezinta id-ul masinii
-campul 'cod' este de tip numeric(5) si reprezinta codul clientului
Inchiriere.dbf
ERD-inițial cuprinde o relatie de n:n pe care o voi sparge intr-o relație de 1:n si 1:1
Masina |
# id *marca
*an_fab *cp *carburant * culoare * foto |
Client |
cod_client *nume *prenume *cnp *telefon *adresa |
n:n
ERD-final cuprinde o relație de 1:n si una de 1:1
Masina |
# id *marca *model *an_fab *cp *carburant * culoare * foto |
Client |
cod_client *nume *prenume *cnp *telefon *adresa |
Inchiriere |
*nr *data *durata *restituire *id *cod_client |
1:n 1:1
Pe fundalul aplicatiei am afișat o fotografie reprezentativa firmei peste care am atașat un meniu orizontal format din: actualizare, vizualizare, situație și terminare
I. In meniul actualizare am format un popup alcatuit din opțiunile: adaugare, modificare, stergere și info_top_cars_rent.
a) Procedura de Adaugare presupune alegerea unei opțiuni care se refera la adaugarea unei inregistrari noi in tabela: mașina/client;
b) Procedura de Modificare presupune alegerea unei opțiuni care se refera la modificarea unei inregistrari in tabela: mașina/client;
c) Procedura de Ștergere presupune ștergerea unei mașini/client a caror marca/nume se citește de la tastatura ;
d) Procedura Info_top_cars_rent presupune afișarea unor informații legate de firma TOP_CARS_RENT (locație,nr de telefon)
II. In meniul vizualizare am format un popup alcatuit din opțiunile: client,mașina,inchiriere.
a) Procedura Client se actualizeaza/afișeaza intr-un raport cu numele client.frx
b) Procedura Mașina se actualizeaza/afișeaza intr-un raport cu numele mașina.frx
c) Procedura Inchiriere se actualizeaza/afișeaza intr-un raport cu numele inchiriere.frx
III. In meniul situație am format un popup alcatuit din opțiunile:
cauta_mașina_clientului , cauta_clientul_mașinii , durata_inchirierii unei_mașini.
a) Procedura Cauta_mașina_clientului afișeaza mașina/mașinile inchiriate de un client al carui nume si prenume se citește de la tastatura.
b) Procedura Cauta_clientul_mașinii afișeaza clientul/clienții unei mașini a carei marca și model se citește de la tastatura;
c) Procedura Durata_inchirierii_unei_mașini afișeaza mașina/mașinile și durata de inchiriere de catre un client al carui nume și prenume se citește de la tastatura
IV. In meniul terminare am format un popup alcatuit din opțiunile: ieșire din program si ieșire din fox; Aceste proceduri executa ieșirea implicita dintr-un anumit program sau din fox.
SET TALK OFF
CLEAR
SET DEFAULT TO D:atestatfinal
SET COLOR OF SCHEME TO RGB
DEFINE WINDOW w1 FROM TO grow zoom float minimize FILL FILE CARS.bmp
DEFINE MENU men1
activate window w1
DEFINE PAD p1 of men1 PROMPT 'ACTUALIZARE' FONT 'ARIAL',16 STYLE 'B' AT
DEFINE PAD p2 OF men1 PROMPT 'VIZUALIZARE' FONT 'ARIAL',16 STYLE 'B' AT
DEFINE PAD p3 OF men1 PROMPT 'SITUATIE' FONT 'ARIAL',16 STYLE 'B' AT
DEFINE PAD p4 OF men1 PROMPT 'TERMINARE' FONT 'ARIAL',16 STYLE 'B' AT
DEFINE POPUP v1 FROM
DEFINE BAR OF v1 PROMPT 'ADAUGARE' FONT 'ARIAL', 16
DEFINE BAR OF v1 PROMPT 'MODIFICARE' FONT 'ARIAL', 16
DEFINE BAR OF v1 PROMPT 'STERGERE' FONT 'ARIAL', 16
DEFINE BAR OF v1 PROMPT 'INFO_TOP_CARS_RENT' FONT 'ARIAL', 16
DEFINE POPUP v2 FROM
DEFINE BAR OF v2 PROMPT 'CLIENT' FONT 'ARIAL', 16
DEFINE BAR OF v2 PROMPT 'MASINA' FONT 'ARIAL', 16
DEFINE BAR OF v2 PROMPT 'INCHIRIERE' FONT 'ARIAL', 16
DEFINE POPUP v3 FROM
DEFINE BAR OF v3 PROMPT 'CAUTA MASINA CLIENTULUI ' FONT 'ARIAL', 16
DEFINE BAR OF v3 PROMPT 'CAUTA CLIENTUL MASINII ' FONT 'ARIAL', 16
DEFINE BAR OF v3 PROMPT 'DURATA INCHIRIERII UNEI MASINI' FONT 'ARIAL', 16
DEFINE POPUP v4 FROM
DEFINE BAR OF v4 PROMPT 'IESIRE DIN PROGRAM' FONT 'ARIAL',16
DEFINE BAR OF v4 PROMPT 'IESIRE DIN FOX' FONT 'ARIAL',16
ON SELECTION pad p1 OF men1 activate popup v1
ON SELECTION pad p2 OF men1 activate popup v2
ON SELECTION pad p3 OF men1 activate popup v3
ON SELECTION pad p4 OF men1 activate popup v4
ON selection popup v1 do ACTUALIZARE
ON selection popup v2 do VIZUALIZARE
ON selection popup v3 do SITUATIE
ON SELECTION POPUP v4 do TERMINARE
ACTIVATE MENU men1
PROCEDURE actualizare
DO case
CASE BAR
DO ADAUGARE
CASE BAR
DO MODIFICARE
CASE BAR
DO STERGERE
CASE BAR
DO INFO_TOP_CARS_RENT
ENDCASE
RETURN
PROCEDURE vizualizare
DO case
CASE BAR
DO CLIENT
CASE BAR
DO MASINA
CASE BAR
DO INCHIRIERE
&&CASE BAR()=4
&&DO PRODUS
ENDCASE
RETURN
PROCEDURE situatie
DO case
CASE BAR
DO CAUTA_MASINA_CLIENTULUI
CASE BAR
DO CAUTA_CLIENTUL_MASINII
CASE BAR
DO DURATA_INCHIRIERII_UNEI_MASINI
CASE BAR
DO produs_comanda
ENDCASE
RETURN
PROCEDURE terminare
DO case
CASE BAR
DO TERMIN_1
CASE BAR
DO TERMIN_2
ENDCASE
RETURN
*PROCEDURA DE ADAUGARE DE NOI INREGISTRARI IN BAZELE DE DATE
PROCEDURE adaugare
*activate window w1
CLEAR
STORE TO opt
say 'introduceti optiunea pentru adaugare:1-Masina ; 2-Client: 'get opt
read
DO case
CASE opt=1
USE masina.dbf
GO top
CALCULATE MAX id TO max
a=max
APPEND BLANK
replace id WITH a
accept 'marca=' to b
replace marca WITH b
accept 'model=' to c
replace model WITH c
input 'an fabricatie=' to d
replace an_fab WITH d
input 'cai putere=' to e
replace cp WITH e
accept 'carburant=' to f
replace carburant WITH f
accept 'culoare=' to g
replace culoare WITH g
CASE opt=2
USE client.dbf
GO top
CALCULATE MAX(cod_client) TO max
a=max
APPEND BLANK
b=' '
accept 'Nume=' to b
accept 'Prenume=' to d
c=' '
input 'Cnp=' to c
accept 'Telefon=' to e
replace cod_client WITH a, nume WITH b, cnp WITH c, prenume WITH d, telefon WITH e
ENDCASE
CLEAR
IF OPT=1 OR OPT=2
DEFINE WINDOW w2 FROM TO
ACTIVATE WINDOW w2
BROWSE
WAIT 'apasati o tasta'
DEACTIVATE WINDOW w2
USE IN
ENDIF
*DEACTIVATE WINDOW w1
RETURN
*PROCEDURA DE MODIFICARE A DATELOR
PROCEDURE MODIFICARE
*activate window w1
CLEAR
STORE TO opt
say 'introduceti optiunea pentru a modifica date despre: 1-masina 2-client' get opt
read
DO case
CASE opt=1
USE masina.dbf
accept 'introduceti marca masinii pentru care vreti sa faceti modificarea:' to x
x=ALLTRIM UPPER(x))
GO top
LOCATE FOR ALLTRIM UPPER(marca))=x
IF FOUND
?? 'operati va rog modificarea si salvati cu CTRL+W'
DEFINE WINDOW w2 FROM TO
ACTIVATE WINDOW w2
BROWSE
USE IN
DEACTIVATE WINDOW w2
ELSE
DEFINE WINDOW w2 FROM TO
ACTIVATE WINDOW w2
?? 'masina',x,' nu exista in baza de date'
WAIT 'apasati o tasta'
DEACTIVATE WINDOW w2
endif
CASE opt=2
USE client.dbf
accept 'introduceti numele clientului pentru care vreti sa faceti modificarea:' to x
x=ALLTRIM UPPER(x))
GO top
LOCATE FOR ALLTRIM UPPER(nume))=x
IF FOUND
?? 'operati va rog modificarea si salvati cu CTRL+W'
DEFINE WINDOW w2 FROM TO
ACTIVATE WINDOW w2
brow
USE IN
DEACTIVATE WINDOW w2
ELSE
DEFINE WINDOW w2 FROM TO
ACTIVATE WINDOW w2
?? 'clientul cu numele ',x,' nu exista in baza de date'
WAIT 'apasati o tasta'
DEACTIVATE WINDOW w2
endif
ENDCASE
*DEACTIVATE WINDOW w1
RETURN
*PROCEDURA DE STERGERE A UNEI INREGISTRARI
PROCEDURE STERGERE
*activate window w1
CLEAR
STORE TO opt
say 'introduceti optiunea pentru a sterge date despre: 1-masina; 2-client' get opt
read
DO case
CASE opt=1
DEFINE WINDOW w2 FROM TO
ACTIVATE WINDOW w2
USE masina.dbf
accept 'Iintroduceti marca masinii pentru care vreti sa efectuati stergerea:' to x
accept 'Introduceti modelul masinii pentru care vreti sa efectuati stergerea:' to y
x=ALLTRIM UPPER(x))
y=ALLTRIM UPPER(Y))
GO top
LOCATE FOR ALLTRIM UPPER(marca))=x AND ALLTRIM UPPER(model))=y
IF FOUND
DELETE
accept 'doriti stergere definitiva?(da/nu)' to z
IF z='da'
PACK
browse
ELSE
RECALL all
BROWSE
endif
ELSE
?? 'masina ',x,' ',y,' nu exista in baza de date'
WAIT 'apasati o tasta'
endif
DEACTIVATE WINDOW w2
CASE opt=2
USE client.dbf
DEFINE WINDOW w2 FROM TO
ACTIVATE WINDOW w2
accept 'Introduceti numele clientului pentru care vreti sa faceti stergerea:' to x
accept 'Introduceti prenumele clientului pentru care vreti sa efectuati stergerea:' to y
x=ALLTRIM UPPER(x))
y=ALLTRIM UPPER(Y))
GO top
LOCATE FOR ALLTRIM UPPER(nume))=x AND ALLTRIM UPPER(prenume))=y
IF FOUND
DELETE
accept 'doriti stergere definitiva?(da/nu)' to z
IF z='da'
pack
ELSE
RECALL all
BROWSE
endif
DEACTIVATE WINDOW w2
ELSE
?? 'clientul ',x,' ',y,' nu exista in baza de date'
WAIT 'apasati o tasta'
endif
DEACTIVATE WINDOW w2
ENDCASE
*DEACTIVATE WINDOW w1
RETURN
*PROCEDURA INFO_TOP_CARS_RENT
PROCEDURE INFO_TOP_CARS_RENT
say'AVETI NEVOIE DE UN MIJLOC DE TRANSPORT,DAR NU DISPUNETI DE O MASINA? IATA SOLUTIA:'FONT 'ARIAL',13 STYLE 'B'
say'SC.TOP-CARS-RENT.SRL VA OFERA O GAMA VARIATA DE MASINI'FONT 'ARIAL',13 STYLE 'B'
say 'PENTRU TOATE ACTIVITATILE DUMNEAVOASTRA'FONT 'ARIAL',13 STYLE 'B'
say'NE PUTETI CONTACTA
*PROCEDURA DE VIZUALIZARE
PROCEDURE client
CLEAR
*REPORT FORM client.frx TO FILE raport_comanda.txt
*REPORT FORM client.frx TO printer
REPORT FORM client.frx preview
PROCEDURE masina
CLEAR
REPORT FORM masina.frx preview
PROCEDURE inchiriere
CLEAR
REPORT FORM inchiriere.frx preview
*PROCEDURA DE CAUTARE A MASINII CLIENTULUI
PROCEDURE CAUTA_MASINA_CLIENTULUI
SET TALK OFF
CLOSE ALL
CLEAR
x=' '
y=' '
say 'Introduceti numele clientului pentru care doriti sa efectuati cautarea: ' get x
say 'Introduceti prenumele clientului pentru care doriti sa efectuati cautarea: ' get y
read
USE inchiriere IN
USE masina IN
USE client IN
SELECT
INDEX on id TAG tid
SET ORDER TO tag tid
SELECT
SET RELATION TO id INTO
SET SKIP TO
SELECT
INDEX on cod_client TAG tcod
SET ORDER TO tag tcod
SELECT
SET RELATION TO cod INTO
SELECT
DISPLAY FIELDS masina.marca,masina.model FOR ALLTRIM UPPER(client.nume))=ALLTRIM UPPER(x)) AND ALLTRIM upper(client.prenume))=ALLTRIM UPPER(y))
USE
*PROCEDURA DE CAUTARE A CLIENTULUI UNEI MASINI
PROCEDURE CAUTA_CLIENTUL_MASINII
SET TALK OFF
CLEAR
USE client IN
USE inchiriere IN
USE masina IN
x=' '
y=' '
say 'Introduceti marca masinii pentru care doriti sa efectuati cautarea: ' get x
say 'Introduceti modelul masinii pentru care doriti sa efectuati cautarea: ' get y
read
SELECT
INDEX on id TAG tid
set order to tag tid
SELECT
SET RELATION TO id INTO
SET SKIP TO
SELECT
INDEX on cod_client TAG tcod
set order to tag tcod
SELECT
SET RELATION TO cod INTO additive
SELECT
LIST client.nume,client.prenume for ALLTRIM UPPER(masina.marca))=ALLTRIM UPPER(x)) AND ALLTRIM UPPER(masina.model))==ALLTRIM UPPER(y))
CLOSE all
*PROCEDURA DE AFISARE A DURATEI DE INCHIRIERE A UNEI MASINI
PROCEDURE DURATA_INCHIRIERII_UNEI_MASINI
SET TALK OFF
CLOSE ALL
CLEAR
x=' '
y=' '
say 'Introduceti numele clientului pentru care doriti sa aflati durata inchirierii: ' get x
say 'Introduceti prenumele clientului pentru care doriti sa aflati durata inchirierii: ' get y
read
USE inchiriere IN
USE masina IN
USE client IN
SELECT
INDEX on id TAG tid
SET ORDER TO tag tid
SELECT
SET RELATION TO id INTO
SET SKIP TO
SELECT
INDEX on cod_client TAG tcod
SET ORDER TO tag tcod
SELECT
SET RELATION TO cod INTO
SELECT
DISPLAY FIELDS masina.marca,masina.model,inchiriere.durata_ore FOR ALLTRIM UPPER(client.nume))=ALLTRIM UPPER(x)) AND ALLTRIM upper(client.prenume))=ALLTRIM UPPER(y))
USE
*PROCEDURA TERMINARE
PROCEDURE TERMIN_1
DEACTIVATE WINDOW W1
CANCEL
RETURN
PROCEDURE TERMIN_2
DEACTIVATE WINDOW W1
QUIT
RETURN
.FoxPro- teorie si aplicatii - autori: Eugen Popescu, Doina Preda, Colectia Informatica-Editura Else
.Manual Visual FoxPro- autori: Mariana, Ionut, Irina-Ioana Pantiru, Editura L&S
.Manual: Modulul2- Sisteme de gestiune a bazelor de date ; Programare Visaul FoxPro(Microsoft)- autor : Mariana Milosescu, Editura Didactica si Pedagogica
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |