![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 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; ........ |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 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. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
информационно-поисковая система | Эдуард на связи | Помощь студентам | 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 |