Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Программа на языке С++

Автор:   •  Декабрь 21, 2022  •  Контрольная работа  •  1,106 Слов (5 Страниц)  •  152 Просмотры

Страница 1 из 5

Содержание

1.        Цель и задача работы        3

1.1.        Цель работы        3

1.2.        Задача работы        3

2.        Ход работы        4

3.        Анализ работы        5

4.        Пример работы        7

5.        Вывод        9


  1. Цель и задача работы

  1. Цель работы

Освоить необходимые средства для написания программ на языке С++, работающих в графическом режиме.

  1. Задача работы

Разработать программу, рисующую работающий светофор: последовательно зажигаются красный свет, желтый, зеленый. Не горящие в текущий момент круги закрашивать светлым цветом.


  1. Ход работы

//Открываем библиотеку для рисования

#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++;

        }

}


  1. Анализ работы

В ходе выполнения контрольной работы были использованы методы работы библиотеки <windows.h>, дающей доступ ко всем функциям графического редактора API Windows. Она был выбрана вместо изначально требуемой <graphics.h>, поскольку является прямым эволюционным продолжением, но для ОС Windows, вместо устаревшей DOC, чьи библиотеки на данный момент не поддерживаются современными компиляторами, что слишком сильно затрудняло выполнение поставленной задачи в исходном виде.

...

Скачать:   txt (8.3 Kb)   pdf (1.8 Mb)   docx (1.8 Mb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club