Dosar de utilizare
Programul realizeaza gestiunea unei firme importatoare de automobile din Germania, a unui dealer BMW. Se creeaza doua fisiere distincte , unul cu autoturisme existente in stoc iar celalalt cu clientii pe care ii are firma. Aceste fisiere sunt legate intre ele in sensul ca in momentul in care se incheie contractul cu un client, acesta este inregistrat in baza de date si automat in celalalt fisier cu autoturisme se modifica stocul in functie de modelul achizitionat si comanda facuta. Fisierele sunt ambele memorate binar.
Meniul principal contine trei optiuni:
M - Operatii cu autoturisme
C - Operatii cu clienti
E - Exit
Prima optiune realizeaza gestiunea fisierului cu autoturisme. La tastarea literei "M" apare submeniul urmator:
V - Vizualizarea autoturismelor existente in stoc
C - Cautarea unui anumit tip de autoturism in baza de date
A - Introducerea unui nou autoturism in baza de date
M - Modificarea datelor unui autoturism
P - Clasificarea automobilelor dupa pretul de vanzare
S - Stergerea unui autoturism din baza de date
O - Stergerea bazei de date existente si crearea unei noi baze de date !
I - Iesire
Optiunea "V" realizeaza o vizualizare in totalitate a bazei de date ce contine autoturisme. Aceasta include date privitoare la codul fabricatiei (cod ce este unic), model, culoare, capacitate cilindrica, puterea motorului, tipul cutiei de viteze, pretul autoturismului, stocul existent. Vizualizarea se realizeaza cu procedura "consultare" ce este inclusa in unitul "BMWCRI".
Optiunea "C" realizeaza cautarea unui anumit tip de autoturism in baza de date. Se va introduce de la tastatura tipul (modelul - ex. 520i) de autoturism, la cerere. Daca autoturismul exista in stoc este afisat, iar daca nu, apare mesaj. Daca se introduc alte tipuri de masini se cere reintroducerea. Cautarea se face cu procedura "cautare" din unitul "BMWCRI".
Optiunea "A" realizeaza introducerea unui nou autoturism in baza de date. Se introduce de la tastatura la cererea codului de fabricatie. Daca codul exista deja sau sunt introduse caractere se cere reintroducere. Daca nu autoturismul este inregistrat in baza de date. Adaugarea este realizata cu procedura "adaugare' din unitul "BMWCRI"
Optiunea "M" realizeaza modificarea datelor unui autoturism. Se introduce de la tastatura la cerere codul de fabricatie. Daca sunt introduse caractere se va cere reintroducere. Daca nu, se poate modifica prin rescriere orice data despre autoturismul respectiv. Exista validari pt. fiecare camp. Modificarea este realizata de procedura "modificare" din unitul "BMWCRI".
Optiunea "P" realizeaza listarea tuturor automobilelor din stoc in ordinea crescatoare a pretului acestora. Aceasta optiune este realizata de procedura "indexat" din unitul "INDEX_CA".
Optiunea "S" realizeaza stergerea unui autoturism din baza de date. Se introduce de la tastatura la cerere codul de fabricatie. Daca sunt introduse litere sau codul nu exista se cere reintroducere. Daca nu, autoturismul respectiv este sters din baza de date. Modificarea este realizata de procedura "stergere" din unitul "BMWCRI".
Optiunea "O" realizeaza stergerea intregii baze de date si crearea uneia noi; de aceea este marcata in meniu cu rosu. Stergerea se realizeaza prin apasarea tastei zero, desi apare cu litera "O".
Optiunea "I" realizeaza iesirea din submeniu si trecerea automata la meniul principal de unde se poate selecta lucrul cu fisierul clienti sau din nou lucrul cu fisierul automobile.
A doua optiune realizeaza gestiunea fisierului cu clienti. La tastarea literei "C" apare meniul urmator :
V - Vizualizarea clientilor firmei
C - Cautarea unui anumit client in baza de date
A - Introducerea unui nou client in baza de date
M - Modificarea datelor unui client
S - Stergerea unui client din baza de date
O - Stergerea bazei de date existente si crearea unei noi baze de date !
I - Iesire.
Optiunea "V" realizeaza o vizualizare in totalitate a bazei de date ce contine clientii. Aceasta include date privitoare la codul clientului (cod ce este unic), nume, adresa, telefon, modelul pe care la achizitionat, suma achitata si comanda pe care a facut-o. Vizualizarea se realizeaza cu procedura "consultare1" ce este inclusa in unitul "BMWCRICL".
Optiunea "C" realizeaza cautarea unui anumit client in baza de date. Se va introduce de la tastatura numele clientului, la cerere. Daca clientul exista in baza de date este afisat, iar daca nu, apare mesaj. Cautarea se face cu procedura "cautare1" din unitul "BMWCRICL".
Optiunea "A" realizeaza introducerea unui nou client in baza de date. Se introduce de la tastatura la cererea codului clientului. Daca codul exista deja sau sunt introduse caractere se cere reintroducere. Daca nu, se vor introduce date despre respectivul client in baza de date. Adaugarea este realizata cu procedura "adaugare1" din unitul "BMWCRICL"
Optiunea "M" realizeaza modificarea datelor unui client. Se introduce de la tastatura la cerere codul clientului. Daca sunt introduse caractere se va cere reintroducere. Daca nu, se poate modifica prin rescriere orice data despre clientul respectiv. Exista validari pt. fiecare camp. Modificarea este realizata de procedura "modificare1" din unitul "BMWCRICL".
Optiunea "S" realizeaza stergerea unui client din baza de date. Se introduce de la tastatura la cerere codul clientului. Daca sunt introduse litere sau codul nu exista se cere reintroducere. Daca nu, clientul respectiv este sters din baza de date. Modificarea este realizata de procedura "stergere1" din unitul "BMWCRICL".
Optiunea "O" realizeaza stergerea intregii baze de date si crearea uneia noi; de aceea este marcata in meniu cu rosu. Stergerea se realizeaza prin apasarea tastei zero, desi apare cu litera "O".
Optiunea "I" realizeaza iesirea din submeniu si trecerea automata la meniul principal de unde se poate selecta lucrul cu fisierul automobile sau din nou lucrul cu fisierul clienti.
program apelbmwc;
uses crt,bmwcri,bmwcricl,graph,index_ca,legat;
type fisier=file of clientrec;
tabela=file of bmwrec;
var
opt,ta,opt1:char;
k:integer;
er,vb:boolean;
cli:clientrec;
GraphDriver, GraphMode : Integer;
g:fisier;
f:tabela;
art2:bmwrec;
cod_fabr:integer;
procedure iesire1;
begin
setcolor(red);
outtextxy(23,390,'Program terminat. Apasa o tasta');
repeat until keypressed;
end;
begin
clrscr;
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
if GraphResult <> grOk then Halt(1);
repeat
settextstyle(defaultfont,horizdir,2);
setbkcolor(3);setcolor(red);
outtextxy(35,33,' B M W - Substance & Passion');
settextstyle(defaultfont,horizdir,1);
outtextxy(300,410,' by Cristian Postolachi');
outtextxy(315,430,' anul II, grupa 1027');
setcolor(blue);
settextstyle(defaultfont,horizdir,1);
outtextxy(50,100,'M - Operatii cu automobilele din stoc');
outtextxy(50,125,'C - Operatii cu clientii firmei');
setcolor(red);
outtextxy(50,150,'E - Exit');
setcolor(blue);
outtextxy(50,228,'Introduceti optiunea = ');
gotoxy(30,15);textcolor(blue);read(opt1);
textcolor(3);
case upcase(opt1) of 'M' :
begin
clrscr;
k:=0;
repeat
clrscr;
setbkcolor(3);
settextstyle(defaultfont,horizdir,1);
setcolor(blue);
outtextxy(40,100,'V - Vizualizarea autoturismelor existente in stoc ');
outtextxy(40,120,'C - Cautarea unui anumit tip de autoturism in baza de date');
outtextxy(40,140,'A - Introducerea unui nou autoturism in baza de date');
outtextxy(40,160,'M - Modificarea datelor unui autoturism');
outtextxy(40,180,'P - Clasificarea automobilelor dupa pretul de vanzare');
outtextxy(40,200,'S - Stergere unui autoturism din baza de date');
setcolor(red);
outtextxy(40,220,'0 - Stergere bazei de date existente si creearea unei noi baze de date!');
setcolor(5);
outtextxy(40,240,'I - Iesire');
setcolor(blue);
if k=0 then
begin
outtextxy(40,307,'Introduceti optiunea : ');
gotoxy(30,20); textcolor(blue); read(opt);
textcolor(3);
end;
case upcase(opt) of '0': begin
closegraph;
creare;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'V': begin
closegraph;
consultare;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'C': begin
closegraph;
cautare;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'A': begin
closegraph;
adaugare;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'M': begin
closegraph;
write('Introduceti codul de fabricatie: ');
read(cheie);
modificare(cheie);
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'S': begin
closegraph;
write('Introduceti codul de fabricatie:');read(l);
stergere(l);
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'I': begin
setcolor(red);
outtextxy(23,390,'Intoarcere la meniul principal. APASA O TASTA');
iesire;
end;
'P' : begin
closegraph;
indexat;
poster;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
else
write('Ati tastat gresit. Reluati');
end;
until (upcase(opt)='I');
end;
'C' :
begin
clrscr;
k:=0;
repeat
clrscr;
setbkcolor(3);
settextstyle(defaultfont,horizdir,1);
setcolor(blue);
outtextxy(40,100,'V - Vizualizarea clientilor firmei ');
outtextxy(40,120,'C - Cautarea unui anumit client in baza de date');
outtextxy(40,140,'A - Introducerea unui nou client in baza de date');
outtextxy(40,160,'M - Modificarea datelor unui client');
outtextxy(40,180,'S - Stergere unui client din baza de date');
setcolor(red);
outtextxy(40,200,'0 - Stergere bazei de date existente si creearea unei noi baze de date!');
setcolor(magenta);
outtextxy(40,220,'I - Iesire');
setcolor(blue);
if k=0 then
begin
outtextxy(40,307,'Introduceti optiunea : ');
gotoxy(30,20); textcolor(blue); read(opt);
textcolor(3);
end;
case upcase(opt) of '0': begin
closegraph;
creare1;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'V': begin
closegraph;
consultare1;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'C': begin
closegraph;
cautare1;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'A': begin
closegraph;
leg;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'M': begin
closegraph;
modificare1;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'S': begin
closegraph;
stergere1;
textcolor(3);
GraphDriver := Detect;
InitGraph(GraphDriver, GraphMode, 'e:bp7bgi ');
end;
'I': begin
setcolor(red);
outtextxy(23,390,'Intoarcere la meniul principal. APASA O TASTA');
iesire;
end;
else
write('Ati tastat gresit. Reluati');
end;
until (upcase(opt)='I');
end;
'E' : iesire1;
else
clrscr;end;
until (upcase(opt1)='E');
closegraph;
end.
UNIT BMWCRI;
INTERFACE
uses crt;
type
bmwrec = record
is:byte;
codf:integer;
model:string[20];
culoare:string[20];
cap_cil:real;
putere:real;
transmisie:string[30];
stoc:real;
pret:real;
end;
tabela=file of bmwrec;
var
art,art1:bmwrec;
f:tabela;
er:boolean;
cheie:integer;
i,l,j:byte;
s,t:string[100];
ras:char;
tot:real;
const
modelbmw=['0'..'8','i'..'i','e'..'e','l'..'l','x'..'x','d'..'d','z'..'z','m'..'m'];
alfabet=['a'..'z','A'..'Z'];
transmisie=['a'..'z','A'..'Z','4'..'6','-'..'-'];
procedure eroare;
procedure citcodf;
procedure citcodf1;
procedure citmodel;
procedure citculoare;
procedure cittransmisie;
procedure citpret ;
procedure citcap_cil;
procedure citputere;
procedure citstoc;
procedure inceput;
procedure sfarsit;
procedure prelucrare;
procedure stergere(var l:byte);
procedure creare;
procedure modificare(var cheie:integer);
procedure cautare;
procedure consultare;
procedure inceput1;
procedure adaugare;
procedure iesire;
IMPLEMENTATION
procedure eroare;
begin
er:=true;
gotoxy(10,25);
write(s,'Tastati [enter] va rog! ');
repeat until readkey=#13;
gotoxy(10,25);
clreol;
end;
procedure citcodf;
var i:integer;
begin
repeat
er:=false;
gotoxy(43,5);
;readln(art.codf);;
if ioresult<>0 then
begin
s:='Se pot introduce numai valori numerice!';
eroare;
gotoxy(43,5);
clreol;
end
else
begin
seek(f,0);
for i:=1 to filesize(f) do
begin
read(f,art1);
if art1.codf=art.codf then
begin
s:='Mai exista o inreg. cu acest cod..!';
eroare;
gotoxy(43,5);
clreol;
end;
end;
end;
until not er;
end;
procedure citcodf1;
begin
repeat
er:=false;
gotoxy(43,5);
;readln(art.codf);;
if ioresult<>0 then
begin
s:='Se pot introduce numai valori numerice!';
eroare;
gotoxy(43,5);
clreol;
end;
until not er;
end;
procedure citmodel;
begin
repeat
er:=false;
gotoxy(43,6);
clreol;
readln(art.model);
l:=length(art.model);
for i:=1 to l do
if not (art.model[i] in modelbmw) then
er:=true;
if er then
begin
s:='Nu exista acest model de BMW!';
eroare;
end;
until not er;
end;
procedure citculoare;
begin
repeat
er:=false;
gotoxy(43,7);
clreol;
readln(art.culoare);
l:=length(art.culoare);
for i:=1 to l do
if not (art.culoare[i] in alfabet) then
er:=true;
if er then
begin
s:='Ati introdus caractere numerice!';
eroare;
end;
until not er;
end;
procedure cittransmisie;
begin
repeat
er:=false;
gotoxy(43,10);
clreol;
readln(art.transmisie);
l:=length(art.transmisie);
for i:=1 to l do
if not (art.transmisie[i] in transmisie) then
er:=true;
if er then
begin
s:='Nr de viteze poate fi intre !';
eroare;
end;
until not er;
end;
procedure citpret;
begin
repeat
er:=false;
gotoxy(43,11);
clreol;
;readln(art.pret);;
if ioresult<>0 then
begin
s:='caractere nenumerice!';
eroare;
end;
until not er;
end;
procedure citcap_cil;
begin
repeat
er:=false;
gotoxy(43,8);
clreol;
;readln(art.cap_cil);;
if ioresult<>0 then
begin
s:='Introduceti numai caractere numerice!';
eroare;
end
until not er
end;
procedure citputere;
begin
repeat
er:=false;
gotoxy(43,9);
clreol;
;readln(art.putere);;
if ioresult<>0 then
begin
s:='Introduceti numai caractere numerice!';
eroare;
end
until not er
end;
procedure citstoc;
begin
repeat
er:=false;
gotoxy(43,12);
clreol;
;readln(art.stoc);;
if ioresult<>0 then
begin
s:='Introduceti numai caractere numerice!';
eroare;
end
until not er
end;
procedure inceput;
begin
clrscr;
assign(f,'bavaria.dat');
rewrite(f);
checkeof:=true;
gotoxy(20,5);
write('Cod fabricatie :');
gotoxy(20,6);
write('Modelul : ');
gotoxy(20,7);
write('Culoarea : ');
gotoxy(20,8);
write('Capacitatea cilindrica:');
gotoxy(20,9);
write('Puterea in CP : ');
gotoxy(20,10);
write('Transmisia : ');
gotoxy(20,11);
write('Pretul : ');
gotoxy(20,12);
write('Stocul disponibil : ');
gotoxy(43,5);
end;
procedure prelucrare;
begin
art.is:=1;
citcodf;citmodel;citculoare;citcap_cil;citputere;cittransmisie;citpret;citstoc;
write(f,art);
for i:=5 to 12 do
begin
gotoxy(43,i);
clreol;
end;
gotoxy(43,5);
end;
procedure sfarsit;
begin
clrscr;
close(f);
end;
PROCEDURE CREARE;
begin
inceput;
while not eof do prelucrare;
sfarsit;
end;
PROCEDURE STERGERE;
begin
textcolor(lightblue);
assign(f,'bavaria.dat');
reset(f);
clrscr;
seek(f,0);
for i:=0 to filesize(f)-1 do
begin
read(f,art);
if (ioresult=0) and (art.codf=l) and (art.is=1) then
begin
seek(f,i);
art.is:=0;write(f,art);
writeln;writeln('INREGISTRAREA A FOST STEARSA');
end;
end;
writeln;writeln;write('APASA O TASTA');
repeat until keypressed;
end;
PROCEDURE MODIFICARE;
var
i,m:byte;
begin
textcolor(2);
assign(f,'bavaria.dat');
reset(f);
clrscr;
seek(f,0);
for m:=1 to filesize(f) do
begin
read(f,art);
if (art.codf=cheie) and (art.is=1) then
begin
gotoxy(20,5);
write('Cod fabricatie :',art.codf);
gotoxy(20,6);
write('Modelul : ',art.model);
gotoxy(20,7);
write('Culoarea : ',art.culoare);
gotoxy(20,8);
write('Capacitatea cilindrica:',art.cap_cil:4:1);
gotoxy(20,9);
write('Puterea in CP : ',art.putere:4:1);
gotoxy(20,10);
write('Transmisia : ',art.transmisie);
gotoxy(20,11);
write('Pretul : ',art.pret:4:1);
gotoxy(20,12);
write('Stocul disponibil : ',art.stoc:4:0);
gotoxy(43,5);
citcodf1;citmodel;citculoare;citcap_cil;citputere;cittransmisie;citpret;citstoc;
art.is:=1;
for i:=5 to 12 do
begin
gotoxy(43,i);
clreol;
end;
gotoxy(43,5);
seek(f,m-1);write(f,art);seek(f,m);
end;
end;
close(f);
writeln;writeln;
gotoxy(3,15);
write('Apasa o tasta');
repeat until keypressed;
end;
PROCEDURE CAUTARE;
var er:boolean;
i:integer;
begin
textcolor(15);
er:=false;
assign(f,'bavaria.dat');reset(f);
clrscr;
writeln('Introduceti modelul dorit:');readln;
gotoxy(29,1);readln(t);
seek(f,0);
i:=0;
repeat
read(f,art);
if (art.is=1) and (art.model=t) then
begin
er:=true;
gotoxy(6,6+i); writeln(art.codf);
gotoxy(12,6+i); writeln(art.model);
gotoxy(19,6+i); writeln(art.culoare);
gotoxy(64,6+i); writeln(art.pret:4:2);
gotoxy(28,6+i); writeln(art.transmisie);
gotoxy(43,6+i); writeln(art.cap_cil:4:1);
gotoxy(52,6+i); writeln(art.putere:4:1);
gotoxy(71,6+i); writeln(art.stoc:4:0);
i:=i+1;
end;
until eof(f);
if er=false then begin
writeln;writeln;
writeln(' Modelul nu exista in baza de date!');
end
else
begin
gotoxy(1,5);
writeln(' Cod Fabr. Model Culoare Transmisie Cap.cil Putere(CP) Pret(DM) Stoc ');
end;
gotoxy(1,15);writeln('Apasa <Enter>');
repeat until readkey=#13;
end;
PROCEDURE CONSULTARE;
begin
textcolor(lightblue);
assign(f,'bavaria.dat');reset(f);
clrscr;
tot:=0;
seek(f,0);
gotoxy(1,5);
writeln(' Cod Fabr. Model Culoare Transmisie Cap.cil Putere(CP) Pret(DM) Stoc ');
for i:=1 to filesize(f) do
begin
read(f,art);
if art.is=1 then
begin
gotoxy(6,6+i); writeln(art.codf);
gotoxy(12,6+i); writeln(art.model);
gotoxy(19,6+i); writeln(art.culoare);
gotoxy(64,6+i); writeln(art.pret:4:2);
gotoxy(28,6+i); writeln(art.transmisie);
gotoxy(43,6+i); writeln(art.cap_cil:4:1);
gotoxy(52,6+i); writeln(art.putere:4:1);
gotoxy(71,6+i); writeln(art.stoc:4:0);
tot:=tot+art.stoc;
end;
end;
writeln;
writeln;
writeln('TOTAL AUTOMOBILE IN STOC = ',' ',tot:4:0);
close(f);
writeln;
writeln('Apasa <Enter>');
repeat until readkey=#13;
end;
procedure inceput1;
begin
clrscr;
assign(f,'bavaria.dat');
reset(f);
seek(f,filesize(f));
checkeof:=true;
gotoxy(20,5);
write('Cod fabricatie :');
gotoxy(20,6);
write('Modelul : ');
gotoxy(20,7);
write('Culoarea : ');
gotoxy(20,8);
write('Capacitatea cilindrica:');
gotoxy(20,9);
write('Puterea in CP : ');
gotoxy(20,10);
write('Transmisia : ');
gotoxy(20,11);
write('Pretul : ');
gotoxy(20,12);
write('Stocul disponibil : ');
gotoxy(43,5);
end;
PROCEDURE ADAUGARE;
begin
inceput1;
while not eof do prelucrare;
sfarsit;
end;
PROCEDURE IESIRE;
begin
writeln('Intoarcere la meniul principal.APASA O TASTA');
repeat until keypressed;
end;
end.
unit bmwcricl;
INTERFACE
uses crt;
type
clientrec = record
is:byte;
codcl:integer;
nume:string[20];
adresa:string[20];
suma:real;
model:string[30];
comanda:real;
telefon:real;
end;
var
art,art1:clientrec;
f:file of clientrec;
er:boolean;
i,l,j:byte;
s,t:string[100];
ras:char;
tot,tot1:real;
const
alfabet=['a'..'z','A'..'Z','&'..'&',' '..' '];
alfabet1= ['a'..'z','A'..'Z','0'..'9'];
procedure eroare;
procedure citcodcl;
procedure citcodcl1;
procedure citnume;
procedure citadresa;
procedure citmodel1;
procedure cittelefon ;
procedure citsuma;
procedure citcomanda;
procedure inceput1;
procedure sfarsit1;
procedure stergere1;
procedure creare1;
procedure prelucrare1;
procedure modificare1;
procedure cautare1;
procedure consultare1;
procedure inceput11;
procedure adaugare1;
procedure iesire11;
IMPLEMENTATION
procedure eroare;
begin
er:=true;
gotoxy(10,25);
write(s,'Tastati [enter] va rog! ');
repeat until readkey=#13;
gotoxy(10,25);
clreol;
end;
procedure citcodcl;
var i:integer;
begin
repeat
er:=false;
gotoxy(43,5);
;readln(art.codcl);;
if ioresult<>0 then
begin
s:='Se pot introduce numai valori numerice!';
eroare;
gotoxy(43,5);
clreol;
end
else
begin
seek(f,0);
for i:=1 to filesize(f) do
begin
read(f,art1);
if art1.codcl=art.codcl then
begin
s:='Mai exista un client cu acest cod';
eroare;
gotoxy(43,5);
clreol;
end;
end;
end;
until not er;
end;
procedure citcodcl1;
begin
repeat
er:=false;
gotoxy(43,5);
;readln(art.codcl);;
if ioresult<>0 then
begin
s:='Se pot introduce numai valori numerice!';
eroare;
gotoxy(43,5);
clreol;
end;
until not er;
end;
procedure citnume;
begin
repeat
er:=false;
gotoxy(43,6);
clreol;
readln(art.nume);
l:=length(art.nume);
for i:=1 to l do
if not (art.nume[i] in alfabet) then
er:=true;
if er then
begin
s:='Ati introdus caractere nealfabetice!';
eroare;
end;
until not er;
end;
procedure citadresa;
begin
repeat
er:=false;
gotoxy(43,7);
clreol;
readln(art.adresa);
until not er;
end;
procedure citmodel1;
begin
repeat
er:=false;
gotoxy(43,9);
clreol;
readln(art.model);
l:=length(art.model);
for i:=1 to l do
if not (art.model[i] in alfabet1) then
er:=true;
if er then
begin
s:='Nu exista modelul ';
eroare;
end;
until not er;
end;
procedure cittelefon;
begin
repeat
er:=false;
gotoxy(43,10);
clreol;
;readln(art.telefon);;
if ioresult<>0 then
begin
s:='caractere nenumerice!';
eroare;
end
else if art.telefon<100000 then
begin
s:='Telefonul trebuie sa aiba >= de 6 cifre';
eroare;
gotoxy(43,10);
end;
until not er;
end;
procedure citsuma;
begin
repeat
er:=false;
gotoxy(43,8);
clreol;
;readln(art.suma);;
if ioresult<>0 then
begin
s:='Introduceti numai caractere numerice!';
eroare;
end
until not er
end;
procedure citcomanda;
begin
repeat
er:=false;
gotoxy(43,11);
clreol;
;readln(art.comanda);;
if ioresult<>0 then
begin
s:='Introduceti numai caractere numerice!';
eroare;
end
until not er
end;
procedure inceput1;
begin
clrscr;
assign(f,'bavariac.dat');
rewrite(f);
checkeof:=true;
gotoxy(20,5);
write('Cod client :');
gotoxy(20,6);
write('Numele : ');
gotoxy(20,7);
write('Adresa : ');
gotoxy(20,8);
write('Suma achitata:');
gotoxy(20,9);
write('Modelul : ');
gotoxy(20,10);
write('Telefonul : ');
gotoxy(20,11);
write('Comanda facuta : ');
gotoxy(43,5);
end;
procedure prelucrare1;
begin
art.is:=1;
citcodcl;citnume;citadresa;citsuma;citmodel1;cittelefon;citcomanda;
write(f,art);
for i:=5 to 11 do
begin
gotoxy(43,i);
clreol;
end;
gotoxy(43,5);
end;
procedure sfarsit1;
begin
clrscr;
close(f);
end;
PROCEDURE CREARE1;
begin
inceput1;
while not eof do prelucrare1;
sfarsit1;
end;
PROCEDURE STERGERE1;
begin
textcolor(lightred);
assign(f,'bavariac.dat');
reset(f);
clrscr;
seek(f,0);
write('Introduceti codul clientului:');read(l);
for i:=0 to filesize(f)-1 do
begin
read(f,art);
if (ioresult=0) and (art.codcl=l) and (art.is=1) then
begin
seek(f,i);
art.is:=0;write(f,art);
writeln;writeln('INREGISTRAREA A FOST STEARSA');
end;
end;
writeln;writeln;
write('APASA O TASTA');
repeat until keypressed;
end;
PROCEDURE MODIFICARE1;
var
cheie: integer;
i,m:byte;
begin
textcolor(2);
assign(f,'bavariac.dat');
reset(f);
clrscr;
write('Introduceti codul clientului: ');
read(cheie);
seek(f,0);
for m:=1 to filesize(f) do
begin
read(f,art);
if (art.codcl=cheie) and (art.is=1) then
begin
gotoxy(20,5);
write('Cod client : ',art.codcl);
gotoxy(20,6);
write('Numele : ',art.nume);
gotoxy(20,7);
write('Adresa : ',art.adresa);
gotoxy(20,8);
write('Suma achitata:',art.suma:4:1);
gotoxy(20,9);
write('Modelul : ',art.model);
gotoxy(20,10);
write('Telefonul : ',art.telefon:4:0 );
gotoxy(20,11);
write('Comanda facuta:',art.comanda:4:0);
gotoxy(43,5);
citcodcl1;citnume;citadresa;citsuma;citmodel1;cittelefon;citcomanda;
art.is:=1;
for i:=5 to 12 do
begin
gotoxy(43,i);
clreol;
end;
gotoxy(43,5);
seek(f,m-1);write(f,art);seek(f,m);
end;
end;
close(f);
writeln;writeln;
gotoxy(3,15);
write('APASA O TASTA');
repeat until keypressed;
end;
PROCEDURE CAUTARE1;
var er:boolean;
i:integer;
begin
textcolor(white);
er:=false;
assign(f,'bavariac.dat');reset(f);
clrscr;
writeln('Introduceti numele clientului dorit:');readln(t);
gotoxy(38,1);readln(t);
seek(f,0);
i:=0;
repeat
read(f,art);
if (art.is=1) and (art.nume=t) then
begin
er:=true;
gotoxy(5,6+i); writeln(art.codcl);
gotoxy(14,6+i); writeln(art.nume);
gotoxy(28,6+i); writeln(art.adresa);
gotoxy(41,6+i); writeln(art.suma:4:1);
gotoxy(51,6+i); writeln(art.model);
gotoxy(61,6+i); writeln(art.telefon:4:0);
gotoxy(72,6+i); writeln(art.comanda:4:0);
i:=i+1;
end;
until eof(f);
if not er then
begin
writeln;writeln;
writeln(' Clientul nu exista in baza de date!');
end
else
begin
gotoxy(1,3);
writeln(' Cod client Nume Adresa Suma Modelul Telefonul Comanda ');
end;
gotoxy(1,15);writeln('Apasa <Enter>');
repeat until readkey=#13;
end;
PROCEDURE CONSULTARE1;
begin
textcolor(lightblue);
assign(f,'bavariac.dat');reset(f);
clrscr;
tot:=0;
tot1:=0;
seek(f,0);
gotoxy(1,5);
writeln(' Cod client Nume Adresa Suma Modelul Telefonul Comanda ');
for i:=1 to filesize(f) do
begin
read(f,art);
if art.is=1 then
begin
gotoxy(5,6+i); writeln(art.codcl);
gotoxy(14,6+i); writeln(art.nume);
gotoxy(28,6+i); writeln(art.adresa);
gotoxy(41,6+i); writeln(art.suma:4:1);
gotoxy(51,6+i); writeln(art.model);
gotoxy(61,6+i); writeln(art.telefon:4:0);
gotoxy(72,6+i); writeln(art.comanda:4:0);
tot:=tot+art.suma;
tot1:=tot1+art.comanda;
end;
end;
writeln;
writeln;
writeln('TOTAL VANZARI DIN STOC = ',' ',tot:4:2);
writeln('TOTAL COMENZI EFECTUATE =',' ',tot1:4:0);
close(f);
writeln;
writeln('Apasa <Enter>');
repeat until readkey=#13;
end;
procedure inceput11;
begin
clrscr;
assign(f,'bavariac.dat');
reset(f);
seek(f,filesize(f));
checkeof:=true;
gotoxy(20,5);
write('Cod client :');
gotoxy(20,6);
write('Numele : ');
gotoxy(20,7);
write('Adresa : ');
gotoxy(20,8);
write('Suma achitata(DM):');
gotoxy(20,9);
write('Modelul : ');
gotoxy(20,10);
write('Telefonul : ');
gotoxy(20,11);
write('Comanda facuta : ');
gotoxy(43,5);
end;
PROCEDURE ADAUGARE1;
begin
inceput11;
while not eof do prelucrare1;
sfarsit1;
end;
PROCEDURE IESIRE11;
begin
writeln;writeln;
writeln;writeln('Intoarcere la meniul principal.APASA O TASTA');
repeat until keypressed;
end;
end.
unit index_ca;
INTERFACE
uses crt;
type
bmwrec = record
is:byte;
codf:integer;
model:string[20];
culoare:string[20];
cap_cil:real;
putere:real;
transmisie:string[30];
stoc:real;
pret:real;
end;
index=record
pret:real;
mode:string[20];
nr_rel:integer;
end;
indx=file of index;
var
art,art1:bmwrec;
f:file of bmwrec;
vb:boolean;
i,j,z:byte;
bart,cart,xx:index;
ind:indx;
c:char;
const
modelbmw=['0'..'8','i'..'i','e'..'e','l'..'l','x'..'x','d'..'d','m'..'m'];
alfabet=['a'..'z','A'..'Z'];
transmisie=['a'..'z','A'..'Z','4'..'6','-'..'-'];
procedure indexat;
procedure poster;
IMPLEMENTATION
procedure indexat;
begin
clrscr;
assign(f,'bavaria.dat');
reset(f);
assign(ind,'bavaria.idx');rewrite(ind);
while not eof(f) do
begin
read(f,art);
bart.pret:=art.pret;
bart.mode:=art.model;
write(ind,bart);
end;
for i:=1 to filesize(ind)-1 do
begin
seek(ind,i-1); read(ind,bart);
for j:=i+1 to filesize(ind) do
begin
seek(ind,j-1); read(ind,cart);
if bart.pret>cart.pret then
begin
seek(ind,i-1); write(ind,cart);
seek(ind,j-1); write(ind,bart);
bart:=cart;
end;
end;
end;
seek(ind,0);
end;
procedure poster;
begin
gotoxy(9,1);
write('Model Pret');
z:=1;
while not eof(ind) do
begin
read(ind,bart);
gotoxy(9,2+z);
write(bart.mode);
gotoxy(17,2+z);
write('--->');
gotoxy(26,2+z);
write(bart.pret:4:1);
gotoxy(36,2+z);
write('DM');
z:=z+1;
end;
writeln;writeln;
write(' Apasa o tasta');
repeat until keypressed;
close(f);close(ind);
c:=readkey;
end;
end.
unit legat;
INTERFACE
uses crt,bmwcri,bmwcricl;
type
clientrec = record
is:byte;
codcl:integer;
nume:string[20];
adresa:string[20];
suma:real;
model:string[30];
comanda:real;
telefon:real;
end;
bmwrec = record
is:byte;
codf:integer;
model:string[20];
culoare:string[20];
cap_cil:real;
putere:real;
transmisie:string[30];
stoc:real;
pret:real;
end;
tabela=file of bmwrec;
fisier=file of clientrec;
procedure caut1;
procedure leg;
IMPLEMENTATION
var
art,art1,articol:bmwrec;
f:tabela;
g:fisier;
cli:clientrec;
er,vb:boolean;
cod_fabr:integer;
procedure caut1;
begin
textcolor(15);
er:=false;
assign(f,'bavaria.dat');reset(f);
clrscr;
repeat
read(f,art);
if (art.is=1) and (art.codf=cod_fabr) then
begin
er:=true;
art1:=art;
end;
until eof(f)or er;
end;
procedure leg;
begin
assign(f,'bavaria.dat');
reset(f);
assign(g,'bavariac.dat');
reset(g);
cli.is:=1;
gotoxy(20,7);
writeln('Codul clientului : ');
gotoxy(40,7);
readln(cli.codcl);
gotoxy(20,8);
writeln('Numele');
gotoxy(30,8);
readln(cli.nume);
gotoxy(20,9);
writeln('adresa');
gotoxy(30,9);
readln(cli.adresa);
consultare;
repeat
vb:=true;
writeln;
writeln('Introduceti codul de fabricatie');read(cod_fabr);
caut1;
if er=false then
begin
writeln;writeln;
writeln(' Modelul nu exista in baza de date!');
vb:=false;
end
else
cli.model:=art1.model;
until vb;
gotoxy(20,10);
writeln('Suma achitata..');gotoxy(35,10);
repeat
er:=false;
gotoxy(35,10);
clreol;
;readln(cli.suma);;
if ioresult<>0 then
begin
gotoxy(35,20);
writeln('Introduceti caractere nenumerice!');
er:=true;
gotoxy(35,10);
end;
until not er;
gotoxy(20,11);
writeln('Telefonul..');gotoxy(35,11);
repeat
er:=false;
gotoxy(35,11);
clreol;
;readln(cli.telefon);;
if ioresult<>0 then
begin
gotoxy(35,20);
writeln('Introduceti caractere nenumerice!');
er:=true;
end;
until not er;
repeat
vb:=true;
gotoxy(20,12);
writeln('Comanda..');gotoxy(30,12);read(cli.comanda);
if art1.stoc<cli.comanda then
begin
writeln;writeln;
writeln('Nu putem onora aceasta comanda');
writeln('Tasteaza din nou');
gotoxy(30,12);
repeat until keypressed;
vb:=false;
gotoxy(30,12);
end
else
begin
art1.stoc:=art1.stoc-cli.comanda;
seek(f,filepos(f)-1);
write(f,art1);
seek(g,filesize(g));
write(g,cli);
end;
until vb;
close(f);close(g);
end;
end.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |