Показать сообщение отдельно
Старый 25.09.2016, 01:51   #1 (permalink)
gaben134
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.
gaben134 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070