AddRec;
Close (BookFile);
end
Else Writeln ('Faila s imenem ', Name,' na diske net');
end;
Procedure AddRecToEnd; { процедура дополнения записи в конец файла}
begin
Name_File;
Assign (BookFile, Name);
{$I-}
Reset (BookFile);
{$I+}
If IOresult=0 then
begin
Seek (BookFile, FileSize (BookFile)); {установка текущей позиции в конец файла}
AddRec;
Writeln ('Izmenennyi fail dannyh imeet ', FileSize (BookFile),' zapisei');
Close (BookFile);
end
Else Writeln ('Faila s imenem ', Name,' na diske net');
end;
Procedure FindFIO; {процедура поиска названия улицы физического лица}
Var
Maska: StUlica; {хранит название улицы искомого лица}
Rez_Find: boolean; {результат поиска}
CountRec: integer; {переменная, значение которой равно числу записей с такой улицей}
begin
Name_File;
Assign (BookFile, Name);
{$I-}
Reset (BookFile);
{$I+}
If IOresult=0 then
begin
Write ('Vvedite ulicu dla poiska: ');
Readln (Maska);
Rez_Find: =False; {улица не найдена}
CountRec: =0;
Writeln ('------------------------------------------------------------------------------');
Writeln ('| N | FIO | Data rogdenia | Gorod | Ulica | Dom | Kvartira | Nomer pasporta |');
Writeln ('------------------------------------------------------------------------------');
While (not Eof (BookFile)) do {просмотреть все записи до конца файлов}
begin
Read (BookFile,work);
with work do
If Pos (Maska,Ulica) <>0 then {найдена запись физического лица}
Begin
Rez_Find: =True;
Inc (CountRec);
Writeln ('------------------------------------------------------------------------------');
Write ('| ',FilePos (BookFile),' | ',FIO,' | ',Data,' | ',Gorod,' | ',Ulica,' | ',Dom,' | ');
Writeln (Kvartira,' | ',Nomer_Pasporta,' |');
Writeln ('------------------------------------------------------------------------------');
end;
end;
If Rez_Find then
Writeln ('Chislo zapisei dlya ulic ',Maska,' = ',CountRec)
Else Writeln ('V spravochnike net takoi ulici ',Maska);
Close (BookFile);
end
Else Writeln ('Faila s imenem ',Name,' na diske net');
end;
begin
clrscr;
End_Menu: =False;
Repeat
Writeln ('***Spravochnic dannih fizicheskih lic***');
Writeln ('Vyberite vid raboty');
Writeln ('1 - sozdanie novogo faila');
Writeln ('2 - prosmotr spiska spravochnika');
Writeln ('3 - izmenenie zapisi');
Writeln ('4 - dopolnenie spravochnika');
Writeln ('5 - poisk po familii');
Writeln ('0 - zavershenie raboty');
Write ('Vash bybor: ');
Readln (VID);
case VID of {вызов разных процедур в зависимости от видов работы}
1: Create_Book;
2: OutputAllRec;
3: UpdateRec;
4: AddRecToEnd;
5: FindFIO;
0: End_menu: =True;
end;
Writeln ('Dlya prodolzheniya nazhmite Enter');
Readln;
clrscr;
Until End_Menu;
end.
Наберем данную программу на языке Паскаль. Откомпилируем ее. На экране появится меню задач для файла:
При выборе "1" создадим новый файл под именем "***Spravochnik dannih fizicheskih lic***":
При выборе "2" можно просмотреть весь созданный список:
При выборе "3" изменим одну из записей файла:
При выборе "4" дополним справочник еще одной записью:
При выборе "5" пользователю будет предложено ввести название улицы, введем название (Ленина) и получим данные о физических лиц с такой улицей:
В случае, если заданной улицы нет нет, то на экране появится:
При выборе "0" программа закончит свою работу:
Задача, которая поставлена в курсовой работе была выполнена. Мы показали, что задача может выполнять несколько действий:
Создание файла
Заполнение файла данными, содержащие поля:
Фамилия, имя, отчество
Дата рождения
Город
Улица
Дом
Квартира
Номер паспорта
Просмотр всех записей файла или текущей записи
Изменение записи, созданной в файле
Дополнение записи в файл
Поиск записи по названию улицы.
Все эти действия были выполнены с помощью процедур.
Процедура - это часть программы, в которой выполняется специфическое действие. Процедуры в Турбо Паскале могут быть внутренними и внешними.
Внутренние процедуры описываются в разделе описания процедур основной программы. Внешние процедуры оформляются в виде автономно компилируемых модулей.
Формат описания процедур:
PROCEDURE <имя проц> (список форм. Парам);
Разделы описания
BEGIN
Раздел операторов
END.
Имя проц. - имя процедуры, любое имя задаваемой программистом, обычно соответствующим назначению процедуры, состоящее из латинских букв и цифр 0-9.
1. Грачева Л.Н. - Программирование в среде Turbo-Pascal 7.0: Лабораторный практикум по дисциплине: "Программирование и основы алгоритмизации". - Уфа: РИО РУНМЦ МО РБ, 2008.
2. Молодцов В.А. - Репетитор по информатике для подготовки к экзаменам. - Ростов н/Д: Феникс, 2007.
3. Острейковский В.А. - Информатика: Учеб. для вузов. - М.: Высш. шк., 1999.
4. Попов В.Б. - Паскаль и Дельфи. Учебный курс. - СПб.: Питер, 2005.