Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2012, 19:05   #1
dasha12
Новичок
Джуниор
 
Регистрация: 22.11.2012
Сообщений: 2
Восклицание доработать информационно-справочную систему

Помогите пожалуйста доработать программу.
Условие задачи: Разработать информационно-справочную систему коммерческих магазинов города. Предусмотреть поиск названия магазина и его адрес по названию товара. Результатом поиска является отсортированный в порядке возрастания стоимости искомого товара список магазинов. Данные располагать в динамической памяти компьютера в виде связанного списка.
НАДО добавить чтобы было 2 связанных списка: 1-магазин, адрес; 2-товар,цена.
например: Магазин1 Адрес1 товар1 цена1
товар2 цена2
Магазин2 Адрес2 ..... .............
Заранее Спасибо за помощь!!!
Вот моя написанная программа:
uses wincrt;
type TList=^TNode;
sv=record
mag,ntov,adre:string[150];
cena: longint;
end;
TNode=record info:sv; next:TList;
end;
var f: file of sv; List:TList;
a,b:sv;
i,kol,w,nb:integer;
Procedure ListInit (var L:TList);
begin
l:=nil;
end;
Procedure ListClear (var L:TList);
var e:TList;
begin
While l<>nil do begin
e:=l;
l:=l^.next;
dispose(e);
end; end;

Procedure AddLast (var L:TList; c:sv);
var q,p:Tlist;
begin
New(q);
q^.info:=c;
q^.next:=nil;
if l=nil then l:=q
else
begin
p:=l;
while p^.next<>nil do
p:=p^.next;
p^.next:=q;
end;
end;

Procedure Wwod(var L:TList);
begin
ListClear(list);
ListInit(list);
Writeln(' ');
Writeln('Кол-vo magazinov: ');
Readln(kol);
for i:=1 to kol do
begin
Writeln(' magazin',i);
with a do
begin
writeln('Название mag ');
readln(mag);
writeln('adres ');
readln(adre);
writeln('naz tovara - ');
readln(ntov);
writeln('Цена - ');
readln(cena);

end;
addlast(l,a);
end;
Writeln;
end;

Procedure ListPrint (L:TList);
begin
writeln(' naz mag adres naz tovara Цена ');
While l<>nil do
begin
with l^.info do
begin
writeln (mag:5,' ',adre:10,' ',ntov:5,' ',cena:5);
end;
l:=l^.next;
end;
Writeln;
Writeln('Нажмите Enter для продолжения');
readln;
clrscr;
end;

Procedure SaveIt(L:TList);
begin
assign(f,'kati.dat');
rewrite(f);
While l<>nil do
begin
write(f,l^.info);
l:=l^.next;
end;
close(f);
end;

procedure Moder(var L:TList);
var p:tlist;
begin
i:=0;
writeln('номер magazine - ');
readln(nb);
p:=l;
while p<>nil do
begin
inc(i);
if i=nb then
begin
with a do begin
writeln('Название mag ');
readln(mag);
writeln('adres ');
readln(adre);
writeln('naz tovara - ');
readln(ntov);
writeln('Цена - ');
readln(cena);
end;
p^.info:=a;
end;
p:=p^.next;
end;
Writeln;
Writeln('Модернизация записи завершена (нажмите Enter для продолжения )');
Writeln;
Readln;
SaveIt(list);
end;

Procedure Dob(var L:TList);
begin
Writeln;
writeln('Введите данные об magazine:');
with a do begin
writeln('Название mag ');
readln(mag);
writeln('adres ');
readln(adre);
writeln('naz tovara - ');
readln(ntov);
writeln('Цена - ');
readln(cena);
end;
AddLast(l,a);
Writeln;
Writeln('Нажмите Enter для продолжения');
Writeln;
Readln;
SaveIt(list);
end;
Procedure Sort(var q:TList);
var p,n:TList;c:sv;
begin
p:=q;
while p<>nil do
begin
n:=p;
while n<>nil do
begin
if p^.info.cena>=n^.info.cena then
begin
c:=p^.info;
p^.info:=n^.info;
n^.info:=c;
end;
n:=n^.next;
end;
p:=p^.next;
end;
clrscr;
ListPrint(q);
end;
........
dasha12 вне форума Ответить с цитированием
Старый 22.11.2012, 19:06   #2
dasha12
Новичок
Джуниор
 
Регистрация: 22.11.2012
Сообщений: 2
По умолчанию

Procedure Sort2(var L:TList);
var p,n:TList;
krit:integer;
c:sv;
it:string;
begin
p:=nil;
n:=l;
writeln('naz tovara dli poiska'); readln(it);
while n<>nil do
begin
if n^.info.ntov=it then begin c:=n^.info; addlast(p,c);end;
n:=n^.next;
end;
sort(p);
end;
begin
w:=0;
ListInit(list);
i:=0;
assign(f,'kati.dat');
reset(f);
While not eof(f) do
begin
inc(i);
read(f,a);
AddLast(list,a);
end;
close(f);
while w<>7 do begin
writeln(' меню программы:');
writeln('1-Создание базы данных');
writeln('2-Полный список mag');
writeln('3-Модернизация информации oб mag');
{writeln('4-poisk po nazvan'); }
writeln('5-Добавление mag');
writeln('6-poisk tovarov po nazvaniu');
writeln('7-Выход из программы');
write(' Ваш выбор- ');
readln(w); clrscr;
case w of
1:Wwod(list);
2:ListPrint(list);
3:Moder(list);
{4:Sort(list);}
5:Dob(list);
6:Sort2(list);
end;
clrscr;
end;
SaveIt(list);
ListClear(List);
clrscr;
writeln('Программа завершена!');
end.
dasha12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
информационно-поисковая система Эдуард на связи Помощь студентам 0 21.02.2012 16:57
Построить информационно-логическую модель Мария =) Помощь студентам 6 31.01.2011 18:00
Разработать информационно-справочную систему budgie Помощь студентам 5 22.05.2010 09:16
Информационно-справочная система budgie Фриланс 2 21.05.2010 21:31
Информационно-справочная система аэропорта Namolem Фриланс 6 21.01.2010 00:34