Задание 1. Ознакомьтесь с теоретическим материалом, приведенным в пункте «Краткие теоретические положения» данных методических указаний.
Задание 2. Создание программы «Калькулятор».
Создайте новый проект. Форма «Калькулятор» содержит текстовые поля (TextBox) txt1 и txt2 для ввода данных, текстовое поле txtResult для вывода результата, 4 переключателя (RadioButton) с названиями rbAdd, rbSub, rbMul и rbDiv для выбора операции и кнопку button1 с надписью «Вычислить».
Текст функции обработки нажатия кнопки button1:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
//Объявляем переменные для вводимых чисел и результата
double x, y, z=0;
//Преобразуем текст из числовых полей в переменные Double
x = Convert::ToDouble(txt1->Text);
y = Convert::ToDouble(txt2->Text);
//Выполняем операцию, тип которой определяется
//на основе проверки значений св-ва Checked переключателей
if (rbAdd->Checked) z = x + y;
if (rbSub->Checked) z = x - y;
if (rbMul->Checked) z = x * y;
//В случае деления надо убедиться, что 2-е число
//не равно нулю.
if (rbDiv->Checked)
if (y!= 0)
z = x / y;
else
MessageBox::Show("На нуль делить нельзя!","Ошибка");
//Преобразуем значение переменной z из типа Double
//в строку и выводим ее в текстовое поле результата
txtResult->Text = Convert::ToString(z);
}
Сохраните приложение. Проверьте его работу.
Добавим в предыдущее приложение флажок (элемент CheckBox), который позволяет выводить в поле результата само арифметическое действие и результат его выполнения. Назовем флажок Check1.
Процедура button1_Click изменится следующим образом.
Вместо строк
'Преобразуем значение переменной z из типа Double в строку и
'выводим ее в текстовое поле результата
txtResult.Text = CStr(z)
необходимо написать:
//Проверяем флажок и, если он выбран, формируем строку
//в текстовом поле результата.
//Иначе выводим только одно число z
if (Check1->Checked)
{
String ^str_x = Convert::ToString(x);
String ^str_y = Convert::ToString(y);
String ^str_z = Convert::ToString(z);
if (rbAdd->Checked) txtResult->Text = str_x + "+" + str_y + "=" + str_z;
if (rbSub->Checked) txtResult->Text = str_x + "-" + str_y + "=" + str_z;
if (rbMul->Checked) txtResult->Text = str_x + "*" + str_y + "=" + str_z;
if (rbDiv->Checked && y!= 0) txtResult->Text = str_x + "/" + str_y + "=" + str_z;
}
else
txtResult->Text = Convert::ToString(z);
Сохраните измененное приложение. Проверьте работу всей программы. Покажите результат преподавателю.
Задание 3. Разработайте приложение по своему варианту (см. таблицу с вариантами). Убедитесь, что в программе нет синтаксических ошибок, и она работает. Рассчитайте контрольные значения для своей задачи и сравните их с результатами работы программы. Покажите результаты преподавателю.
Оформите отчет по работе.
Оформление отчета
Отчет по работе должен содержать:
× название и цель работы;
× номер варианта;
× для каждого из заданий по своему варианту – макет формы, текст задачи, текст кода обработчиков всех событий, схемы алгоритмов обработчиков всех событий, результаты работы программы.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Шилдт Г. С++: базовый курс, 3-е издание.: Пер. с англ. – М.: «Издательский дом «Вильямс», 2005. – 624 с.
2. Пахомов Б.И. С/С++ и MS Visual C++ для начинающих. – СПб.: БХВ-Петербург, 2008. – 624 с.
Разработал: канд. техн. наук, доц. Г.В. Басалова