- •Главление
- •Часть 1 Решение уравнения 42
- •Практическое занятие №1 Тема: «Знакомство со средой разработки и элементами управления. Создание диалогового приложения».
- •1. Настройка среды разработки Microsoft Visual Studio 2008 при первом запуске.
- •2. Создание нового проекта.
- •3. Создание диалогового приложения.
- •3.1. Работа с мастером mfc Application Wizard. Шаг 1.
- •3.2. Работа с мастеромMfcApplicationWizard. Шаг 2. Выбор типа приложения.
- •4. Знакомство со средой разработки.
- •5.Создание диалогового окна при помощи визуальных средств разработки.
- •5.1. Знакомство с обозревателем ресурсов и окном свойств объекта. Настройка рабочего языка проектируемого приложения.
- •5.2. Работа с редактором ресурсов. Знакомство со способами удаления и размещения элементов управления в диалоговом окне.
- •5.3. Работа с окном свойств. Настройка свойств выбранных элементов управления.
- •5.4. Настройка внешнего вида диалогового окна.
- •5.5. Подготовка к работе элементов управления.
- •5.6. Выравнивание управляющих элементов и редактирование порядка переключения между элементами управления
- •6. Проверка работоспособности, компиляция и запуск программы
- •7. Связывание программного кода с элементами управления
- •7.1. Связывание переменных с элементами управления. Работа с мастером добавления новой переменной.
- •7.2. Удаление переменной, связанной с элементом управления
- •7.3. Создание обработчика события. Работа с мастером обработки событий.
- •8. Написание программного кода для выполнения вычислений.
- •9. Тестирование разработанного приложения.
- •10. Исправление ошибки, связанной сUnicode.
- •Задания для самостоятельного выполнения
- •Практическое занятие №2. Тема: «Приложения, использующие команды ветвления». Часть 1 Решение уравнения
- •Часть 2 Пример приложения, использующего операторswitch
- •Задание для самостоятельного выполнения
- •Практическое занятие №3 Тема: «Приложения, использующие команды повторения» Часть 1 Приложение, использующее циклwhile
- •Часть 2 Приложение, использующее циклdo-while
- •Часть 3 Отладка программы. Использование оператора trace
- •Приложение, использующее циклfor
- •Часть 4 Погрешность. Понятие погрешности. Проверка полученного значения на соответствие заданной точности.
- •Пример программы, вычисляющей сумму ряда
- •Задания для самостоятельного выполнения
- •Практическое занятие №4. Тема: «Вспомогательные функции. Работа с элементом управления Список(List Box)» Элемент управления «Список»
- •Добавление вспомогательной функции с помощью мастера.
- •Пример 1 Приложение, которое находит дружественные числа на заданном отрезке
- •Пример 2 Программа, которая находит заданное количество чисел, которые равны сумме квадратов двух натуральных чисел
- •Задания для самостоятельного выполнения
- •Практическое занятие №5.
- •Тема: «Работа со строками».
- •Пример 1
- •Программа, которая считывает строку символов, состоящую только из русских букв, точек и пробелов, и увеличивает длину строки, если она меньше заданной, вставляя пробелы между словами
- •Пример 2 Программа, которая считывает строку, содержащую числа, с проверкой допустимости вводимых символов и оставляет по 2 цифры после точки, удаляя остальные цифры дробной части
- •Пример 3 Программа, которая считывает строку символов и создает новую строку, заменяя заданное слово на другое.
- •Задания для самостоятельного выполнения
- •Практическое занятие №6 Тема: «Диалоговое приложение для работы с файлами»
- •6.1. Приложение, которое считывает файл посимвольно и делает ширину текста равной заданному количеству символов в строке.
- •6.2. Открытие и считывание файла. Нахождение строк, содержащих цифры. Запись нового файла
- •Задания для самостоятельного выполнения
- •Практическое занятие №7 Тема: «Однодокументное приложение для работы с файлами. Полосы прокрутки. Использование модальных диалоговых окон».
- •7.1. Простой пример однодокументного приложения для чтения текстового файла.
- •7.2. Простой пример однодокументного приложения, использующего класс документа для чтения файла и полосы прокрутки для отображения файла в окне.
- •Задания для самостоятельного выполнения
- •Практическое занятие №8 Тема: «Элементы графики. Использование мыши».
- •Задания для самостоятельного выполнения
Практическое занятие №3 Тема: «Приложения, использующие команды повторения» Часть 1 Приложение, использующее циклwhile
В качестве примера создадим диалоговое приложение, которое проверяет, является ли заданное число числом Фибоначчи. Числа Фибоначчи вычисляются по следующему правилу: F1 = 1, F2 = 1, Fi = Fi-1 + Fi-2.
Таким образом, ряд чисел Фибоначчи выглядит так:
1 1 2 3 5 8 13 21 34 55 и т.д.
Спроектируйте диалоговое приложение как показано на рисунке.
Свяжите с окнами редактирования переменные как показано в таблице.
-
IDC_EDIT1
CEdit edit
IDC_EDIT1
UINT number
IDC_EDIT2
CString rez
Рис.54
Связав с первым окном редактирования переменную edit категории Control, мы получим объект для управления состоянием окна редактирования.
Добавьте функцию для кнопки <Проверить> и вставьте в тело функции операторы, показанные ниже.
void CFibonachiDlg::OnButton1()
{
UpdateData();
UINT f1, f2=1, f3=1;
/* объявляем вспомогательные переменные и присваиваем им начальные значения */
while (f2 < number) // пока не дошли до заданного числа
{
f1 = f2; f2 = f3; f3 = f1 + f2;
/* вычисляем новое число Фибоначчи, при этом вся тройка сдвигается по числовой оси вправо */
}
if (f2 == number) rez = "Это число Фибоначчи";
else rez = "Не является числом Фибоначчи";
UpdateData(false);
edit.SetSel(0,-1);
edit.SetFocus();
/* по завершении вычислений выделяем текст в первом окне редактирования и делаем окно активным */
}
Часть 2 Приложение, использующее циклdo-while
Вкачестве примера создадим диалоговое приложение, которое считывает процент годовых начислений на бессрочный вклад в банке и определяет, через сколько месяцев вклад увеличится вдвое, если вкладчик не будет ни снимать, ни вносить деньги.
2.1. Спроектируйте диалоговое окно как показано на рисунке. Очевидно, что решение задачи не зависит от величины вклада (конечно, если он отличен от нуля).
Рис.55
2.2. Свяжите с окнами редактирования переменные как показано в таблице.
-
IDC_EDIT1
CEdit edit
IDC_EDIT1
double proc
IDC_EDIT2
int mun
2.3. Добавьте функцию для кнопки <Вычислить> и вставьте в тело функции операторы, показанные ниже.
void CVkladDlg::OnBnClickedButton1()
{
UpdateData();
double rez = 1; // Начальное значение вклада примем условно за 1
mun = 0;
double k = 1 + proc/1200;
/* Коэффициент увеличения вклада при помесячном начислении процентов (введенный процент делим на 12 и на 100) */
do
{
rez *= k;
// ежемесячно увеличиваем вклад на вычисленный процент
mun++; // увеличиваем количество месяцев
} while (rez < 2); // пока вклад не увеличился вдвое
UpdateData(false);
edit.SetFocus();
edit.SetSel(0,-1);
/* по завершении вычислений выделяем текст в первом окне редактирования и делаем окно активным */
}
Часть 3 Отладка программы. Использование оператора trace
Очень часто при написании программы возникают различные логические ошибки и нештатные ситуации. Для того чтобы их отыскать, разобраться откуда они возникли и исправить, необходима отладка программы. Чем больше отладочных сведений генерирует программа, тем проще искать ошибки. Макрос TRACE помогает разработчику выводить необходимую для него информацию в окно отладчика, что необходимо при поиске причин возникновения разных нештатных ситуаций, особенно если Вы не хотите прерывать выполнение программы. Анализируя выведенную в окно отладчика информацию, можно узнать, что пошло не так в процессе работы и на что стоит обратить внимание. ЗАМЕЧАНИЕ: не забывайте добавлять символы \n в конце отладочной строки, чтобы вывод был более читабельным. Реально, макросов (операторов) TRACE несколько вариантов:
TRACE, TRACE0, TRACE1, TRACE2, TRACE3. Логика здесь такова: цифра в конце каждого из них указывает на количество параметров. Вы можете пользоваться любым из них. Оператор поддерживает форматный вывод так же, как и функция printf. Передавать оператору можно любое количество параметров, но не меньше одного. Первым параметром здесь записывается строка формата, а вторым, третьим и т.д. – значения переменных, которые Вы хотите проследить. НАПОМИНАНИЕ: если в строке формата встречаются специальные комбинации символов после знака %, функция пытается вместо них подставить значения остальных параметров. Виды специальных символов:
%c – вывод символа;
%s – вывод строки символов;
%d, %i – вывод целого десятичного числа со знаком;
%o – вывод целого восьмеричного числа;
%u – вывод целого десятичного числа без знака;
%x – вывод целого шестнадцатеричного числа;
%f – вывод дробного числа в фиксированном формате;
%e – вывод дробного числа в научном формате;
%g – вывод дробного числа в научном или фиксированном формате;
%p – вывод указателя в шестнадцатеричном виде.
Еще раз обратим Ваше внимание на то, что оператор TRACE выводит отладочную информацию при запуске программы в режиме отладки. Для того чтобы запустить Ваше приложение в режиме отладки можно воспользоваться пунктами меню Debug -> Start Debugging или «горячей» клавишей F5(подробно этот режим мы уже рассматривали на первом практическом занятии). Смотреть отладочные сведения следует в окне вывода Output (его мы также рассматривали на первом практическом занятии, знакомясь со средой разработки).