Практическая обработка множества данных, представляющих собой массив указателей на записи

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

/p>

TipTelevizor:Tip;

end;

 

var

File1, Filekl, File2: File of Televizor;

FileName, Filenamekluch, filenamenov, FilenamenovND: string;

TVzap:Televizor;

 

n:integer;

otv1, punkt, Otv, tek, numb:byte;

otv2, k:string;

answ:char;

 

{Процедура для вывода текущего элемента}Vivod_Tek (var Filename:string; n:integer);

{Процедура создания нового набора данных}Sozdat_ND (var Filename:string; var n:integer);

{Процедура добавление элемента в конец набора данных}Dobavit_ND (var Filename:string; var n:integer);

{Процедура для просмотра содержимого набора данных}Prosmotr_ND (var Filename:string; var n:integer);

{Процедура для поиска элемента по введеному номеру}Poisk_Elem_ND (var Filename:string; var n:integer);

 

Sozdat_ND;i,kol:integer;

{Ввод имени нового набора данных}

writeln(Введите имя нового набора данных: );

readln(FilenamenovND);

{Связывание файловой переменной с НД на диске}

assign(File1, FilenamenovND);

{Открытие файла для записи}

rewrite(File1);

{Ввод количества записей}

write(Количество записей: );

readln(kol);

numb:=1;

for i:=1 to kol do

begin

{Ввод данных}

write(Название телевизора: );

readln(TVzap.nazvanie);

write(Размер телевизора: );

readln(TVzap.razmer);

write(Средняя стоимость: );

readln(TVzap.sr_stoimist);

write(Тип телевизора (1: Цветной; 2: Черно-белый; 3:Переносной): );

readln(otv1);

case otv1 of

1:TVzap.TipTelevizor:=cvet;

2:TVzap.TipTelevizor:=gherno_bel;

3:TVzap.TipTelevizor:=perenosn;

end;

numb:=numb+1;

n:=numb;

{Запись одной записи в НД}

write(File1,TVzap);

end;

{Закрытие файла}

close(File1);

{Изменение имени файла}

Filename:=FilenamenovND;;

{end procedure Sozdat_ND}

Dobavit_ND;

numb:=n+1;

{Связывание файловой переменной с НД на диске}

assign(File1, Filename);

{Открытие файла для чтения}

reset(File1);

{Поиск конца файла}

seek(File1,filesize(File1));

while Otv2 <> No do

begin

{Ввод данных}

write(Название телевизора: );

readln(TVzap.nazvanie);

write(Размер телевизора: );

readln(TVzap.razmer);

write(Средняя стоимость: );

readln(TVzap.sr_stoimist);

write(Тип телевизора (1: Цветной; 2: Черно-белый; 3:Переносной););

readln(otv1);

case otv1 of

1:TVzap.TipTelevizor:=cvet;

2:TVzap.TipTelevizor:=gherno_bel;

3:TVzap.TipTelevizor:=perenosn;

end;

numb:=numb+1;

{Запись одной записи в НД}

write(File1,TVzap);

writeln(Продолжить заполнение?(Yes\No));

readln(Otv2);

end;

n:=numb;

{Закрытие файла}

close(File1);;

{end procedure Dobavit_ND}

Prosmotr_ND;

{Связывание файловой переменной с НД на диске}

assign(File1, Filename);

{Открытие файла для чтения}

reset(File1);

{Вывод имени текущего набора данных}

writeln(Ваш набор данных: , Filename);

numb:=1;

{Вывод шапки таблицы}

writeln(г=====T==================T========T================T======================¬);

writeln(¦ # ¦ Название ¦ Размер ¦ Ср.стоимость ¦ Тип ¦);

writeln(¦=====+==================+========+================+======================¦);

{Пока не закончится файл -- вывод элементов в таблицу}

while not eof(File1) do

begin

{чтение одной записи из файла}

Read(File1,TVzap);

{Выбор строки в зависимости от значения перечислимого типа}

case TVzap.tipTelevizor of

cvet:k:= Цветной;

gherno_bel:k:= Черно-белый;

perenosn:k:= Переносной;

end;

{Вывод содержимого записи}

write(¦, numb:5,¦);

write (TVzap.nazvanie:18,¦);

write (TVzap.razmer:8,¦);

write (TVzap.sr_stoimist:16:1,¦);

writeln (k,¦);

writeln(L=====¦==================¦========¦================¦======================-);

{Присвоениею текущему номер последнего показанного элемента}

numb:=numb+1;

n:=numb;

end;

{Закрытие файла}

close(file1);;

Poisk_Elem_ND;

{Связывание файловой переменной с НД на диске}

assign(File1, Filename);

{Открытие файла для чтения}

reset(File1);

{Запрос на ввод номера нужной записи}

writeln(Введите номер нужной записи);

readln(n);

{Поиск нужной записи}

seek(File1,n-1);

{Чтение записи из файла}

read(File1,TVzap);

{Присвоение переменной К значения в зависимости от значениея переменной перечислимого типа}

case TVzap.tipTelevizor of

cvet:k:= Цветной;

gherno_bel:k:= Черно-белый;

perenosn:k:= Переносной;

end;

{Вывод шапки таблицы}

writeln(г=====T==================T========T================T======================¬);

writeln(¦ # ¦ Название ¦ Размер ¦ Ср.стоимость ¦ Тип ¦);

writeln(¦=====+==================+========+================+======================¦);

{Вывод элемента}

write(¦, n:5,¦);

write (TVzap.nazvanie:18,¦);

write (TVzap.razmer:8,¦);

write (TVzap.sr_stoimist:16:1,¦);

writeln (k,¦);

{Вывод нижней границы таблицы}

writeln(L=====¦==================¦========¦================¦======================-);

{Закрытие файла}

close(file1);

{Присовение нужного номера текущему элементу}

N:=n+1;;

{end procedure Poisk_Elem_ND}

 

 

Vivod_Tek;

{Присвоение выводимому номеру номер текущего элемента}

numb:=n;

{Связывание файловой переменной с НД на диске}

assign(File1, Filename);

{Открытие файла для чтения}

reset(File1);

{Поиск нужной записи}

seek(File1,numb-1);

{Чтение записи из файла}

read(File1,TVzap);

{Присвоение переменной К значения в зависимости от значениея переменной перечислимого типа}

case TVzap.tipTelevizor of

cvet:k:= Цветной;

gherno_bel:k:= Черно-белый;

perenosn:k:= Переносной;

end;

{Вывод шапки таблицы}

writeln(г=====T==================T========T============