Программа на языке С++
Автор: иван иванов • Декабрь 21, 2022 • Контрольная работа • 1,106 Слов (5 Страниц) • 153 Просмотры
Содержание
1. Цель и задача работы 3
1.1. Цель работы 3
1.2. Задача работы 3
2. Ход работы 4
3. Анализ работы 5
4. Пример работы 7
5. Вывод 9
Цель и задача работы
Цель работы
Освоить необходимые средства для написания программ на языке С++, работающих в графическом режиме.
Задача работы
Разработать программу, рисующую работающий светофор: последовательно зажигаются красный свет, желтый, зеленый. Не горящие в текущий момент круги закрашивать светлым цветом.
Ход работы
//Открываем библиотеку для рисования
#include <windows.h>
//Задаём диаметр сигнала светофора
const int d = 40;
//Функции включения определённого света и выключения предыдущего
void switch_red(HDC hdc, HBRUSH red, HBRUSH white)
{
SelectObject(hdc, red);
Ellipse(hdc, d, 3 * d, 2 * d, 4 * d);
SelectObject(hdc, white);
Ellipse(hdc, d, 4 * d, 2 * d, 5 * d);
Ellipse(hdc, d, 5 * d, 2 * d, 6 * d);
}
void switch_yellow(HDC hdc, HBRUSH yellow, HBRUSH white)
{
SelectObject(hdc, yellow);
Ellipse(hdc, d, 4 * d, 2 * d, 5 * d);
SelectObject(hdc, white);
Ellipse(hdc, d, 3 * d, 2 * d, 4 * d);
Ellipse(hdc, d, 5 * d, 2 * d, 6 * d);
}
void switch_green(HDC hdc, HBRUSH green, HBRUSH white)
{
SelectObject(hdc, green);
Ellipse(hdc, d, 5 * d, 2 * d, 6 * d);
SelectObject(hdc, white);
Ellipse(hdc, d, 3 * d, 2 * d, 4 * d);
Ellipse(hdc, d, 4 * d, 2 * d, 5 * d);
}
int main()
{
//Описание графических элементов работы: рисование на консоли, кисти с цветами
HWND hwnd = GetConsoleWindow();
HDC hdc = GetDC(hwnd);
HBRUSH red, yellow, green, white;
red = CreateSolidBrush(RGB(255, 0, 0));
yellow = CreateSolidBrush(RGB(255, 255, 0));
green = CreateSolidBrush(RGB(0, 255, 0));
white = CreateSolidBrush(RGB(255, 255, 255));
//цикл из 10 шагов, включающий на секунду тот или иной сигнал поочерёдно
int i = 0;
while (i < 10)
{
switch_red(hdc, red, white);
Sleep(1000);
switch_yellow(hdc, yellow, white);
Sleep(1000);
switch_green(hdc, green, white);
Sleep(1000);
i++;
}
}
- Анализ работы
В ходе выполнения контрольной работы были использованы методы работы библиотеки <windows.h>, дающей доступ ко всем функциям графического редактора API Windows. Она был выбрана вместо изначально требуемой <graphics.h>, поскольку является прямым эволюционным продолжением, но для ОС Windows, вместо устаревшей DOC, чьи библиотеки на данный момент не поддерживаются современными компиляторами, что слишком сильно затрудняло выполнение поставленной задачи в исходном виде.
...