Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ООП_заочники.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
321.02 Кб
Скачать

Лабораторная работа n2.

Использование функций стандартной библиотеки(работа со временем и графикой).

Порядок выполнения работы (по занятиям):

  1. Ознакомление с заданием. Выбор необходимых библиотечных функций и ознакомление с их работой.

  2. Разработка алгоритма решения задачи. Написание программы.

  3. Ввод программы. Тестирование программы

  4. Защита работы.

Вместо интервала времени - 1 секунда можно использовать нажатие клавиши(любой).

Вместо прорисовки фигур можно ограничиться отображением характеризующих фигуру данных( те что меняются в процессе работы программы).

1

Квадрат с задаваемой стороной.

Заданная фигура начинает движение из левого верхнего угла экрана и смещается каждые 2 секунды по горизонтали на количество точек, которое задается в начале работы программы. Дойдя до правой границы экрана фигура меняет цвет линии (по кругу) и продолжает движение из левого верхнего угла вниз по вертикали. Дойдя до нижней границы фигура вновь меняет цвет и продолжает движение из исходной точки по горизонтали. На фигуре выводить текущее системное время цветом линии. Выход при нажатии клавиши ESC.

2

Треугольник( 3 точки)

Заданная фигура начинает движение из точки, расположенной в центре экрана и смещается каждые 3 секунды по горизонтали вправо на количество точек, которое задается в начале работы программы. Дойдя до правой границы экрана фигура меняет цвет заполнения (по кругу) и продолжает движение из исходной точки по горизонтали влево. Дойдя до левой границы фигура вновь меняет цвет и продолжает движение из исходной точки вправо. На фигуре выводить время работы программы синим цветом. Выход при нажатии клавиши ESC.

3

Окружность заданного радиуса

Заданная фигура начинает движение из левого нижнего угла экрана и смещается каждые 4 секунды по вертикали на количество точек, которое задается в начале работы программы. Дойдя до верхней границы экрана фигура меняет стиль линии (по кругу) и продолжает движение из левого нижнего угла вправо по горизонтали. Дойдя до правой границы фигура вновь меняет стиль линии и продолжает движение из исходной точки по вертикали. На фигуре выводить красным цветом время, прошедшее с последнего момента достижения границы экрана. Выход при нажатии клавиши ESC.

4

Крест(длины по горизонтали и вертикали)

Заданная фигура начинает движение из правого верхнего угла экрана и смещается по горизонтали на 5 точек за период времени, задаваемый в начале работы программы. Дойдя до левой границы экрана фигура меняет стиль заполнения (по кругу) и продолжает движение из правого верхнего угла вниз по вертикали. Дойдя до нижней границы фигура вновь меняет стиль заполнения и продолжает движение из исходной точки по горизонтали. На фигуре выводить зеленым цветом время, прошедшее с последнего нажатия клавиши ENTER. Выход при нажатии клавиши ESC.

5

Ромб(длина по горизонтали и вертикали)

Заданная фигура начинает движение из правого нижнего угла экрана и смещается каждые 2 секунды по вертикали на количество точек, которое задается в начале работы программы. Дойдя до верхней границы экрана фигура меняет цвет линии (по кругу) и продолжает движение из правого нижнего угла влево по горизонтали. Дойдя до левой границы фигура вновь меняет цвет линии и продолжает движение из исходной точки по вертикали. На фигуре выводить цветом линии время обратного отсчета, исходное значение которого задается в начале работы программы. Выход при нажатии клавиши ESC.

6

Овал(вертикальный и горизонтальный радиусы)

Заданная фигура начинает движение из точки, расположенной в центре экрана и смещается при каждом нажатии на клавишу ENTER по вертикали вверх на количество точек, которое задается в начале работы программы. Дойдя до верхней границы экрана фигура меняет цвет заполнения (по кругу) и продолжает движение из исходной точки по вертикали вниз. Дойдя до нижней границы фигура вновь меняет цвет и продолжает движение из исходной точки вверх. На фигуре серым цветом выводить обратный отсчет времени, исходное значение которого генерируется каждый раз случайным образом. Выход при нажатии клавиши ESC.

7

Сектор окружности(радиус и угол, одна из сторон-горизонтальна)

Заданная фигура начинает движение из правого нижнего угла экрана и смещается по вертикали каждые 2 секунды на количество точек, которое задается в начале работы программы. Дойдя до верхней границы экрана фигура меняет стиль линии (по кругу) и продолжает движение из левого верхнего угла вниз по вертикали. Дойдя до нижней границы фигура вновь меняет стиль линии и продолжает движение из правого нижнего угла вверх. На фигуре выводить зеленым цветом системное время. Выход при нажатии клавиши ESC.

8

Правильный пятиугольник(длина стороны)

Заданная фигура начинает движение из левого нижнего угла экрана и смещается по вертикали каждые 3 секунды на количество точек, которое задается в начале работы программы. Дойдя до нижней границы экрана фигура меняет стиль заполнения (по кругу) и продолжает движение из правого верхнего угла вниз по вертикали. Дойдя до нижней границы фигура вновь меняет стиль заполнения и продолжает движение из левого нижнего угла вверх. На фигуре выводить красным цветом время работы программы. Выход при нажатии клавиши ESC.

9

Прямоугольник (длины сторон)

Заданная фигура начинает движение из левого верхнего угла экрана и смещается по горизонтали на 3 точки за период времени, задаваемый в начале работы программы. Дойдя до правой границы экрана фигура меняет цвет линии (по кругу) и продолжает движение из правого нижнего угла влево по горизонтали. Дойдя до левой границы фигура вновь меняет цвет и продолжает движение из левого верхнего угла вправо. На фигуре выводить цветом линии время, прошедшее с последнего момента достижения границы экрана. Выход при нажатии клавиши ESC.

10

Фигура с пятью вершинами

Заданная фигура начинает движение из правого верхнего угла экрана и смещается по горизонтали на задаваемое в начале программы количество точек при каждом нажатии клавиши ENTER. Дойдя до левой границы экрана фигура меняет цвет заполнения (по кругу) и продолжает движение из левого нижнего угла по горизонтали. Дойдя до правой границы фигура вновь меняет цвет и продолжает движение из правого верхнего угла. На фигуре выводить зеленым цветом время, прошедшее с последнего нажатия клавиши ENTER. Выход при нажатии клавиши ESC.

11

Заданная фигура начинает движение из точки в центре верхней части экрана и смещается по горизонтали влево на задаваемое в начале программы количество точек каждые 2 секунды. Дойдя до левой границы экрана фигура меняет стиль линии (по кругу) и продолжает движение из точки в центре нижней части экрана вправо. Дойдя до правой границы фигура вновь меняет стиль линии и продолжает движение из точки в центре верхней части экрана. На фигуре выводить синим цветом время обратного отсчета, исходное значение которого задается в начале работы программы. Выход при нажатии клавиши ESC.

12

Заданная фигура начинает движение из точки в центре верхней части экрана и смещается по горизонтали вправо на 4 точки за период времени, задаваемый в начале работы программы. Дойдя до правой границы экрана фигура меняет стиль заполнения (по кругу) и продолжает движение из точки в центре нижней части экрана влево. Дойдя до левой границы фигура вновь меняет стиль заполнения и продолжает движение из точки в центре верхней части экрана. На фигуре выводить желтым цветом обратный отсчет времени, исходное значение которого генерируется каждый раз случайным образом. Выход при нажатии клавиши ESC.

13

Заданная фигура начинает движение из точки в центре левой части экрана и смещается по вертикали вверх на задаваемое в начале программы количество точек за каждые 3 секунды. Дойдя до верхней границы экрана фигура меняет цвет линии (по кругу) и продолжает движение из точки в центре правой части экрана вниз. Дойдя до нижней границы фигура вновь меняет цвет и продолжает движение из точки в центре левой части экрана. На фигуре выводить цветом линии текущее системное время. Выход при нажатии клавиши ESC.

14

Заданная фигура начинает движение из точки в центре правой части экрана и смещается по вертикали вверх на задаваемое в начале программы количество точек при каждом нажатии на клавишу ENTER. Дойдя до верхней границы экрана фигура меняет цвет заполнения (по кругу) и продолжает движение из точки в центре левой части экрана вниз. Дойдя до нижней границы фигура вновь меняет цвет и продолжает движение из точки в центре правой части экрана. На фигуре выводить черным количество нажатий клавиши ENTER. Выход при нажатии клавиши ESC.

15

Заданная фигура начинает движение из точки в центре левой части экрана и смещается по вертикали вверх на 4 точки за период времени, задаваемый в начале работы программы. Дойдя до верхней границы экрана фигура меняет стиль линии (по кругу) и продолжает движение из точки в центре верхней части экрана влево. Дойдя до левой границы фигура вновь меняет стиль линии и продолжает движение из точки в центре левой части экрана. На фигуре выводить зеленым цветом время с момента запуска программы. Выход при нажатии клавиши ESC.

16

Заданная фигура начинает движение из точки в центре верхней части экрана и смещается по горизонтали влево на задаваемое в начале работы программы количество точек за каждые 3 секунды. Дойдя до левой границы экрана фигура меняет стиль заполнения (по кругу) и продолжает движение, двигаясь вниз. Дойдя до нижней границы фигура вновь меняет стиль и продолжает движение из точки в центре верхней части экрана. На фигуре выводить синим цветом время с момента последнего достижения границы экрана. Выход при нажатии клавиши ESC.

17

Заданная фигура начинает движение из левого нижнего угла экрана и смещается по горизонтали вправо на задаваемое в начале работы программы количество точек при каждом нажатии на клавишу ENTER. Дойдя до правой границы экрана фигура меняет цвет линии (по кругу) и продолжает движение, двигаясь вверх. Дойдя до середины правой части экрана фигура вновь меняет цвет и продолжает движение из левого нижнего угла экрана. На фигуре выводить цветом линии обратный отсчет времени, начальное значение которого задается в начале работы программы. Выход при нажатии клавиши ESC.

18

Заданная фигура начинает движение из точки в центре нижней части экрана и смещается по горизонтали влево на 5 точек за период времени, задаваемый в начале работы программы. Дойдя до левой границы экрана фигура меняет цвет заполнения (по кругу) и продолжает движение из точки в центре левой части экрана и смещается по вертикали вниз. Дойдя до нижней границы экрана фигура вновь меняет цвет и продолжает движение из точки в центре нижней части экрана. На фигуре выводить черным цветом количество нажатий клавиши ENTER за время работы программы. Выход при нажатии клавиши ESC.

19

Заданная фигура начинает движение из точки в центре правой части экрана и смещается по вертикали вниз на задаваемое в начале работы программы количество точек за каждые 2 секунды. Дойдя до нижней границы экрана фигура меняет стиль линии (по кругу) и продолжает движение из точки в центре нижней части экрана смещаясь по горизонтали вправо. Дойдя до правой границы экрана фигура вновь меняет стиль и продолжает движение из точки в центре правой части экрана. На фигуре выводить красным цветом обратный отсчет времени, исходное значение которого генерируется каждый раз случайным образом. Выход при нажатии клавиши ESC.

20

Заданная фигура начинает движение из точки в центре верхней части экрана и смещается по горизонтали вправо на задаваемое в начале работы программы количество точек при каждом нажатии клавиши ENTER. Дойдя до правой границы экрана фигура меняет стиль заполнения (по кругу) и продолжает движение из точки в центре правой части экрана смещаясь по вертикали вверх. Дойдя до верхней границы экрана фигура вновь меняет стиль и продолжает движение из точки в центре верхней части экрана. На фигуре выводить синим цветом текущее системное время. Выход при нажатии клавиши ESC.

21

Заданная фигура начинает движение из правого верхнего угла экрана и смещается по горизонтали влево на 3 точки за период времени, задаваемый в начале работы программы. Дойдя до середины верхней части экрана фигура меняет цвет линии (по кругу) и продолжает движение из точки в центре правой части экрана смещаясь по вертикали вверх. Дойдя до верхней границы экрана фигура вновь меняет цвет линии и продолжает движение из правого верхнего угла влево. На фигуре выводить цветом линии время, с момента запуска программы. Выход при нажатии клавиши ESC.

22

Заданная фигура начинает движение из точки, расположенной в середине верхней части экрана и смещается по вертикали вниз на задаваемое в начале программы количество точек за каждые 3 секунды. Дойдя до нижней границы экрана фигура меняет цвет заполнения (по кругу) и продолжает движение вправо смещаясь по горизонтали. Дойдя до правой границы экрана фигура вновь меняет цвет заполнения и продолжает движение из начальной точки. На фигуре выводить красным цветом время, с момента достижения нижней границы экрана. Выход при нажатии клавиши ESC.

23

Заданная фигура начинает движение из правого нижнего угла экрана и смещается по горизонтали влево на задаваемое в начале программы количество точек при каждом нажатии на клавишу ENTER. Дойдя до середины экрана фигура меняет стиль линии (по кругу) и продолжает движение из левого верхнего угла экрана смещаясь вправо по горизонтали. Дойдя до середины экрана фигура вновь меняет стиль линии и продолжает движение из начальной точки. На фигуре выводить синим цветом время, с момента последнего нажатия клавиши ENTER. Выход при нажатии клавиши ESC.

24

Заданная фигура начинает движение из левого верхнего угла экрана и смещается по вертикали вниз на 4 точки за период времени, задаваемый в начале работы программы. Дойдя до середины экрана фигура меняет стиль заполнения (по кругу) и продолжает движение из правого нижнего угла экрана смещаясь вверх по вертикали. Дойдя до середины экрана фигура вновь меняет стиль заполнения и продолжает движение из начальной точки. На фигуре выводить зеленым цветом обратный отсчет времени, начальное значение которого задается в начале работы программы. Выход при нажатии клавиши ESC.

25

Заданная фигура начинает движение из правого нижнего угла экрана и смещается по горизонтали влево на задаваемое в начале программы количество точек за каждые 2 секунды. Дойдя до середины экрана фигура меняет цвет линии (по кругу) и продолжает движение из точки, расположенной в середине правой части экрана смещаясь вверх по вертикали. Дойдя до границы экрана фигура вновь меняет цвет линии и продолжает движение из начальной точки. На фигуре выводить цветом линии обратный отсчет времени, начальное значение которого генерируется случайным образом каждый раз при достижении верхней границы экрана. Выход при нажатии клавиши ESC.

/*

Данная фигура начинает движение из исходной точки, координаты которой вводятся в начале программы, по горизонтали вправо, смещаясь на задаваемое количество точек каждую секунду. При достижении правой границы экрана фигура меняет цвет линии и стиль заполнения (по кругу) и продолжает движение по горизонтали в противоположную сторону. По достижению левой границы экрана фигура вновь меняет цвет и стиль и продолжает движение из исходной точки. Внутри фигуры выводить время прошедшее с последнего соприкосновения с правой границей экрана

*/

#include <stdio.h>

#include <stdlib.h>

#include <graphics.h>

#include <dos.h>

#include <conio.h>

void main()

{

printf("Введите координаты исходной точки и скорость движения-"); int x,x0,y0,v,GD,GM,c_l=1,style=0,t=0,f=0;

char s[20];

scanf("%d%d%d",&x0,&y0,&v);

x=x0;

GD=0;

initgraph(&GD,&GM,"");

setcolor(c_l);

setfillstyle(style,GREEN);

struct time tm1,tm2;gettime(&tm1);

for(;;)

{

cleardevice();

setcolor(c_l);

moveto(x,y0); //точка 1 lineto(x+20,y0-10);//точка 2 lineto(x+50,y0-10);//точка 3 lineto(x+70,y0);//точка 4 lineto(x+50,y0+10);//точка 5 lineto(x+20,y0+10);//точка 6 lineto(x,y0);//точка 1 floodfill(x+10,y0,c_l); moveto(x+20,y0-4); //точка 1 setcolor(WHITE);

itoa(t,s,10);

outtext(s);

do

{

gettime(&tm2);

if(kbhit()) if(getch()==27)

{

closegraph(); return;

}

}while(tm1.ti_sec==tm2.ti_sec);

tm1=tm2;

x+=v;

if(f) t++; if((x+70>getmaxx())||(x<0))

{

c_l++;

if(c_l>14) c_l=1;

style++;

if(style>11) style=0; setfillstyle(style,c_l); if(x+70>getmaxx())

{

x=2*getmaxx()-x-2*70;// x=getmaxx()-(x+70-getmaxx())-70; v=-v;

t=0; f=1;

}

if(x<0)

{

x=x0;

v=-v;

}

}

}

}