Программирование на языках высокого уровня

Автор: Пользователь скрыл имя, 25 Ноября 2011 в 19:01, курсовая работа

Краткое описание

Составить программу для управления размерами окружности и ее положением на экране. Исходная окружность имеет центр в точке (100,100) и радиус r=20. Управление выполняется клавишами:
“>” увеличивает радиус окружности на 5 точек (по достижении границ экрана дальнейшее увеличение радиуса прекращается),
“<” уменьшает радиус окружности на 5 точек (по достижении радиусом значение 1 пиксель дальнейшее уменьшение радиуса прекращается),
клавиши управления курсором вызывают перемещение окружности в соответствующем направлении, “Enter” завершает работу программы. Границы окружности, ни при каких условиях, не должны выходить за границы экрана.

Оглавление

ЗАДАНИЕ 3
КРАТКОЕ ОПИСАНИЕ МЕТОДА РЕШЕНИЯ 4
ПОДРОБНЫЙ АЛГОРИТМ РАБОТЫ ПРОГРАММЫ 5
БЛОК-СХЕМА 9
ЛИСТИНГ ПРОГРАММЫ 12
РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ 19

Файлы: 1 файл

Курсовая работа без орфограф ошибок.doc

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

      strcat(string,sr);  //X,Y,R). 

      setcolor(BLACK);             //Устанавливаем значение цвета ЧЕРНЫЙ и

      outtextxy(10,465,old_string);//зарисовываем предыдущую строку состояния. 

      setcolor(WHITE);         //Устанавливаем значение цвета БЕЛЫЙ

      outtextxy(10,465,string);//и выводим новую строку состояния. 

      strcpy(old_string,string);//Копируем новую строку состояния в старую.

} 

int check(int x,int y, int r, int left,int right, int top, int bottom)

{

      if((x-r>=left)&&    //Если окружность не выходит

         (x+r<=right)&&   //за пределы контекста

         (y-r>=top)&&     //отображения либо радиус

         (y+r<=bottom)&&  //окружности >= 0, то

         (r>=0)) return 1;//функция возвращает значение 1.

        

      return 0;//В противном случае функция возвращает значение 0.

} 

void main(void)

{

      int gdriver=VGA;//Используется драйвер VGA

      int gmode=VGAHI;//в режиме VGAHI(640x480,16 цветов). 

      int errorcode;//Переменная в которую будет возращен

                    //результат инициализации графики. 

      int x=100;//Координаты центра

      int y=100;//окружности и

      int r= 20;//ее радиус. 

      int old_x=x;//Старые координаты центра

      int old_y=y;//окружности и

      int old_r=r;//ее радиус. 

      int left  =0;  //Положение

      int right =640;//клиентской

      int top   =0;  //области в экранных

      int bottom=460;//координатах. 

      const int step=5;//Шаг изменения радиуса и положения окружности. 

      char key=0;//Значение ASCII-кода нажатой клавиши. 

      initgraph(&gdriver, &gmode, "");//Инициализация графики. 

      errorcode = graphresult();//Возвращение результата инициализация графики. 

      if (errorcode != grOk)//Если инициализация неудачна выводим сообщение

      {                     //об ошибке и завершаем работу  программы.

            printf("Graphics error: %s\n", grapherrormsg(errorcode));

            printf("Press any key to halt:");

            getch();

            return;

      } 

      setcolor(WHITE);    //Устанавливаем значение цвета БЕЛЫЙ и рисуем линию,

      line(0,461,640,461);//ограничивающую клиентскую область от строки состояния. 

      draw(x,y,r,old_x,old_y,old_r);//Рисуем  нашу окружность. 

      while(key!=13)//Если значение клавиши не ENTER,

      {             //то продолжаем выполнение цикла.

            if(kbhit())//Если нажата клавиша.

            {

                  key=getch();//Возвращаем ASCII нажатой клавиши. 

                  if(key=='>'||key=='.')//Если это ">" или "."

                  {

                        old_x=x;//Сохраняем новые

                        old_y=y;//значения окружности

                        old_r=r;//в старые. 

                        r=r+step;//Увеличиваем радиус на ШАГ. 

                        if(check(x,y,r,left,right,top,bottom))//Если функция проверки возвращает 1,

                              draw(x,y,r,old_x,old_y,old_r);    //то перерисовываем окружность.

                        else        //Иначе старое значение радиуса

                              r=old_r;//окружности присваиваем к новому.

                  }

                  else

                  if(key=='<'||key==',')//Если это "<" или ","

                  {

                        old_x=x;//Сохраняем новые

                        old_y=y;//значения окружности

                        old_r=r;//в старые. 

                        r=r-step;//Уменьшаем радиус на ШАГ. 

                        if(check(x,y,r,left,right,top,bottom))//Если функция проверки возвращает 1,

                              draw(x,y,r,old_x,old_y,old_r);    //то перерисовываем окружность.

                        else        //Иначе старое значение радиуса

                              r=old_r;//окружности присваеваем к новому.

                  }

                  else

                  if(key==75)//Если это  "Left"

                  {

                        old_x=x;//Сохраняем новые

                        old_y=y;//значения окружности

                        old_r=r;//в старые. 

                        x=x-step;//Уменьшаем координату по X на ШАГ. 

                        if(check(x,y,r,left,right,top,bottom))//Если функция проверки возвращает 1,

                              draw(x,y,r,old_x,old_y,old_r);    //то перерисовываем окружность.

                        else        //Иначе старое значение координаты по Х

                              x=old_x;//присваеваем к новому.

                  }

                  else

                  if(key==77)//Если это  "Right"

                  {

                        old_x=x;//Сохраняем новые

                        old_y=y;//значения окружности

                        old_r=r;//в старые. 

                        x=x+step;//Увеличиваем координату по X на ШАГ. 

                        if(check(x,y,r,left,right,top,bottom))//Если функция проверки возвращает 1,

                              draw(x,y,r,old_x,old_y,old_r);    //то перерисовываем окружность.

                        else        //Иначе старое значение координаты по Х

                              x=old_x;//присваиваем к новому.

                  }

                  else

                  if(key==72)//Если это  "Down"

                  {

                        old_x=x;//Сохраняем новые

                        old_y=y;//значения окружности

                        old_r=r;//в старые. 

                        y=y-step;//Уменьшаем координату по Y на ШАГ. 

                        if(check(x,y,r,left,right,top,bottom))//Если функция проверки возвращает 1,

                              draw(x,y,r,old_x,old_y,old_r);    //то перерисовываем окружность.

                        else        //Иначе старое значение координаты по Y

                              y=old_y;//присваиваем к новому.

                  }

                  else

                  if(key==80)//Если это  "Up"

                  {

                        old_x=x;//Сохраняем новые

                        old_y=y;//значения окружности

                        old_r=r;//в старые. 

                        y=y+step;//Увеличиваем координату по Y на ШАГ. 

                        if(check(x,y,r,left,right,top,bottom))//Если  функция проверки возвращает 1,

                              draw(x,y,r,old_x,old_y,old_r);    //то перерисовываем окружность.

                        else        //Иначе старое значение координаты по Y

                              y=old_y;//присваиваем к новому.

                  }

            }

      } 

      closegraph();//Завершаем работу с графикой.

}

 

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ

 

Информация о работе Программирование на языках высокого уровня