Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


INFORMATICA - CENTRU DE VANZARE AL PIESELOR DE MASINI - FoxPro

fox pro



+ Font mai mare | - Font mai mic





 

I.TEMA

CENTRU DE VANZARE AL PIESELOR DE MASINI

I. INTRODUCERE

Programul urmator, conceput in limbajul de programare Visual Fox Pro 6.0 poate fi utilizat la un centru de vanzare al masinilor

Volumul foarte mare de date necesare pentru a tine evidenta tuturor masinilor existente necesita o munca obositoare de contabilitate.

Programul de fata inlesneste retinerea acestor informatii intr-un mod

mult mai eficient. Cu ajutorul acestui program firma nu mai are nevoie de un contabil toate operatiunile putand fi efectuate de un gestionar si contractele s-ar incheia mult mai repede si fara prea mult fast.

Programul elimina necesitatea retinerii tuturor informatiilor in dosare, ce pot fi usor incurcate sau foarte greu de gasit in unele situatii.

In cazul in care un client doreste o anumita masina cautarea acesteia se face automat, dupa specificarea nume si prenume,nefiind necesara o munca fizica prestata de catre contabilul acelei firme.

De asemenea daca un client doreste o masina cuprinsa intre un anumit pret cu o listare dupa pret acesta isi poate alege piesa dorinta fara a i se mai prezenta si celelalte piese care nu il intereseaza.

Am creat acest program pentru a usura munca contabililor caracteristicile sa de baza fiiind: eficacitate, rapiditate si corectitudine.

II.DESCRIEREA LIMBAJULUI FOXPRO

Odata cu trecerea timpului si dezvoltarea informaticii, calculatorul s-a implicat in tot mai multe domenii de activitate, o multitudine de probleme gasindu-si astfel rezolvarea prin intermediul sau.

Datorita diversitatii problemelor rezolvate cu ajutorul calculatorului nu s-a putut realiza un program care sa rezolve (orice problema), realizandu-se in schimb mai multe programe (sau pachete de programe), fiecare specializat in rezolvarea unui anumit tip de problema. In functie de problema pe care o are de rezolvat, utilizatorul unui calculator alege acel program care se potriveste cel mai bine in realizarea scopului propus.

S-a ajuns astfel la o specializare foarte accentuata a sistemelor informatice, orientate spre rezolvarea diverselor tipuri de probleme.

O clasificare a problemelor rezolvate cu ajutorul calculatorului, tinand cont de volumul datelor si al prelucrarilor implicate in rezolvare ar putea fi urmatoarea :

probleme care implica prelucrari putine asupra unui volum mare de date

probleme a caror rezolvare presupune un volum mediu de prelucrari asupra unui volum mediu de date

probleme in rezolvarea carora intra un volum mic de date asupra lor efectuandu-se un volum mare de prelucrari.

Sistemele de gestiune a bazelor de date (SGBD) reprezinta sisteme informatice specializate in stocarea si prelucrarea unui volum mare de date, in rezolvarea problemelor de primul tip, din clasificarea anterioara.

Termenul de  baza de date  se va referi la datele de prelucrat, la modul de organizare a acestora pe suportul fizic de memorat iar termenul de  gestiune  se va referi la actiunea de memorare si prelucrare a acestor date.

Un SGBD trebuie sa asigure urmatoarele functiuni elementare, referitoare la bazele de date :

definirea bazei de date

introducerea datelor (adaugarea de noi date la baza de date)

modificarea unor date existente in baza de date

stergerea unor date

interogarea bazei de date, adica extragerea informatiilor stocate in aceasta

Pe masura dezvoltarii acestor sisteme lista s-a completat cu facilitati importante cum ar fi :

generare de rapoarte

modalitati noi de interogare a bazei de date (de exemplu un limbaj de tip SQL)

noi tipuri de organizare a bazelor de date si noi tipuri de acces (de exemplu accesul indexat)

FOXPRO 2.6 este un sistem de gestiune al bazelor de date relational iar in comparatie cu concurentii sai directi (DBASE 4 si PARADOX 2.5) se mentine in frunte datorita performantelor sale. Principalele sale atuuri sunt folosirea optimizarii Rushmore si prezenta in limbaj a unor instructiuni SQL.

Comenzile FOXPRO permit descrierea tuturor functiunilor generale ale unui SGBD, anume :

gestionarea structurii conceptuale a bazei de date separat de structura fizica (CREATE, MODIFY STRUCTURE, COPY STRUCTURE, DISPLAY STRUCTURE, CREATE TABLE)

gestionarea datelor : incarcare (APPEND, INSERT), modificare (REPLACE, EDIT, CHANGE), stergere (DELETE, ZAP, PACK, RECALL)

satisfacerea cerintelor de regasire rapida a datelor, fie prin specificarea unor criterii complexe de selectie, cit si prin folosirea unor chei de acces (FIND, SEEK, LOCATE) afisarea datelor in diferite modalitati (CREATE/MODIFY REPORT, CREATE/MODIFY LABEL, CREATE/MODIFY SCREEN)

programare structurata (IF, CASE, DO WHILE, SCAN)

modularizare si parametrizare (PROCEDURE, FUNCTION)

facilitati ale utilizatorilor in organizarea mediului de lucru (SET COLOR, DEFINE WINDOW, DEFINE MENU), protectie (SET LOCK, SET EXCLUSIVE, SET ENCRYPTION)

Elemente ale limbajului Foxpro folosite in aplicatie

Un element important al mediului FoxPro este fereastra, care reprezinta o portiune a ecranului tratata ca un unic element, cu anumite caracterisitici ce determina actiunile ce se pot executa asupra acesteia. Pe langa feresttrele ce apartin mediului FoxPro si care au fost definite la crearea acestui sistem de programe se pot defini ferestre si de catre utilizator, care pot fi utilizate in programele de aplicatii create sub mediul FoxPro.

Modul de lucru cu aceste ferestre este urmatorul:

mai intai acestea se definesc, cu ajutorul comenzii DEFINE WINDOW, moment in care se precizeaza si atributele lor

dupa definire se vor afisa pe ecran, folosind comenzile ACTIVATE WINDOW sau SHOW WINDOW si vor fi inlaturate de pe ecran la executarea comenzilor DEACTIVATE WINDOW sau HIDE WINDOW

pentru inlaturarea ferestrelor din memorie si bineinteles, de pe ecran, se folosesc comenzile CLEAR WINDOWS sau RELEASE WINDOWS

Alaturi de ferestre, meniurile FoxPro dau acestui mediu si acestui limbaj o putere deosebita, atat datorita eficientei si comoditatii cu care se lucreaza cu aceste elemente, ci si datorita aspectului deosebit de placut pe care cele doua elemente il ofera programelor de aplicatii si mediului FoxPro.

Meniul reprezinta un element FoxPro prin care se ofera utilizatorului posibilitatea selectarii unei anumite optiuni, dintr-o multime finita de optiuni posibile, afisata pe ecran total sau partial, urmand ca, in functie de selectarea facuta, sa se declanseze anumite actiuni, corespunzatoarea optiunii alese.

Un meniu este format dintr-o "bara a meniului" si mai multe "submeniuri". Bara meniului contine la randul ei mai multe optiuni, numite "optiuni bara", fiecareia dintre acestea putandu-i-se atasa un submeniu. Fiecare submeniu este format la randul lui din "optiuni".

Modul de lucru cu submeniurile definite de utilizator este urmatorul:

mai intai se defineste meniul respectiv, prin urmatoarele etape:

definirea barei meniului

definirea optiunilor bara

definirea submeniurilor

definirea optiunilor

definirea actiunilor ce se executa la alegerea unei optiuni sau a unei optiuni bara a meniului

se activeaza meniul, urmand a se selecta optiunea dorita a acestuia

se efectueaza diferite operatii specifice meniului

III. DESCRIEREA APLICATIEI

Fiind o aplicatie care necesita prelucrarea unui volum mare de date am ales drept limbaj pentru scrierea acestuia limbajul FOXPRO . Aplicatia poate rula pe sisteme de operare Windows 9x, Windows NT.

In cadrul aplicatiei am folosit folosit urmatoarele baze de date:

MASINI.DBF

1. Marca Character 20

2. Pret Numeric 7

3. Greutate Numeric 2

4. Nr_buc Numeric 2

5. Tehnic Memo 10

TRANZACTII.DBF

1. Nume Character 22

2. Produs Character 20

3. Nr_buc Numeric 2

4. Data Date 8

Meniul principal al aplicatiei este:



Optiunea OPERATII     permite realizarea de operatii asupra bazelor de date. La selectarea acestei optiuni pe ecran va aparea urmatorul meniu vertical:

Optiunea Adaugare permite inserarea unui nou tip de masina

in baza da date. Pe ecran va aparea o fereastra care cere utilizatorului sa introduca datele cerute.

In cazul in care masina exista in baza de date se va efectua numai incrementarea numarului de masini din stoc.

La selectarea optiunii Vanzare pe ecran va aparea o fereastra identica cu cea de mai jos.Prin intermediul acesteia se va vinde un numar de masini dintr-o anumita categorie in acelasi timp adaugandu-se si un nou articol la baza de date tranzactii.


La selectarea optiunii Cautare va aparea o fereastra in care utilizatorul va trebui sa treaca in zona marca masinii care doreste sa fie cautata.Daca aceasta masina este gasita se vor afisa datele referitoare la ea in caz contrar afisandu-se mesajul:

"NU EXISTA MASINA"

La selectarea optiunii Mod_pret se va schimba pretul unei categorii

de produse.

La selectarea barei Afisare va aparea un nou meniu vertical prin care utilizatorul poate alege baza de date ce va fi afisata.

Daca utilizatorul alege optiunea din Masini va aparea un nou meniu vertical prin care utilizatorul poate vedea lista masinilor existente in stoc sortate dupa marca pieselor sau dupa pret.

In cazul alegerii celei de a doua optiuni utilizatorului i se va afisa lista clientilor ordonata dupa nume sau dupa data in care acestia au achizitionat

masinile.

La selectarea barei Stergere din meniul principal va aparea un meniu vertical.


Acest meniu permite stergerea datelor introdu-se gresit sau stergerea clientilor care au achizitionat masini inaintea unei date introduse de la tastatura.

La selectarea optiunii Statistici din meniul principal va aparea deasemenea un meniu vertical:

La selectarea meniului Total se va afisa suma totala care a fost incasata de catre firma din vanzarea masinilor iar la selectarea celuilalt meniu se va afisa cea mai bine vanduta masina.


La selectarea ultimei bare din meniul principal va aparea urmatoarea fereastra:

La selectarea acestui meniu utilizatorul poate parasi aplicatia in Foxpro sau in Sistemul de operare folosit de obicei Windows-ul.

LISTINGUL APLICATIEI

clear

set clock on

set safety off

set talk off

set bell off

set century on

set date to dmy

set escape off

set exact off

set default to 'C:Documents and SettingsHPDesktopATESTAT2'

close all

release all

*************INCEPUTUL ** ** ******

SET CURSOR ON

SET SYSMENU TO

SET SYSMENU AUTOMATIC

DEFINE WINDOW W1 FROM 10,0 TO 17,30 NONE CLOSE FLOAT MINIMIZE

ACTIVATE WINDOW W1

SHOW WINDOW W1

@ 1,7 SAY 'CONTABILUL'

@ 3,1 SAY 'CENTRU DE VANZARE MASINI'

FOR I=1 TO 7

MOVE WIND W1 BY 0,I

X=SECO()+0.1

DO WHILE SECO()<X

ENDD

ENDF

X=SECO()+2

DO WHILE SECO()<X

ENDD

DEACTIVATE WINDOW W1

CLEAR

WAIT WIND 'LOADING' TIMEOUT 2

CLEAR

** ** *BAZE DE DATE ** ** ***

use MASINI.DBF in 1

use TRANZACT.DBF in 2

** ** *MENIURI ** ** *********

define pad p1 of _MSYSMENU prompt '<Operatii ' message 'Actiuni'

define pad p2 of _MSYSMENU prompt '<Stergere ' message 'Se va efectua stergerea unor articole din DBf'

define pad p3 of _MSYSMENU prompt '<Statistici'    message 'Suma totala incasata pe vanzarea masinilor'

define pad p4 of _MSYSMENU prompt '<Exit' message 'Iesire din aplicatie '

on pad p1 of _MSYSMENU activate popup pop1

define popup pop1

define bar 1 of pop1 prompt '<Adaugare' message 'Adaugare unei noi masini

define bar 2 of pop1 prompt '<Vanzare ' message 'Incheierea unui contract de vanzare'

define bar 3 of pop1 prompt '<Cautare ' message 'Cautarea unei masini'

define bar 4 of pop1 prompt '<Mod_pret' message 'Se va modifica pretul la o masina'

define bar 5 of pop1 prompt '<Afisare ' message 'Afisarea masinilor sau a contractelor'

on sele bar 1 of pop1 do adaugare

on sele bar 2 of pop1 do vanzare

on sele bar 3 of pop1 do cautare

on sele bar 4 of pop1 do pret

on bar 5 of pop1 activate popup pop

define popup pop

define bar 1 of pop prompt 'din <Masini    ' message 'se va afisa continutul din Masini.dbf'

define bar 2 of pop prompt 'din <Contracte' message 'se va afisa continutul din tranzactii.dbf'

on bar 1 of pop activate popup one

on bar 2 of pop activate popup two

define popup one

define bar 1 of one prompt 'dupa <nume' message 'se vor afisa masinile ordonate alfabetic'

define bar 2 of one prompt 'dupa <pret' message 'se vor afisa masinile ordonate crescator dupa pret'

define popup two

define bar 1 of two prompt 'dupa <nume' message 'se vor afisa clientii ordonati alfabetic'

define bar 2 of two prompt 'dupa <data' message 'se vor afisa contractele ordonate dupa data'

on sele bar 1 of one do list1

on sele bar 2 of one do list2

on sele bar 1 of two do list3

on sele bar 2 of two do list4

on pad p2 of _MSYSMENU activate popup pop2

define popup pop2

define bar 1 of pop2 prompt '<Masini    ' message 'Stergerea unei masini'

define bar 2 of pop2 prompt '<Tranzactii' message 'Stergerea unor clienti'

on sele bar 1 of pop2 do sterge

on bar 2 of pop2 activate popup michelin

define popup popa

define bar 1 of popa prompt '<Client' message 'Se va sterge un anumit client'

define bar 2 of popa prompt '<Data ' message 'Se vor sterge clientii care au incheiat contracte inainte de o anumita data'

on sele bar 1 of popa do sterge

on sele bar 2 of popa do sterge

on pad p3 of _MSYSMENU activate popup popy

define popup popy

define bar 1 of popy prompt '<Total    ' message 'Se va afisa suma totala incasata din vanzarea masinilor'

define bar 2 of popy prompt '<Masina    ' message 'Se va afisa cea mai bine vanduta masina'

on sele bar 1 of popy do total

on sele bar 2 of popy do statistic

on pad p4 of _MSYSMENU activate popup pop3

define popup pop3

define bar 1 of pop3 prompt '<Sistem de operare'

define bar 2 of pop3 prompt '<Foxpro'

on selection popup pop3 do iesire

ies=.f.

do while ies=.f.

ACTIVATE MENU _MSYSMENU

endd

SET SYSMENU TO DEFAULT

***********PROCEDURI ** ** *********

procedure list1

define window w1 from 3,3 to 22,60

activate window w1

sele 1

index on marca tag temp1

i=0

SCAN

IF i=4

WAIT 'apasa o tasta'

i=0

CLEAR

ENDIF

DISPLAY off

i=i+1

endscan

wait 'sfarsitul bazei de date'

clear

close index

deactivate window w1

return

procedure list2

define window w1 from 10,10 to 35,75

activate window w1

sele 1

index on pret tag temp2 descending

i=0

do while not eof()

if i=4

wait 'apasa o tasta'

i=0

clear

endif

disp off

i=i+1

skip

endd

wait 'sfarsitul bazei de date'

clear

close index

deactivate window w1

return

procedure list3

define window w1 from 10,10 to 35,75

activate window w1

sele 2

index on nume tag temp3

i=0

do while not eof()

if i=4

wait 'apasa o tasta'

i=0

clear

endif

disp off

i=i+1

skip

endd

wait 'sfarsitul bazei de date'

clear

close index

deactivate window w1

return

procedure list4

define window w1 from 10,10 to 35,75

activate window w1

sele 2

index on data tag temp1 ascending

i=0

do while not eof()

if i=4

wait 'apasa o tasta'

i=0

clear

endif

disp off

i=i+1

skip

endd

wait 'sfarsitul bazei de date'

clear

close index

deactivate window w1

return

procedure stergm

define window w1 from 10,10 to 25,50

activate window w1

ok=.t.

do while ok=.t.

sele 1

num=space(16)

@ 2,4 say 'marca:' get num function'!'

read

go top

locate for num=marca

if found()

dele for num=marca

pack

?'STERGEREA A FOST EFECTUATA!'

else

?'NU EXISTA PIESA'

endif

y=' '

@ 8,4 say 'Doriti sa continuati'DA/NU':' get y function '!'

read

if y='NU'

ok=.f.

endif

clear

endd

deactivate window w1

return

procedure sterg

define window w1 from 10,10 to 25,50

activate window w1

ok=.t.

do while ok=.t.

sele 2

num=space(22)

@ 2,4 say 'nume:' get num function'!'

read

go top

locate for num=nume

if found()

dele for num=nume

pack

?'STERGEREA A FOST EFECTUATA!'

else

?'NU EXISTA CLIENTUL'

endif

y=' '

@ 8,4 say 'Doriti sa continuati'DA/NU':' get y function '!'

read

if y='NU'

ok=.f.

endif

clear

endd

deactivate window w1

return

procedure sterge

define window w1 from 10,10 to 25,50

activate window w1

ok=.t.

do while ok=.t.

sele 2

data1=

@ 2,4 say 'data:' get data1 function'D'

read

go top

dele for data<data1

pack

?'STERGEREA A FOST EFECTUATA!'

y=' '

@ 8,4 say 'Doriti sa continuati'DA/NU':' get y function '!'

read

if y='NU'

ok=.f.

endif

clear

endd

deactivate window w1

return

procedure adaugare

define window w1 from 7,7 to 30,80

activate window w1

sele 1

ok=.t.

do while ok=.t.

num=space(16)

@ 5,4 say 'marca:' get num function'!'

read

go top

locate for num=marca

if found()

@ 6,4 say 'aceasta masina exista in stoc se va efectua marirea stocului'

x=0

@ 8,4 say 'nr_buc:' get x function'9'

read

replace nr_buc with nr_buc+x

else

append blank

replace marca with num

@ 6,4 say 'pret ' get pret picture'999999'

@ 7,4 say 'greutate ' get greutate picture'99'

@ 8,4 say 'nr_buc ' get nr_buc picture'99'

?'Pentru a completa campul campul memo tastati CTRL+PAGE UP!'

define wind w2 from 17,20 to 20,70

@ 10,4 say 'tehnic ' get tehnic function 'A' open window w2

read

endif

y=' '

@ 16,4 say 'Doriti sa continuati 'DA/NU':' get y function '!'

read

if y='NU'

ok=.f.

endif

clear

endd

deactivate window w1

return

procedure cautare

define window w1 from 10,10 to 30,80

activate window w1

ok=.t.

do while ok=.t.

sele 1

num=space(16)

@ 5,4 say 'marca:' get num function'!'

read

go top

locate for num=marca

if found()

DISPLAY FIELDS marca,pret, greutate, nr_buc

ref=' '

@ 9,4 say 'doriti sa vedeti referinte tehnice'DA/NU':' get ref function'!'

read

if ref='DA'

disp tehnic off

endif

else

?'NU EXISTA MASINA'

endif

y=' '

@ 16,4 say 'Doriti sa continuati'DA/NU':' get y function '!'

read

if y='NU'

ok=.f.

endif

clear

endd

deactivate window w1

return

procedure vanzare

define window w1 from 10,10 to 30,80

activate window w1

ok=.t.

do while ok=.t.

sele 1

num=space(16)

@ 5,4 say 'marca:' get num function'!'

read

go top

locate for num=marca

if found()

x=0

@ 8,4 say 'nr_buc:' get x function'99'

read

replace nr_buc with nr_buc-x

if nr_buc=0

dele

pack

endif

sele 2

append blank

@ 9,4 say 'nume ' get nume picture'! ! ! !'

read

dat=

@ 10,4 say 'data ' get dat

read

replace data with dat

replace produs with num

replace nr_buc with x

else

@ 8,4 say 'Masina nu exista in baza de date!'

endif

y=' '

@ 16,4 say 'Doriti sa continuati'DA/NU':' get y function '!'

read

if y='NU'

ok=.f.

endif

clear

endd

deactivate window w1

return

procedure pret

define window w1 from 10,10 to 30,80

activate window w1

ok=.t.

do while ok=.t.

sele 1

num=space(16)

@ 5,4 say 'marca:' get num function'!'

read

go top

locate for num=marca

if found()

x=0

@ 8,4 say 'noul pret:' get x function'99999'

read

replace pret with x

else

?'NU EXISTA MASINA'

endif

y=' '

@ 16,4 say 'Doriti sa continuati:' get y default 1 FUNCTION '*H DA;NU' SIZE 1,8

READ CYCLE

if y='NU'

ok=.f.

endif

clear

endd

deactivate window w1

return

procedure total

define window w1 from 8,12 to 16,56 title 'STASTICI' color scheme 5

acti wind w1

?'VALOAREA MASINILOR VANDUTE ESTE '

select sum(masini.pret*tranzact.nr_buc) ;

fromMASINI.DBF ,TRANZACT.DBF;

where tranzact.produs =masini.marca;

into array a

?a[1]

wait wind 'Pentru a parasi fereastra apasati orice tasta!'

deact wind w1

return

procedure statistic

define window w1 from 8,12 to 16,56 title 'STASTICI' color scheme 5

acti wind w1

?'CEA MAI BINE VANDUTA MASINA ESTE :'

select tranzact.produs, sum(tranzact.nr_buc);

from TRANZACT.DBF ;

group by tranzact.produs;

into table aur

use aur

calculate max(sum_nr_buc) to a

go top

?

list for sum_nr_buc=a off

wait wind 'Pentru a parasi fereastra apasati orice tasta!'

deact wind w1

return

PROCEDURE IESIRE

deact wind all

close data

close all

release all

IF BAR()=1

quit

ENDIF

IF BAR()=2

ies=.t.

ENDIF

BIBLIOGRAFIE

Gabriel si Mihai DIMA, "FoxPro", Editura TEORA 1998

Gabriel si Mihai DIMA, "FoxPro. MENIURI", Editura TEORA 1997

Mariana Pantiru, "Informatica economica. Baze de date. Proiect de manual pentru clasele XI-XII",Editura Petrion , Bucuresti 1996

Gabriel si Mihai DIMA, "Programarea calculatoarelor. Proiect de maual pentru clasa a XI-a , alterativa B " Editura TEORA 1998.

CUPRINS

Introducere......    3

Descrierea limbajului FOXPRO 4

Descrierea aplicatiei..

Listingul aplicatiei.. 12

Bibliografia. 25



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1499
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved