Добавил:
Oksana
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
program RPoezd;
uses Crt;
type Poezd = record
Number : integer;
KP : string[20];
DN : string[15];
Time : string[10];
KOst : integer;
Ost : array[1..100] of string;
end;
var i : integer;
filename,filenametemp : string;
PoezdF : file of Poezd;
PoezdR : Poezd;
{Џа®жҐ¤га ¤®Ў ў«ҐЁп ¬ аиагв }
procedure AddPoezd;
begin
Assign(PoezdF,filename);
Reset(PoezdF);
while not Eof(PoezdF) do Read(PoezdF,PoezdR);
ClrScr;
writeln('„®Ў ў«ҐЁҐ ¬ аиагв :');
writeln;
write('‚ўҐ¤ЁвҐ ®¬Ґа Ї®Ґ§¤ :');
readln(PoezdR.Number);
write('‚ўҐ¤ЁвҐ Є®Ґзл© ЇгЄв:');
readln(PoezdR.KP);
write('‚ўҐ¤ЁвҐ ¤Ґм Ґ¤Ґ«Ё:');
readln(PoezdR.DN);
write('‚ўҐ¤ЁвҐ ўаҐ¬п ®вЇа ў«ҐЁп:');
readln(PoezdR.Time);
write('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® ®бв ®ў®Є (¬ ЄбЁ¬г¬ 100):');
readln(PoezdR.KOst);
writeln('‚ўҐ¤ЁвҐ (Ї®®зҐаҐ¤®) ЇҐаҐзҐм ®бв ®ў®Є:');
for i :=1 to PoezdR.KOst do readln(PoezdR.Ost[i]);
write(PoezdF,PoezdR);
Close(PoezdF);
writeln;
writeln('Њ аиагв ¤®Ў ў«Ґ!!!');
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
{Џа®жҐ¤га г¤ «ҐЁп ¬ аиагв }
procedure DeletePoezd;
var temp : file of Poezd;
Nom : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(temp,filenametemp+'tmp');
Rewrite(temp);
ClrScr;
writeln('“¤ «ҐЁҐ ¬ аиагв :');
writeln;
write('‚ўҐ¤ЁвҐ ®¬Ґа Ї®Ґ§¤ :');
readln(Nom);
while not Eof(PoezdF) do
begin
Read(PoezdF,PoezdR);
if PoezdR.Number<>Nom then Write(temp,PoezdR)
else f:=true;
end;
Close(temp);
Close(PoezdF);
Erase(PoezdF);
Rename(temp,filename);
writeln;
if f then writeln('Њ аиагв г¤ «Ґ!!!')
else writeln('Њ аиагв Ґ ©¤Ґ...');
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
{Џа®жҐ¤га । ЄвЁа®ў Ёп ¬ аиагв }
procedure EditPoezd;
var temp : file of Poezd;
Nom,tn : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(temp,filenametemp+'tmp');
Rewrite(temp);
ClrScr;
writeln('ђҐ¤ ЄвЁа®ў ЁҐ ¬ аиагв :');
writeln;
write('‚ўҐ¤ЁвҐ ®¬Ґа Ї®Ґ§¤ :');
readln(Nom);
while not Eof(PoezdF) do
begin
Read(PoezdF,PoezdR);
if PoezdR.Number<>Nom then Write(temp,PoezdR)
else
begin
tn:=nom;
f:=true;
end;
end;
if f then
begin
writeln;
PoezdR.Number:=tn;
write('‚ўҐ¤ЁвҐ Є®Ґзл© ЇгЄв:');
readln(PoezdR.KP);
write('‚ўҐ¤ЁвҐ ¤Ґм Ґ¤Ґ«Ё:');
readln(PoezdR.DN);
write('‚ўҐ¤ЁвҐ ўаҐ¬п ®вЇа ў«ҐЁп:');
readln(PoezdR.Time);
write('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® ®бв ®ў®Є (¬ ЄбЁ¬г¬ 100):');
readln(PoezdR.KOst);
writeln('‚ўҐ¤ЁвҐ (Ї®®зҐаҐ¤®) ЇҐаҐзҐм ®бв ®ў®Є:');
for i :=1 to PoezdR.KOst do readln(PoezdR.Ost[i]);
write(temp,PoezdR);
writeln('Њ аиагв Ё§¬ҐҐ...');
end
else
begin
writeln;
writeln('Њ аиагв Ґ ©¤Ґ...');
end;
Close(temp);
Close(PoezdF);
Erase(PoezdF);
Rename(temp,filename);
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
{Џа®жҐ¤га ўлў®¤ ¬ аиагв Ї®Ґ§¤ нЄа }
procedure ViewPoezd;
var Nom : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
ClrScr;
writeln('Џа®б¬®ва ¬ аиагв :');
writeln;
write('‚ўҐ¤ЁвҐ ®¬Ґа Ї®Ґ§¤ :');
readln(Nom);
while not Eof(PoezdF) do
begin
read(PoezdF,PoezdR);
if PoezdR.Number=Nom then
begin
f:=true;
writeln;
writeln('Ќ®¬Ґа Ї®Ґ§¤ : ',Nom);
writeln('Љ®Ґзл© ЇгЄв: ',PoezdR.KP);
writeln('„Ґм Ґ¤Ґ«Ё: ',PoezdR.DN);
writeln('‚аҐ¬п ®вЇа ў«ҐЁп: ',PoezdR.Time);
writeln('ЏҐаҐзҐм ®бв ®ў®Є:');
for i:=1 to PoezdR.KOst do writeln(' ',PoezdR.Ost[i]);
break;
end;
end;
Close(PoezdF);
if f=false then
begin
writeln;
writeln('Џ®Ґ§¤ б ¤ л¬ ®¬Ґа®¬ Ґ ©¤Ґ...');
end;
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
{Џа®жҐ¤га Ї®ЁбЄ Ї®Ґ§¤ Є®в®ал© ®бв ў«Ёў Ґвбп ў гЄ § ®¬ Ј®а®¤Ґ}
procedure FindPoezd;
var k : integer;
gorod : string;
TPoezdF : text;
begin
k:=0;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(TPoezdF,filenametemp+'txt');
Rewrite(TPoezdF);
ClrScr;
writeln('Џ®ЁбЄ Ї®Ґ§¤ Є®в®ал© ®бв ў«Ёў Ґвбп ў гЄ § ®¬ Ј®а®¤Ґ:');
writeln;
write('‚ўҐ¤ЁвҐ Ј®а®¤:');
readln(gorod);
write(TPoezdF,'‘ЇЁб®Є ®¬Ґа®ў Ї®Ґ§¤®ў ®бв ў«Ёў ойЁебп ў Ј®а®¤Ґ ',gorod,': ');
while not Eof(PoezdF) do
begin
read(PoezdF,PoezdR);
for i:=1 to PoezdR.KOst do
if PoezdR.Ost[i]=gorod then
begin
write(TPoezdF,PoezdR.Number);
write(TPoezdF,', ');
k:=k+1;
end;
end;
Close(PoezdF);
Close(TPoezdF);
writeln;
writeln('‚ Ј®а®¤Ґ ',gorod,' ®бв ў«Ёў Ґвбп Ї®Ґ§¤®ў: ',k);
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
procedure PoezdMenu;
begin
repeat
begin
ClrScr;
writeln('Њ аиагвл ¤ўЁ¦ҐЁп Ї®Ґ§¤®ў - ѓ« ў®Ґ ¬Ґо');
writeln;
writeln('1. „®Ў ўЁвм ¬ аиагв');
writeln('2. Џ®б¬®ваҐвм ¬ аиагв Ї®Ґ§¤ ');
writeln('3. “¤ «Ёвм ¬ аиагв');
writeln('4. ђҐ¤ ЄвЁа®ў вм ¬ аиагв');
writeln('5. Џ®ЁбЄ Ї®Ґ§¤®ў ®бв ў«Ёў ойЁебп ў Ј®а®¤Ґ');
writeln('-------------------------------------------------');
writeln('6. ‚л室');
writeln;
write('‚лЎҐаЁвҐ ЇгЄв ¬Ґо: ');
readln(i);
case i of
1 : AddPoezd;
2 : ViewPoezd;
3 : DeletePoezd;
4 : EditPoezd;
5 : FindPoezd;
end;
end;
until i=6;
end;
begin
ClrScr;
writeln('‚ўҐ¤ЁвҐ Їгвм Є д ©«г ᮤҐа¦ 饬㠬 аиагвл Ї®Ґ§¤®ў ( ЇаЁ¬Ґа: c:\poezd.dat)');
readln(filename);
filenametemp :=copy(filename,1,length(filename)-3);
PoezdMenu;
end.
uses Crt;
type Poezd = record
Number : integer;
KP : string[20];
DN : string[15];
Time : string[10];
KOst : integer;
Ost : array[1..100] of string;
end;
var i : integer;
filename,filenametemp : string;
PoezdF : file of Poezd;
PoezdR : Poezd;
{Џа®жҐ¤га ¤®Ў ў«ҐЁп ¬ аиагв }
procedure AddPoezd;
begin
Assign(PoezdF,filename);
Reset(PoezdF);
while not Eof(PoezdF) do Read(PoezdF,PoezdR);
ClrScr;
writeln('„®Ў ў«ҐЁҐ ¬ аиагв :');
writeln;
write('‚ўҐ¤ЁвҐ ®¬Ґа Ї®Ґ§¤ :');
readln(PoezdR.Number);
write('‚ўҐ¤ЁвҐ Є®Ґзл© ЇгЄв:');
readln(PoezdR.KP);
write('‚ўҐ¤ЁвҐ ¤Ґм Ґ¤Ґ«Ё:');
readln(PoezdR.DN);
write('‚ўҐ¤ЁвҐ ўаҐ¬п ®вЇа ў«ҐЁп:');
readln(PoezdR.Time);
write('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® ®бв ®ў®Є (¬ ЄбЁ¬г¬ 100):');
readln(PoezdR.KOst);
writeln('‚ўҐ¤ЁвҐ (Ї®®зҐаҐ¤®) ЇҐаҐзҐм ®бв ®ў®Є:');
for i :=1 to PoezdR.KOst do readln(PoezdR.Ost[i]);
write(PoezdF,PoezdR);
Close(PoezdF);
writeln;
writeln('Њ аиагв ¤®Ў ў«Ґ!!!');
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
{Џа®жҐ¤га г¤ «ҐЁп ¬ аиагв }
procedure DeletePoezd;
var temp : file of Poezd;
Nom : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(temp,filenametemp+'tmp');
Rewrite(temp);
ClrScr;
writeln('“¤ «ҐЁҐ ¬ аиагв :');
writeln;
write('‚ўҐ¤ЁвҐ ®¬Ґа Ї®Ґ§¤ :');
readln(Nom);
while not Eof(PoezdF) do
begin
Read(PoezdF,PoezdR);
if PoezdR.Number<>Nom then Write(temp,PoezdR)
else f:=true;
end;
Close(temp);
Close(PoezdF);
Erase(PoezdF);
Rename(temp,filename);
writeln;
if f then writeln('Њ аиагв г¤ «Ґ!!!')
else writeln('Њ аиагв Ґ ©¤Ґ...');
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
{Џа®жҐ¤га । ЄвЁа®ў Ёп ¬ аиагв }
procedure EditPoezd;
var temp : file of Poezd;
Nom,tn : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(temp,filenametemp+'tmp');
Rewrite(temp);
ClrScr;
writeln('ђҐ¤ ЄвЁа®ў ЁҐ ¬ аиагв :');
writeln;
write('‚ўҐ¤ЁвҐ ®¬Ґа Ї®Ґ§¤ :');
readln(Nom);
while not Eof(PoezdF) do
begin
Read(PoezdF,PoezdR);
if PoezdR.Number<>Nom then Write(temp,PoezdR)
else
begin
tn:=nom;
f:=true;
end;
end;
if f then
begin
writeln;
PoezdR.Number:=tn;
write('‚ўҐ¤ЁвҐ Є®Ґзл© ЇгЄв:');
readln(PoezdR.KP);
write('‚ўҐ¤ЁвҐ ¤Ґм Ґ¤Ґ«Ё:');
readln(PoezdR.DN);
write('‚ўҐ¤ЁвҐ ўаҐ¬п ®вЇа ў«ҐЁп:');
readln(PoezdR.Time);
write('‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® ®бв ®ў®Є (¬ ЄбЁ¬г¬ 100):');
readln(PoezdR.KOst);
writeln('‚ўҐ¤ЁвҐ (Ї®®зҐаҐ¤®) ЇҐаҐзҐм ®бв ®ў®Є:');
for i :=1 to PoezdR.KOst do readln(PoezdR.Ost[i]);
write(temp,PoezdR);
writeln('Њ аиагв Ё§¬ҐҐ...');
end
else
begin
writeln;
writeln('Њ аиагв Ґ ©¤Ґ...');
end;
Close(temp);
Close(PoezdF);
Erase(PoezdF);
Rename(temp,filename);
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
{Џа®жҐ¤га ўлў®¤ ¬ аиагв Ї®Ґ§¤ нЄа }
procedure ViewPoezd;
var Nom : integer;
f : boolean;
begin
f:=false;
Assign(PoezdF,filename);
Reset(PoezdF);
ClrScr;
writeln('Џа®б¬®ва ¬ аиагв :');
writeln;
write('‚ўҐ¤ЁвҐ ®¬Ґа Ї®Ґ§¤ :');
readln(Nom);
while not Eof(PoezdF) do
begin
read(PoezdF,PoezdR);
if PoezdR.Number=Nom then
begin
f:=true;
writeln;
writeln('Ќ®¬Ґа Ї®Ґ§¤ : ',Nom);
writeln('Љ®Ґзл© ЇгЄв: ',PoezdR.KP);
writeln('„Ґм Ґ¤Ґ«Ё: ',PoezdR.DN);
writeln('‚аҐ¬п ®вЇа ў«ҐЁп: ',PoezdR.Time);
writeln('ЏҐаҐзҐм ®бв ®ў®Є:');
for i:=1 to PoezdR.KOst do writeln(' ',PoezdR.Ost[i]);
break;
end;
end;
Close(PoezdF);
if f=false then
begin
writeln;
writeln('Џ®Ґ§¤ б ¤ л¬ ®¬Ґа®¬ Ґ ©¤Ґ...');
end;
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
{Џа®жҐ¤га Ї®ЁбЄ Ї®Ґ§¤ Є®в®ал© ®бв ў«Ёў Ґвбп ў гЄ § ®¬ Ј®а®¤Ґ}
procedure FindPoezd;
var k : integer;
gorod : string;
TPoezdF : text;
begin
k:=0;
Assign(PoezdF,filename);
Reset(PoezdF);
Assign(TPoezdF,filenametemp+'txt');
Rewrite(TPoezdF);
ClrScr;
writeln('Џ®ЁбЄ Ї®Ґ§¤ Є®в®ал© ®бв ў«Ёў Ґвбп ў гЄ § ®¬ Ј®а®¤Ґ:');
writeln;
write('‚ўҐ¤ЁвҐ Ј®а®¤:');
readln(gorod);
write(TPoezdF,'‘ЇЁб®Є ®¬Ґа®ў Ї®Ґ§¤®ў ®бв ў«Ёў ойЁебп ў Ј®а®¤Ґ ',gorod,': ');
while not Eof(PoezdF) do
begin
read(PoezdF,PoezdR);
for i:=1 to PoezdR.KOst do
if PoezdR.Ost[i]=gorod then
begin
write(TPoezdF,PoezdR.Number);
write(TPoezdF,', ');
k:=k+1;
end;
end;
Close(PoezdF);
Close(TPoezdF);
writeln;
writeln('‚ Ј®а®¤Ґ ',gorod,' ®бв ў«Ёў Ґвбп Ї®Ґ§¤®ў: ',k);
writeln;
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг...');
ReadKey;
end;
procedure PoezdMenu;
begin
repeat
begin
ClrScr;
writeln('Њ аиагвл ¤ўЁ¦ҐЁп Ї®Ґ§¤®ў - ѓ« ў®Ґ ¬Ґо');
writeln;
writeln('1. „®Ў ўЁвм ¬ аиагв');
writeln('2. Џ®б¬®ваҐвм ¬ аиагв Ї®Ґ§¤ ');
writeln('3. “¤ «Ёвм ¬ аиагв');
writeln('4. ђҐ¤ ЄвЁа®ў вм ¬ аиагв');
writeln('5. Џ®ЁбЄ Ї®Ґ§¤®ў ®бв ў«Ёў ойЁебп ў Ј®а®¤Ґ');
writeln('-------------------------------------------------');
writeln('6. ‚л室');
writeln;
write('‚лЎҐаЁвҐ ЇгЄв ¬Ґо: ');
readln(i);
case i of
1 : AddPoezd;
2 : ViewPoezd;
3 : DeletePoezd;
4 : EditPoezd;
5 : FindPoezd;
end;
end;
until i=6;
end;
begin
ClrScr;
writeln('‚ўҐ¤ЁвҐ Їгвм Є д ©«г ᮤҐа¦ 饬㠬 аиагвл Ї®Ґ§¤®ў ( ЇаЁ¬Ґа: c:\poezd.dat)');
readln(filename);
filenametemp :=copy(filename,1,length(filename)-3);
PoezdMenu;
end.