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

informatica - evidenta unei firme de transport

 


EVIDENTA UNEI FIRME DE TRANSPORT



INTRODUCERE


O “baza de date simpla” este o aparenta contradictie in termeni. Simplificarea bazelor de date a fost in ultimii ani una din tendintele majore ale producatorilor de software, pentru a le permite tuturor, nu doar specialistilor in calculatoare, sa extraga informatii din ele. Bazele de date erau candva inchise in camere speciale, administrate doar de profesionisti antrenati. In prezent insa, bazele de date satisfac nevoile companiilor, institutiilor si firmelor de toate genurile. O firma imobiliara are 10-15 angajati care trebuie sa acceseze aceeasi baza de date prin retea pentru a urmari evolutia proprietarilor si a clientilor. La o florarie proprietarii pastreaza listele clientilor, furnizorilor, aranjamentele florale, baza de date cu inventarul pe un calculator desktop.



Cu toate astea, exista o idee preconceputa ca lucrul cu instrumente puternice este deosebit de dificil. Este o impresie care impiedica firmele mici, care folosesc Microsoft Word si Excel, sa-si inregistreze vanzarile si informatiile despre clienti, cand nu au nevoie de fapt decat de baze de date simple, si tine firmele mijlocii legate de baze de date elementare, cand au nevoie de unele care pot administra relatii mai complexe intre date.

Bazele de date nu sunt unelte stralucitoare, ci mai degraba eroi anonimi. Aproape toate firmele se bazeaza pe ele pentru a tine evidenta informatiilor esentiale. Chiar si organizatiile mici – asociatiile familiale – aduna si analizeaza mai multe date.

O baza de date in sine ( numita si tabel ) este un fisier care contine inregistrari si campuri (cunoscute si ca randuri si coloane). O inregistrare este un set complet de informatii (de exemplu: toate detaliile, inclusiv numele, numarul de telefon, adresa ale unei persoane de contact intr-o baza de date cu furnizori de servicii) ce se poate vizualiza ca pe o cartela de index, cu toate informatiile care tin de un contact. Campurile (sau coloanele) sunt categoriile informatiilor. In baza de date pe care am luat-o ca exemplu o parte din campuri ar fi: Nume, Adresa, Telefon.

O baza de date flat-file este un singur fisier care contine tabelul complet al unei baze de date. Este stocat in general in format text, cu diferite inregistrari si campuri separate prin virgule. Deoarece o baza de date flat-file este o singura entitate, o schimbare a oricarui camp sau inregistrari necesita re-salvarea intregului fisier.

Un program de gestiune a bazelor de date relationale permite inregistrarilor sa fie in legatura cu date din alte baze de date. Cel mai comun mod de a interactiona in acest caz este folosirea unui limbaj de interogare structurata (SQL), care poate adauga sau sterge inregistrari si campuri, raspunde la intrebari specifice (interogari) despre ele sau crea rapoarte. Inregistrarile se pot sorta in functie de un anumit camp, cum ar fi “credit”. Sau se poate chestiona baza de date cautand toate inregistrarile care contin campul ce indeplineste un anumit criteriu, cum ar fi :clientii cu credite peste 1000 €.

Candva, instrumentele de gestiune a bazelor de date de nivel scazut erau net diferentiate de cele de nivel superior. Linia de separare a devenit in timp neclara, unelte de baza adaugand acum optiuni sofisticate de programare. Exista o gama larga de programe profesionale de administrare a bazelor de date unele fiind axate pe date structurate, altele pe date nestructurate (cea mai buna alegere in cazul utilizarii unei game variate de documente text, cu ar fi cabinetele avocatilor). De exemplu, pentru persoanele fizice si intreprinderi mici si mijlocii se cauta cea mai buna combinatie intre putere si usurinta in folosire, oferind in cel mai bun caz si optiuni puternice de relationare, publicare in retea si integrare. Insa cand performantele sistemului scad, numarul de persoane care acceseaza baza de date creste, cand raspunsurile la interogari incep sa vina greu, iar numarul inregistrarilor este mult prea mare este iminenta trecerea la un server de baze de date mai puternic, cum este SQL.

O alta optiune in privinta bazelor de date este cea pentru o solutie instalata sau una on-line. La varianta instalata exista posesia fizica a datelor si a codului programului. In cazul variantei on-line (gazduite), datele se acceseaza prin intermediul unui browser de retea, iar codul si datele sunt stocate si administrate de compania gazda. Bazele de date gazduite sunt mai usor de accesat de angajatii care lucreaza la distanta sau calatoresc mult, insa in cazul firmelor importante, administratorii nu se vor simti niciodata multumiti de securitatea oferita de gazdele solutiilor on-line, stiind ca informatii vitale sunt stocate in afara institutiei.

Dupa cum veti vedea in prezentarea urmatoare, bazele de date nu sunt niste sperietori, si mi-as dori ca programul realizat sa va surprinda placut prin aplicabilitate si usurinta de folosire.

Prezentarea programului


La realizarea acestui program, de evidenta a masinilor dintr-o firma de transport, am utilizat FoxPro 2.6 varianta Dos.

Folosind aplicatia, personalul oricarei firme de transport va putea realiza computerizat o evidenta sintetica, fara necesitatea unei specializari in informatica. Programul face mai usoara munca de contabil dar si tine o evidenta foarte stricta a masinilor de transport si a banilor incasati si cheltuiti de firma respectiva. Profitul de asemenea poate fi calculat instantaneu doar cu o apasare de buton


Prezentarea tabelei:

Informatiile despre masinile de transport sunt stocate in tabela masini.dbf

Tabela masini.dbf are urmatoarea structura:

*     Descrierea campurilor:

NUMAR – reprezinta numarul masinii

DATAP – reprezinta data plecarii masinii

DATAS – reprezinta data sosirii masinii

PRET – reprezinta pretul pe bilet sau pe tona

TIP – reprezinta tipul masinii (camion sau microbuz)

CAPACITATE – reprezinta capacitatea masinii (cati pasageri sau cate tone poate transporta)


Meniul :

El face parte din interfata programului si faciliteaza introducerea de date si aflarea de informatii pentru utilizatorii nefamiliarizati cu aceasta aplicatie. Este structurat in 5 campuri (pad-uri) ce contin fiecare cel putin doua subdomenii:

*     MASINI permite modificare, stergerea sau adaugare unui nou numar al unei masini

*     TRANSPORTURI adauga sau modifica date referitoare la datele plecarii si sosirii dar si date despre pretul biletului sau tonei transportate

*     UTILE poate sa caute numarul unei masini sau sa afiseze toate numerele masinilor prezente in baza de date

*     VENIT calculeaza profitul firmei si cat s-a cheltuit pe benzina si pe salarii

*     IESIRE are ca optiuni iesirea din aplicatie sau iesirea din FOX PRO




Ferestrele:

Si ele au fost create pentru a obtine o interfata cat mai atractiva, in culori vii, pentru a focaliza atentia in directia dorita. Am folosit la realizarea lor comanda DEFINE WINDOW ce are urmatoarea structura

DEFINE WINDOW <window name1> FROM <row1, column1> TO <row2, column2> |

AT <row3, column3> SIZE <row4, column4>

[IN [WINDOW] <window name2> | IN SCREEN | IN DESKTOP]

[FONT <expC1>[, <expN1>]]

[STYLE <expC2>]

[FLOOATED <expC3>]

[TITLE <expC4>]

[DOUBLE | PANEL | NONE | SYSTEM | <border string>]

[CLOSE | NOCLOSE]

[FLOAT | NOFLOAT]

[GROW | NOGROW]

[MDI | NOMDI]

[MINIMIZE]

[SHADOW]

[ZOOM | NOZOOM]

[ICON FILE <expC5>]

[FILL <expC6> | FILL FILE <bmp file>]

[COLOR SCHEME <expN2> | COLOR <color pair list>]



Exemple de ferestre folosite in acest program:





Programul va fi cu siguranta un ajutor de remarcat in procesul de evidenta a unei firme de transport, putem spune chiar indispensabil.


Codul sursa al programului


clos all

do intrare

define wind ggg from 0,0 to 23,80 shadow color w+/r

set color of highlight to gr/+bg

set talk off

clear

define wind o from 10,20 to 24,62 system

defi wind aaa from 3,0 to 20,75 shadow

acti wind aaa


acti wind o

@4,4 say 'INTRODUCETI CODUL UTILIZATORULUI'

@6,14 get t default space(15)

read

if upper(t)<> upper('cosmin')

rele wind o

quit

endif

rele wind o

use masini


define menu m1

define pad nr1 of m1 prompt '<Masini'

define pad nr2 of m1 prompt '<Transporturi'

define pad nr3 of m1 prompt '<Utile '

define pad nr4 of m1 prompt '<Venit '

define pad nr5 of m1 prompt '<Iesire '


on pad nr1 of m1 activate popup Masini

on pad nr2 of m1 activate popup Transporturi

on pad nr3 of m1 activate popup Utile

on pad nr4 of m1 acti popup Venit

on pad nr5 of m1 acti popup Iesire


define popup Masini from 1,1

define bar 1 of Masini prompt 'Adaugare' mess 'Adaugati o masina noua completand datele cerute'

define bar 2 of Masini prompt 'Stergere' mess 'Stergeti masina din baza de date'

define bar 3 of Masini prompt 'Modificare' mess 'Modificati datele masinii'


define popup Transporturi from 1,14

define bar 1 of Transporturi prompt 'Adaugare    ' mess 'Scrieti datele dorite si salvati'

define bar 2 of Transporturi prompt 'Modificare ' mess 'Modificati datele despre plecari /veniri ale masinii '


define popup Utile from 1,29

define bar 1 of Utile prompt 'Cautare ' mess 'Cautati numarul masinii dorite'

define bar 2 of Utile prompt 'Afisare ' mess 'Selectati modul de afisare si alegeti un buton'


define popup Venit from 1,40

define bar 1 of Venit prompt 'Informatii ' mess 'Informatii referitoare la venitul firmei '

define bar 2 of Venit prompt 'Profit' mess 'Profitul firmei '


define popup Iesire from 1,54

define bar 1 of Iesire prompt 'Program ' mess 'Iesiti din program in FOX PRO'

define bar 2 of Iesire prompt 'Fox Pro ' mess 'Iesiti in WINDOWS'


on selection bar 1 of Masini do adaugare1

on selection bar 2 of Masini do stergere1

on selection bar 3 of Masini do modi


on selection bar 1 of Transporturi do adaugare2

on selection bar 2 of Transporturi do modic


on selection bar 1 of Utile do cautare

on selection bar 2 of Utile do afisare


on sele bar 1 of Venit do incasare

on sele bar 2 of Venit do cheltuieli


on sele bar 1 of iesire do iesireprog

on sele bar 2 of iesire do iesireFox


activate menu m1

clear popups

clear menus

deac wind ggg

rele wind aaa


procedure intrare

set talk off

set safe off

set cursor off

set status off

set shadows on

clear

clear all

defi wind titlu from 7,7 to 18,72 color scheme 7 panel

acti wind titlu

text

endtext

wait ' apasa o tasta '

set bell on

for i=7 to 62

defi wind titlu6 from 7,7 to 18,10+i color scheme 7 panel

acti wind titlu6

defi wind titlu5 from 7,7 to 18,10+i color scheme 5 panel

acti wind titlu5

nr1=20*i

set bell to nr1,1

?chr(7)

endfor

deac wind titlu5

defi wind explicare from 7,7 to 18,72 color scheme 5 panel



acti wind explicare

@3,12 say ' EVIDENTA UNEI FIRME DE TRANSPORT '

@5,12 say '    '

@7,12 say '    '

wait ''

deac wind explicare

clear all

set cursor on

return


procedure iesire1

acti wind GGG

@10,25 say ' H A V E A N I C E D A Y ! ! ! ' color R*/w

@20,1

wait ' ' timeout 2

deact popup wind all

deact menu all

deact popup all

close all

clear

quit

return


procedure adaugare1

use masini

define wind adaugare1 from 1,1 to 15,50;

title 'ADAUGARE' zoom float shadow grow color scheme 10 system

activate window adaugare1

@2,2 say 'Numar= '

@2,14 get m.numar default ' ' size 1,10

@4,2 say 'Tip= '

@4,14 get m.tip default ' ' size 1,10

@6,2 say 'Capacitate= '

@6,14 get m.capacitate default 0 size 1,5 picture '99.99'

@8,10 get m.b function '*NH Salveaza;Sfarsit' size 1,8,2 default 1;

valid vb()

read cycle

rele wind adaugare1

return


function vb

if m.b=1

append blank

gather memvar

release wind fadaugare1

clear read

else

clear read

release wind fadaugare1

endif

clos all

return


procedure stergere1

USE masini

define window stergere1 from 1,1 to 15,40;

title 'STERGERE' shadow zoom grow float color scheme 7 system

activate wind stergere1

define popup p prompt field ' '+numar scroll

@2,1 say 'Alegeti un numar: '

@2,17 get m.lista popup p function '&' default 1 size 6,12

@10,10 get m.d function '*NH Sterge;Abandon';

size 1,8,2 default 1 valid vd()

read cycle

rele wind stergere1

return


function vd

if m.d=1

go m.lista

delete

pack

clear read

else

clear read

endif

clos all

return


procedure modi

use masini

define wind modi from 1,1 to 20,60;

title 'PRIMA_MODIFICARE' grow shadow float zoom color scheme 10 system

activate window modi

define popup p prompt field ' '+numar scroll

@2,1 say 'Alegeti numarul: ' get m.lista2 popup p;

function '&' default numar size 6,12

@10,10 get m.k function '*NH Modifica;Abandon';

size 1,8,2 default 1 valid vk()

read cycle

release wind modi

return


function vk

if m.k=1

define wind modii from 5,1 to 25,60;

title 'A_DOUA_MODIFICARE' shadow grow zoom float color scheme 10 system

activate wind modii

locate for alltrim(m.lista2)=alltrim(numar)

@7,1 say 'Numar= ' get m.numar default numar size 1,10

@9,1 say 'Tip= ' get m.tip default tip size 1,10

@11,1 say 'Capacitate= ' get m.capacitate default capacitate size 1,10

@15,4 get m.l function '*NH Inlocuieste;Abandon';

size 1,8,2 default 1 valid vl()

read cycle

release wind modii

else

clear read

release wind modii

endif

return


function vl

if m.l=1

clear read

replace numar with m.numar

replace tip with m.tip

replace capacitate with m.capacitate

else

clear read

clear

clos all

endif


procedure adaugare2

use masini

define wind fadaugare2 from 1,1 to 20,30;

title 'ADAUGARE' shadow grow zoom float color scheme 9 system

activate wind fadaugare2

define popup p prompt field ' '+numar scroll

@2,2 say 'Numar= ' get m.numar popup p function '&' defa numar size 6,12

@8,2 say 'Datap= ' get m.datap defa ctod(' / / ') size 1,10

@10,2 say 'Datas= ' get m.datas defa ctod(' / / ')size 1,10

@12,2 say 'Pret = ' get m.pret defa 0 size 1,10

@16,2 get m.g function '*NH Salveaza;Sfarsit';

size 1,8,2 default 1 valid vg()

read cycle

rele wind fadaugare2

return


function vg

if m.g=1

append blank

gather memvar

use masini

rele wind fadaugare2

clear read

else

clear read

rele wind fadaugare2

endif

return


procedure modic

use masini

define window modic from 1,1 to 15,40;

title 'MODIFICARE' zoom shadow grow float color scheme 10 system

activate wind modic

define popup p prompt field ' '+numar scroll

@2,1 say 'Alegeti numarul: ' get m.lista2 popup p;

function '&' default numar size 6,12

@10,10 get m.m function '*NH Modifica;Renunta';

size 1,8,2 default 1 valid vm()

read cycle

rele wind modic

return


function vm

if m.m=1

define wind modiic from 5,1 to 25,60;

title 'MODIFICARE' zoom shadow float grow color scheme 10 system

activate wind modiic

locate for alltrim(m.lista2)=alltrim(numar)

@7,1 say 'Numar= ' get m.numar default numar size 1,10

@9,1 say 'Datap= ' get m.datap default datap

@11,1 say 'Datas= ' get m.datas default datas



@13,1 say 'Pret= ' get m.pret default ' ' size 1,10

@17,4 get m.n function '*NH Inlocuieste;Renunta';

size 1,8,2 default 1 valid vn()

read cycle

rele wind modiic

else

clear read

rele wind modiic

endif

return


function vn

if m.n=1

clear read

gather memvar

else

clear read

clear

endif

clos all

return


procedure cautare

define window cautare from 5,5 to 21,40;

title 'CAUTARE' shadow zoom float grow color scheme 10 system

activate wind cautare

@2,1 say 'Dati numarul : ' get m.numar default space(10)

@5,1 get lc function '*NH Cauta;Iesire' default 1 size 1,6;

valid llc()

read cycle

rele wind cautare


return


function llc

if lc=1

clear read

rele wind cautare

define wind cautare2 from 5,5 to 21,40;

title 'CAUTARE2' shadow zoom float grow color scheme 10 system

activate wind cautare2

@2,1 say 'Numarul= '+m.numar

sele 1

use masini

index on numar tag fnumar

set order to 1

locate for allt(upper(numar))=allt(upper(m.numar))

if found()

@5,1 say 'Tip= '+masini.tip

@7,1 say 'Datap= '+dtoc(masini.datap)

@9,1 say 'Datas= '+dtoc(masini.datas)

@11,1 say 'Pret= '+str(masini.pret)

else

@3,1 say 'Numar negasit '

endif

@13,7 get vv function '*N Iesire' default 1;

size 1,6 valid yy()

read cycle

rele wind cautare2

return

else

clear read

rele wind cautare

endif

return


function yy

clear

rele wind cautare2

return


procedure afisare

define wind afisare from 5,5 to 20,50 ;

title 'AFISARE DUPA NUMAR' shadow grow zoom float color scheme 10

activate wind afisare

use masini

@2,2,7,30 box

@2,6 say 'ORDINE DE AFISARE'

@3,4 get bw function '*RNV Crescator;Descrescator' defa 1 size 1,14,1

@9,4 get bz function '*NH Afiseaza;Inchide' defa 1 valid vz()

read cycle

rele wind afisare

return


function vz

if bz=1

if bw=1

index on upper(numar) tag fnumar

set order to fnumar

else

index on upper(numar) tag fnumard descending

set order to fnumard

endif

hide wind afisare

browse

activate wind afisare

else

release wind afisare

clear read

endif

return


procedure incasare

define wind incasare from 5,5 to 20,50 ;

title 'INFORMATII NECESARE' shadow grow zoom float color scheme 10

activate wind incasare

use masini

@3,3,7,18 box

@2,2,16,25 box

@4,4 get pp function '*RNV Incasat;Cheltuit' defa 1 size 1,14,1

@9,4 get oo function '*NH Afiseaza;Inchide' defa 1 valid tr()

read cycle

rele wind incasare

return


function tr

if oo=1

if pp=1

define wind INCASAT from 5,5 to 20,50 ;

title 'INCASAT' shadow grow zoom float color scheme 10

activate wind incasat

use masini

@3,4,7,38 box

@8,6,12,35 box

sum (datas-datap)*pret*capacitate to suma

sum (datas-datap) to zile

use

@4,5 say 'Suma de bani intrata in cont este'

@6,14 say suma

@9,7 say 'Numarul de zile lucrate este'

@11,10 say zile

read cycle

rele wind incasat

hide wind incasare

else

define wind CHELTUIT from 5,5 to 20,67 ;

title 'CHELTUIELI' shadow grow zoom float color scheme 10

activate wind cheltuit

use masini

@3,6,7,53 box

@8,1,12,63 box

sum (datas-datap) to zile

use

@4,9 say 'Suma de bani cheltuita pentru salarii este'

@6,14 say zile*200000

@9,2 say 'Suma de bani cheltuita pentru intretinerea masinilor este'

@11,15 say zile*180000

read cycle

rele wind cheltuit

hide wind incasare

endif

hide wind incasare

else

release wind incasare

clear read

endif

return


procedure cheltuieli

define wind cheltuieli from 5,5 to 20,44 ;

title 'PROFITUL' shadow grow zoom float color scheme 10

activate wind CHELTUIELI

use masini

@2,2,16,35 box

sum (datas-datap)*pret*capacitate to suma

sum (datas-datap) to zile

t=suma-zile*380000

@6,4 say 'Profitul dumneavoastra este de'

@10,11 say t

read cycle

rele wind cheltuieli

return



procedure iesireFox

clear

quit

return


procedure iesireprog

clear

deacti menu m1

return   


BIBLIOGRAFIE:


INFORMATICA Manual pentru clasa a XII-a – Radu Visinescu, Constantin Scheau


Informatica economica. Baze de date – Mariana Pantaru


Baze de date – organizare proiectare si implementare – Ion Lungu, Constanta Bodea, Georgeta Badescu, Crista Ionita


biologie

botanica






Upload!

Trimite cercetarea ta!
Trimite si tu un document!
NU trimiteti referate, proiecte sau alte forme de lucrari stiintifice, lucrari pentru examenele de evaluare pe parcursul anilor de studiu, precum si lucrari de finalizare a studiilor universitare de licenta, masterat si/sau de doctorat. Aceste documente nu vor fi publicate.