IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на файл, некоторые проблемы
сообщение
Сообщение #1


только вперед...
*

Группа: Пользователи
Сообщений: 20
Пол: Женский

Репутация: -  1  +


Помогите разобраться,плиз...

Задача состоит в следущем:
создать многоуровневую диалоговую программу, с помощью которой создается основной файл и 2 файла справочника. Для основного файла надо предусмотреть создание нового, открытие существующего, печать, также его редактирование(добавление, удаление записей) и сортировку входных данных по первому компоненту.

В общем проблема возникла с основным файлом,т.к. отсортировать или отредактировать у меня его не получилось...никак...

вот основная прога, которая выводит основное меню и запускает модуль

Program menu1;
Uses modmenu111;

var
choice,count,code:integer;
flag:boolean;
answer:char;
choice1:string;

begin
writeln(' Laboratornaya rabota 2 ');
writeln(' Variant 4 ');

writeln;
flag:=true;
while flag=true do
begin
writeln('..................MENU...................');
writeln('..1. Vedenie osnovnogo faila ..');
writeln('..2. Vedenie spravo4nikov ..');
writeln('..3. Formirovanie vedomostei ..');
writeln('..4. Vihod ..');
writeln('..........................................');
writeln;
writeln('vash vibor:');

count:=0;
repeat
readln(choice1);
val(choice1,choice,code);
if (code<>0)then
writeln ('vvedeno ne 4islo');
count:=count+1;
if count>3 then
begin
writeln ('4islo popitok is4erpano');
halt;
end
until code=0;
Case choice of
1:begin
podmenu1;;
end;
2:begin
podmenu2;
end;
3:begin
podmenu3;
end;
4:begin
writeln('Vi deistvitelno hotite viyti iz programmi? <y\n>');
readln(answer);
if answer='y' then
flag:=false;
end
else writeln('Oshibka!!!Vibran nevirnyi punkt menu:',choice);
end;
end;
end.


.

вот сам модуль(выкладываю только процедуры на основной файл)

unit modmenu1;
{модуль всех процедур для пунктов главного меню и всех подменю}
interface
type tosnfile=record {основной файл}
cod_stock:integer;
cod_ceh:integer;
nom_num:integer;
data:string;
kol_vo:integer
end;
procedure podmenu1;
procedure vvodfile;
procedure printfile;
procedure drawtabfile;
procedure drawlegs;
procedure sort(var f:atosnfile;n:byte);
implementation
--------------------------------{подменю для первого пункта меню}-----------------------------------------------
procedure podmenu1;
var
choice,count,code:integer;
flag:boolean;
answer:char;
choice1:string;
begin
flag:=true;
while(flag=true) do
begin
writeln('.1.Vedenie osnovnogo faila............');
writeln('......................................');
writeln('.1.1 Sozdanie novogo faila .');
writeln('.1.2 Korrektirovka osnovnogo faila .');
writeln('.1.3 Prosmotr osnovnogo faila .');
writeln('.1.4 Pe4at osnovnogo faila .');
writeln('.1.5 Vozvrat v glavnoe menu .');
writeln('......................................');
writeln;
writeln('vash vibor:');
count:=0;
repeat
readln(choice1);
val(choice1,choice,code);
if (code<>0)then
writeln ('vvedeno ne 4islo');
count:=count+1;
if count>3 then
begin
writeln ('4islo popitok is4erpano');
halt;
end
until code=0;
case choice of
1:begin
vvodfile;
end;
2:begin
end;
3:begin
printfile;
end;
4:begin
printfile;
end;
5:begin
flag:=false;
end
else writeln('Oshibka!!!Vibran neverniy punkt menu:',choice);
end;
end;
end;

------------------- {процедура создания нового основного файла}-------------------------------
procedure vvodfile;
var
osnfile:file of atosnfile;
zap:atosnfile;
namefile:string;
flajok:boolean;
answer:char;
i,n:byte;
begin
writeln('vvedite imya osnovhogo faila(s rasshireniem .txt):');
readln(namefile);
assign(osnfile,namefile);
rewrite(osnfile);
flajok:=true;
writeln('Vvedite kol-vo zapisey, kotorie sobiraetes vvodit:');
readln(n);
for i:=1 to n do
with zap[i] do
begin
writeln('ZaPiS N ',i);
writeln('>Vvedite kod sklada:');
readln(cod_stock);
writeln('>vvedite kod ceha-izgotovitelya:');
readln(cod_ceh);
writeln('>vvedite nomen. nomer izdeliya:');
readln(nom_num);
writeln('>data postupleniya /ddmmyy/ :');
readln(data);
writeln('>vvedite kol-vo izdelii:');
readln(kol_vo);
write(osnfile,zap);
writeln('vvod dannih zavershen? <y/n>: ');
readln(answer);
if answer='y' then
Break;
end;
close(osnfile);
assign(osnfile,namefile);
reset(osnfile);
sort(zap,n);
write(osnfile,zap);
close(osnfile);
end;
---------------------------{процедура распечатки(вывода на экран) основного файла}---------------------------------
procedure printfile;
var
namefile:string;
osnfile:file of tosnfile;
zap:tosnfile;
begin
writeln ('Vvedite imiya faila dlya pe4ati');
readln (namefile);
assign(osnfile,namefile);

reset(osnfile);
writeln('Pe4at faila: ',namefile);
drawtabfile;
repeat
read(osnfile,zap);
writeln('*',zap.cod_stock:12,'*',zap.cod_ceh:10,'*', zap.nom_num:10,'*',zap.data:8,'*',zap.kol_vo:8,'*');
drawlegs;
until (EOF(osnfile));
close(osnfile);
writeln;
end;
--------------------------{процедура рисует подобие таблицы}------------------------------------------------
procedure drawtabfile;
begin
writeln('******************************************************');
writeln('* KOD * KOD CEHA * NOMEN. * DATA * KOL-VO *');
writeln('* SKLADA * IZGOTOV. * NOMER * * IZDELIY*');
writeln('******************************************************');
end;
-------------------------------{процедура рисует линии-ограничители}-----------------------------------------------
procedure drawlegs;
begin
writeln('******************************************************');
end;
-------------------------------{процедура сортировки по коду склада}----------------------------------------------
вот в ней то и проблема
procedure sort(var f:atosnfile;n:byte);
var
i:byte;
zap:tosnfile;
flag:boolean;
begin
repeat
flag:=true;
for i:=1 to n-1 do
if not (f[i].cod_stock >= f[i+1].cod_stock) then
begin
zap:=f[i];
f[i]:=f[i+1];
f[i+1]:=zap;
flag:=false;
end;
until flag;
end;
end.

.

все на что меня хватило.Дальше - мозговой затык.... wacko.gif
Отредактировать файл уже нет мыслей никаких....
Подскажите, пожалуйста....уже замучалась....



Сообщение отредактировано: what is -


--------------------
Завтра будет. Лучше???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.04.2024 14:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name