Sunteți pe pagina 1din 0

9.

Aplicaie informatic cu prelucrare de fiiere




Capitolul prezint un model de aplicaie care simuleaz activitatea
informaional la nivelul unei organizaii economico-sociale de dimensiuni medii.
Din perspectiv sistemic, orice organizaie poate fi privit ca o component a unui
sistem superior cum ar fi sistemul de subramur, sistemul de ramur etc.
La rndul su, privit cel puin din perspectiva funciunilor manageriale ale
ntreprinderii, orice organizaie constituie un sistem format din subsisteme
corespunztoare departamentelor aprovizionare, desfacere, financiar, contabilitate,
resurse umane, marketing etc. n direcia eficientizrii activitii fiecrui subsistem
al organizaiei socio-economice, conducerea are la dispoziie cel mai performant
instrument existent astzi pe pia instrumentul informatic. n acest context,
rezolvarea unei probleme cu ajutorul calculatorului electronic este o activitate
complex, care presupune o abordare sistematic, bazat pe o succesiune de
operaii, pentru realizarea crora se folosesc tehnici i instrumente specifice.
n practica proiectrii aplicaiilor informatice se utilizeaz o serie de
concepte de baz:
Proiect informatic denumire generic referitoare la realizarea sistemelor
informatice, a aplicaiilor informatice sau a unor probleme independente.
Sistem informatic ansamblu structurat de elemente intercorelate funcional,
pentru automatizarea procesului de culegere i prelucrare a datelor, n vederea
obinerii informaiilor pentru fundamentarea deciziilor. n general, sistemele
informatice reprezint componente ale sistemelor informaionale din organizaiile
socio-economice.
Aplicaie informatic denumire generic pentru problemele de informatic
de dimensiuni relativ reduse, care vizeaz un domeniu de activitate strict delimitat.
Metodologie n sens informatic, definete succesiunea etapelor de parcurs
pentru conceperea i realizarea proiectelor informatice. O metodologie poate
cuprinde mai multe metode.
Metod (tehnic) o mulime de pai, aplicai ntr-o succesiune logic asupra
unei mulimi de date de intrare, care conduce la obinerea rezultatelor.
Aplicaiile informatice acoper o gam larg de probleme
1
, ale cror
extreme pot fi caracterizate astfel:
a) existena unui volum relativ redus de date de intrare i ieire, dublat de
calcule laborioase (aplicaii tehnico-inginereti, care conduc la aplicaii bazate pe
aproximri succesive, exprimate matematic prin ecuaii algebrice i transcendente,
sisteme de ecuaii liniare, ecuaii difereniale, integrale, adic ntr-o formulare
global, aplicaii bazate pe metode de calcul numeric).
b) existena unui volum mare de date de intrare i ieire, asociate uzual
unor calcule cu complexitate redus (evidena materialelor, evidena personalului i

1
Capitolul 4 Etapele rezolvrii problemelor cu calculatorul, n lucrarea Algoritmi n
programare, B. Ghilic-Micu (coord.), Ed. ASE, Bucureti 2002, pg. 65
Algoritmi n programare. Aplicaii
calculul salariilor, evidena mijloacelor fixe, urmrirea realizrii produciei, a
contractelor de aprovizionare/desfacere etc., adic, n general, aplicaii de gestiune
economic). ntre aceste extreme exist o diversitate de aplicaii, dintre care unele
presupun att volume mari de date ct i modele economico-matematice bazate pe
calcule laborioase: gestiunea stocurilor, programarea produciei, probleme de
transport, croire, alocare a resurselor etc.
Realizarea proiectelor informatice este un proces complex, structurat n
mai multe etape, cu obiective specifice. Modul de realizare a acestor etape,
resursele implicate i durata lor total depind de varianta de soluie aleas, pe de o
parte, i de nivelul de abordare (aplicaie, sistem informatic, problem), pe de alt
parte. n funcie de complexitatea problemelor abordate n vederea rezolvrii cu
calculatorul, din perspectiva programelor care vor fi elaborate, soluiile proprii pot
conduce la una din situaiile: sisteme de programe realizate la nivelul unor aplicaii
informatice, abordate independent sau ca parte a unor sisteme informatice; unul sau
mai multe programe, n cazul unor probleme de dimensiuni reduse.

9.1. Etapele de realizare a proiectelor informatice

Realizarea proiectelor informatice presupune parcurgerea urmtoarelor
etape: formularea cerinelor, analiza, concepia
2
i finalizarea
3
. Pentru realizarea
unui proiect informatic se recomand constituirea unei echipe de analiz-
concepie-programare. Numrul membrilor echipei va fi stabilit n funcie de
dimensiunea i complexitatea proiectului, precum i de resursele disponibile. n
acest sens, exist mai multe modele de organizare a activitii de analiz-concepie-
programare: organizare democratic (deschis), echipa programatorului ef (CPT
Chief Programmers Team), echipa chirurgical etc.
Organizarea democratic este cel mai simplu model de conducere a
proiectelor, n care: ntreaga echip are ca scop unic reuita proiectului i nu
scopuri individuale, nlturarea erorilor i nu ascunderea lor; definirea soluiei de
realizare a proiectului se face n colectiv; realizarea sarcinilor se distribuie ntre
membrii echipei iar rolul conductor poate fi jucat de orice membru al echipei, prin
rotaie.
Echipa programatorului ef (CPT) presupune existena unui numr de
programatori dintre care unul este conductor, iar procesul de realizare a
proiectelor trebuie structurat precis, pe sarcini care se vor distribui membrilor
echipei. Programatorul ef este conductorul tehnic al ntregii echipe, realiznd i
legtura cu beneficiarii produsului. De asemenea, programatorul ef trebuie s fie
un bun manager i un bun analist-programator. Avantajul principal al acestui model
de organizare este c activitatea poate fi riguros planificat i urmrit, att sub
aspectul sarcinilor de executat, ct i al resurselor i termenelor stabilite.

2
n literatura de specialitate, etapa de concepie se regsete sub numele de proiectare i
conine dou subetape: proiectarea de ansamblu (logic) i proiectarea de detaliu (fizic).
3
Finalizarea, conform metodologiilor existente, cuprinde fazele de testare de ansamblu,
implementare i evaluare a produsului informatic.
Aplicaie informatic cu prelucrare de fiiere
Modelul echipei chirurgicale presupune o specializare mai accentuat a
membrilor echipei de analiz-concepie-programare. Astfel, va exista un manager
care va fi ajutat de un administrator i un secretar, iar ceilali membri ai echipei vor
fi repartizai pe diverse sarcini: formalizarea matematic, proiectarea algoritmilor,
stabilirea instrumentelor de programare, elaborarea documentaiei, determinarea
necesarului de hardware i software, codificarea i implementarea, testarea i
depanarea programelor, crearea interfaelor om-calculator etc.
Indiferent de modelul ales pentru organizarea activitii echipei de analiz-
concepie-programare, acesta trebuie s asigure controlul proiectului n sensul
atingerii obiectivelor privind calitatea produselor software, utilizarea eficient a
resurselor alocate, ncadrarea n costurile alocate i respectarea termenelor stabilite.
Principalele etape de realizare a proiectelor informatice sunt:

1. Formularea cerinelor pentru proiect. Realizarea unui proiect
presupune, nc de la nceput, formularea clar, complet i corect a problemei, ca
o cerin important pentru desfurarea cu bune rezultate a activitii de concepie
i finalizare a proiectelor. Cerinele sunt formulate de beneficiarul proiectului.
Dup formularea cerinelor se va stabili echipa de analiz-concepie-programare,
pentru fiecare membru al echipei atribuindu-se responsabiliti n procesul de
realizare a proiectului informatic, pornind de la un model de organizare.

2. Analiza. n aceast faz, plecnd de la formularea cerinelor
informaionale exprimate concret n date de ieire, echipa de analiz-proiectare va
identifica transformrile i prelucrrile necesare pentru obinerea acestora. n
funcie de natura aplicaiei, se vor stabili formulele matematice i metodele
numerice corespunztoare. Aparatul matematic folosit va fi argumentat teoretic n
documentaia care trebuie s nsoeasc proiectul informatic n forma final. Pe
baza exprimrii matematice a prelucrrilor i transformrilor identificate n proiect
se vor stabili datele de intrare
4
necesare. De asemenea, se vor pune n eviden
condiiile iniiale i restriciile referitoare la soluie. La finalul fazei, membrii
echipei vor angaja discuii n urma crora se poate reveni pentru eventuale corectri
i detalieri, nainte de trecerea la faza urmtoare.

3. Concepia proiectului (proiectarea aplicaiei). Pe baza datelor de
intrare/ieire i prelucrrilor stabilite n cadrul analizei se proiecteaz formatele
5
de
intrare, formatele de ieire, codurile i algoritmii, se definesc coleciile de date i

4
Determinarea datelor de intrare pornind de la transformrile necesare pentru obinerea
datelor de ieire se realizeaz utiliznd tehnica analizei concordanei ieiri-intrri (intrrile
sunt condiionate de ieiri).
5
n acest context, prin format se nelege modul n care vor fi reprezentate extern (pe ecran
sau pe hrtie) cmpurile pentru citirea datelor de intrare i cele pentru afiarea rezultatelor.
De asemenea, formatele de intrare/ieire sunt parte integrant din interfaa aplicaiei
informatice cu utilizatorul, n proiectarea creia trebuie s fie luate n calcul i elemente de
estetic i ergonomie vizual (sarcina responsabilului cu proiectarea interfeei).
Algoritmi n programare. Aplicaii
se stabilesc modulele proiectului care urmeaz s fie programate (structurarea
proiectului).
Formatele de intrare se vor constitui n ferestre individualizate de preluare
a datelor i vor conine cmpuri dedicate. Formatele de ieire trebuie s fie
sugestive, s evidenieze rezultatele (datele de ieire) i s ofere, eventual,
posibiliti de imprimare. Formatele de intrare/ieire trebuie s fie descrise i n
documentaia proiectului.
Proiectarea codurilor reprezint o activitate cu implicaii importante asupra
funcionrii produselor informatice. Codul reprezint o combinaie de simboluri
elementare (sau semnale), mpreun cu o serie de reguli de combinare a lor,
atribuit univoc unei entiti reale, pentru a o identifica fr nici un dubiu. ntre cod
i entitatea real exist o relaie de asociere biunivoc. Simplificnd, codurile pot fi
vzute ca porecle unice atribuite unor entiti din cadrul proiectelor informatice.
Cel mai cunoscut exemplu este codul numeric personal, format din 13 caractere:
unul pentru sex, ase pentru data naterii (an, lun, zi), cinci din registrul de
eviden a populaiei i o cifr de control. Codificarea este activitatea de stabilire a
codurilor.
Datele care stau la baza obinerii rezultatelor (informaiilor de ieire) vor fi
grupate n colecii, care vor concretiza sistemul de fiiere sau baza de date. Pot fi
identificate urmtoarele tipuri de colecii de date: de baz, pentru tranzacii,
intermediare, colecii de date statistice, colecii de date istorice.
Se identific funciile de prelucrare, care vor fi grupate n entiti numite
module. Pentru aceasta pot fi utilizate tehnicile de proiectare top-down i
modularizat
6
. Etapa se finalizeaz cu elaborarea schemei de sistem, care ilustreaz
modulele de prelucrare, coleciile de date folosite i legturile dintre module i
colecii.
Proiectarea algoritmilor este o etap complex, care presupune analiza
riguroas a problemei i a formalizrii ei matematice. Tehnicile top-down i
modularizat pot fi adoptate i n proiectarea algoritmilor. Etapa trebuie ncheiat,
obligatoriu, cu testarea algoritmilor. Odat cu elaborarea algoritmilor se stabilesc
resursele de calcul necesare: echipamentele periferice, limbajele de programare
care vor fi utilizate, seturile de date care vor fi folosite la testare, necesarul de
memorie intern etc. Necesarul de resurse va trebui s fie trecut n form explicit
n documentaie, astfel nct s se poat realiza o exploatare ulterioar corect a
produsului program.
Codificarea algoritmilor poate fi realizat dup elaborarea algoritmilor sau
n paralel, cnd se lucreaz n echip. Scrierea programelor trebuie s se fac
respectnd algoritmii (eventual se pot face modificri i detalieri ale acestora)
urmrindu-se, n acelai timp, optimizarea utilizrii resurselor calculatorului (timp
unitate central, memorie intern i periferice) i realizarea interfeelor deja
conturate n etapele anterioare.

6
Paragraful 3.8 Proiectarea algoritmilor, n lucrarea Algoritmi n programare, B. Ghilic-
Micu (coord.), Ed. ASE, Bucureti 2002, pg. 60
Aplicaie informatic cu prelucrare de fiiere
n documentaia proiectului vor aprea n form explicit detaliile legate de
limbajul de programare ales, de versiunea acestuia, de sistemul de operare sub care
poate rula produsul informatic.

4. Finalizarea proiectului. Odat realizat, proiectul este testat n ansamblu
pe baza unor seturi de date de control prestabilite. Produsele program se consider
corecte dac rezultatele obinute sunt cele scontate (pentru datele de test,
programatorii trebuie s determine apriori rezultatele valorile i forma lor de
prezentare). Programele se testeaz att independent, ct i n corelaie cu cele care
se execut n amonte sau n aval.
Implementarea aplicaiei informatice presupune asigurarea exploatrii sale
n condiii reale la beneficiar, furnizorul livrnd produsul la cheie (programe n
form executabil, care pot fi exploatate conform manualului de utilizare/
exploatare).

5. Evaluarea proiectelor. La baza elaborrii proiectelor informatice st
conceptul de eficien economic, respectiv compararea efectelor obinute cu
cheltuielile necesare pentru funcionarea sistemului/aplicaiei n cauz. n acest
sens s-au formulat mai multe teorii i concepte care privesc evaluarea eficienei
proiectelor informatice, i care se pot clasifica n trei grupe:
1. teorii i metode bazate pe utilitatea proiectelor eficiena lor nu poate fi
pus n discuie ct timp acestea nu servesc cerinelor informaionale ale
utilizatorului final;
2. teorii i concepte bazate pe valoarea informaiilor furnizate prin proiectele
informatice realizate eficiena lor rezult din impactul pe care l au sistemele/
aplicaiile respective asupra activitii de conducere a organizaiilor economico-
sociale;
3. teorii i concepte pentru care eficiena economic se poate evalua prin
contribuia produselor informatice realizate la sporirea eficienei activitilor cu
caracter tehnic, de producie, economic sau social, numrul indicatorilor utilizai
fiind limitat: coeficientul de satisfacere a cerinelor informaionale, coeficientul
timpului de rspuns, coeficientul timpului de recuperare, coeficientul economiei de
personal, coeficientul eficienei economice, coeficientul tehnico-economic.

6. Exploatarea i mentenana. Dup punerea la punct, produsele intr n
utilizare, fiind urmrite n vederea depistrii unor erori care nu au putut fi sesizate
anterior. Aceast faz asigur meninerea n funciune i dezvoltarea produselor
informatice, proces care poate s continue pe tot parcursul utilizrii lor i care
poate conduce la dezvoltarea de noi versiuni, bazate pe informaii despre
comportarea produsului la utilizatorul final.

7. Documentarea. Dei nu este o etap distinct n procesul de realizare a
proiectelor informatice (documentarea se asigur n cadrul fiecrei etape parcurse),
pentru a-i sublinia importana i pentru a crea reflexul ntocmirii ei, o punctm
Algoritmi n programare. Aplicaii
metodologic i separat. Documentarea corect a proiectului informatic face posibil
exploatarea, dezvoltarea i adaptarea produselor, mai ales dac fac parte dintr-un
sistem informatic, precum i comercializarea lor ctre diveri utilizatori.
Documentaia proiectului (manuale de prezentare i utilizare/exploatare), cuprinde:
descrierea problemei (rezultatele, datele de intrare, procesul de prelucrare,
formalizarea matematic i modelul matematic, precizia algoritmilor etc.);
descrierea resurselor necesare i a restriciilor de utilizare;
schema de sistem a proiectului (organigrama modulelor);
schema tehnologic a proiectului (modul de punere n funciune a
modulelor);
reprezentarea algoritmilor pentru fiecare modul (schem logic, pseudocod
etc.);
modul de apel al procedurilor/funciilor i structura datelor/parametrilor
care se transfer ntre apelator i apelat;
instruciuni de utilizare (procedura de punere n lucru, lista i forma
ntrebrilor i rspunsurilor n conversaia cu utilizatorii etc.);
exemple de utilizare.
Documentaia proiectului poate fi tehnoredactat folosind instrumente
informatice specifice: editoare de texte; editoare grafice; editoare de ecuaii etc.
Trebuie menionat, n special pentru dezvoltrile ulterioare, utilitatea
autodocumentrii proiectelor, realizat sub forma unor comentarii intercalate n
programe.

Evoluia rapid n domeniul tehnologiei informaiei a condus la elaborarea
de noi metodologii pentru realizarea proiectelor informatice. n cazul unui proiect
real, de mari dimensiuni (sistem informatic/produs program) este bine ca echipa de
analiz-concepie-programare s utilizeze o metodologie de proiectare (consacrat
sau proprie). Exist o multitudine de metodologii de analiz-proiectare, ncepnd
cu cele structurate i continund cu metodologiile orientate obiect.
n abordarea structurat, cele mai reprezentative metodologii sunt:
SSADM (Structured Systems Analysis and Design Method elaborat n Marea
Britanie la nceputul anilor 80), MERISE (Frana), Yourdon&Constantine,
Jackson, SA/SD (Structured Analysis/Structured Design), HIPO (Hierarchycal
Input Proces Output) etc.
Metodologiile de analiz i proiectare a sistemelor informatice au cunoscut
o mbuntire remarcabil datorit dezvoltrii programrii orientate obiect.
Analiza i proiectarea orientate obiect reprezint un nou mod de abordare a
problemelor, bazat pe concepte din lumea real. Modelele orientate obiect
constituie reprezentri abstracte ale sistemelor reale.
Dintre cele mai cunoscute metodologii de analiz-proiectare orientate
obiect fac parte: OOSE (Object Oriented Software Engineering Ivar Jacobson),
OMT (Object Modelling Technique), OOSA (Object Oriented System Analysis -
Shlaer&Mellor), OOA (Object Oriented Analysis - Coad&Yourdon) etc.
Aplicaie informatic cu prelucrare de fiiere
Pentru analiza i proiectarea aplicaiilor informatice exist o serie de
instrumente software (medii integrate de dezvoltare software), care asist echipa de
analiz-proiectare pe tot parcursul elaborrii proiectelor. Astfel de instrumente sunt
produsele CASE (Computer Aided Software Engineering), care ofer posibiliti
grafice i de editare, generarea de cod n diferite limbaje de programare,
autodocumentarea proiectelor, conexiuni Internet etc.


Proiectele reale nu pot fi realizate fr un suport adecvat de baze de date
sau sisteme de fiiere, deoarece presupun memorarea strii iniiale a sistemului i
actualizarea lui n timp. Pentru exemplificare am ales o problem a crei rezolvare
utilizeaz un sistem de fiiere binare i text, simulnd metodele de organizare
relativ i indexat.

Formularea cerinelor pentru proiect
S se realizeze un proiect de aplicaie informatic utiliznd limbajul Pascal
pentru gestiunea activitii de nchiriere a autoturismelor pentru o societate
comercial din domeniu. Aplicaia va evidenia aspectele legate de parcul auto, de
gestiunea clienilor, contractelor de nchiriere i a facturilor emise. De asemenea,
principalele funciuni ale aplicaiei se vor regsi n urmtoarele operaii, dintre care
unele situaii se vor obine la cerere: nregistrri/achiziii auto; nchirieri auto;
reealonarea tarifelor auto; radieri auto; emiterea automat a facturilor; plata
facturilor emise i scadente; prezentarea ofertei auto pe tipuri de autoturisme;
calculul venitului societii pe fiecare main.

Analiza
Echipa de analiz-concepie-programare a identificat, pe baza cerinelor
formulate n proiect, datele de ieire i principalele prelucrri necesare pentru
obinerea acestor date.
Datele de ieire:
a) facturile emise ca urmare a scadenei contractelor de nchiriere auto;
b) oferta integral a societii (prezentat pe tipuri de autoturisme);
c) venitul nregistrat pe fiecare main din parcul auto.
Prelucrri:
a) compararea datei curente din sistem cu data scadenei contractelor
neonorate, calculul valorii facturii emise lund n calcul numrul de
kilometri parcuri de client de la momentul nchirierii auto; de asemenea,
la calculul valorii facturate se va ine cont de fidelitatea clientului;
b) ordonarea alfabetic a datelor despre autoturismele din parcul auto n
funcie de tipul acestora (problem cu control dup caracteristic);
c) calculul valorii nchirierilor auto pentru fiecare main din parcul auto.
De asemenea, au fost stabilite condiiile iniiale i restriciile referitoare la
soluie:
- o main nu poate fi nchiriat dac apare ntr-un contract neonorat;
Algoritmi n programare. Aplicaii
- unicitatea numerelor de nmatriculare auto;
- o main poate fi radiat dac nu face obiectul unui contract de
nchiriere neonorat;
- valoarea facturat este calculat cu o precizie de dou zecimale;
- oferta auto a societii va fi afiat pe ecran i va fi memorat ntr-un
fiier text.
Pe baza prelucrrilor, pentru obinerea datelor de ieire, au fost definite
urmtoarele date de intrare: informaiile despre o main (numr auto, marca, anul
fabricaiei, tariful la 100 km, starea, numrul de km la bord). Alte date de intrare,
care particip la obinerea datelor de ieire vor fi construite (introduse) interactiv i
constau din informaiile despre clieni (cod, nume, adresa, numr de contracte
ncheiate), contracte i facturi.

Concepia proiectului (proiectarea aplicaiei)
Plecnd de la analiza proiectului, n aceast etap au fost definite formatele
de intrare/ieire, s-au proiectat codurile, coleciile de date i modulele aplicaiei,
precum i algoritmii care vor fi programai. De asemenea, au fost elaborate schema
de sistem a proiectului i schema tehnologic de punere n funciune a modulelor.
Formatele de intrare au fost proiectate pornindu-se de la datele de intrare
identificate. Pentru crearea fiierelor cu date despre parcul auto, clieni, contracte i
facturi, a fost realizat un program independent (creare), care realizeaz crearea
fr articole a fiierelor.
Pentru toate situaiile formulate n problem au fost proiectate formate de
ieire care ofer posibilitatea obinerii rezultatelor n fiiere text i/sau pe ecran.
Fiierele rezultate vor avea nume sugestive, n funcie de cerinele solicitate de
utilizator, i pot fi vizualizate n orice editor de texte. Coninuturile fiierelor de
ieire vor fi prezentate n documentaia proiectului.
Corespunztor situaiilor prezentate, au fost proiectate opt module
specializate, apelate din modulul principal al proiectului. Pe baza modulelor
proiectate, au fost definitivate schema de sistem a proiectului i schema
tehnologic de punere n lucru a modulelor.
Activitatea de codificare vizeaz caracteristicile mainilor din parcul auto,
informaiile despre clieni, atributele contractelor de nchiriere i informaiile dintr-
o factur. Codificarea va ajuta i la definirea coleciilor de date.
Coleciile de date externe alese sunt fiiere binare, cte unul pentru maini,
clieni, contracte i facturi. Structura logic a articolelor din fiecare fiier este
descris n manualul de prezentare:
Algoritmii s-au realizat folosind metoda proiectrii structurate, iar pentru
implementarea acestora s-a utilizat limbajul Pascal. n cadrul algoritmilor nu au
fost proiectate secvene de validare
7
. Descrierea detaliat a algoritmilor poate fi
studiat n documentaia proiectului. De asemenea, primitivele folosite n lucrul cu

7
Pentru validare a se vedea capitolul 11 Validarea datelor, din lucrarea Algoritmi n
programare, B. Ghilic-Micu (coord.), Ed. ASE, Bucureti 2002, pg. 183
Aplicaie informatic cu prelucrare de fiiere
fiiere relative (clienti.dat) i fiiere indexate (auto.dat) sunt prezentate
detaliat n capitolele 7 i 8 ale acestei lucrri).
Diferenele fa de unitile relativ.tpu i indexate.tpu constau n
structura articolelor (tabelul 9.1).

Tabelul 9.1. Diferene fa de unitile din capitolele 7 i 8
UNIT Indexate;
INTERFACE
TYPE
TipCheie= string[7];
TipArt=RECORD
nrm:TipCheie;

marca:string[15];
an:word;
tarif:real;
stare:0..1;
nrkm:longint
end;
TipFis=FILE OF TipArt;
UNIT Relativ;
INTERFACE
TYPE
tipa=RECORD
is:BYTE;
nume:string[40];
adr:string[30];
nrc:byte;
END;
tipf=FILE of tipa;

Finalizarea proiectului
Pentru aceast faz, proiectul a fost testat n ansamblu, verificndu-se
astfel funcionalitatea acestuia. Testarea s-a realizat utiliznd date de test. Dup
testare, proiectul informatic este livrat beneficiarului, unde va fi implementat i
pregtit pentru exploatare.

Exploatarea i mentenana
Aplicaia va fi exploatat la beneficiar, urmrindu-se comportamentul
acesteia pe parcursul utilizrii.

Documentarea
Documentaia proiectului cuprinde manualele de prezentare i de
utilizare/exploatare. Pentru tehnoredactarea acestora a fost folosit editorul de texte
Microsoft Word 2002, editorul de ecuaii Microsoft Equation 3.0 i editorul grafic
Microsoft Word Picture 2002.

Algoritmi n programare. Aplicaii
9.2. Dosarul de prezentare a aplicaiei

Aplicaia realizat permite gestiunea activitii de nchiriere a
autoturismelor pentru o societate comercial din domeniu. Aplicaia evideniaz
aspectele legate de parcul auto, de gestiunea clienilor, contractelor de nchiriere i
a facturilor emise. Principalele funciuni ale aplicaiei sunt urmtoarele:
A. nregistrri/achiziii auto;
B. nchirieri auto;
C. actualizarea tarifelor auto;
D. radieri auto;
E. emiterea automat a facturilor;
F. plata facturilor emise i scadente;
G. prezentarea ofertei auto pe tipuri de autoturisme;
H. calculul venitului societii pe fiecare main.
Aplicaia simulare este scris n Limbajul Pascal, versiunea 6.0, fiind
structurat n opt module, cte unul pentru fiecare funciune. Punerea n execuie a
modulelor aplicaiei se realizeaz conform schemei de sistem (figura 9.1).

Meniu
principal
G
funcia 1
A
funcia 2
B
funcia 3
C
funcia 4
D
funcia 5
E
funcia 6
F
funcia 7
G
funcia 8
H

Fig. 9.1. Schema de sistem a proiectului
Aplicaie informatic cu prelucrare de fiiere
Prelucrrile aplicaiei folosesc patru coleciile de date externe (fiiere
binare), cte unul pentru maini, clieni, contracte i facturi. Structura logic a
articolelor din fiecare fiier este:
Fiierul auto.dat, organizat indexat dup cheia primar nrauto:

Semnificaie
numrul de
nmatriculare auto
(cheia primar)
tipul auto,
marca
anul de
fabricaie
tariful la
100 km
starea mainii:
nchiriat sau nu
numr de
km la
bord
Codificare nrm marca an tarif stare nrkm
Tip string[7] string[15] word real 0..1 longint

Fiierul clienti.dat, organizat relativ dup cheia relativ codclient:

Semnificaie
codul clientului
(cheia
relativ)
indicatorul de
stare a
articolului
numele i
prenumele
clientului
adresa
clientului
numr de
contracte
ncheiate
Codificare codc is nume adr nrc
Tip word byte string[40] string[30] byte

Fiierul contr.dat, organizat secvenial:

Semnificaie
numrul
contractului
codul
clientului
numrul
auto al
mainii
nchiriate
data
ncheierii
contractului
numr
de km
parcuri
data
stingerii
contractului
starea
contractului:
n derulare
sau stins
Codificare nrc codc nrm dataem nrkm scadenta on
Tip word word string[7] data* longint data* 0..1
* a fost definit tipul data, de forma: an (word), luna (1..12), zi (1..31).

Fiierul facturi.dat, organizat secvenial:

Semnificaie
numrul
facturii
numrul
contractului
numele
clientului
numrul
auto al
mainii
nchiriate
numr
de km
parcuri
valoarea
facturii
starea
facturii:
achitat sau
nu
Codificare nrf nrc nume nrm nrkm val achitat
Tip word word string[40] string[7] longint real 0..1

Pentru memorarea datelor din fiierele aplicaiei au fost definite, ca
structuri de date interne, urmtoarele tipuri de articole:

TipCheie= string[7];
TipArt=record
nrm:TipCheie;
marca:string[15];
an:word;
tarif:real;
stare:0..1;
nrkm:longint
end;
Algoritmi n programare. Aplicaii
tipa=record
is:BYTE;
nume:string[40];
adr:string[30];
nrc:byte;
end;
data=record
an:word;
luna:1..12;
zi:1..31
end;
contr=record
nrc:word;
codc:word;
nrm:tipcheie;
dataem:data;
nrkm:longint;
scadenta:data;
on:0..1
end;
facturi=record
nrf:word;
nrc:word;
nume:string[40];
nrm:tipcheie;
nrkm:longint;
val:real;
achitat:0..1
end;

Simultan cu crearea fiierului indexat (de date) auto.dat se creeaz
automat i fiierul secvenial auto.idx care va conine tabela de indexuri
asociat. Structura articolului tabelei de indexuri este prezentat n capitolul 8.
Pentru fiecare modul au fost proiectate seturi de date de test, modulele
fiind testate att individual, ct i n inter-funcionalitatea lor. Structura sistemului
de fiiere a fost proiectat astfel nct s simuleze funcionarea unei baze de date
relaionale (figura 9.2).
Pentru funciunea G a aplicaiei se creeaz un fiier temporar de manevr
pe baza cruia se obine oferta de maini grupate dup cmpul marca. Structura
logic a articolelor din fiierul de manevr este urmtoarea:

manevra=record
nrauto:string[7];
marca:string[15];
tarif:real;
nrkm:longint
end;

Aplicaie informatic cu prelucrare de fiiere

AUTO.DAT CLIENTI.DAT
CONTR.DAT FACTURI.DAT
MENIU PRINCIPAL
nrm
MANEVRA.TMP
OFERTA.TXT
codc
nrc
nume


Fig. 9.2. Relaiile dintre fiierele aplicaiei

Descrierea algoritmilor pe funciuni

1. Modulul functia1 (funciunea A) este o operaie de adugare n acces
direct n fiierul indexat auto.dat. Se folosesc primitivele openold, start,
writekeyrec i closefis din unitatea indexate. Dac valoarea cheii primare
(nrm) introdus de la tastatur este valid se realizeaz preluarea cmpurilor din
structura articolului, se seteaz starea pe valoarea 0 (nenchiriat) i se scrie articolul
n fiier. Fiierul conductor este tastatura, iar n caz de cheie invalid se
semnaleaz eroare.
2. Modulul functia2 (funciunea B) const n mai multe operaii:
- introducerea de la tastatur a tipului de main pe care dorete s o nchirieze
clientul (marca);
- cutare n acces secvenial n fiierul indexat auto.dat utiliznd primitiva
readseqrec din unitatea indexate; cutarea se face cu selecie dup dou
criterii (marca i starea);
- afiarea ofertei disponibile pentru marca cutat;
- alegerea mainii care va face obiectul unui nou contract de nchiriere (prin
introducerea de la tastatur a cheii primare corespunztoare mainii din oferta
afiat la pasul anterior);
- introducerea datelor despre client cu validarea cheii relative (codc) din
fiierul clienti.dat (se folosete primitiva writed din unitatea relativ);
- n cazul n care clientul exist se realizeaz operaia de modificare a
numrului de contracte de nchiriere (sporul de fidelitate);
Algoritmi n programare. Aplicaii
- adugare n acces secvenial n fiierul contr.dat dup ce sunt completate
celelalte cmpuri ale articolului i starea contractului ia valoarea 0 (contract n
derulare).
3. Modulul functia3 (funciunea C) realizeaz reealonarea tarifelor prin
creterea acestora cu 10% i const n operaia de modificare n acces secvenial a
articolelor din fiierul auto.dat, utiliznd primitivele readseqrec i
rewriterec din unitatea indexate.
4. Modulul functia4 (funciunea D) realizeaz tergerea n acces direct a
articolelor din fiierul indexat auto.idx pentru cheile primare citite de la
tastatur. Radierea unei maini se poate face doar dac nu exist contracte
neonorate pentru maina respectiv. Aceast verificare se face comparnd data
curent din sistem (citit cu procedura getdate din unitatea DOS a mediului
Pascal) cu data de scaden a contractelor neonorate, folosindu-se o funcie special
construit dme.
5. Modulul functia5 (funciunea E) realizeaz adugarea n acces
secvenial la sfritul fiierului facturi.dat. O factur este emis automat dac
n fiierul de contracte se gsete o nregistrare care are ca dat de scaden data
curent din sistem. n momentul emiterii facturii are loc calculul valorii acesteia pe
baza numrului de kilometri parcuri de la momentul ncheierii contractului de
nchiriere. n cazul n care clientul este fidel (numrul de contracte ncheiate este de
cel puin cinci), aplicaia permite acordarea unui discount de 10%. De asemenea,
odat cu emiterea facturii se modific n acces direct i starea mainii din fiierul
auto.dat.
6. Modulul functia6 (funciunea F) cuprinde dou operaii de
modificare: modificarea strii facturii dup achitare i modificarea strii
contractului aferent (stingerea acestuia).
7. Modulul functia7 (funciunea G) constituie un model de problem cu
control dup caracteristic (marca). Astfel, pe baza fiierului indexat auto.dat
se creeaz un fiier temporar (manevra.tmp) care este ters fizic la ieirea din
aceast funciune. Fiierul temporar este ordonat dup caracteristica de grupare
marca, obinndu-se apoi pe ecran i n lista oferta.txt oferta de maini.
8. Modulul functia6 (funciunea H) este o operaie de consultare n
acces secvenial a fiierului facturi.dat, dup o validare prealabil a cheii
primare nrm (introdus de la tastatur) n fiierul indexat auto.dat. n cazul cnd
cheia exist se realizeaz totalul facturilor achitate n urma stingerii contractelor de
nchiriere care au avut ca obiect maina cu numrul auto corespunztor cheii.

Instalarea produsului informatic

La instalarea produsului, beneficiarul va lansa n execuie programul
creare.exe, care realizeaz crearea fiierelor aplicaiei fr articole. Utilizatorul
va trebui s furnizeze de la tastatur numele asociate fiierelor fizice pe disc.
Aplicaie informatic cu prelucrare de fiiere
Urmeaz punerea n execuie a aplicaiei simulare, n urma creia va fi
afiat meniul principal al aplicaiei.



Utilizatorul poate alege una din cele opt opiuni, iar pentru fiecare opiune
se deschide un ecran special n care sunt preluate datele de intrare i sunt afiate
rezultatele.
Dac este aleas opiunea 2 i clientul care urmeaz s nchirieze maina
este nou (nu exist n fiierul clienti.dat), ecranul aplicaiei va arta astfel:



Dac este aleas opiunea 5 i exist facturi scadente la momentul apelrii
opiunii, se emite automat o factur de urmtoarea form:

Algoritmi n programare. Aplicaii


Pentru opiunea 7 rezultatul este afiat pe ecran, dar va fi salvat i ntr-un
fiier text numit oferta.txt.



Aplicaie informatic cu prelucrare de fiiere
DOSAR DE PREZENTARE

Anexa A: fiierul surs creare.pas

program creare;
uses crt, relativ, indexate;
type data=record
an:word;
luna:1..12;
zi:1..31
end;
contr=record
nrc:word;
codc:word;
nrm:tipcheie;
dataem:data;
nrkm:longint;
scadenta:data;
on:0..1
end;
facturi=record
nrf:word;
nrc:word;
nume:string[40];
nrm:tipcheie;
nrkm:longint;
val:real;
achitat:0..1
end;
var f:tipfis; g:tipf;
h1:file of contr; h2:file of facturi;
numef,numeg,numeh1,numeh2:string;
ivk:boolean;
begin
clrscr;
write('Numele fisierului de masini:');
readln(numef);
opennew(f,numef,ivk);
write('Numele fisierului de clienti:');
readln(numeg);
open(g,numeg,0,ivk);
write('Numele fisierului de contracte:');
readln(numeh1);
assign(h1,numeh1); rewrite(h1);
write('Numele fisierului de facturi:');
readln(numeh2);
assign(h2,numeh2); rewrite(h2);
end.

Algoritmi n programare. Aplicaii
DOSAR DE PREZENTARE

Anexa B: fiierul surs simulare.pas

program simulare;
uses dos,crt,relativ,indexate;
type data=record
an:word;
luna:word;
zi:word
end;
contr=record
nrc:word;
codc:word;
nrm:tipcheie;
dataem:data;
nrkm:longint;
scadenta:data;
on:0..1
end;
facturi=record
nrf:word;
nrc:word;
nume:string[40];
nrm:tipcheie;
nrkm:longint;
val:real;
achitat:0..1
end;
manevra=record
nrauto:string[7];
marca:string[15];
tarif:real;
nrkm:longint
end;
const numef:string='auto.dat';
numeg:string='clienti.dat';
numeh1:string='contr.dat';
numeh2:string='facturi.dat';
var f:tipfis; g:tipf; h1:file of contr; h2:file of facturi;
m:file of manevra; l:text;
a:tipart; b:tipa; c:contr; d:facturi; t,z:manevra;
ivk,sf,vb:boolean; opt:0..8; i:byte;
datas:data; codc,sapt:word; nrm_t:tipcheie;
c1,marca_t:string[15]; r:char; n:longint; tot:real;
procedure meniu;
begin
reset(input); clrscr;
gotoxy(30,7); write('Aplicatie multifunctionala RENT A CAR');
gotoxy(26,9); write('1. Achizitie auto');
gotoxy(26,10); write('2. Inchiriere auto');
gotoxy(26,11); write('3. Cresterea pretului carburantului cu 10%');
gotoxy(26,12); write('4. Radiere auto');
gotoxy(26,13); write('5. Emitere automata factura');
Aplicaie informatic cu prelucrare de fiiere
gotoxy(26,14); write('6. Plata factura');
gotoxy(26,15); write('7. Oferta auto pe tipuri de masini');
gotoxy(26,16); write('8. Valoarea inchirierilor pe masina');
gotoxy(20,18); write('Functia aleasa (sau 0):');
gotoxy(46,18); readln(opt);
end;
procedure functia1;
begin
clrscr; checkeof:=true; openold(f,numef,ivk);
if ivk then writeln('Fisier inexistent!')
else begin
gotoxy(20,2);
write('Nr. de inmatriculare (exp: B92BGM) sau ^Z:');
while not eof do
begin
gotoxy(20,42);
readln(nrm_t);
for i:=1 to length(nrm_t) do nrm_t[i]:=upcase(nrm_t[i]);
start(f,nrm_t,ivk);
if not ivk then begin
gotoxy(26,18);
writeln('Nr. deja existent!');
gotoxy(26,18); readln;
clreol
end
else begin
writeln;
a.nrm:=nrm_t;
write('Marca :'); readln(a.marca);
for i:=1 to length(a.marca) do
a.marca[i]:=upcase(a.marca[i]);
write('Anul fabricatiei :'); readln(a.an);
write('Tarif la 100 km :'); readln(a.tarif);
write('Nr. km la bord :'); readln(a.nrkm);
a.stare:=0;
writekeyrec(f,a,nrm_t,ivk)
end;
writeln;
write('Nr. de inmatriculare (exp: B92BGM) sau ^Z:')
end
end;
closefile(f)
end;
procedure functia2;
begin
clrscr; checkeof:=true;
assign(h1,numeh1); reset(h1); seek(h1,filesize(h1));
assign(g,numeg); reset(g);
write('Marca sau ^Z:');
while not eof do
begin
openold(f,numef,ivk);
readln(marca_t);
for i:=1 to length(marca_t) do
marca_t[i]:=upcase(marca_t[i]);
Algoritmi n programare. Aplicaii
sf:=false; vb:=false; i:=0;
readseqrec(f,a,sf);
while not sf do
begin
if (a.marca=marca_t) and (a.stare=0) then
begin
inc(i);
gotoxy(10,2+i);
write(a.nrm,' ',a.marca,
' ',a.nrkm:5,' km la bord');
vb:=true
end;
readseqrec(f,a,sf)
end;
readln;
if not vb then begin
gotoxy(26,18);
writeln('Marca de masina inexistenta sau alocata!');
gotoxy(26,18); readln;
clrscr
end
else
begin
writeln;
write('Nr. de inmatriculare din oferta:');
readln(nrm_t);
for i:=1 to length(nrm_t) do nrm_t[i]:=upcase(nrm_t[i]);
readkeyrec(f,a,nrm_t,ivk);
if ivk then writeln('Nr. de inmatriculare introdus gresit!')
else begin
a.stare:=1;
rewriterec(f,a,ivk);
closefile(f);
c.nrm:=a.nrm;
c.nrc:=filesize(h1)+1;
c.nrkm:=a.nrkm;
getdate(c.dataem.an,c.dataem.luna,c.dataem.zi,sapt);
write('Codul clientului:');
readln(codc);
readd(g,b,codc,ivk);
if ivk then begin
writeln('Client nou!');
write('Nume:'); readln(b.nume);
write('Adresa:'); readln(b.adr);
b.nrc:=1;
writed(g,b,codc,ivk)
end
else begin
b.nrc:=b.nrc+1;
writed(g,b,codc,ivk)
end;
writeln('Data scadentei contractului:');
write('Anul:'); readln(c.scadenta.an);
write('Luna:'); readln(c.scadenta.luna);
write('Ziua:'); readln(c.scadenta.zi);
Aplicaie informatic cu prelucrare de fiiere
c.on:=0;
write(h1,c); clrscr
end
end;
write('Marca sau ^Z:')
end;
close(h1); close(g)
end;
procedure functia3;
begin
openold(f,numef,ivk);
clrscr; writeln('Tarifele la inchirieri auto vor creste cu 10%');
sf:=false;
readseqrec(f,a,sf);
while not sf do
begin
a.tarif:=a.tarif*1.1;
rewriterec(f,a,ivk);
readseqrec(f,a,sf)
end;
gotoxy(20,20); write('Sfarsit de operatie. Apasati ENTER'); readln;
closefile(f)
end;
function dme(var d1,d2:data):boolean;
begin
if d1.an>=d2.an then
if (d1.an=d2.an) and (d1.luna>=d2.luna) then
if (d1.an=d2.an) and (d1.luna=d2.luna) and (d1.zi>=d2.zi)
then dme:=true
else dme:=false
end;
procedure functia4;
begin
clrscr; checkeof:=true;
openold(f,numef,ivk);
write('Nr. de inmatriculare al masinii de radiat sau ^Z:');
while not eof do
begin
readln(nrm_t);
for i:=1 to length(nrm_t) do nrm_t[i]:=upcase(nrm_t[i]);
readkeyrec(f,a,nrm_t,ivk);
if ivk then begin
gotoxy(26,18);
writeln('Masina neinmatriculata sau radiata!');
gotoxy(26,18); readln; clrscr
end
else begin
if a.stare=1 then writeln('Pentru masina cu numarul ',
nrm_t,' exista contracte neonorate!')
else begin
writeln;
writeln('Nr. de inmatriculare: ',a.nrm);
writeln('Marca: ',a.marca);
writeln('Anul fabricatiei: ',a.an);
writeln('Tarif la 100 km: ',a.tarif:6:0,' USD');
Algoritmi n programare. Aplicaii
writeln;
write('Confirmati radierea (d/n)?');
readln(r);
if upcase(r)='D' then deletekeyrec(f,nrm_t,ivk)
end
end;
write('Nr. inmatriculare al masinii de radiat sau ^Z:')
end;
closefile(f)
end;
procedure functia5;
begin
clrscr;
assign(h2,numeh2); reset(h2); seek(h2,filesize(h2));
assign(h1,numeh1); reset(h1);
assign(g,numeg); reset(g);
openold(f,numef,ivk);
getdate(datas.an,datas.luna,datas.zi,sapt);
while not eof(h1) do
begin
vb:=false;
read(h1,c);
if (dme(datas,c.scadenta)) and (c.on=0) then
begin
vb:=true;
d.nrf:=filesize(h2)+1;
d.nrc:=c.nrc;
readd(g,b,c.codc,ivk);
d.nume:=b.nume;
d.nrm:=c.nrm;
writeln('Factura aferenta contractului nr. ',d.nrc,
' pentru masina ',d.nrm);
repeat
write('Nr. de km: '); readln(n);
if n<c.nrkm then writeln('Km mai putini decat la '
'inchiriere!')
until n>=c.nrkm;
d.nrkm:=n;
readkeyrec(f,a,c.nrm,ivk);
d.val:=(d.nrkm-c.nrkm)*a.tarif/100;
if b.nrc>=5 then d.val:=0.9*d.val;
d.achitat:=0;
write(h2,d);
readkeyrec(f,a,d.nrm,ivk);
a.stare:=0;
rewriterec(f,a,ivk);
clrscr;
gotoxy(20,2); write('FACTURA FISCALA nr. ',d.nrf:5);
gotoxy(15,4); write('S.C. RENT A CAR S.R.L. BUCURESTI');
gotoxy(12,7); write('Contravaloarea contractului nr. ',
d.nrc:6);
gotoxy(12,8); write('Numele clientului: ',d.nume);
gotoxy(12,9); write('Nr. masinii inchiriate: ',d.nrm);
gotoxy(12,11); write('Valoare factura: ',d.val:10:2,
' USD');
Aplicaie informatic cu prelucrare de fiiere
gotoxy(20,15); write('Emitent');
gotoxy(50,15); write('Beneficiar');
readln;
clrscr
end
end;
if not vb then writeln('Nu sunt contracte scadente astazi!');
readln;
closefile(f);
close(g);
close(h1);
close(h2)
end;
procedure functia6;
begin
clrscr;
assign(h2,numeh2); reset(h2);
assign(h1,numeh1); reset(h1);
openold(f,numef,ivk);
while not eof(h2) do
begin
read(h2,d);
vb:=false;
if d.achitat=0 then begin
vb:=true;
writeln('Nr. factura: ',d.nrf);
writeln('Nr. contract: ',d.nrc);
writeln('Nr. auto: ',d.nrm);
writeln('Valoare: ',d.val:10:2,' USD');
writeln;
write('Platiti factura (d/n)?');
readln(r);
if upcase(r)='D' then begin
d.achitat:=1;
seek(h2,filepos(h2)-1);
write(h2,d);
reset(h1);
while not eof(h1) do begin
read(h1,c);
if c.nrc=d.nrc then begin
c.on:=1;
seek(h1,filepos(h1)-1);
write(h1,c)
end
end
end
end
end;
if not vb then writeln('Nu exista facturi de platit!');
readln;
closefile(f);
close(h1);
close(h2)
end;

Algoritmi n programare. Aplicaii
procedure functia7;
begin
openold(f,numef,ivk);
assign(m,'manevra.tmp');
rewrite(m);
readseqrec(f,a,sf);
while not sf do
begin
if a.stare=0 then
begin
t.nrauto:=a.nrm;
t.marca:=a.marca;
t.tarif:=a.tarif;
t.nrkm:=a.nrkm;
write(m,t)
end;
readseqrec(f,a,sf)
end;
closefile(f);
{sortarea dupa marca}
repeat
vb:=false;
for i:=1 to filesize(m)-1 do
begin
seek(m,i-1);
read(m,t,z);
if t.marca>z.marca then begin
seek(m,i-1);
write(m,z,t);
vb:=true
end
end
until not vb;
{obtinerea ofertei}
assign(l,'oferta.txt');
rewrite(l);
clrscr;
seek(m,0);
writeln(l,' Oferta de masini');
writeln(l,'_____________________________________');
writeln(l,'| Nr. auto | Tarif | Nr. km la bord |');
writeln(l,'_____________________________________');
writeln(' Oferta de masini');
writeln('_____________________________________');
writeln('| Nr. auto | Tarif | Nr. km la bord |');
writeln('_____________________________________');
sf:=false;
fillchar(t.nrauto,8,' ');
read(m,t);
while not sf do
begin
c1:=t.marca;
writeln(l,c1);
writeln(c1);
while (not sf) and (t.marca=c1) do
Aplicaie informatic cu prelucrare de fiiere
begin
t.nrauto[0]:=#7;
writeln(l,'|',t.nrauto,' |',t.tarif:7:2,'|',
t.nrkm:16,'|');
writeln('|',t.nrauto,' |',t.tarif:7:2,'|',
t.nrkm:16,'|');
fillchar(t.nrauto,8,' ');
{$I-} read(m,t) {$I+};
if ioresult<>0 then sf:=true
end;
writeln(l,'_____________________________________');
writeln('_____________________________________')
end;
close(m);
erase(m);
close(l);
readln
end;
procedure functia8;
begin
clrscr;
checkeof:=true;
openold(f,numef,ivk);
assign(h2,numeh2);
reset(h2);
write('Nr. de inmatriculare al masinii sau ^Z:');
while not eof do
begin
readln(nrm_t);
for i:=1 to length(nrm_t) do nrm_t[i]:=upcase(nrm_t[i]);
start(f,nrm_t,ivk);
if ivk then begin
gotoxy(26,18);
writeln('Masina neinmatriculata sau radiata!');
gotoxy(26,18);
readln; clrscr
end
else begin
seek(h2,0);
tot:=0;
while not eof(h2) do
begin
read(h2,d);
if (d.nrm=nrm_t) and (d.achitat=1) then
tot:=tot+d.val
end;
writeln('Masina ',nrm_t:7,' a inregistrat o valoare a'+
' inchirierilor de ',tot:7:2,' USD');
readln
end;
write('Nr. de inmatriculare sau ^Z:')
end;
closefile(f);
close(h2)
end;
Algoritmi n programare. Aplicaii
{programul principal}
begin
meniu;
while opt<>0 do begin
case opt of
1: functia1;
2: functia2;
3: functia3;
4: functia4;
5: functia5;
6: functia6;
7: functia7;
8: functia8
end;
meniu
end
end.


9.3. Dosarul de utilizare/exploatare a aplicaiei

Pentru exploatarea corect a produsului informatic proiectat, beneficiarul
trebuie s asigure un minim de resurse hardware i software, care const n:
- calculator IBM-PC sau compatibil;
- microprocesor 80386, frecvena de 166 MHz;
- memorie RAM 16 Mb;
- monitor VGA;
- sistem de operare MS-DOS, versiunea 6.2;
- limbajul de programare Pascal, versiunea 6.0;
- un editor de texte.

Etape n utilizarea produsului simulare:

1. Lansarea n execuie a aplicaiei creare.exe, pentru crearea, fr
articole, a fiierelor referitoare la parcul auto (auto.dat i auto.idx), la clieni
(clienti.dat), la contracte (contr.dat) i la facturi (facturi.dat).
2. Lansarea n execuie a aplicaiei simulare.exe, care execut urmtorii
pai:
2.1. afieaz meniul principal;
2.2. execut funciunile din meniul principal dac pasul 1 s-a
realizat corect (n soluia adoptat, numele fiierelor sunt stabilite n aplicaia
simulare n seciunea const).
3. Utilizatorul va solicita execuia uneia din opiunile meniului.
4. Dup execuia fiecrei opiuni, simulare revine n meniul principal.
5. Terminarea execuiei se poate realiza prin alegerea opiunii 0 din meniu.

S-ar putea să vă placă și