Sunteți pe pagina 1din 19

1.

Introducere

1.1 Prezentare generala

Domeniul informaticii este foarte vast la ora actuala,


iar aria de raspindire a informaticii este din ce in ce mai
larga,ea gasind utilizare in cele mai diverse domenii.
Componentele de baza ale acestui domeniu sint HARDWARE-ul si
SOFTWARE-ul.Componenta HARD este formata din calculator
impreuna cu toate anexele sale, iar componenta SOFT este
alcatuita din totalitatea programelor utilizate de
calculator.
CALCULATORUL este un ansamblu de dispozitive si circuite
foarte diverse. Constructia unui calculator este determinata
de tehnologia disponibila la un moment dat,dar si de domeniul
de aplicatie, de performantele cerute si de costul
echipamentelor, fiind diferita de la un model la altul,de la
o serie la alta,sau de la o generatie de calculatoare la
alta.Cu toate acestea sistemele de calcul au o serie de
caracteristici comune,a caror cunoastere de catre programator
usureaza procesul de cunoastere a modului de functieare si
utilizare a acestora.
Numeroasele componente ale unui sisitem de calcul pot fi
grupate in unitati avind functii mai complexe,bine
precizate,numite UNITATI FUNCTIEALE.
Informatia furnizata de utilizator este preluata de
calculator prin UNITATEA DE INTRARE.
Aceasta converteste reprezentarea informatiei de la o forma
accesibila omului(grafica sau textuala) la forma
interna,binara,utilizata de calculator.Astfel apasarea unei
taste a calculatorului atrage dupa sine

1
preluarea codului binar corespunzator. Adoptarea
reprezentarii binare a fost impusa de utilizarea
in constructia calculatoarelor a dispozitivelor cu doua
stari stabile, notate conventional prin simbolurile 0 si 1,
numite cifre binare sau BITI(BIT=Binary Digit).
Informatia este inregistrata in MEMORIE.De aici ea poate fi
transmisa ulterior altor unitati functieale. Fizic memoria
este realizata cu circuite integrate pe scara foarte larga
.Inregistrarea si redarea informatiei se realizeaza la
nivelul unor grupari de biti fiecare grup fiind denumit
celula sau LOCATIE DE MEMORIE. Numarul de locatii dintr-o
memorie constituie capacitatea sa.Capacitatea se
masoara in multipli de 1024 ( 2 la puterea 10)
Informatia este supusa prelucrarii in unitatea de
calcul.Aceasta efectueaza operatii simple, aritmetice si
logice asupra unor operanzi din memorie, inregistrind
rezultatele tot in memorie.
Informatia care nu este prelucrata la un moment dat se
poate pastra in unitati de MEMORIE EXTERNA, de obicei discuri
magnetice, mai lente,ca si viteza de lucru, decit memoria
interna,dar cu o capacitate mai mare.Informatia poate fi
transmisa de la o unitate de memorie la alta.
Rezultatele prelucrarii datelor sint transmise
utilizatorului prin UNITATEA DE IESIRE. Aceasta realizeaza
conversia informatiei de la forma binara, interna, a
calculatorului la forma textuala sau grafica, accesibila
omului.Unitatea de iesire poate fi : -imprimanta, ecranul,
plotter-ul, etc.
UNITATEA DE COMANDA are rolul de a coordona functiearea
celorlalte unitati, pe baza unor instructiuni, sau comenzi,
care constituie parte integranta a informatiei transmise
calculatorului de programator. Ea este realizata cu circuite

2
integrate pe scara larga, alcatuind impruna cu unitatea de
calcul microprocesorul sistemului ( unitatea centrala de
prelucrare ).
SOFT-ul este format din totalitatea programelor folosite
de calculator. Programele sint facute de specialisti care se
numesc programatori. Pentru realizarea acestor programe se
folosesc LIMBAJELE DE PROGRAMARE. Limbajele de programare sint
de trei nivele :
-LIMBAJUL COD MASINA (L. DE ASAMBLARE)
-LIMBAJE DE NIVEL MEDIU
-LIMBAJE DE NIVEL INALT
Evolutia limbajelor de programare este caracterizata de
modificarea gradului de satisfacere a necesitatilor
utilizatorului.
Programarea primelor calculatoare se facea in limbajul
calculatorului (cod masina).Primul pas in evolutia limbajelor
il reprezinta limbajul de asamblare.Restrictia de a avea o
legatura directa intre instructiunile limbajului de programare
si cod-masina a fost inlaturata de aparitia limbajelor de
nivel inalt.Pentru acestea un program, numit
compilator,traduce fiecare instructiune intr-un grup de
instructiuni cod-masina.
Programele scrise in limbaje de programare inalte se numesc
PROGRAME SURSA, iar cele rezultate in urma compilarii se
numesc PROGRAME OBIECT.
La ora actuala exista foarte multe limbaje de nivel inalt.
Unele sint specializate in rezolvarea anumitor tipuri de
probleme altele sint universale.
Esential in functiearea calculatoarelor este SISTEMUL DE
OPERARE. Dintre cele mai raspindite sisteme de operare pe
mapamond la ora actuala este sistemul de operare Windows in
diversele sale versiuni: Windows95, Windows98, WindowsMe,

3
WindowsXP, WindowsNT, Windows2000 Profesional, WindowsXP
Profesional.

1.2 Descriere generala, baza de proiectare,


incadrare in sistemul informational

Clasificarea problemelor rezolvate cu ajutorul


calculatorului, tinind cont de volumul datelor si al
prelucrarii implicate in rezolvarea problemelor, 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 a caror rezolvare este necesara
efectuarea unui volum mare de prelucrari asupra unui
volum redus de date

Tinind cont de aceste tipuri de probleme care pot apare a


fost necesara crearea unui sistem de gestiune care sa faca
fata tuturor acestor tipuri de probleme. Astfel a fost
inventate SISTEMELE DE GESTIUNE A BAZELOR DE DATE, pe scurt
SGBD.
Un SGBD trebuie sa asigureurmatoarele functiuni:
-definirea bazelor de date
-modificarea datelor existente in
bazele de date
-generarea de rapoarte
-noi tipuri de organizare a bazelor
de date si noi tipuri de accesare

4
a datelor existente
O etapa importanta in istoria SGBD-urilor a fost aparitia
sistemelor de memorare electronice pe discuri magnetice.
S-au creeat interfete pentru utilizarea SGBD-urilor si de
catre neprofesionisti. In momentul actual SGBD-urile permit
accesarea simultana a mai multor baze de date, baze de date
relationale, precum si accesul multiutilizator in retea.
Cateva exemple de SGBD ar fi: FoxPro, Access, Oracle, SQL.

5
2. Prezentarea generala a aplicatiei

2.1 Obiective, performante, limite

Aceasta aplicatie a fost proiectata si realizata pentru


evidenta camerelor dintr-un hotel sau pensiune, precum si a
personalului angajat.
Aplicatia a fost realizata in FoxPro 2.6 sub DOS,
deoarece poate rula si pe calculatoarele mai vechi cu
performante mai scazute.
Programul a fost astfel realizat incat sa ofere o
situatie cat mai exacta a camerelor din punctul de vedere al
dotarii cat si din punctul de vedere a gradului de ocupare. Se
permite adaugarea nelimitata a camerelor, iar la camerele deja
introduse pot fi oricand modificate dotarile existente
De asemenea permite indexarea automata a preturilor cu
procentul dorit.
Aplicatia realizeaza de asemenea si evidenta personalului
angajat in firma, avand o situatie clara cu angajatii precum
si cu functia pe care fiecare dintre acestia o ocupa.
O alta caracteristica a acestei aplicatii este aceea de
salvare si restaurare a datelor, arhivarea datelor, precum si
aceea de recreeare a indecsilor bazelor de date. Prin aceste
functii se pot realiza salvari periodice si de asemenea in
cazul distrugerii datelor acestea pot fi restaurate prin
intermediul programului de la ultima salvare efectuata.
Salvarea datelor se realizeaza pe discheta. De asemnea se pot
arhiva si pastra datele si pe harddisk in arhive de tip arj,
din care se pot restaura manual datele ori de cate ori este
necesar.

6
In cazul caderilor de tensiune se stie ca se pot altera
indecsii bazelor de date, de aceea in aplicatie a fost
introdusa optiunea de recreeare a indecsilor.

2.2 Domenii de probleme abordate

Aplicatia a fost realizata pentru evidentierea foarte


stricta si cat mai exacta a camerelor existente la un moment
dat intr-un hotel sau pensiune. Astfel receptionerul nu poate
gresi la inchirierea camerei sau sa inchirieze o camera care
nu este libera. De asemenea prin acest program calculul notei
de plata a clientului este clar evidentiind toate serviciile
de care acesta a beneficiat si pe care le va plati. De asemnea
calcul se face automat in functie de numarul de zile pentru
care camera a fost inchiriata. Situatiilor generate de program
sunt foarte complexe si diferite oferind cele mai exacte date
pe care utilizatorul le poate solicita si anume:
- ofera un catalog al camerelor din hotel/pensiune, acest
catalog cuprinzand date cum ar fi etajul, nr. de locuri
din camera, tariful, daca exista televizor si/sau
telefon precum si tariful camerei
- situatia camerelor disponibile la un momentul respectiv
- situatia camerelor ocupate intr-o anumita perioada,
solicitata de utilizator, in aceasta situatie apar in
mod amanuntit toate datele pentru fiecare camera
inchiriata si anume : data sosirii, data plecarii, nr.
de zile, toate cheltuielile care au fost efectuate in
perioada ocuparii camerei.

7
- situatia personalului angajat, situatie care cuprinde
numele si prenumele angajatului, functia pe care este
angajat, adresa de domiciliu a acestuia.

8
3. Definirea functiunilor si structurii
functionale

3.1 Functiunile aplicatiei

Pentru exploatarea cat mai usoara a aplicatiei meniul


principal a fost ales sub forma pop-up, adica sub forma de
lista verticala a optiunilor sale. Optiunile meniului
principal au fost numite cat mai sugestiv astfel incat sa faca
exploatarea sa cat mai usoara.In fig.1 este prezentata
fotografia meniului principal.

Fig.1 Meniul principal al


aplicatiei

Semnificatia optiunilor meniului este urmatoarea:


Evidenta HOTEL – deschide un submeniu (fig.2) care
permite diverse operatii asupra camerelor cum ar fi
inchirierea de camere, predarea camerelor inchiriate,
adaugarea de noi camere sau modificarea celor existente,
majorarea procentuala a pretului camerelor, de asemenea
se opereaza si asupra personalului angajat( adaugare,
modificare, stergere).

9
Fig.2 Submeniul evidenta
HOTEL

Listari situatii – deschide un submeniu (fig.3) care


permite generarea,vizualizarea si tiparirea la imprimanta
a diverselor situatii:
- catalogul camerelor din hotel/pensiune
- lista camerelor disponibile
- camerele ocupate intr-o perioada
- lista personalului angajat

Fig.3 Submeniul listare situatii

Fiecare din situatiile generate sunt vizualizate pe ecran


apoi daca se doreste se poate face tiparirea acestora si pe
suport de hartie.

10
Utilitare - deschide un submeniu (fig.4) care
contine urmatoarele functiuni:

Fig.4 Submeniul utilitare

- Salvare datelor – optiunea permite efectuarea


salvarilor de siguranta a datelor pe diferite
perioade de lucru.

- Arhivare date – realizeaza pe harddisk in


directorul de lucru o arhiva comprimata a bazelor
de date

- Reindexare date – reface indecsii bazelor de date


in cazul ca acestia se altereaza din diverse
motive

- Restaurare date – restaureaza datele de pe


discheta pe care au fost salvate prin intermediul
optiunii de salvare din program.

Iesire – realizeaza iesirea din program.

Screen rest – apeleaza o procedura care este un


sceen saver al programului, in cazul ca acesta este
nefolosit o perioada de timp mai indelungata.

11
3.2 Lista procedurilor

Procedurile, functiile si bazaele de date folosite in


cadrul aplicatiei sunt enumerate mai jos sub forma
arborescenta:

HOTEL (procedure in HOTEL.PRG)


├────INTRARE (procedure in HOTEL.PRG)
├────IESIRE (procedure in HOTEL.PRG)
├────SCREE (procedure in SCREE.PRG)
│ ├────CHRSAW() (function in ?)
│ ├────INT() (function in ?)
│ ├────RAND() (function in ?)
│ └────INTRARE... (procedure in HOTEL.PRG)
├────INCHIRIA (procedure in INCHIRIAT.PRG)
│ │ MISCARI.DBF (database)
│ │ CAMERE.DBF (database)
│ ├────GEAM() (function in HOTEL.PRG)
│ ├────ALARMA (procedure in HOTEL.PRG)
│ │ └────CHR() (function in ?)
│ ├────STR() (function in ?)
│ ├────IIF() (function in ?)
│ ├────LAST() (function in ?)
│ ├────AFISARE (procedure in INCHIRIAT.PRG)
│ │ ├────STR() ... (function in ?)
│ │ ├────IIF() ... (function in ?)
│ │ └────DTOC() (function in ?)
│ ├────COL() (function in ?)
│ ├────DATE() (function in ?)
│ ├────EMPTY() (function in ?)
│ └────GEAM1() (function in HOTEL.PRG)
├────PREDAT (procedure in PREDAT.PRG)
│ │ CAMERE.DBF (database)
│ │ MISCARI.DBF (database)
│ ├────GEAM() ... (function in HOTEL.PRG)
│ ├────ALARMA... (procedure in HOTEL.PRG)
│ ├────STR() ... (function in ?)
│ ├────LAST() ... (function in ?)
│ ├────AFISARE... (procedure in INCHIRIAT.PRG)
│ ├────COL() ... (function in ?)
│ ├────SPACE() (function in ?)
│ ├────DATE() ... (function in ?)
│ ├────EMPTY() ... (function in ?)

12
│ ├────PREDATL (procedure in PREDAT.PRG)
│ │ ├────ALLT() (function in ?)
│ │ ├────STR() ... (function in ?)
│ │ ├────DTOC() ... (function in ?)
│ │ └────TIPAR (procedure in HOTEL.PRG)
│ │ └────INT() ... (function in ?)
│ └────GEAM1() ... (function in HOTEL.PRG)
├────MAJOR (procedure in MAJOR.PRG)
│ │ CAMERE.DBF (database)
│ ├────GEAM() ... (function in HOTEL.PRG)
│ ├────LAST() ... (function in ?)
│ ├────COL() ... (function in ?)
│ └────GEAM1() ... (function in HOTEL.PRG)
├────ACTUAL (procedure in ACTUAL.PRG)
│ │ CAMERE.DBF (database)
│ ├────GEAM() ... (function in HOTEL.PRG)
│ ├────EMPTY() ... (function in ?)
│ ├────LASTKEY() (function in ?)
│ ├────SEEK() (function in ?)
│ ├────BETWEEN() (function in ?)
│ ├────IIF() ... (function in ?)
│ ├────COL() ... (function in ?)
│ └────GEAM1() ... (function in HOTEL.PRG)
├────PERSONAL (procedure in PERSONAL.PRG)
│ │ PERSONAL.DBF (database)
│ ├────GEAM() ... (function in HOTEL.PRG)
│ ├────RECCOUNT() (function in ?)
│ ├────COL() ... (function in ?)
│ ├────REPL() (function in ?)
│ ├────LAST() ... (function in ?)
│ ├────EMPTY() ... (function in ?)
│ ├────SEEK() ... (function in ?)
│ ├────ALLTRIM() (function in ?)
│ └────GEAM1() ... (function in HOTEL.PRG)
├────CATALOG (procedure in CATALOG.PRG)
│ │ CAMERE.DBF (database)
│ ├────PROMPT() (function in ?)
│ ├────VAL() (function in ?)
│ ├────BAR() (function in ?)
│ ├────CAPTAB (procedure in CATALOG.PRG)
│ │ ├────BAR() ... (function in ?)
│ │ └────DTOC() ... (function in ?)
│ ├────STR() ... (function in ?)
│ ├────IIF() ... (function in ?)
│ └────TIPAR... (procedure in HOTEL.PRG)

13
├────OCUPAT (procedure in OCUPAT.PRG)
│ │ CAMERE.DBF (database)
│ │ MISCARI.DBF (database)
│ ├────DATE() ... (function in ?)
│ ├────EMPTY() ... (function in ?)
│ ├────COL() ... (function in ?)
│ ├────LAST() ... (function in ?)
│ ├────PROMPT() ... (function in ?)
│ ├────CAPTAB... (procedure in CATALOG.PRG)
│ ├────STR() ... (function in ?)
│ ├────DTOC() ... (function in ?)
│ └────TIPAR... (procedure in HOTEL.PRG)
├────LISTPERS (procedure in LISTPERS.PRG)
│ │ PERSONAL.DBF (database)
│ ├────CAPTAB... (procedure in CATALOG.PRG)
│ └────TIPAR... (procedure in HOTEL.PRG)
├────SALVARE (procedure in SALVARE.PRG)
│ ├────DTOC() ... (function in ?)
│ ├────DATE() ... (function in ?)
│ ├────LASTKEY() ... (function in ?)
│ ├────INKEY() (function in ?)
│ ├────ROW() (function in ?)
│ ├────ADIR() (function in ?)
│ ├────ALEN() (function in ?)
│ ├────BAZE() (function in ?)
│ ├────BBB() (function in ?)
│ ├────DISKSPACE() (function in ?)
│ └────COL() ... (function in ?)
├────ARHIV (procedure in ARHIV.PRG)
│ └────CHR() ... (function in ?)
├────REINDEX (procedure in REINDEX.PRG)
│ │ &FISIER (database)
│ ├────ADIR() ... (function in ?)
│ ├────ALEN() ... (function in ?)
│ ├────STR() ... (function in ?)
│ └────BAZE() ... (function in ?)
└────RESTAUR (procedure in RESTAUR.PRG)
├────LASTKEY() ... (function in ?)
├────INKEY() ... (function in ?)
├────ROW() ... (function in ?)
├────ADIR() ... (function in ?)
├────ALEN() ... (function in ?)
├────BAZE() ... (function in ?)
├────BBB() ... (function in ?)
├────DISKSPACE() ... (function in ?)
└────COL() ... (function in ?)

14
Procedurile si functiile enumerate mai sus sunt continute
in urmatoarele fisiere:
HOTEL.PRG
SCREE.PRG
INCHIRIAT.PRG
PREDAT.PRG
MAJOR.PRG
ACTUAL.PRG
PERSONAL.PRG
CATALOG.PRG
OCUPAT.PRG
LISTPERS.PRG
SALVARE.PRG
ARHIV.PRG
REINDEX.PRG
RESTAUR.PRG
O procedura sub forma binara este ISDISKIN.BIN, procedura
care verifica daca in momentul lucrului cu unitatea de
discheta, discheta este introdusa in unitate.

Bazele de date folosite de catre program sunt:


CAMERE.DBF
MISCARI.DBF
PERSONAL.DBF

Fisierele index ale bazelor de date sunt:


CAMERE.CDX
MISCARI.CDX
PERSONAL.CDX

15
3.3 Algoritmi folositi pentru realizarea aplicatiei

Exista mai multe tehnici de programare care sunt folosite


in realizarea programelor si anume exista tehnica top-down,
tehnica ce presupune realizarea unui mic program in jurul
caruia ulterior se realizeaza alte proceduri care se
conecteaza programului principal, prin intermediul carora
programul principal se extinde la aplicatii foarte complexe
ajungandu-se la adevarate sisteme informatice; o alta tehnica
de realizare a programelor este tehnica bottom-up, aceasta
tehnica presupune realizarea unor programe sau proceduri
independente una de alta, dar care in final se conecteaza
intre ele formand un o aplicatie complexa sau un sistem
informatic.
In cazul de fata tehnica folosita in realizarea
aplicatiei HOTEL a fost tehnica top-down.

16
4. Descrierea organizarii datelor

4.1 Solutia adoptata pentru organizarea si


gestionarea datelor.

Organizarea datelor este realizata in baze de date aflate


pe discul fix, adica in fisiere in format DBF, acestora
fiindu-le asociate fisierele index cu extensia CDX. In cadrul
fisierelor cu formatul DBF datele sunt retinute in campuri
care permit selectarea anumitor tipuri de date, si anume:
alfanumeric, numeric, data calendaristica, logic, memo.
Campurile dintr-o baza de date format DBF sunt coloanele iar
inregistrarile unde se retin datele efective sunt liniile. In
fisierul index se retin cheile (criteriile) de indexare
(ordonare) a bazei de date respective. In acest program s-a
folosit tipul de fisier index compact structural in format CDX
deoarece acesta ofera o siguranta mai mare si nu altereaza
datele. Fisierul index compact structural al unei baze de date
are acelasi nume ca si baza de date dar are extensia CDX.
In fisierul STARE.DBF se retin parametrii care
coordoneaza activitatea programului, ca de exemplu luna si
anul pentru care se prelucreaza datele, care este luna curenta
pentru care se prelucreaza datele, si numele arhivei in care
se retin datele unei luni care a fost inchisa.

4.2 Lista si descrierea fisierelor


17
Bazele de date folosite de catre program sunt:
CAMERE.DBF
MISCARI.DBF
PERSONAL.DBF

Fisierele index ale bazelor de date sunt:


CAMERE.CDX
MISCARI.CDX
PERSONAL.CDX

Structurile bazelor de date sunt urmatoarele:


Structura pentru baza de date CAMERE.DBF – aceasta baza
de date este folosita pentru a memora caracteristicile fiecare
came in parte

Field Field Name Type Width Dec Index Collate


1 NR_CAMERA Character 4
2 ETAJ Character 2
3 LOCURI Numeric 1
4 TARIF Numeric 10 2
5 TV Logical 1
6 TELEF Logical 1
7 OCUPAT Logical 1
** Total ** 21

Structura pentru baza de date MISCARI.DBF – este


utilizata de catre program pentru a retine detalii despre
inchirierea fiecarei camere

Field Field Name Type Width Dec Index Collate


1 NR_CAMERA Character 4
2 NR_PERS Numeric 1
3 VENIT Date 8
4 PLECAT Date 8
5 ZILE Numeric 2
6 TELEFON Numeric 10 2
7 SERVICE Numeric 10 2
8 DIVERSE Numeric 10 2
9 TOTAL Numeric 15 2
10 PREDAT Logical 1
11 CLIENT Character 30
** Total ** 100

18
Structura pentru baza de date PERSONAL.DBF – in aceasta baza
de date sun retinute datele despre personalul angajat.
Field Field Name Type Width Dec Index Collate
1 MARCA Character 4 Asc Machine
2 FUNCTIE Character 15
3 NUME Character 30
4 ADRESA Character 50
** Total ** 100

19