Смекни!
smekni.com

Составление программ для решения задач на языке программирования Turbo Pascal (стр. 4 из 4)

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.

5. Контрольный пример

Наберем данную программу на языке Паскаль. Откомпилируем ее. На экране появится меню задач для файла:

При выборе "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.