Написать программу, в которой описывается массив записей, хранящий следующую информацию: Название товара, цена. Программа должна выполнять следующие действия: Ввод данных, изменение цены заданного товара, сохранение информации в текстовый файл, загрузку информации из текстового файла Не актуально! Вот код программы, может кому пригодится  Код | program lab8; const r=20; var f:file; type TDUB= record {данные о товаре} h: string; {название товара} c: integer; {цена} end; TBASE= record dub: TDUB; end; var baza: array [1..r] of TBASE; n:byte; {реальное количество мест в базе} ch:char; {выборщик варианта ответа} procedure EnterTovar; var i: integer; begin writeln; writeln; n:=0; write('Название товара: '); readln(baza[n+1].dub.h); while baza[n+1].dub.h<>'' do begin n:=n+1; write('цена: '); readln(baza[n].dub.c); writeln('Вы ввели: '); writeln(baza[n].dub.h,' ',baza[n].dub.c); writeln('Введите следующее название товара или нажмите [Enter] для завершения вноса данных'); readln(baza[n+1].dub.h); end; end; procedure PrintData; var i,j,imax,max: integer; begin writeln('Текущий список товаров: '); i:=1; imax:=10; repeat if imax>n then max:=n else max:=imax; while i<=max do begin write(i,' ',baza[i].dub.h,' ',baza[i].dub.c); writeln; i:=i+1; if max<n then begin writeln; writeln('Нажмите любую клавишу для продолжения списка...'); readln(ch); imax:= i+10; writeln('Текущий список товаров (продолжение): '); end; end; until i>n; repeat writeln('Вы хотите изменить цену (y/n) ?'); readln(ch); until (ch='N') or (ch='n'); writeln('Введите номер товара в списке: '); readln(i); writeln('На какую цену Вы хотите его изменить?'); readln(baza[i].dub.c); end; procedure Sozdanie; var kolvo:integer; begin writeln('Введите название файла: '); readln(name); assign(f,name); rewrite(f); writeln('Создание файла',name); writeln('Введите количество записей: '); read(kolvo); for ind:=1 to kolvo do writeln('Создание файла завершено'); writeln('Файл имеет',kolvo,'записей'); close(f); end; procedure OpenFile; begin writeln('Вывод файла',name); reset(f); end; procedure mainmenu; begin randomize; writeln('Выберите следующие действия:'); writeln('1 - ввод данных'); writeln('2 - вывод данных и изменение цены'); writeln('3 - сохранение данных в текстовый файл'); writeln('4 - вывод сохраненных данных из файла'); readln(ch); if ch='1' then EnterTovar; if ch='2' then PrintData; if ch='3' then Sozdanie; if ch='4' then OpenFile; end; begin repeat mainmenu; writeln('Вы действительно хотите завершить программу? (y/n) ?'); readln(ch); until (ch='Y') or (ch='y'); end.
|
Это сообщение отредактировал(а) koshkarjov - 28.9.2010, 19:10
|