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