`
Балтийский Государственный
Технический Университет
«ВоенМех»
имени Д.Ф. Устинова
Отчет
к лабораторной работе по информатике №4
На тему
“Текстовые и типизированные файлы”
Отчет выполнил студент
Факультета «И»
Суханов Александр
Группа И433
Санкт-Петербург 2004
Лабораторная работа по информатике №4
Тема: Текстовые и типизированные файлы.
Цель: Ознакомиться с понятием файла. Научиться работать с текстовыми и типизированными файлами.
Исходная задача: Создать базу данных для отдела кадров. Поля записи: Ф.И.О, год рождения, адрес, телефон, факультет, номер группы. В программе должны быть предусмотрены следующие функции:
Структуры данных:
Nmax – наибольшее кол-во записей
Тип Person – тип-запись – содержит данные об одном человеке.
Тип Personal - Массив Записей Person
BasePointer – Указатель на тип Массив Personal
Модули раздельной трансляции:
Structur.pas – Содержит основные структуры данных, используемые в программе.
Menu.pas – Отвечает за функционирование главного меню программы.
Work.pas – Включает в себя основные процедуры программы.
Основные процедуры и функции:
LoadTextData(var n: Word; BGTU: BasePointer) – Первый пункт Меню
LoadTipData(var n: Word; BGTU: BasePointer) – Второй пункт меню
InputData (var n: Word; BGTU: BasePointer) - Третий пункт меню
OutputData (n: Word; BGTU: BasePointer) - Четвертый пункт меню
FindData (n: Word; BGTU: BasePointer) – Пятый пункт меню
ChangeData (n: Word; BGTU: BasePointer) – Шестой пункт меню
DeleteData (var n: Word; BGTU: BasePointer) – Седьмой пункт меню
SaveTextData(var n: Word; BGTU: BasePointer) – Восьмой пункт меню
SaveTipData(var n: Word; BGTU: BasePointer) – Девятый пункт меню
About – Шестой пункт меню
SafeRead (MaxLen, MinLen, Code) – Замена стандартной процедуры Readln
PrintMainFraime (PozX, PozY, Width, Height: Integer) – Рисует рамку
PrintMainMenu (Active: Integer) – Вывод пунктов меню Active – номер активного пункта
CallMenu – Начало работы с Меню
Блок-схема алгоритма:
1. Процедура SaveTextData [модуль Work.pas] + SaveTipData
2. Процедура InputData [модуль Work.pas]
3. Процедура OutputData [модуль Work.pas] + SaveTextData + SaveTipData
4. Процедура FindData [модуль Work.pas]
5. Процедура ChangeData [модуль Work.pas]
6. Процедура DeleteData [модуль Work.pas]
Листинг программы:
Файл lab3.pas
program Lab3;
uses Crt, Structur, Menu, Work;
begin
ClrScr;
New(BGTU);
CallMenu;
Dispose(BGTU);
end.
Файл structur.pas
unit Structur;
const Nmax = 100;
type Person = record
Name: String [20];
BirthYear: String[4];
Address: String[50];
Phone: String [20];
Facultet: String[1];
Group: String[3];
end;
Personal = array [1..Nmax] of Person;
BasePointer = ^Personal;
var BGTU: BasePointer;
n: Word;
Implementation
end.
Файл menu.pas
unit Menu;
uses Crt, Structur;
procedure PrintMainFraime(PozX, PozY, Width, Height: Integer);
procedure PrintMainMenu(Active: Integer);
procedure CallMenu;
uses Work;
procedure PrintMainFraime(PozX, PozY, Width, Height: Integer);
var zicl: Integer;
begin
gotoXY(PozX, PozY);
write('Й');
for zicl:=1 to Width-2 do write('Н');
write('»');
for zicl:=1 to Height-2 do
begin
GotoXY(PozX, PozY+zicl);
write('є');
GotoXY(PozX+Width-1,WhereY);
write('є');
end;
gotoXY(PozX, PozY+Height-1);
write('И');
for zicl:=1 to Width-2 do write('Н');
write('ј');
end;
procedure PrintMainMenu(Active: Integer);
begin
TextColor(2);
gotoXY(28,1);
TextBackGround(0);
writeln('Отдел кадров БГТУ "ВоенМех"');
if Active=1 then TextBackGround(9);
gotoXY(4,4); write('[01] Загрузка данных из текст. файла ');
if Active=1 then TextBackGround(0);
if Active=2 then TextBackGround(9);
gotoXY(4,5); write('[02] Загрузка данных из тип. файла ');
if Active=2 then TextBackGround(0);
if Active=3 then TextBackGround(9);
gotoXY(4,6); write('[03] Добавление записи ');
if Active=3 then TextBackGround(0);
if Active=4 then TextBackGround(9);
gotoXY(4,7); write('[04] Вывод сведений о всех сотрудниках ');
if Active=4 then TextBackGround(0);
if Active=5 then TextBackGround(9);
gotoXY(4,8); write('[05] Поиск ');
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.