Текстовые и типизированные файлы. Создание базы данных для отдела кадров

Страницы работы

Содержание работы

`

Балтийский Государственный

Технический Университет

«ВоенМех»

имени Д.Ф. Устинова

Отчет

к лабораторной работе по информатике №4

На тему

“Текстовые и типизированные файлы”

Отчет выполнил студент

Факультета «И»

Суханов Александр

Группа И433

Санкт-Петербург 2004

Лабораторная работа по информатике №4

Тема: Текстовые и типизированные файлы.

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

Исходная задача: Создать базу данных для отдела кадров. Поля записи: Ф.И.О, год рождения, адрес, телефон, факультет, номер группы. В программе должны быть предусмотрены следующие функции:

  1. Загрузка из текстового файла
  2. Загрузка из типизированного файла
  3. Ввод данных
  4. Вывод данных обо всех сотрудниках (ФИО, Факультет, Группа, Телефон)
  5. Поиск
  6. Изменение данных
  7. Удаление записи
  8. Сохранение в текстовый файл
  9. Сохранение в типизированный файл

Структуры данных:

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

начало SaveTextData,(zicl<Nmax) И НЕ Eof(file),zicl:=n,true,BGTU^[zicl],zicl:=zicl+1,конец
 


2.  Процедура InputData [модуль Work.pas]

начало InputData,нет памяти,BGTU^[n],n:=n+1,n=Nmax,конец 


3.  Процедура OutputData [модуль Work.pas] + SaveTextData + SaveTipData

конец,zicl 1, n,вывод BGTU^[zicl],начало OutputData
 


4.  Процедура FindData [модуль Work.pas]

false,true,zicl:=1,zicl<=n,начало FindData,ввод Search 



 

BGTU^[zicl]=Search,false,true,вывод BGTU^[zicl],zicl:=zicl+1,Конец


5.  Процедура ChangeData [модуль Work.pas]

false,true,zicl:=1,zicl<=n,начало ChangeData,ввод Find
 



 

BGTU^[zicl]=Find,true,BGTU^[zicl]:=Change,Конец
false,zicl:=zicl+1


6.  Процедура DeleteData [модуль Work.pas]

начало FindData
ввод Find
 

false,true,poz:=1,poz<=n
 



 

BGTU^[poz]=Find,false,true,poz:=poz+1,Конец,zicl2 poz, n-1,BGTU^[zicl]=BGTU^[zicl+1]


Листинг программы:

Файл lab3.pas

program Lab3;

uses Crt, Structur, Menu, Work;

begin

ClrScr;

New(BGTU);

CallMenu;

Dispose(BGTU);

end.

Файл structur.pas

unit Structur;

Interface

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;

Interface

uses Crt, Structur;

procedure PrintMainFraime(PozX, PozY, Width, Height: Integer);

procedure PrintMainMenu(Active: Integer);

procedure CallMenu;

Implementation

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] Поиск                             ');

Похожие материалы

Информация о работе