Практическая обработка множества данных, представляющих собой массив указателей на записи
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
/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============