Uses crt;
Type
mo = record
name, country: string;
height: longint;
end;
Type
fil = file of mo;
const
fpath = 'C:/mountains.txt';
var
f: fil;
procedure mainmenu; forward;
Procedure IsFile7;
begin
{$I-}
reset(f);
{$I+}
if (IOresult <> 0) then
begin
writeln('No file. Press ENTER to quit');
readln;
mainmenu;
end;
end;
procedure create;
var
key: char;
begin
clrscr;
{$I-}
reset(f);
{$I+}
if (IOresult <> 0) then
begin
rewrite(f);
mainmenu;
end
else
begin
writeln('Overwrite file? Y/N');
repeat
key := readkey;
if ((key = 'y') or (key = 'Y')) then
begin
rewrite(f);
mainmenu;
end;
if ((key = 'n') or (key = 'N')) then
mainmenu;
until (1 < 0);
end;
end;
Procedure ViewFile;
var
ourmo: mo;
begin
clrscr;
IsFile7;
write('Name':25);
write('Height':25);
write('Country':25);
writeln;
while not EOF(f) do
begin
read(f, ourmo);
write(ourmo.name:25);
write(ourmo.height:25);
write(ourmo.country:25);
writeln;
end;
writeln;
writeln('Press ENTER to exit');
readln;
mainmenu;
end;
Procedure GetResult;
var
currentmo: mo;
result, n, minhgt, hgt: longint;
begin
clrscr;
IsFile7;
result := 0;
n := 0;
while not EOF(f) do
begin
read(f, currentmo);
if (currentmo.height < minhgt) or (n = 0) then
begin
minhgt := currentmo.height;
result := n;
end;
n := n + 1;
end;
seek(f, result);
read(f, currentmo);
writeln('Mountain: ', currentmo.name);
writeln('Height: ', currentmo.height);
writeln('Country: ', currentmo.country);
writeln;
writeln('Press ENTER to quit.');
readln;
mainmenu;
end;
Procedure AddInfo;
var
AddMo: mo;
begin
clrscr;
IsFile7;
seek(f, filesize(f));
writeln('Enter name of mountain:');
readln(AddMo.name);
writeln('Enter height:');
readln(AddMo.height);
writeln('Enter country:');
readln(AddMo.country);
write(f, AddMo);
mainmenu;
end;
Procedure ExitProgram;
begin
clrscr;
halt;
end;
procedure mainmenu;
var
key: char;
begin
clrscr;
writeln('Choose option: 1-4');
writeln;
writeln('1: Create file');
writeln('2: View file');
writeln('3: Add record');
writeln('4: View result');
writeln('5: Exit');
repeat
key := readkey;
case key of
'1':
create;
'2':
ViewFile;
'3':
AddInfo;
'4':
GetResult;
'5':
ExitProgram;
end;
until (1 < 0);
end;
Begin
highvideo;
clrscr;
assign(f, fpath);
mainmenu;
End.
Похожие записи/страницы:
- Написать программу, выполняющую сортировку таблицы методом линейного выбора- Pascal(Паскаль)
- В текстовом файле F1 задана последовательность символов, в F2 - другая последовательность. Разработать пpоцедуpы…
- Создать программу для начальника отдела кадров, которая со-держит информацию о сотрудниках: фамилия, должность,…
- Разработка базы данных работников с использование записей типизированного файла - Pascal(Паскаль)
- Удалить из текстового файла комментарии вида {comments} - Pascal(Паскаль)
- Составьте программу, которая обеспечивает ввод данных, вывод данных, поиск по ФИО. Каждая компонента записи…
- Cоздать файл из списка 10 студентов с их оценками ( номер, Ф.И.О. и три оценки). Вывести его содержимое на…
- Составить программу , с помощью которых: -сформировать файл из записей, содержащих сведения о книге(фамилия…