Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаФИН kosh.doc
Скачиваний:
29
Добавлен:
15.02.2016
Размер:
3.16 Mб
Скачать

8. Написание программного кода для выполнения вычислений.

Итак, давайте запрограммируем кнопку таким образом, чтобы при нажатии на неё происходило сложение чисел введённых в первом и втором текстовых полях, а результат наших вычислений выводился в третьем текстовом поле.

Измените код функции как показано ниже (комментарии набирать не нужно).

void CIvanovDlg::OnBnClickedButton1()

{

UpdateData(true);

//Присвоить переменным, связанным с элементами управления,

//актуальные значения (те, которые сейчас заданы в окне).

c = a + b; // Выполнить вычисления и запомнить результат

UpdateData(false);

//Обновить значения элементов управления на изменённые нами

}

9. Тестирование разработанного приложения.

Скомпилируйте (F7) и запустите программу (<Ctrl> + F5). Введите числа в поля ввода, нажмите на запрограммированную кнопку (переход между элементами управления - Tab и Shift+Tab). Задайте другие числа, нажмите клавишу <Enter> (кнопка должна сработать). Закройте окно.

10. Исправление ошибки, связанной сUnicode.

ВНИМАНИЕ: если Вы при работе с мастером создания MFC при­ложений не убрали галочку рядом с надписью Use Unicode libraries (см. рис. 5), то при работе со строками компилятор будет выдавать сооб­ще­ния об ошибках.

В этом случае, для того, чтобы устранить появившуюся ошибку, вы­пол­ни­­те следующие действия: в окне Solution Explorer щелкните правой кла­ви­шей мыши по имени проекта. В появившемся контекстном меню вы­берите пункт Properties (Свойства) (см. рис.47).

Рис. 47 Контекстное меню проекта

Откроется окно свойств проекта (Property Pages) (см. рис. 48). В списке настроек слева, выберите Configuration Properties, в раскрывшемся списке выберите пункт General (Общие). В правой части окна в группе свойств Project Defaults (Настройки проекта по умолчанию) найдите свойство Character Set (Набор символов) и с помощью списка, расположенного справа, установите его значение Not Set (Не установлено) (см. рис. 48). Нажмите на кнопку Применить, затем на кнопку OK.

После этого откомпилируйте (Build) проект снова.

Рис.48 Окно свойств проекта

Задания для самостоятельного выполнения

Создайте приложение для выполнения пяти простейших арифметических операций над двумя числами (сложение, вычитание, умножение, деление, остаток от деления). Окно приложения нужно спроектировать в двух вариантах:

1 вариант: одно окно для вывода результата и несколько кнопок.

Рис.49

2 вариант: одна кнопка и для вывода результата каждой операции – свое окно.

Настройте порядок переключения между эле­ментами управления (окно для ввода первого числа должно иметь номер 1). Окна для вывода результатов операций сделайте доступными только для чтения. Кнопку «Вычислить» сделайте кнопкой по умолчанию.

Продемонстрируйте результаты само­сто­я­тель­ной работы преподавателю

Рис.50

Практическое занятие №2. Тема: «Приложения, использующие команды ветвления». Часть 1 Решение уравнения

В качестве примера диалогового приложения, использующего вложен­ные операто­ры if, возьмем программу решения уравнения длялюбых a, b, c. Известно, что решением этого уравнения являются , гдеd = b2 - 4ac при .

Хорошая программа должна выдавать ответ в любом случае, поэтому мы должны рассмотреть все возможные варианты ответа. Если , то наша программа будет ре­шать квадратное уравнение, в противном случае – линейное. В каждом из этих случаев должен быть выдан один из трех вариантов ответа, следовательно, всего эта программа должна выдавать один изшести вариантов сообщений.

  1. Создание проекта программы

Запустите Microsoft Visual C++ и с помощью мастера MFC Application создай­те диалоговое приложение в рабочем каталоге. В качестве имени проекта выберите свою фамилию, записанную латинскими буквами, и добавьте к ней номер приложе­ния.

  1. Проектирование диалогового окна

    1. С помощью окна Solution Explorer откройте свойства диалоговой па­не­ли и установите для нее русский язык.

    2. Измените заголовок диалогового окна. Для этого щелкните правой кнопкой мыши по поверхности диалогового окна, не занятой элементами управления, и в поя­вив­шем­ся окне выберите Properties. Откроется другой вариант окна Properties. В поле Caption задайте заголовок окна, который Вы видите на рисунке 1.

2.3. Спроектируйте диалоговую панель как показано на рисунке 1. Для того, чтобы надпись располагалась в две строки, измените границы статического текста. Кнопку <Выход> сде­лайте из кнопки <OK>. У кнопки <Выход> отмените свойство Default button, а у кноп­ки <Решить уравнение> установите, т.е. сделайте эту кнопку кнопкой по умолчанию. В левой части диалогового окна мы будем задавать исходные данные, а в правой части мы должны получить сообщение о количестве корней уравнения и значения этих кор­ней.

Рис.51 Вид главного окна приложения.

2.4. Откройте поочередно окна свойств окон редактирования и проверьте: в левом столб­це окна редактирования должны иметь идентификаторы (надпись в поле ID: ) IDC_EDIT1, IDC_EDIT2, IDC_EDIT3, в правом – IDC_EDIT4, IDC_EDIT5, IDC_EDIT6. Если идентификаторы отличаются от нужных, из­ме­ните их. Поскольку среда не позволяет задавать повторяющиеся идентифи­каторы, используйте при замене несколько измененный их вид, например IDC_EDIT11.

2.5. Измените свойства верхнего окна редактирования в правом столбце (IDC_EDIT4) так, чтобы сделать его многострочным: Multiline - true, Auto Hscroll – false, Auto VScroll – true. Размеры окна измените так, чтобы в этом окне были видны несколько строчек текста.

2.6. У окон редактирования в правом столбце диалогового окна снимите флажок Tab stop. Это означает, что при нажатии клавиши <Tab> эти окна будут пропускаться.

2.7. Выровняйте управляющие элементы.

  1. Определение порядка активизирования управляющих элементов клавишей Tab

Выберите в главном меню Layout | Tab order и щелкните по­сле­до­ва­тель­но по окнам редактирования для ввода коэффициентов (они должны получить номера от 1 до 3) и по кнопкам (они должны получить номера 4 и 5). Остальные номера не имеют значения. Таким образом мы определили, в какой последовательности будут активизироваться элементы управления при нажатии клавиши <Tab>.

  1. Компиляция и запуск программы

4.1. Выберите в меню Build | Build Solution (F7). Процесс компиляции займет некоторое время.

4.2. Выполните команду Debug | Start Without Debugging, или нажмите <Ctrl> + F5. Убедитесь, что приложение запускается нормально.

  1. Связывание программного кода с элементами управления

    1. Щелкайте по окнам редактирования правой кнопкой мыши и с помощью команды контекстного меню Add variable свяжите окна редактирования с переменными в соответствии с таблицей:

Идентифи­ка­тор

Имя пе­ременой

тип перемен.

Идентифи­катор

имя пе­ременой

тип перемен.

IDC_EDIT1

a

double

IDC_EDIT4

text

CString

IDC_EDIT2

b

double

IDC_EDIT5

sx1

CString

IDC_EDIT3

c

double

IDC_EDIT6

sx2

CString

Обратите внимание на то, что переменные sx1 и sx2 имеют тип CString, это необходимо для того, чтобы соответствующие окна сделать пустыми, если уравнение не имеет решений.

    1. Двойным щелчком по кнопке «Решить уравнение» добавьте функцию-об­работчик для этой кнопки.

    2. Вы увидите заготовку функции, которая будет выполняться при нажатии кнопки “Ре­шить уравнение”. Вставьте в нее операторы, показанные ни­же.

void CkvurDlg::OnBnClickedButton1()

{

UpdateData(true);

double d = b * b - 4 * a * c;

double x1, x2;

if ( a != 0 ) // Решение квадратного уравнения:

{

if ( d > 0 )

{

text="Уравнение имеет два корня:";

x1=(-b + sqrt(d))/(2*a);

x2=(-b - sqrt(d))/(2*a);

sx1.Format("%g",x1);

sx2.Format("%g",x2);

}

else if (d==0)

{

text="Уравнение имеет один корень";

x1 = -b/(2*a);

sx1.Format("%g",x1);

sx2.Empty();

}

else

{

text="Действительных корней нет";

sx1.Empty(); sx2.Empty();

}

}

else // Решение линейного уравнения:

{

if ( b )

{

text="Уравнение имеет один корень:";

x1 = -c / b;

sx1.Format("%g",x1);

sx2.Empty();

}

else if (!c)

{

text = "Решением уравнения является любое число";

sx1.Empty(); sx2.Empty();

}

else

{

text = "Уравнение не имеет решений";

sx1.Empty(); sx2.Empty();

}

}

UpdateData(false);

}

5.4.Перейдите в начало файла, нажав <Ctrl> + <Home>, и вставьте команду #include <math.h> после уже имеющихся там команд такого типа.

    1. Сохраните проект, откомпилируйте и запустите программу.

Выполните программу для следующих исходных данных:

1 2 –3

1 2 1

1 2 3

0 2 3

0 0 2

0 0 0

Определите, какой ответ должна выдавать программа для каждого из этих наборов. Убедитесь, что программа выдает именно тот ответ, который дол­жен быть.

    1. Закройте окно программы.

    2. В окне Solution Explorer перейдите на страницу ресурсов и задайте русский язык для панели IDD_ABOUTBOX. Эта панель появляется во время работы Вашей программы при вызове системного меню Вашей программы (кнопка вызова – значок MFC в верхнем левом углу диалоговой панели) и выборе из этого меню команды About

    3. Теперь сделайте двойной щелчок левой клавишей мыши по идентификатору IDD_ABOUTBOX, чтобы перейти в режим редактирования вида диалогового окна. Отредактируйте дату создания Вашей программы, задав текущую дату (для этого щелкните левой кнопкой мыши по строке Copyright, перейдите в окно Properties и в поле Caption измените текст). Добавьте статический текст на эту панель и напишите свою фамилию, имя, отчество, группу и подгруппу.

    4. Сохраните сделанные изменения, откомпилируйте программу, запустите ее и вызовите диалоговую панель ABOUT_BOX. Закройте программу.