Здравствуйте!!! Прошу вашей помощи по теме графика! помогите, очень вас прошу, немного украсить меню программы..очень очень нужно))))!!!! плиззззз!! нужно, чтобы красиво появлялись пункты меню....и заглавие вылетало.....очень прошу..программу написать написала, а как с графикой быть не знаю((((
program biblioteka; uses crt; const n=100; label menu; type knigi=record janr:string[12]; avtor:string[20]; nazvanie:string[30]; izdatelstvo:string[15]; god_izdaniya:word; end; var zap:knigi; z1,z:array[1..n] of knigi; jan:string[12]; av:string[20]; m,l,l1:integer; s:real; procedure vvod(var a:array of knigi; var l:integer); var i:integer; ff:file of knigi; begin Assign(ff,'C:\tp7\bin\knigi.dat'); reset(ff); i:=1; while not eof (ff) do begin read(ff,a[i]); i:=i+1; end; l:=i-1; close(ff); end; procedure vvod_KL(var a:knigi); var ff:file of knigi; begin writeln('введите жанр'); readln(a.janr); writeln('введите автора*'); readln(a.avtor); writeln('введите название'); readln(a.Nazvanie); writeln('введите издательство'); readln(a.izdatelstvo); writeln('введите год издания'); readln(a.god_izdaniya);
Assign(ff, 'C:\tp7\bin\knigi.dat'); Rewrite(ff); write(ff,a); close(ff); end; procedure Vivod(var zap:knigi); var k:knigi; f:file of knigi; i:integer; begin vvod(z,l); l:=l+1; z[l]:=zap; Assign(f, 'C:\tp7\bin\knigi.dat'); rewrite(f); for i:=1 to l do write(f,z[i]); Close(f); end;
procedure Vvod_fl(var zap:knigi); var name:string; k:knigi; f:text; ff:file of knigi; i:integer; begin gotoxy(15,23); write('введите имя файла: '); readln(name); writeln; Assign(f,name ); Vvod(z,l); Assign(ff,'C:\tp7\bin\knigi.dat'); Rewrite(ff); Reset(f); for i:=1 to l do write(ff,z[i]); while not Eof(f) do begin Read(f,zap.janr); write(zap.janr); Read(f,zap.avtor); write(zap.avtor); Read(f,zap.nazvanie); write(zap.nazvanie); Read(f,zap.izdatelstvo); write(zap.izdatelstvo); Readln(f,zap.god_izdaniya); write(zap.god_izdaniya); writeln; write(ff,zap); end; Close(f); Close(ff); end;
procedure vivod_sp(var a:array of knigi; k:integer); var i:integer; begin for i:=1 to k do begin write(a[i].janr); write('*',a[i].avtor); write(a[i].nazvanie); write(a[i].izdatelstvo,' '); write(a[i].god_izdaniya); writeln; end; end;
procedure janr; var j,i:integer; m:string[12]; begin write('какой жанр вы желаете увидеть? '); readln(m); vvod(z,l); for j:=1 to l do for i:=1 to l-j do begin if z[i].avtor>z[i+1].avtor then begin zap:=z[i]; z[i]:=z[i+1]; z[i+1]:=zap; end; end; l1:=0; for i:=1 to l do if z[i].janr=m then begin l1:=l1+1; z1[l1]:=z[i]; end;
j:=0; av:=z1[1].avtor; for i:=1 to l1 do begin if z1[i].avtor=av then begin j:=j+1; end else begin writeln(' Количество книг = ',j); j:=1; av:=z1[i].avtor; end; {write(z[i].janr); } write(j,'. '); write(z1[i].avtor); write(z1[i].nazvanie); write(z1[i].izdatelstvo,' '); write(z1[i].god_izdaniya); writeln; end; writeln(' Количество книг = ',j); end;
pocedure avtor; var i:integer; s,ss:string[20]; begin write('Какого автора вы желаете увидеть? '); readln(s); vvod(z,l); for i:=1 to l do begin ss:=z[i].avtor; if s=ss then begin write(z[i].janr); write(z[i].avtor); write(z[i].nazvanie); write(z[i].izdatelstvo,' '); write(z[i].god_izdaniya); writeln; end; end;end;
procedure nazvanie; var i:integer; m:string[30]; begin write('Какое название книги желаете увидеть? '); readln(m); vvod(z,l); for i:=1 to l do begin if z[i].nazvanie=m then begin write(z[i].janr); write(z[i].avtor); write(z[i].nazvanie); write(z[i].izdatelstvo,' '); write(z[i].god_izdaniya); writeln; end; end;end;
procedure izdatelstvo; var i:integer; m:string[15]; begin write('Какое издательство хотите увидеть? '); read(m); vvod(z,l); for i:=1 to l do begin if z[i].izdatelstvo=m then; begin write(z[i].janr); write(z[i].avtor); write(z[i].nazvanie); write(z[i].izdatelstvo,' '); write(z[i].god_izdaniya); writeln; end; end;end;
procedure god_izdaniya; var i:integer; m:word; begin write('Какой год издания желаете увидеть'); read(m); vvod(z,l); for i:=1 to l do begin if z[i].god_izdaniya=m then begin write(z[i].janr); write(z[i].avtor); write(z[i].nazvanie); write(z[i].izdatelstvo,' '); write(z[i].god_izdaniya); writeln; end; end;end;
begin menu: clrscr; gotoxy(25,1); writeln('Библиотека*'); gotoxy(15,3); write('1.выборка по жанру'); gotoxy(15,5); write('2.выборка по автору'); gotoxy(15,7); write('3.выборка по издательству'); gotoxy(15,9); write('4.ввод с клавиатуры'); gotoxy(15,11); write('5.ввод из файла'); gotoxy(15,13); write('6.вывод всего списка записей'); gotoxy(15,15); write('7.удаление записей'); gotoxy(15,17); write('8.выход'); gotoxy(15,21); readln(m);
case m of 1:janr; 2:avtor; 3:izdatelstvo; 4:Vvod_KL(zap); 5:Vvod_fl(zap); 6: begin vvod(z,l); Vivod_sp(z,l); end; 7:writeln('удаление записей'); 8:halt; end; write('для выхода нажмите <Enter>'); readln; goto menu; end.
Автор: Lapp 8.12.2009 0:44
Цитата(nastena @ 7.12.2009 20:11)
программу написать написала, а как с графикой быть не знаю((((
Да уж, написала.. Ты вообще что-нибудь про отступы слышала? Теперь ее всю форматировать, чтобы посмотреть? Кроме прочего, она не компилируется..
Ты имеешь в виду, что тебе нужно переделать меню с текстового на графику?
Автор: nastena 8.12.2009 8:48
программа рабочая!!!!!!!!!! и компил-ся!!!!!!! я говорю, что нужно добавить немного графики в меню и все!
Автор: Lapp 8.12.2009 10:11
Цитата(nastena @ 8.12.2009 4:48)
программа рабочая!!!!!!!!!! и компил-ся!!!!!!!
Ты чего кричишь? Если хочется поупражнять голосовые связки - иди на хоровой форум. Жду извинений.. Вот, посмотри: я не знаю, где ты потеряла букву "r", только в том состоянии, как ты ее выложила, программа не компилируется.
Цитата
я говорю, что нужно добавить немного графики в меню и все!
Что в твоем понимании означает "добавить немного графики"? Ответь нормально на вопрос, который я уже задавал: тебе нужно перевести меню в графический режим или просто украсить? Сделать полосочку, стрелками управлять, а не циферками - так, да? Или все-таки в граф.режиме надо делать?
Ответь только без крика, ладно?
Автор: nastena 8.12.2009 19:32
сожалею, если накричала на вас, но это было не так! а насчет графики нужно, как вы сказали, сделать полосочку, стрелками управлять, а не циферками. я делала фон сегодня , но почему то весь экран становился серым((( помогите плиз)
Автор: Lapp 8.12.2009 22:59
Цитата(nastena @ 8.12.2009 15:32)
сожалею, если накричала на вас, но это было не так!
что значит "не так"? При разговоре свой способ выражения крика, при письме - свой. Выломай клавишу с восклицательным знаком у себя на клаве, иначе она тебе еще не раз навредит..
Цитата
а насчет графики нужно, как вы сказали, сделать полосочку, стрелками управлять, а не циферками. я делала фон сегодня , но почему то весь экран становился серым((( помогите плиз)
То есть все-таки речь идет не о графическом меню, а о текстовом (извини, но название вводит в заблуждение). Текстовых меню тут делалось великое множество, но я что-то сейчас не смог ничего путного найти. Если будешь искать - не используй ничего типа "граф", иначе получишь не то.
Вообще-то, для таких вещей есть Turbo Vision. Но если хочешь, могу помочь сделать..
Покажи, как ты делала фон. И вообще, если что-то спрашиваешь - спрашивай конкретно. Никто не сможет угадать, чего ты там написала. А в программировании все зависит от одного бита..
Автор: volvo 8.12.2009 23:34
Цитата
сделать полосочку, стрелками управлять, а не циферками
http://volvo71.narod.ru/menus.htm#menu_text_mode я выкладывал реализацию меню, если тебя интересует... Как графический, так и текстовый вариант. Приведенное на сайте меню отображается по выбору пользователя: горизонтально или вертикально. Комментарии присутствуют. Разобраться (при желании) несложно. Без желания, разумеется, разобраться не получится никогда.
Автор: nastena 9.12.2009 19:50
вот, что я сделала.....(Показать/Скрыть)
program biblioteka; uses crt, Graph; const n=100; label menu; type knigi=record janr:string[12]; avtor:string[20]; nazvanie:string[30]; izdatelstvo:string[15]; god_izdaniya:word; end; var gd,gm:integer; zap:knigi; z1,z:array[1..n] of knigi; jan:string[12]; av:string[20]; god:word; m,l,l1:integer; s:real;
procedure vvod(var a:array of knigi; var l:integer); var i:integer; ff:file of knigi; begin Assign(ff,'C:\tp7\bin\knigi.dat'); reset(ff); i:=1; while not eof (ff) do begin read(ff,a[i]); i:=i+1; end; l:=i-1; close(ff); end;
procedure vvod_KL(var a:knigi); var ff:file of knigi; begin writeln('‚ўҐ¤ЁвҐ ¦ а'); readln(a.janr); writeln('‚ўҐ¤ЁвҐ ўв®а '); readln(a.avtor); writeln('‚ўҐ¤ЁвҐ §ў ЁҐ'); readln(a.Nazvanie); writeln('‚ўҐ¤ЁвҐ ?§¤ ⥫мбвў®'); readln(a.izdatelstvo); writeln('‚ўҐ¤ЁвҐ Ј®¤ Ё§¤ Ёп'); readln(a.god_izdaniya);
procedure Vivod(var zap:knigi); var k:knigi; f:file of knigi; i:integer; begin vvod(z,l); l:=l+1; z[l]:=zap; Assign(f, 'C:\tp7\bin\knigi.dat'); rewrite(f); for i:=1 to l do write(f,z[i]); Close(f); end;
procedure vivod_sp(var a:array of knigi; k:integer); var i:integer; begin for i:=1 to k do begin write(a[i].janr); write('*',a[i].avtor); write(a[i].nazvanie); write(a[i].izdatelstvo,' '); write(a[i].god_izdaniya); writeln;
begin zap:=z[i]; z[i]:=z[i+1]; z[i+1]:=zap; end; end;
l1:=0; for i:=1 to l do if z[i].janr=m then begin l1:=l1+1; z1[l1]:=z[i]; end;
j:=0; av:=z1[1].avtor; for i:=1 to l1 do begin if z1[i].avtor=av then begin j:=j+1; end else begin writeln(' Љ®«ЁзҐбвў® ЄЁЈ = ',j); j:=1; av:=z1[i].avtor; end;
procedure avtor; var i,j:integer; m:string[20]; begin write('Љ Є®Ј® ўв®а ўл ¦Ґ« ҐвҐ гўЁ¤Ґвм? '); readln(m); vvod(z,l); for j:=1 to l do for i:=1 to l-j do begin if z[i].janr>z[i+1].janr then
begin zap:=z[i]; z[i]:=z[i+1]; z[i+1]:=zap; end; end;
l1:=0; for i:=1 to l do if z[i].avtor=m then begin l1:=l1+1; z1[l1]:=z[i]; end; writeln(l1,'***'); j:=0; jan:=z1[1].janr; for i:=1 to l1 do begin if z1[i].janr=jan then begin j:=j+1; end else begin writeln(' Љ®«ЁзҐбвў® ЄЁЈ = ',j); j:=1; jan:=z1[i].janr; end;
procedure nazvanie; var i:integer; m:string[30]; begin write('Љ Є®Ґ §ў ЁҐ ЄЁЈЁ ўл ¦Ґ« ҐвҐ гўЁ¤Ґвм? '); readln(m); vvod(z,l); for i:=1 to l do begin if z[i].nazvanie=m then begin write(z[i].janr); write(z[i].avtor); write(z[i].nazvanie); write(z[i].izdatelstvo,' '); write(z[i].god_izdaniya); writeln; end; end;end;
procedure izdatelstvo; var i,j:integer; m:string[15]; begin write('Љ Є®Ґ Ё§¤ ⥫мбвў® ўл ¦Ґ« ҐвҐ гўЁ¤Ґвм? '); readln(m); vvod(z,l); for j:=1 to l do for i:=1 to l-j do begin if z[i].avtor>z[i+1].avtor then
begin zap:=z[i]; z[i]:=z[i+1]; z[i+1]:=zap; end; end;
l1:=0; for i:=1 to l do if z[i].izdatelstvo=m then begin l1:=l1+1; z1[l1]:=z[i]; end; writeln(l1,'***'); j:=0; av:=z1[1].avtor; for i:=1 to l1 do begin if z1[i].avtor=av then begin j:=j+1; end else begin writeln(' Љ®«ЁзҐбвў® ЄЁЈ = ',j); j:=1; av:=z1[i].avtor; end;
procedure god_izdaniya; var i:integer; m:word; begin write('‚ўҐ¤ЁвҐ Ј®¤ Ё§¤ Ёп:'); read(m); vvod(z,l); for i:=1 to l do begin if z[i].god_izdaniya=m then begin write(z[i].janr); write(z[i].avtor); write(z[i].nazvanie); write(z[i].izdatelstvo,' '); write(z[i].god_izdaniya); writeln; end; end;end;
procedure Udalenie; var i:integer; f:text; ff:file of knigi;
outtextxy(180,40,'1. Viborka po janru'); outtextxy(180,60,'2. Viborka po avtoru'); outtextxy(180,80, '3. Viborka po izdatelstvu'); outtextxy(180,100,'4. Vvod dannix s klaviaturi'); outtextxy(180,120,'5. Vvod dannix iz textovogo faila'); outtextxy(180,140,'6. Vivod vsego spiska zapisei'); outtextxy(180,160,'7. Udalenie zapisei'); outtextxy(180,180,'8. Vixod'); outtextxy(150,230,'Vvedite nomer pynkta i najmite <Enter>: '); readln(m);
case m of 1:janr; {¬Ґо ўлЎ®аЄЁ Ї® ¦ аг} 2:avtor; {¬Ґо ўлЎ®аЄЁ Ї® ўв®аг} 3:izdatelstvo; {¬Ґо ўлЎ®аЄЁ Ї® Ё§¤ ⥫мбвўг} 4:Vvod_KL(zap); 5:Vvod_fl(zap); 6: begin vvod(z,l); Vivod_sp(z,l); {ўлў®¤ ўбҐЈ® бЇЁбЄ } end; 7:Udalenie; 8:halt; end; write('„«п ўл室 ў ¬Ґо ¦¬ЁвҐ <Enter>'); readln; goto menu; closegraph; end.
вот только для того, чтобы у меня работали мои процедуры, я их должна послностью переделать в граф режим????...помогите плиз с оформлением меню
М
просьба не вставлять в мессадж большие коды повторно. Lapp
Автор: Lapp 10.12.2009 0:11
Цитата(nastena @ 9.12.2009 15:50)
вот, что я сделала..... ... вот только для того, чтобы у меня работали мои процедуры, я их должна послностью переделать в граф режим????...помогите плиз с оформлением меню
Супер. Вывела несколько строчек в графике - вот, что ты сделала. Теперь о том, чего ты НЕ сделала. 1. Ты не послушала моих слов о том, что графика тебе НЕ НУЖНА. Тебе что, слово что ли нравится, что так к ней пристала? 2. Ты совершенно не вняла совету volvo.
А теперь, что небе НУЖНО сделать: 1. перестать говорить о себе, начать слушать; 2. не выкладывать заново гигантские программы, если изменила несколько строчек (смотреть жутко неудобно); 3. когда выкладываешь код, нужно заботиться о правильной кодировке; 4. меню нужно делать ОТДЕЛЬНО.
Отложи в сторону свою замечательную программу. Если ты хочешь меню - оно ДОЛЖНО быть отдельной процедурой. Напиши отдельную программу для создания/тестирования/отладки меню, и только, когда она БУДЕТ ГОТОВА - подключай процедуру к своей программе. Меню можешь либо взять по ссылке volvo, либо сделать сама с помощью Форума.
И еще раз, главное: научись разговаривать, а не говорить свое только. В разговоре по крайней мере половина - это слушать.