Запись и вывод данных в/из типизированного файла - Pascal ABC
Формулировка задачи:
Доброго времени суток!
Необходима помощь: нужно организовать ввод данных в типизированный файл (.dat ) с возможность вывода их ( данных ) в виде таблицы через оный.
Код:
Решение задачи: «Запись и вывод данных в/из типизированного файла»
textual
Листинг программы
type vuzi = record
nazv_v:string[20];
chislo_s:1..500;
kol_f:1..50;
kol_kaf:1..50;
end;
const n=5;
var f:file of vuzi;
v:vuzi;
i,k:byte;
a:string;
begin
assign(f,'cuzy.dat');
rewrite(f);
writeln('Введите данные о ',n,' ВУЗах');
for i:=1 to n do
begin
writeln('ВУЗ ',i);
with v do
begin
write('Задайте название: ');readln(nazv_v);
write('Задайте число студентов: ');readln(chislo_s);
write('Задайте кол-во факультетов: ');readln(kol_f);
write('Задайте кол-во кафедр: ');readln(kol_kaf);
write(f,v);
end;
end;
writeln('Содержание файла');
reset(f);
writeln('Название вуза',' Кол-во студентов',' Кол-во факультетов',' Кол-во кафедр');
writeln;
while not eof(f) do
begin
read(f,v);
with v do
writeln(nazv_v:4,' ',chislo_s:4,' ',kol_f:2,' ',kol_kaf:2);
end;
///
writeln('Поиск по названию вуза: задайте название:');readln(a);
k:=0;
reset(f);
while not eof(f) do
begin
read(f,v);
with v do
if(a=nazv_v) then
begin
k:=1;
writeln('***');
writeln('Название вуза: ', nazv_v);
writeln('Общее число студентов: ', chislo_s);
writeln('***');
end;
end;
close(f);
if k=0 then write('Такого ВУЗа нет')
end.
Объяснение кода листинга программы
- Создание типа данных
vuziс полямиnazv_v,chislo_s,kol_f,kol_kaf. - Объявление переменных: n, f, v, i, k, a.
- Открытие файла 'cuzy.dat' для записи.
- Вывод сообщения
Введите данные о ... ВУЗах. - Цикл for для ввода данных о каждом из n ВУЗов.
- Внутри цикла: чтение названия ВУЗа, числа студентов, числа факультетов и числа кафедр.
- Запись данных в файл.
- Вывод сообщения
Содержание файла. - Чтение данных из файла до конца файла.
- Цикл while для поиска данных по названию ВУЗа.
- Чтение данных из файла.
- Проверка совпадения названия ВУЗа с введенным пользователем.
- Если совпадение найдено, вывод данных о ВУЗе.
- Установка переменной k в 1, если совпадение найдено.
- Вывод сообщения
***. - Вывод названия ВУЗа и числа студентов.
- Вывод сообщения
***. - Закрытие файла.
- Проверка значения переменной k.
- Вывод сообщения
Такого ВУЗа нет.