Помощь в написании студенческих работ
Антистрессовый сервис

Преобразования и хранения последовательных файлов и файлов произвольного доступа на Турбо Паскале

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Изучение принципов создания, преобразования и хранения последовательных файлов и файлов произвольного доступа. Сформировать два файла. В один из них поместить фамилии пяти ваших знакомых, а в другой номера их телефонов. Составить программу, которая по фамилии вашего знакомого определяет номер его телефона. Writeln ('——————————— Программа «Записная книжка» ———————————'); Niz… Читать ещё >

Преобразования и хранения последовательных файлов и файлов произвольного доступа на Турбо Паскале (реферат, курсовая, диплом, контрольная)

Цель работы:

Изучение принципов создания, преобразования и хранения последовательных файлов и файлов произвольного доступа.

Задание:

Сформировать два файла. В один из них поместить фамилии пяти ваших знакомых, а в другой номера их телефонов.

Составить программу, которая по фамилии вашего знакомого определяет номер его телефона.

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

Для продолжения нажмите любую клавишу…

Выберете одно из следующих действий:

1. Просмотреть записную книжку.

2. Добавить новую запись.

3. Редактировать запись.

0. Выход Введите ключ команды: 2

Введите имя (10 знаков):Ivanov

Введите Фамилию (15 знаков):Uladislav

Введите отчество (15 знаков):01egovich

Введите домашний телефон:226 057

Введите рабочий телефон:226 057

Введите сотовый телефон:123Ч56 789

Для продолжения нажмите любую клавишу…

Выберете одно из следующих действий:

1. Просмотреть записную книжку.

2. Добавить новую запись.

3. Редактировать запись.

0. Выход Введите ключ команды: 3

Введите Фамилию: Sazonov

Имя

Фамилия

Отчество

дом.тел.

раб.тел.

сот.тел.

Sergey

Sazonov

Otc

Введите имя (10 знаков):Sergey

Введите Фамилию (15 знаков):Sazonov

Введите отчество (15 знаков):Nikolaevich

Введите домашний телефон:322 155

Введите рабочий телефон:322 155

Введите сотовый тепеФон:987 654 321

Для продолжения нажмите любую клавишу…

Показать весь текст
Заполнить форму текущей работой