25.09.2016, 01:51
|
#1 (permalink)
|
Member
Регистрация: 07.04.2016
Сообщений: 26
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
"Файлы", доработка программы с темой "Записи"
Есть программа по такому заданию:
Описать запись с именем PRICE, содержащую следующие
поля:
-название товара;
-название магазина, в котором продается товар;
-стоимость товара в руб.
Написать программу, выполняющую следующие действия:
-ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE;
-вывод таблицы на экран;
-записи разместить в алфавитном порядке по названиям магазинов;
-вывод отсортированной таблицы на экран;
-вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры;
-если такого магазина нет, выдать на дисплей соответствующее
сообщение.
Помогите пожалуйста основываясь на этой программе сдать следующее задание:
1. вызов запросов оформить в виде меню;
2. добавить пункты: сохранить таблицу в файле и прочитать
таблицу из файла. Типы файлов:
– типизированный файл из записей;
– типизированный файл из символов;
– текстовый файл;
3. запросы оформить в виде подпрограмм. Все объявления и
подпрограммы должны быть оформлены в виде модуля (модулей)
Код:
uses crt;
const n=8;
type price=record
tov,mgz:string[20];
stm:word;
end;
var z:array[1..n] of price;
x:price;
i,j,k:byte;
m:string[20];
begin
clrscr;
writeln('Введите данные о ',n,' товарах:');
for i:=1 to n do
with z[i] do
begin
writeln('Товар ',i);
write(' Название товара: ');readln(tov);
write(' Название магазина: ');readln(mgz);
write(' Стоимость: ');readln(stm);
end;
clrscr;
writeln('Исходный список товаров');
writeln('----------------------------------------------------------------');
writeln('| Название товара | Название магазина | Стоимость товара |');
writeln('----------------------------------------------------------------');
for i:=1 to n do
writeln('|',z[i].tov:20,'|',z[i].mgz:20,'|',z[i].stm:20,'|');
writeln('----------------------------------------------------------------');
for i:=1 to n-1 do
for j:=i+1 to n do
if z[i].mgz>z[j].mgz then
begin
x:=z[i];
z[i]:=z[j];
z[j]:=x;
end;
writeln('Список товаров по алфавиту названий магазинов');
writeln('----------------------------------------------------------------');
writeln('| Название товара | Название магазина | Стоимость товара |');
writeln('----------------------------------------------------------------');
for i:=1 to n do
writeln('|',z[i].tov:20,'|',z[i].mgz:20,'|',z[i].stm:20,'|');
writeln('----------------------------------------------------------------');
{если высота экрана 25 символов, нужно 3 следующих строки, если 40, не нужно}
write('Нажмите любую клавишу для продолжения');
readkey;
clrscr;
write('Введите название магазина для поиска:');
readln(m);
writeln('Список товаров продающихся в магазине ',m);
writeln('----------------------------------------------------------------');
writeln('| Название товара | Название магазина | Стоимость товара |');
writeln('----------------------------------------------------------------');
k:=0;
for i:=1 to n do
if z[i].mgz=m then
begin
k:=1;
writeln('|',z[i].tov:20,'|',z[i].mgz:20,'|',z[i].stm:20,'|');
end;
writeln('----------------------------------------------------------------');
if k=0 then writeln('Такого магазина нет!');
write('Нажмите любую клавишу для выхода');
readkey
end.
|
|
|