Автор: Пользователь скрыл имя, 25 Ноября 2011 в 19:01, курсовая работа
Составить программу для управления размерами окружности и ее положением на экране. Исходная окружность имеет центр в точке (100,100) и радиус r=20. Управление выполняется клавишами:
“>” увеличивает радиус окружности на 5 точек (по достижении границ экрана дальнейшее увеличение радиуса прекращается),
“<” уменьшает радиус окружности на 5 точек (по достижении радиусом значение 1 пиксель дальнейшее уменьшение радиуса прекращается),
клавиши управления курсором вызывают перемещение окружности в соответствующем направлении, “Enter” завершает работу программы. Границы окружности, ни при каких условиях, не должны выходить за границы экрана.
ЗАДАНИЕ 3
КРАТКОЕ ОПИСАНИЕ МЕТОДА РЕШЕНИЯ 4
ПОДРОБНЫЙ АЛГОРИТМ РАБОТЫ ПРОГРАММЫ 5
БЛОК-СХЕМА 9
ЛИСТИНГ ПРОГРАММЫ 12
РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ 19
strcat(string,sr);
//X,Y,R).
setcolor(BLACK);
outtextxy(10,465,old_
setcolor(WHITE); //Устанавливаем значение цвета БЕЛЫЙ
outtextxy(10,465,string)
strcpy(old_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,
while(key!=13)//Если значение клавиши не ENTER,
{ //то продолжаем выполнение цикла.
if(kbhit())//Если нажата клавиша.
{
key=getch();
if(key=='>'|
{
old_x=
old_y=
old_r=
r=r+
if(
else
}
else
if(key=='<'|
{
old_x=
old_y=
old_r=
r=r-
if(
else
}
else
if(key==75)/
{
old_x=
old_y=
old_r=
x=x-
if(
else
}
else
if(key==77)/
{
old_x=
old_y=
old_r=
x=x+
if(
else
}
else
if(key==72)/
{
old_x=
old_y=
old_r=
y=y-
if(
else
}
else
if(key==80)/
{
old_x=
old_y=
old_r=
y=y+
if(
else
}
}
}
closegraph();//Завершаем работу с графикой.
}
Информация о работе Программирование на языках высокого уровня