Составить программу с горизонтальным типом меню

Автор: Пользователь скрыл имя, 17 Сентября 2011 в 18:24, контрольная работа

Описание работы

Составить программу с горизонтальным типом меню, которая включает в себя: динамические переменные, ввод и вывод горизонтальной таблицы, добавление данных, сортировка данных, удаление данных и сохранение в файл.

Работа содержит 1 файл

Курсовая программа.doc

— 227.50 Кб (Скачать)

  Задание.

Составить программу  с горизонтальным типом меню которая  включает в себя: динамические переменные, ввод и вывод горизонтальной таблицы, добавление данных, сортировка данных, удаление данных и сохранение в файл. 

1).

Program Menu;  {название программы}

Uses CRT; {объявление модуля для работы с экраном}

Type {новый тип}

Divid=record {служебное слво}

Naimen:string; {переменная}

Zakcena,Nadbav:real; {переменная}

Otpcena:real; {переменная}

end; {конец}

Var {оператор переменных}

F:file of divid; 

mas:array [1..100] of divid; {массив}

i,x,stroka,stolb,size,kont1,kont2,temp,temp1,temp2,kont,ko1,punkt:integer; {переменные}

tovar:divid; 

Procedure vvod; {процедура ввод}

Label met,met1,metk,metk1,metk2,metk3,metk4,metk5,metk8; {метка}

Begin {начало}

{$i-}

Rewrite(f); 

if ioresult<>0 then Begin {условие, начало}

textbackground(12); {установка цвета фона}

gotoxy(16,23); {перемещение указателя}

Writeln('Oshibka pri otkritie faila dla zapisi'); {выводится на экран}

Readln; {задержка}

textbackground(25); {установка цвета фона}

goto met1; {объявления метки}

end; {конец}

if kont2=0 then begin {условие}

size:=0; {присвоение}

clrscr; {очистка экрана}

Writeln('_____________________________________Vvod___________________________________');

Writeln('"*"-vihod');

Writeln('');

Writeln('*__________________*_________________*____________________*________________*');

Writeln('* Naimenovanie     *     Zakup cena  *       Nadbavka     * Otpucknaa cena *');

Writeln('*------------------*-----------------*--------------------*----------------*');

gotoxy(1,7); {перемещение указателя}

end; {конец}

While true do begin {цикл, начало}

size:=size+1; {присвоение}

Writeln('*                  *                 *                    *                *'); {вывод на экран}

Writeln('*------------------*-----------------*--------------------*----------------*');

Gotoxy(2,size+6); Writeln(size,'.'); {перемещение курсора}

gotoxy(25,3); {перемещение курсора}

metk5:gotoxy(5,size+6);  {метка, перемещение курсора}

gotoxy(5,size+6);  {перемещение курсора}

readln(mas[size].naimen); {ввод с клавиатуры}

if ioresult<>0 then begin  {условие}

gotoxy(25,3); textbackground(12); {перемещение курсора}

write('Oshibka vvoda,budte vnimatelnee');  {вывод на экран}

textbackground(25);goto metk5; {смена цвета фона, метка}

end; {конец}

if mas[size].naimen='*' then goto met; {условие}

if length (mas[size].naimen)>15 then begin {условие начало}

gotoxy(25,3); {}

textbackground(12); write('macsimalnai dlina slova-15 sim'); {смена цвета фона, вывод на экран}

textbackground(25); {смена цвета фона}

goto metk5; {метка}

end;gotoxy(25,3); {конец, перемещение указателя}

metk2:gotoxy(52,size+6) {метка, перемещение указателя};

gotoxy(25,size+6); {перемещение указателя}

readln(mas[size].zakcena); {ввод с клавиатуры}

if (ioresult<>0) or (mas[size].zakcena<1) or (mas[size].zakcena>500000) then  begin {условие, начало}

gotoxy(25,3); textbackground(12); write('Oshibca vvoda,budte vnimatelnee');  {смена цвета фона}

textbackground(25); {смена цвета фон}

goto metk2; {метка}

end; {конец}

gotoxy(25,3); {перемещение указателя}

metk3:gotoxy(52,size+6); {метка, перемещение указателя}

gotoxy(40,size+6); {перемещение указателя}

readln(mas[size].nadbav); {ввод с клавиатуры}

if (ioresult<>0) or (mas[size].nadbav<1) then begin  {условие, начало}

gotoxy(25,3); textbackground(12); write('Oshibca vvoda,budte vnimatelnee'); {перемещение указателя}

textbackground(25); {смена цвета фона}

goto metk3; {метка}

end; {конец}

gotoxy(25,3); {перемещение указателя}

mas[size].otpcena:=(mas[size].zakcena*mas[size].nadbav)/100+mas[size].zakcena; {формула}

textbackground(12); gotoxy(64,size+6); {смена цвета фона, перемещение указателя}

writeln(mas[size].otpcena:4:2,'rub'); {вывод расчета}

textbackground(25); {смена цвета фона}

end; {конец}

met: {метка}

size:=size-1; {присвоение}

for i:=1 to size do write(f,mas[i]); {цикл}

met1:kont2:=0; {метка}

{$I+} 

end; {конец}

Procedure vivod; {процедура}

label met1,metka; {метка}

begin {начало}

{$i-}

reset(f);

if ioresult<>0 then begin  {условие}

textbackground(12); {смена цвета фона}

gotoxy(16,23); Write('Oshibka pri otkritie faila dla zapisi'); {вывод на экран}

Readln; {задержка}

temp1:=1; {присвоение}

textbackground(25); {смена цвета фона}

goto met1; {метка}

end; {конец}

{$i+}

clrscr; {очистка экрана}

size:=0; {присвоение}

case kont of

0:

Writeln('_"*"-vihod____________________Dobavlenie____________________________________');

1:

Writeln('________________________________Vivod_______________________________________');

2:

Writeln('_____________________________Sortirovka_____________________________________');

3:

Writeln('_______________________________Ydalenie_____________________________________');

end;

Writeln(''); {вывод на экран}

Writeln('');

Writeln('________________________________Vvod________________________________________');

Writeln('  Naimenovanie          * Zakup. cena  * Nadbavka    *  Otpucknaa cena     *');

Writeln('----------------------------------------------------------------------------');

Writeln('+______________________+___________________+______________+________________+');

Writeln('* Naimenovanie         + Zakupo4naa cena   + Nadbavka     + Otpucknaa cena  ');

Writeln('*-----------------------*--------------*-------------*---------------------*');

gotoxy(1,7); {перемещение курсора}

While not eof(f) do begin {цикл}

size:=size+1; {присвоение}

read(f,mas[size]); {ввод с клавы}

Writeln('                                                                            ');

Writeln('                                                                            ');

gotoxy(2,size+6);Write(size,'.');  

gotoxy(5,size+6);Writeln('*  ',mas[size].naimen);Readln; {вывод ответа на экран}

gotoxy(25,size+6);Writeln('*  ',mas[size].zakcena:1:1);Readln; {вывод ответа на экран}

gotoxy(40,size+6);Writeln('*  ',mas[size].nadbav:4:1);textbackground(12); Readln; {вывод ответа на экран}

gotoxy(54,size+6);Writeln('*  ',mas[size].otpcena:10:1,'rub      *');textbackground(25);  {вывод ответа на экран}

Readln; {задержка}

end; {конец}

if kont2=0 then begin {условие}

if size=0 then begin {условие}

gotoxy(36,12);textbackground(12);writeln('fail pust'); {смена цвета фона}

textbackground(25); end; {смена цвета фона, конец}

end; {конец}

if kont1=1 then begin {условие}

textbackground(12); {смена цвета фона}

gotoxy(25,3);Write('Nashmite Enter dla vihoda menu:');Readln; {вывод на экран, ввод с клавиатуры}

textbackground(25); {смена цвета фона}

end; {конец}

met1: {метка}

end; {конец}

Procedure sort;  {процедура}

Label met,met2,met3,met4,met5,met6,met7,met8,met9; {метка}

Var {оператор переменных}

i1,size1,min,max,max1:integer; {переменные}

begin {начало}

if size=0 then begin gotoxy(10,3);textbackground(12); {условие, смена цвета фона}

Write('Net dannih dla sortirovki faila,Enter-vihod');  {вывод на экран}

readln;  {задержка}

textbackground(25); {смена цвета фона}

goto met7; {метка}

end; {конец}

While true do begin {цикл}

met6:textbackground(12); {смена цвета фона}

{$i-}

Repeat {цикл}

gotoxy(20,3);Write('Vvedite nomer  ctolbca dla sortirovki(11-vihod:'); {вывод на экран}

readln(stolb); {ввод с клавиатуры}

if stolb=11 then goto met7; {условие}

until ioresult=0;  {конец цикла}

{$i+}

if stolb>5 then begin {условие}

gotoxy(20,3);Write('Macsimalni nomer stolbca-5:'); Readln;Goto met6; {вывод на экран, метка}

end; {конец}

textbackground(25); {смена цвета фона}

{$i-}

rewrite(f);

if ioresult<>0 then begin  {условие}

textbackground(12); {смена цвета фона}

gotoxy(16,23); Writeln('Oshibka pri otcritii faila dla zapisi'); {вывод на экран}

Readln; {задержка}

textbackground(25); {смена цвета фона}

goto met7; {метка}

end; {конец}

{$i+}

case stolb of {оператор ввода метки}

1:begin {начало}

met2:i:=0; {метка, обнуление}

for i:=1 to (size-1) do {цикл}

if mas[i].naimen>mas[i+1].naimen then begin {условие}

tovar:=mas[i];mas[i]:=mas[i+1]; mas[i+1]:=tovar; {формула}

goto met2 end; {метка, конец}

for i:=1 to size do write(f,mas[i]);  {цикл}

vivod; 

end; {конец}

2:begin {начало}

met3:i:=0; {метка, обнуление}

for i:=1 to (size-1) do {цикл}

if mas[i].zakcena>mas[i+1].zakcena then begin {условие}

tovar:=mas[i]; mas[i]:=mas[i+1]; mas[i+1]:=tovar; {формула}

goto met3 end; {метка, конец}

for i:=1 to size do write(f,mas[i]);  {цикл}

vivod;

end; {конец}

3:begin {начало}

met4:i:=0; {метка, обнуление}

for i:=1 to (size-1) do {цикл}

if mas[i].nadbav>mas[i+1].nadbav then begin {условие}

tovar:=mas[i]; mas[i]:=mas[i+1]; mas[i+1]:=tovar; {формула}

goto met4 end; {метка, конец}

for i:=1 to size do write(f,mas[i]); {цикл}

vivod; 

end; {конец}

4:begin {начало}

met:i:=0; {обнуление}

for i:=1 to (size-1) do {цикл}

if mas[i].otpcena>mas[i+1].otpcena then begin {условие}

tovar:=mas[i]; mas[i]:=mas[i+1]; mas[i+1]:=tovar; {формула}

goto met end; {конец}

for i:=1 to size do write(f,mas[i]); {цикл}

vivod; 

end; {конец}

end; {конец}

end; {конец}

met7:textbackground(25); {метка, смена цвета фона}

end; {конец}

Procedure del; {процедура}

Label met,met1,metk; {метка}

Begin {начало}

if size=0 then begin gotoxy(10,3); {условие}

Информация о работе Составить программу с горизонтальным типом меню