Практическое занятие № 1
ТЕМА: Расчет элементарных выражений
ЦЕЛЬ РАБОТЫ: получить практические навыки по использованию стандартных функций C# при решении задач
Ход работы
Составить программу для нахождения значения сложных арифметических функций. При этом оформить окно программы следующим способом:

Окно должно запускаться по центру экрана, выключить возможность изменения размера окна и убрать кнопку для разворачивания окна на весь экран. Название программы "Расчеты функции". Для программы задайте произвольный значок-иконку.
Указания: запустите среду разработки "Visual Studio". В окне щелкните на кнопке "Создать проект". В следующем окне выберите тип проекта "Приложение Windows Form" и в поле "Имя" укажите произвольное имя нового проекта.
В результате отобразится форма для проектирования интерфейса.
Для формы задайте следующие свойства: FormBorderStyle=FixedSingle (окно не растягивается), MaximizeBox=False (нет кнопки разворачивания окна), Text=Расчеты функции (заголовок формы), Icon=укажите файл иконки (значок формы), StartPosition=CenterScreen (окно по центру экрана);
В окне разместите четыре текстовых поля для ввода исходных данных и одно поле для отображения результата. Каждое поле должно иметь разный цвет фона, всплывающую подсказку. Выравнивание в полях, шрифт, размер и начертания символов произвольные. В поле для ответа отключить возможность его редактирования с клавиатуры. Для каждого поля с помощью надписей присвойте горячие клавиши.
Указания: на форме разместите пять текстовые поля (компонент TextBox), для которых установите следующие свойства: Text очистить (начальное значение поля), BackColor=укажите цвет (цвет фона), TextAlign = выравнивание на ваш выбор, Font=параметры шрифта в поле.
Для создания всплывающей подсказки нанесите на форму компонент ToolTip и задайте свойства: ShowAlways = true (отображать подсказки автоматически). Также можете настроить внешний вид подсказок с помощью свойств: BackColor, IsBaloon, ToolTipIcon, ToolTipTitle. После добавления данного компонента во всех других компонентах на форме появится свойство ToolTip on ToolTip1, в котором можно ввести тексты подсказок для нужных компонентов.
В поле TextBox5 установите свойство Enabled=false (блокирование доступа к полю на форме). Возле каждого из полей разместите надпись (компонент Label) и в свойстве Text введите текст для подписывания каждой надписи, при этом перед нужной буквой в надписи введите символ &.
Для того, чтобы надпись
позволяла переходить в нужное текстовое поле необходимо у соответствующей
надписи установить свойство TabOrder на 1 меньше, чем
это же свойство у поля. Наиболее просто поменять эти свойства, если щелкнуть на
панели инструментов на кнопке "Последовательность перехода"
.В результате возле каждого
элемента на форме появится рамка с текущим значением свойства
TabOrder. Двойным щелчком в рамке можно изменить эти значение по вашему
усмотрению. По завершении редактирования нажмите на кнопку " Последовательность
перехода " еще раз.
Разместите на форме кнопку для очистки полей. Кнопка должна иметь рисунок и реакцию на нажатие Escape. При наведении указателя мыши на кнопку, вид указателя должен меняться на заданный.
Указания: на форме разместите кнопку Button, задав ей следующие свойства: Text=Очистить (надпись на кнопке), Cursor=любой вид указателя мыши при наведении на кнопку, Image - укажите произвольную иконку для кнопки, ImageAlign = MiddleLeft (тип расположения иконки на кнопке).
Чтобы кнопка реагировала на клавишу Escape, выделите форму и в свойстве CancelButton укажите имя созданной кнопки.
Кнопка должна выдавать запрос на осуществление операции и очищать поля, если пользователь дал утвердительный ответ.
Указания: для создания кода
кнопки выделите, перейдите в окно свойств кнопки (если окно не отображается, то
щелкните по кнопке правой кнопкой мыши и выберите команду "свойства"), а затем в
окне свойств щелкните на кнопке "События"
. В результате откроется
список событий. В этом списке найдите событие Click и выполните двойной щелчок
справа от названия события. В результате откроется окно для ввода кода для
кнопки.
Введите код:
void button1_Click(object sender, EventArgs e)
{
//выдаем запрос на выполнение операции
//если пользователь ответил "ДА"
if (MessageBox.Show("Действительно очистить поля?",
"Подтвердите операцию",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2)==DialogResult.Yes)
{
//очищаем все поля
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
//ставим курсор в первое поле
textBox1.Focus();
}
}
Разместите на форме кнопку для выполнения расчетов. Кнопка должна иметь рисунок и реакцию на нажатие клавиши ENTER При наведении указателя мыши на кнопку, вид указателя должен меняться на заданный.
Указания: на форме разместите кнопку Button, задав ей следующие свойства: Text=Рассчитать (надпись на кнопке), Cursor=любой вид указателя мыши при наведении на кнопку, Image - укажите произвольную иконку для кнопки, ImageAlign = MiddleLeft (тип расположения иконки на кнопке).
Чтобы кнопка реагировала на клавишу Enter, выделите форму и в свойстве AccessButton укажите имя созданной кнопки.
Функция для расчетов имеет вид:
При этом должно спрашиваться разрешение на выполнение вычислений. Если разрешение получено (ответ "Да"), то вычисляется значение функции и ответ отображается в 5 поле с точностью до 3 знаков после запятой. Проверка: при a=1, b=8, c=3, d=2 ответ=2,644;
Указания: для создания кода кнопки выделите ее, в списке событий найдите событие Click и выполните двойной щелчок справа от названия события. В результате откроется окно для ввода кода для кнопки.
Введите код:
void button2_Click(object sender, EventArgs e)
{
//выдаем запрос на выполнение расчетов
//если пользователь ответил "НЕТ"
if (MessageBox.Show("Рассчитать выражение?",
"Подтвердите операцию",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2)==DialogResult.No)
//завершаем работу процедуры
return;
//описываем переменные для работы
double a,b,c,d,rez;
//каждое поле записываем как число в переменную
a=Convert.ToDouble(textBox1.Text);
b=Convert.ToDouble(textBox2.Text);
c=Convert.ToDouble(textBox3.Text);
d=Convert.ToDouble(textBox4.Text);
//выполняем расчет выражения
rez=(7+Math.Exp(Math.Sqrt(a)+1))/
(Math.Sqrt(Math.Pow(Math.Log(Math.Pow(b,2)-5),3)-4)+
Math.Sin(Math.Pow(c,2)))+Math.Pow(Math.Sin(d),3/4.0);
//выводим в поле ответ с округлением до 3 знаков
textBox5.Text=Convert.ToString(Math.Round(rez,3));
}
При выходе из программы запрашивать разрешение на выполнение данной операции.
Указания: для создания кода выделите форму, в списке найдите событие FormClosing и выполните двойной щелчок справа от названия события. В результате откроется окно для ввода кода.
Введите код:
void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//выдаем запрос на выход из программы
//если пользователь ответил " НЕТ"
if (MessageBox.Show("Выйти из программы?",
"Подтвердите операцию",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2)==DialogResult.No)
//активируем признак запрета выхода
e.Cancel=true;
}