Цитата:
Сообщение от winowl
Заданный файл, который состоит из информации о фонде книг в библиотеке. Создать информационную программу, которая выдает информацию о книгах по запросам: автор книги по ее названию, количество книг указанного автора, название книг указанного автора. Информация постоянно обновляется.
Язык програмирования Паскаль АВС
|
Код:
Type
Fund=Record
Author:String[20];
Title:String[200];
end;
Var
f,f1:File of Fund;
A:Fund;
i:Byte;
C:Char;
Auth:String[20];
Tit:String[200];
N:Integer;
b:Boolean;
Begin
Repeat
Writeln;
Writeln('Choose the operation:');
Writeln('1 - create new catalogue (all the previous data will be lost!!!)');
Writeln('2 - add new book');
Writeln('3 - show all books of the author');
Writeln('4 - find the author of the book');
Writeln('5 - exit');
Readln(i);
Writeln;
Case i of
1: begin
Assign(f,'Catal');
Rewrite(f);
Repeat
Write('Author: ');
Readln(A.Author);
Write('Title: ');
Readln(A.Title);
Write(f,A);
Write('Continue (Y/N)? ');
Readln(C);
Until (C='n') or (C='N');
Close(f);
end;
2: begin
Assign(f,'Catal');
Reset(f);
Assign(f1,'xxxx');
Rewrite(f1);
Repeat
Read(f,A);
Write(f1,A);
Until EoF(f);
Close(f);
Write('Author: ');
Readln(A.Author);
Write('Title: ');
Readln(A.Title);
Write(f1,A);
Close(f1);
Reset(f1);
Rewrite(f);
Repeat
Read(f1,A);
Write(f,A);
Until EoF(f1);
Close(f1);
Close(f);
Erase(f1);
end;
3: begin
N:=0;
Write('Author: ');
Readln(Auth);
Assign(f,'Catal');
Reset(f);
Repeat
Read(f,A);
if A.Author=Auth then
begin
Inc(N);
Writeln(A.Title);
end;
Until EoF(f);
Close(f);
Writeln(N,' books');
end;
4: begin
b:=true;
Write('Title: ');
Readln(Tit);
Assign(f,'Catal');
Reset(f);
Repeat
Read(f,A);
if A.Title=Tit then
begin
b:=false;
Writeln(A.Author);
end;
Until Not(b) or EoF(f);
Close(f);
If b then Writeln('No such book!');
end;
end;
Until i=5;
End.