- •Карагандинский государственный технический университет
- •Исходные данные
- •2. Порядок выполнения работы
- •3. Методические указания
- •3.1. Разработка проекта.
- •3.2. Создание заготовки для консольного приложения.
- •3.3. Кодирование проекта
- •5)Описание функций, созданных программистом
- •3.4. Отладка и доказательство правильности работы программы
- •3.5. Типичные ошибки программирования
- •3.6. Хороший стиль программирования
- •4.Содержание отчета по выполнению лабораторных работ
- •5. Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
- •Лабораторная работа №2
- •1.Задание на выполнение лабораторной работы
- •2. Порядок выполнения работы
- •3 Методические указания
- •3.2. Создание заготовки для консольного приложения.
- •3.3. Кодирование проекта
- •6)Описание функций, созданных программистом
- •3.4. Отладка и доказательство правильности работы программы
- •3.5. Типичные ошибки программирования и хороший стиль программирования
- •4.Содержание отчета по выполнению лабораторных работ
- •5. Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
- •Лабораторная работа №3 Разработка диалогового Windows-приложения для проектирования цилиндрических деталей типа стакана
- •1.Задание на выполнение лабораторной работы
- •2.Порядок выполнения работы
- •3.2. Создание шаблона проекта с помощью мастера AppWizard.
- •3.3. Визуальное проектирование диалоговой панели созданного проекта
- •3.4. Установка и настройка элементов управления
- •3.5. Установка статических текстов
- •3.6. Установка и настройка окон редактирования
- •3.7. Установка и настройка элемента управления Picture(рисунок)
- •3.8. Установка и настройка элементов управления Botton(кнопка)
- •3.9. Кодирование проекта
- •3.9.1.Доработка заголовочного файла CapStDlg.H
- •3.9.2. Доработка исходного файла CupStDlg.Cpp.
- •3.10. Выполнение проекта
- •4.Содержание отчета по выполнению лабораторной работы
- •5.Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
- •Лабораторная работа №4 Разработка однооконного Windows-приложения для вывода графической информации.
- •1.Задание на выполнение лабораторной работы
- •2.Порядок выполнения работы
- •3. Методические указания
- •1.1 Объект cPen - карандаш
- •3. Пример простого графического вывода :
- •3.3 Выполнение проекта
- •4.Содержание отчета по выполнению лабораторной работы
- •5.Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
1.1 Объект cPen - карандаш
пример объявления :
CPen pen(S_SOLID,2,RGB(0,0,0));
Где в первый аргумент задает стиль линии, второй – толщину, третий – цвет(каждое число – составляющая красного, зеленого и синего цветов). После создания CPen его нужно выбрать в контекст устройства
Пример выбора в контекст устройства.
CPen *pPen = dc.SelectObject(&pen);
После использования карандаша, нужно вернуть в контекст устройства
предидущий карандаш:
dc.SelectObject(pPen);
Для отрисовки линии используется пара функций :
dc.MoveTo( X1, Y1); dc.LineTo( X2, Y2 );
рисует линию из точки (x1, y1) в точку (x2, y2).
Обратите внимание, что начало координат у окна находится в левом верхнем углу.
Для вывода текста используется функция
dc.TextOut( X1,Y1,”Просто текст” );
Выводит строку “Просто текст” начиная с точки (X1, Y1)
3. Пример простого графического вывода :
struct { int m_nStyle; LPTSTR m_csStyle; } lnStyle[] = { // структура определяющаая тип линии
PS_SOLID, _T("PS_SOLID"),
PS_DASH, _T("PS_DASH"),
PS_DOT, _T("PS_DOT"),
PS_DASHDOT, _T("PS_DASHDOT"),
PS_DASHDOTDOT, _T("PS_DASHDOTDOT"),
PS_NULL, _T("PS_NULL"),
PS_INSIDEFRAME, _T("PS_INSIDEFRAME")
};
//
// чтобы при любом размере шрифта
// текст не налезал друг на друга
// получим характеристики текущего
// шрифта
//
TEXTMETRIC tm;
dc.GetTextMetrics(&tm); // получаем параметры шрифта, используемого для вывода текста
// устанавливаем режим "прозрачного" вывода
dc.SetBkMode(TRANSPARENT);
for (int i = 0; i < sizeof(lnStyle) / sizeof(lnStyle[0]); i++)
{
// будем рисовать разными по стилю карандашами,
// но имеющими единичную толщину и черный цвет
CPen pen(lnStyle[i].m_nStyle, 1, RGB(0, 0, 0));
CPen *pPen = dc.SelectObject(&pen);
// учитываем высоту символов и расстояние между строками
int nY = 10+i*(tm.tmHeight+tm.tmExternalLeading);
dc.TextOut(10, nY, lnStyle[i].m_csStyle); // Вывод текста
dc.MoveTo(200, nY+(tm.tmHeight+tm.tmExternalLeading) / 2); // перемещаем курсор
dc.LineTo(400, nY+(tm.tmHeight+tm.tmExternalLeading) / 2); // рисуем линию
dc.SelectObject(pPen);
}
4. Для хранения значений функции по абсциссе и ординате вам понадобятся 2 вещественных массива. Для формирования значений понадобятся функции из заголовочного файла <math.h>. Обратите внимание, что для тригонометрических функций аргумент задается в радианах.
3.3 Выполнение проекта
Проверим в действии созданный проект. Для этого нам необходимо выполнить компиляцию, компоновку и запуск программы на выполнение. Программы компиляции и компоновки запустим на выполнение с помощью функциональной клавиши F7. Если эти процессы завершились успешно, то в окне сообщений мы увидим сообщение:
CupSt.exe – 0 error(s), 0 warning(s) (0 ошибок, 0 замечаний ). После этого можем запустить созданную исполняемую программуCupSt.exeс помощью команды менюBuild/Execute, или кнопкиExecuteProgramна панели инструментов или клавишного аккордаCtrl/F5. В ответ получим созданную диалоговую панель, готовую к приему входной информации в окна редактирования для ввода.
Если же на этапе компиляции или компоновки программы были обнаружены ошибки, то их следует локализовать(найти местоположение в исходном коде), исправить и только после этого запускать программу на выполнение.
При поиске алгоритмических ошибок всегда следует прибегать к услугам программы Отладчик, которая запускается командой меню Build/ Start Debug.