Visual C++. Лабораторная работа № 2.
Реализация простейшей программы на VC++, с использованием графического интерфейса и библиотеки MFC (Windows Application на основе диалогового окна).
- Цель работы:
- Научиться разрабатывать и реализовывать простейшие программы на языке VC++.
Получить практические навыки работы по использованию графического интерфейса.
Научиться связывать переменные и методы с элементами диалогового окна.
1. Создаем пустой проект Console Application и реализуем в нем программу по вычислению стоимости поездки на автомобиле
Для этого выполняем те же действия, что и в
лабораторной работе № 1,
только при создании проекта выбираем
Win32 Console Application.
Алгоритм и результат работы программы
- Примечание:
- Для экономии бумаги в алгоритме пропущены такие мелочи, как перевод строки,
а вычисление и вывод результата объединены в один блок.
Затем в исходный файл помещаем следующий код:
#include "iostream.h"
void main()
{
float km, //Километраж
Litres, //Расход топлива (л/100км)
Price; //Цена одного литра топлива
cout << "\n Way = "; //Вывести строку
cin >> km; //Прочитать километраж
cout << "\n Litres = ";
cin >> Litres; //Прочитать расход топлива
cout << "\n Price = ";
cin >> Price; //Прочитать цену одного литра
//Вывести результат
cout << "\n Result = " << (km/100)*Litres*Price << "\n";
}
2. Создаем приложение с помощью MFC AppWizard(exe) с диалоговым окном в
качестве главного и реализуем в нем программу из п.1
- Создаем новый проект как обычно.
- Выбираем MFC AppWizard(exe).
- В следующем диалоговом окне выбираем тип приложения. В нашем случае это будет Dialog Based.
С помощью мыши и соответствующей панели инструментов создаем на форме нужные нам
элементы: надписи (Static Text), однострочные редакторы для ввода-вывода данных
(Edit Box) и кнопки. Чтобы разместить компонент на форме (диалоге), нужно щелкнуть
по этому компоненту на панели Controls, а затем щелкнуть в том месте формы, где
нужно разместить компонент. Если панели Controls на экране почему-то нет, то
достаем ее следующим образом: щелкаем правой кнопкой мыши по главному меню и
устанавливаем флажок напротив пункта Controls.
Static Text
После размещения этого компонента на форме, щелкаем по нему правой кнопкой и в
поле Caption пишем нужное нам слово. Чтобы при выполнении программы правильно
отображались символы русского алфавита, нужно на вкладке ResourceView открыть
папку Dialog и щелкнуть правой кнопкой по нужному диалогу (в нашем случае -
IDD_LAB_02_2_DIALOG). Затем выбрать Properties (Свойства), в поле Language
установить русский язык и закрыть диалог либо нажать клавишу Enter.
Edit Box
Для того чтобы мы могли работать с данными, вводимыми в этот элемент, нужно с
этим элементом связать переменную. А для этого вызываем ClassWizard из меню View.
Переходим на вкладку Member Variable, выделяем нужный элемент и щелкаем по кнопке
Add Variable… В поле Member Variable Name вписываем имя переменной, а в поле
Variable Type выбираем тип переменной. Мы будем работать с вещественными числами,
поэтому выбираем float.
Button
Помещаем на форму кнопку "Рассчитать", по нажатию на которую будет произведен
нужный нам расчет. Для того чтобы программа "поняла", что на эту кнопку нажали,
нужно с этой кнопкой связать метод (событие, которое происходит после нажатия на
кнопку). Это можно сделать, например, дважды щелкнув по кнопке. Тогда откроется
редактор исходного кода, а курсор будет установлен на интересующий нас участок,
куда мы впишем следующий текст:
void CLab_02_2Dlg::OnButton1() //Событие для кнопки "Рассчитать"
{
UpdateData(1); //Получить данные из редакторов
m_edResult = (m_edWay/100)*m_edLitres*m_edPrice;
UpdateData(0); //Вывести данные в редакторы
}
Здесь функция UpdateData() либо записывает данные из редакторов в переменные,
либо выводит значения переменных в редакторы, в зависимости от получаемого
параметра: 1 - получить данные, 2 - вывести данные.
3. Совершенствуем программу из п.2, добавляя подсчет
стоимости нескольких поездок
Добавляем элемент для ввода данных и связываем с ним переменную m_edNum. А формула будет такой:
m_edResult = (m_edWay/100)*m_edLitres*m_edPrice*m_edNum;
4. Усовершенствовать полученную программу, добавив кнопку, по нажатию на которую
в редакторы выводятся заранее определенные значения (Расстояние = 240 км.,
Расход = 8,4 л/100км, Цена = 16,5)
Добавляем кнопку "По умолчанию" и связываем с ней событие. Добавляем код:
void CLab_02_2Dlg::OnDefault()
{
m_edWay = 240; //Расстояние
m_edLitres = 8.4; //Расход
m_edPrice = 16.5; //Цена
m_edNum = 1; //Количество поездок
m_edResult = (m_edWay/100)*m_edLitres*m_edPrice*m_edNum;
UpdateData(0); //Вывести данные в редакторы
}
В результате добросовестного выполнения всех пунктов получим примерно такой результат:
5. Создать приложение на основе диалогового окна, производящее вычисление по
формуле, предложенной преподавателем
Создали. При этом использовали бесценный опыт, накопленный нами при выполнении
предыдущих пунктов лабораторной работы.