Преобразования и хранения последовательных файлов и файлов произвольного доступа на Турбо Паскале
Принципы создания последовательных и файлов произвольного доступа. Формирование файлов, в одном из которых помещены фамилии пяти знакомых, а в другой номера их телефонов. Составление программы, которая по фамилии знакомого определяет номер его телефона.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 25.12.2010 |
Размер файла | 17,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Цель работы:
Изучение принципов создания, преобразования и хранения последовательных файлов и файлов произвольного доступа.
Задание:
Сформировать два файла. В один из них поместить фамилии пяти ваших знакомых, а в другой номера их телефонов.
Составить программу, которая по фамилии вашего знакомого определяет номер его телефона.
procedure print_head;
procedure print_menu;
procedure print_book(n : integer; a : men ; b : tels);
procedure ins_man(var n : integer;var a : men ;var b : tels);
procedure change_man(n : integer;var a: men ;var b: tels);
procedure read_file(var f : fman;var ft : ftel;var n : integer;var a : men; var b : tels);
procedure write_file(var f : fman;var ft : ftel;n : integer; a : men; b : tels);
procedure show_matrix(n,m : integer;a : matrix);
Программа:
{*****************************************}
{Программа:lab22 }
{Цель:создание таблицы данных }
{Описание параметров и переменных: }
{ menbook,telbook - массив записей }
{ menfile,telfile - файлы записей }
{ n - кол-во элементов в базе данных }
{ i - вспомогательная переменная }
{ key - переменная-ключ }
{Подпрограммы:нет }
{Программист: Кондрахин А.В.,гр.343 }
{Проверил: Москвитина О.А.,каф. ВПМ }
{Дата написания: 12 марта 2004 г. }
{*****************************************}
program lab22;
uses crt;
const
verh ='-----------T---------------T---------------T----------T----------T-----------¬';
inc1 ='¦ Имя ¦ Фамилия ¦ Отчество ¦ дом.тел. ¦ раб.тел. ¦ сот.тел. ¦';
cent1='+----------+---------------+---------------+----------+----------+-----------+';
niz ='L----------+---------------+---------------+----------+----------+------------';
Num=10;
type
man=record
name:string[10];
fam :string[15];
otc :string[15];
end;
tel=record
hometel: string[6];
worktel: string[6];
sottel : string[11];
end;
men=array[1..Num] of man;
tels=array[1..Num] of tel;
fman=file of man;
ftel=file of tel;
var
n,i :integer;
menbook :men;
telbook :tels;
menfile :fman;
telfile :ftel;
key :char;
procedure print_head;
begin
Clrscr;
Writeln('---------------------- Программа "Записная книжка" ----------------------');
Writeln;
end;
procedure print_menu;
begin
print_head;
Writeln('Выберете одно из следующих действий:');{Вывод меню}
Writeln('1. Просмотреть записную книжку.');
Writeln('2. Добавить новую запись.');
Writeln('3. Редактировать запись.');
Writeln;
Writeln('0. Выход');
Writeln;
Writeln('Введите ключ команды:');
end;
procedure print_book(n : integer; a : men ; b : tels);
var
i:integer;
begin
print_head;
Writeln(verh);Writeln(inc1);Writeln(cent1);
for i:=1 to n do {Вывод записей}
Writeln('¦',a[i].name:10,'¦',a[i].fam:15,'¦',a[i].otc:15,'¦',b[i].hometel:10,'¦',b[i].worktel:10,'¦',b[i].sottel:11,'¦');
Writeln(niz);
Writeln('Для продолжения нажмите любую клавишу...');Readkey;
end;
procedure ins_man(var n : integer;var a : men ;var b : tels);
var
fam : string[15];
begin
print_head;
if n=Num
then Writeln('База данных переполнена!') {Переполнение базы}
else begin
inc(n); {Занесение записи}
Write('Введите имя (10 знаков):');Readln(a[n].name);
Write('Введите фамилию (15 знаков):');Readln(a[n].fam);
Write('Введите отчество (15 знаков):');Readln(a[n].otc);
Write('Введите домашний телефон:');Readln(b[n].hometel);
Write('Введите рабочий телефон:');Readln(b[n].worktel);
Write('Введите сотовый телефон:');Readln(b[n].sottel);
end;
Writeln('Для продолжения нажмите любую клавишу...');Readkey;
end;
procedure change_man(n : integer;var a: men ;var b: tels);
var
fam : string[15];
i :integer;
begin
print_head;
Writeln('Введите фамилию:');Read(fam);
i:=1;
while (a[i].fam<>fam) and (i<=n) do {Поиск фамилии}
inc(i);
if (i>n) and (a[i].fam<>fam)
then Writeln('Такой фамилии не найдено!')
else
begin
Writeln(verh);Writeln(inc1);Writeln(cent1);
Writeln('¦',a[i].name:10,'¦',a[i].fam:15,'¦',a[i].otc:15,'¦',b[i].hometel:10,'¦',b[i].worktel:10,'¦',b[i].sottel:11,'¦');
Writeln(niz);Writeln;Readln;
Write('Введите имя (10 знаков):');Readln(a[i].name); {Изменение записи}
Write('Введите фамилию (15 знаков):');Readln(a[i].fam);
Write('Введите отчество (15 знаков):');Readln(a[i].otc);
Write('Введите домашний телефон:');Readln(b[i].hometel);
Write('Введите рабочий телефон:');Readln(b[i].worktel);
Write('Введите сотовый телефон:');Readln(b[i].sottel);
Writeln('Для продолжения нажмите любую клавишу...');Readkey;
end;
end;
procedure read_file(var f : fman;var ft : ftel;var n : integer;var a : men; var b : tels);
begin
n:=0;
assign(f,'man.db'); {Инициализация файловых}
assign(ft,'tel.db'); {переменных}
{$I-}
reset(f);
reset(ft);
{$I+}
if IOResult<>0
then Writeln('Файл базы данных не найден!')
else begin
while not(EOF(f)) and (n<=10) do
begin
inc(n);
read(f,a[n]); {Чтение записей}
read(ft,b[n]);
end;
Writeln('Файл базы данных успешно прочитан!');
end;
end;
procedure write_file(var f : fman;var ft : ftel;n : integer; a : men; b : tels);
var
i: integer;
begin
rewrite(f);
rewrite(ft);
for i:=1 to n do
begin {Запись записей}
Write(f,a[i]);
Write(ft,b[i]);
end;
Writeln('Файл базы данных успешно сохранен!');
end;
begin
read_file(menfile,telfile,n,menbook,telbook); {Чтение файлов}
print_head;
key:='Y';
while (UpCase(key)='Y') do {Проверка ключа}
begin
print_menu;
key:=Readkey;
case key of {Выплнение соотв.}
'1': begin print_book(n,menbook,telbook);key:='Y';end;
'2': begin ins_man(n,menbook,telbook);key:='Y';end;
'3': begin change_man(n,menbook,telbook);key:='Y';end;
else begin Writeln('Вы ввели неправильный код!');key:='N';end
end;
Writeln;
end;
write_file(menfile,telfile,n,menbook,telbook); {Запись файлов}
end.
Просчет контрольного варианта на ЭВМ:
Выберете одно из следующих действий:
1. Просмотреть записную книжку.
2. Добавить новую запись.
3. Редактировать запись.
0. Выход
Введите ключ команды: 1
Имя |
Фамилия |
Отчество |
дом.тел. |
раб.тел. |
сот.тел. |
|
Andrey Sergey Alex Serega |
Kondrahin Sazonov Uoronov Kurpach |
Uyacheslauouich Otc Uiktorouich Uiktorouich |
322286 322155 455932 32456 |
322286 322155 455932 435645 |
324567678 3456789 3245667788 3245475685 |
Для продолжения нажмите любую клавишу...
Выберете одно из следующих действий:
1. Просмотреть записную книжку.
2. Добавить новую запись.
3. Редактировать запись.
0. Выход
Введите ключ команды: 2
Введите имя (10 знаков):Ivanov
Введите Фамилию (15 знаков):Uladislav
Введите отчество (15 знаков):01egovich
Введите домашний телефон:226057
Введите рабочий телефон:226057
Введите сотовый телефон:123Ч56789
Для продолжения нажмите любую клавишу...
Выберете одно из следующих действий:
1. Просмотреть записную книжку.
2. Добавить новую запись.
3. Редактировать запись.
0. Выход
Введите ключ команды: 3
Введите Фамилию: Sazonov
Имя |
Фамилия |
Отчество |
дом.тел. |
раб.тел. |
сот.тел. |
|
Sergey |
Sazonov |
Otc |
322155 |
322155 |
3456789 |
Введите имя (10 знаков):Sergey
Введите Фамилию (15 знаков):Sazonov
Введите отчество (15 знаков):Nikolaevich
Введите домашний телефон:322155
Введите рабочий телефон:322155
Введите сотовый тепеФон:987654321
Для продолжения нажмите любую клавишу...
Подобные документы
Понятие процесса архивации файлов. Программы, осуществляющие упаковку и распаковку файлов. Защита информации от несанкционированного доступа. Самораспаковывающиеся архивы. Основные характеристики программ-архиваторов. Распространенные алгоритмы сжатия.
презентация [801,6 K], добавлен 23.10.2013Характеристика работы архиватора - компьютерной программы, которая осуществляет сжатие данных в один файл архива для более легкой передачи, компактного их хранения. Особенности процесса архивирования - записи файлов и разархивирования - открытия файлов.
реферат [216,5 K], добавлен 26.03.2010Проектирование программного обеспечения. Схема начального формирования каталога файлов, вывода на экран каталога файлов, удаления файлов, сортировки файлов по имени, дате создания и размеру методом прямого выбора. Управление каталогом в файловой системе.
курсовая работа [804,0 K], добавлен 08.01.2014Изучение понятия архивации, сжатия файлов с целью экономии памяти и размещения сжатых данных в одном архивном файле. Описания программ, выполняющих сжатие и восстановление сжатых файлов в первоначальном виде. Основные преимущества программ-упаковщиков.
контрольная работа [534,7 K], добавлен 11.01.2015Понятия файлов и каталогов. Область внешней памяти, группа файлов на одном носителе. Древовидная структура файлов на диске. Имя и местонахождение файла. Маршрут или путь по файловой системе. Запись имени файла в DOSе. Шаблоны. Структура каталога.
лабораторная работа [15,2 K], добавлен 30.09.2008Обзор особенностей работы с программой Total Commander. Создание папок, копирование файлов на флеш-карту. Вызов контекстного меню. Определение структуры файлов. Переименование группы файлов. Помещение файлов в архив. Разделение архива на несколько частей.
лабораторная работа [1,9 M], добавлен 08.04.2014Особенности работы "поисковика" дублирующихся файлов на диске. Выбор среды программирования. Разработка программного продукта. Основные требования, предъявляемые к программе, производящей поиск дублирующихся файлов на диске. Отображение скрытых файлов.
курсовая работа [1,8 M], добавлен 28.03.2015Создание программы, которая позволяет пользователю задавать произвольную директорию, содержащую музыкальные файлы. Осуществление поиска или рекурсивного поиска файлов в этой директории и формирование csv-файла. Исправление тегов в музыкальных файлах.
курсовая работа [241,3 K], добавлен 13.02.2015Утилиты архивации для создания резервных копий файлов путем помещения их в архив в сжатом виде. Операции над архивами. Алгоритмы архивации. Универсальные алгоритмы уплотнения. Формат задания команд. Степень сжатия файлов. Основные виды архиваторов.
презентация [241,0 K], добавлен 13.08.2013Проектирование структуры и архитектуры программного продукта. Реализация программы конвертера файлов баз данных. Описание пользовательского интерфейса. Выбор порядка конвертации dbf файлов. Создание и исполнение шаблонов. Расчет себестоимости продукта.
дипломная работа [2,2 M], добавлен 21.06.2013