Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите написать блок-схему к программе
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
gollum1
uses crt,dos; 
label na4; 
const 
filepath='data.bd'; 
type 
data = record 
nomAt:integer; 
nomKv:integer; 
Dat1:string[10]; 
Dat2:string[10]; 
FIO:string[21]; 
vid:string[10]; 
end; 

var 
f:file of data; 
bd:array[1..100]of data; 
num,v:integer; 

procedure PrintAll(fio:string); 
var 
i,j,kol:integer; 
s1,s2,s3,s4,s5,s6:string; 
mass:array[1..100] of integer; 
print:boolean; 
begin 
clrscr; 
textcolor(5); 
writeln('At|','Kv|', 'Oformlenie|',' Vida4a |',' FIO |','Tovar'); 
writeln('____________________________________________________________________'); 
textcolor(2); 
kol:=0; 
if (fio<>'') then 
for i:=1 to num do begin 
if bd[i].fio=fio then 
begin 
kol:=kol+1; 
mass[kol]:=i; 
end; 
end; 
for i:=1 to num do begin 
print:=true; 
if (fio<>'') then begin 
print:=false; 
for j:=1 to kol do if i=mass[j] then print:=true; 
end; 
if print then begin 
str(bd[i].NomAt:2,s1); 
str(bd[i].NomKv:2,s2); 
s3:=bd[i].dat1; 
for j:=1 to 10-length(bd[i].dat1) do s3:=s3+' '; 
s4:=bd[i].dat2; 
for j:=1 to 10-length(bd[i].dat2) do s4:=s4+' '; 
s5:=bd[i].fio; 
for j:=1 to 21-length(bd[i].fio) do s5:=s5+' '; 
s6:=bd[i].vid; 
for j:=1 to 6-length(bd[i].vid) do s6:=s6+' '; 
writeln(s1,'|',s2,'|',s3,'|',s4,'|',s5,'|',s6); 
end; 
end; 
readln; 
end; 


procedure NewFile; 
begin 
assign(f,filepath); 
rewrite(f); 
close(f); 
end; 

procedure WriteToFile; 
var 
i:integer; 
begin 
assign(f,filepath); 
rewrite(f); 
for i:=1 to num do write(f,bd[i]); 
close(f); 
end; 

procedure ReadfromFile; 
begin 
assign(f,filepath); 
reset(f); 
num:=0; 
while(not eof(f)) do begin 
num:=num+1; 
read(f,bd[num]); 
end; 
close(f); 
end; 


procedure NewZap; 
var 
zap:data; 
begin 
clrscr; 
gotoxy(10,5); write('Vvedite nomer atelye '); readln(zap.NomAt); 
gotoxy(10,6); write('Vvedite nomer kvitancii ');readln(zap.Nomkv); 
gotoxy(10,7); write('Vvedite data oformleniya ');readln(zap.dat1); 
gotoxy(10,8); write('Vvedite data vida4i ');readln(zap.dat2); 
gotoxy(10,9); write('Vvedite fio mastera ');readln(zap.fio); 
gotoxy(10,10); write('Vvedite vid izdeliya ');readln(zap.Vid); 
num:=num+1; 
bd[num]:=zap; 
clrscr; 
end; 

procedure FilterZap; 
var 
kol,i,j:integer; 
fio:string[21]; 
begin 
clrscr; 
gotoxy(10,1); write('Viborka po FIO mastera...'); 
gotoxy(10,2); write('Vvedite iskomuu FIO: '); readln(fio); 
PrintAll(fio); 
clrscr; 
end; 

function find:boolean; 
var 
di:string; 
begin 
di:=FSearch('data.bd',''); 
if di='' then find:=false else find:=true; 
end; 

begin 
if (not find) then NewFile else ReadFromFile; 
na4: 
clrscr; 
gotoxy(15,1); write('Zapisei v BD ',num); 
gotoxy(15,5); write('Dly dobavleniya zapisi v BD vvedite #1#'); 
gotoxy(15,6);write('Dly sortirovki BD vvedite #2#'); 
gotoxy(15,7);write('Dly prosmotra vsey BD vvedite #3#'); 
gotoxy(15,9);write('Dly VIHODA iz programmi vvedite #4#'); 
gotoxy(20,11);textcolor(2);write('Vibor: ');readln(v); 
clrscr; 
case v of 
1:begin 
NewZap; 
WriteToFile; 
goto na4; 
end; 
2:begin 
FilterZap; 
goto na4; 
end; 
3:begin 
PrintAll(''); 
goto na4; 
end; 
4:begin 
end; 

end; 

end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.