- •Программирование на языке visual basic 2005
- •Лабораторная работа № 1. Изучение интегрированной среды разработки Visual Studio 2005
- •Основные сведения об интегрированной среде разработки
- •1.6. Вид формы с калькулятором
- •Лабораторная работа №2 Отладка программ и обработка ошибок в Visual Basic 2005 Цель лабораторной работы:
- •Основные сведения о средствах отладки и обработки ошибок
- •Средства обнаружения и предупреждения возникновения синтаксических ошибок
- •Обработка ошибок времени выполнения
- •Средства обнаружения логических ошибок
- •Выполнение лабораторной работы
- •Лабораторная работа №3 Создание и обработка файлов Цель лабораторной работы:
- •Выполнение лабораторной работы
- •Лабораторная работа № 4. Разработка и отладка приложения по индивидуальному заданию
- •Лабораторная работа 5
- •5.1. Наследование формы
- •5.2. Настройка производной формы
- •5.3. Создание собственных базовых классов
- •5.3.1. Добавление в проект нового класса
- •Создание проекта Person Class
- •Объявление переменных класса
- •Создание свойств
- •Создание метода
- •Создание объекта с помощью нового класса
- •5.4. Наследование базового класса
- •Использование ключевого слова Inherits
- •Краткая справка по лабораторной работе 5
- •Приложение 1
- •Приложение 2
- •Приложение 3
- •Библиографический список
1.6. Вид формы с калькулятором
Форма в окне конструктора форм после размещения элементов будет иметь вид, представленный на рис. 1.6.
-
Разработаем программный код, представляющий собой набор процедур выполняющих обработку событий, возникающих при работе в приложении Калькулятор.
Основные сведения об используемых в процедурах операторах Visual Basic приведены в приложении 1.
Выполнение лабораторной работы
-
Выполнить запуск Visual Studio 2005. Для этого следует выполнить следующие действия:
-
нажать на панели задач кнопку Пуск;
-
в открывшемся главном меню Windows выбрать команду Программы;
-
в появившемся подменю выбрать Microsoft Visual Studio 2005
-
в новом подменю также выбрать Microsoft Visual Studio 2005.
-
Создать новый проект. Предварительно создайте в папке Мои документы личную папку (имя папки должно соответствовать фамилии студента выполняющего лабораторную работу). Теперь создайте проект. Для этого на стартовой странице нажать кнопку Create Project. В диалоговом окне New Project выбрать тип проекта Visual Basic Projects, в качестве шаблона - Windows Application. Создаваемый новый проект имеет по умолчанию имя WindowsApplication1. Задайте своё имя проекта (например, Calc), а также выберите папку хранения проекта, для этого нажмите кнопку Browse и выберите ранее созданную папку. Теперь нажмите кнопку Ok. В указанной папке Visual Studio создаст вложенную папку, назовет ее именем проекта и разместит в этой папке файлы проекта.
-
Выполнить настройку параметров формы.
-
Изменить размеры окна формы Form1, используя маркеры выделения формы и мышь.
-
Выполнить настройку параметров формы в окне свойств. Для этого указанным свойствам задать значения в соответствии с данными таблицы 1.2.
Таблица 1.2
Описание свойства |
Свойство |
Значение |
Изменить имя формы |
Name |
FormCalc |
Задать имя окна |
Text |
Калькулятор |
Задать стиль обрамления рамки |
FormBorderStyle |
Fixed Dialog (двойная рамка) |
Задать цвет фона формы |
BackColor |
Любое на вкладке Custom |
Задать положение формы по центру экрана |
StartPosition |
CenterScreen |
Задать размеры формы |
Size Width Height |
400 360 |
-
Научиться изменять положение формы на экране с помощью свойств формы. В пункте StartPosition выбрать значение Manual и изменить значений свойств Х и Y в категории Location.
-
Разместить и выполнить настройку элементов управления в форме.
-
Двойным щелчком по элементу TextBox разместить поле ввода первого операнда. Оно получит имя TextBox1. Отрегулировать мышью положение текстового поля. Размер поля 120х20 определить с помощью свойств Width и Height в категории Size.
-
Текстовое поле для ввода второго операнда создать копированием уже размещенного элемента в форму через буфер обмена (Clipboard). Для этого необходимо выделить текстовое поле и выполнить команду Copy из контекстного меню или из меню Edit, а затем команду Paste (она находиться там же). Поскольку поле ввода с именем TextBox1 уже существует, новое поле получит имя TextBox2. Измените имена только что созданных объектов (значение свойства Name) следующим образом: TextBox1 замените на txtOp1, а TextBox2 на txtOp2 и удалите значения свойства Text.
-
Для набора значения операнда разместить в форме кнопки управления. Для этого дважды щелкнуть по элементу Button. Отрегулировать мышью положение кнопки. Свойствами Width и Height задать размер кнопки 32х24. Копированием через буфер обмена создать 12 кнопок (10 кнопок отвечают за цифры, 1 за десятичную точку, а последняя кнопка за переключение знака). Для каждой из 12 кнопок изменить в окне свойств имя и текст в соответствии с таблицей 1.3.
-
Таблица 1.3
Наименование кнопки |
Свойства |
|
Текст |
Имя |
|
Цифра 0 |
0 |
btnNum0 |
Цифра 1 |
1 |
btnNum1 |
Цифра 2 |
2 |
btnNum2 |
Цифра 3 |
3 |
btnNum3 |
Цифра 4 |
4 |
btnNum4 |
Цифра 5 |
5 |
btnNum5 |
Цифра 6 |
6 |
btnNum6 |
Цифра 7 |
7 |
btnNum7 |
Цифра 8 |
8 |
btnNum8 |
Цифра 9 |
9 |
btnNum9 |
Десятичная точка |
, |
btnDecPoint |
Изменение знака |
+/- |
btnOposit |
-
Выбрать на панели инструментов элемент GroupBox. Перейти в окно конструктора форм и установить указатель мыши (он примет форму крестика) левее и выше левой верхней кнопки. Удерживая левую клавишу мыши растянуть рамку вниз и вправо вокруг 12 кнопок. Добавленная в форму рамка расположилась поверх группы кнопок. Нужно переместить ее за кнопки. Для этого следует выделить рамку и из контекстного меню рамки выполнить команду Send to Back (На задний план). Удалить значение свойства Text. Установить цвет фона рамки такой же, как и цвет фона формы (значение свойства BackColor). Установить стиль обрамления – стандартная рамка (значение Standard свойства FlatStyle).
-
Аналогично действиям, описанным в п. 4.4. разместить слева от группы кнопок набора числа шесть кнопок. Установить размер кнопок 40х24. Изменить имена кнопок и надписи на них следующим образом:
-
для первой кнопки указать имя btnPlus, надпись (свойство Text) – «+»;
-
для второй – имя btnMinus, надпись – «-»;
-
для третьей – имя btnMult, надпись – «*»;
-
для четвертой – имя btnDevide, надпись - «:»;
-
для пятой – имя btnMod, надпись - «Mod»
-
для шестой – имя btnPower, надпись – «a^b».
-
Аналогично действиям п. 4.5. добавить в форму элемент GroupBox и заключить в рамку группу кнопок операций.
-
Разместить в форме элемент Label для отображения знака выполняемой операции. Для этого дважды щелкнуть по элементу Label. Отрегулировать мышью положение элемента. Свойствами Width и Height задать размер надписи 45х23. Чтобы выделить надпись в форме, сделать ее “утопленной”, установить свойство BorderStyle в Fixed3D. Надпись Label1 удалить (значение свойства Text) и изменить имя элемента Label1 на lblOper.
-
Аналогично действиям пункта 4.8 расположить элемент Label для отображения результата вычисления. Установить размер элемента – 120х20, имя элемента – lblRes, стиль рамки – Fixed3D, удалить значение свойства Text.
-
Выше нижней границы формы расположить элемент Label с именем lblMes, с пустой надписью и без «утопления», размером 265х20. Чтобы сделать элемент невидимым, установить цвет фона таким же, как и у формы (свойство BackColor). Эта надпись будет отображать предупредительное сообщение о невозможности выполнения операции.
-
Разместить в форме элемент Button с именем btnClear и надписью Очистка.
-
Разместить в форме элемент Button с именем btnExit и надписью Выход.
-
Выполнить разработку программного кода выполняющего обработку событий возникающих при работе с приложением.
-
Выполнить создание процедуры набора числа. Набор значения операнда осуществляется в нашем приложении мышью посредством нажатия кнопок числа (элемент btnNumX, где Х – номер кнопки соответствующий цифре). Поэтому придётся создавать отдельную процедуру для каждой кнопки в отдельности. Для этого необходимо двойным щелчком мыши по кнопке отвечающей за ввод цифры, перейти в режим редактирования кода. После двойного щелчка по кнопке btnNum0 вы перейдёте в редактор кода и увидите следующий текст, расположенный в двух строках:
Private Sub btnNum0_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles btnNum0.Click
End Sub
Строка, начинающаяся со слов Private Sub, открывает процедуру, а строка End Sub соответственно закрывает её. Код для процедуры пишется между этих строк.
Добавить в имеющуюся заготовку процедуры строки в соответствии с текстом процедуры:
Private Sub btnNum0_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs)_ Handles btnNum0.Click
If i = 1 Then
txtOp1.Text = txtOp1.Text & 0
ElseIf i = 2 Then
txtOp2.Text = txtOp2.Text & 0
End If
End Sub
Те же самые действия выполнить для остальных кнопок, только в конце строк txtOp1.Text = txtOp1.Text & 0 и txtOp2.Text = txtOp2.Text & 0 вместо 0 написать цифру, соответствующую кнопке.
Значение переменной i определяет, в какой операнд добавляется цифра. Переменная i будет использоваться в нескольких процедурах, поэтому ее нужно объявить для всей формы, для этого из правого списка выберите Declarations, вы увидите две строки:
Public Class FormCalc
Inherits System.Windows.Forms.Form
Сразу после них объявите переменную i, введя следующую строку:
Dim i As Integer
-
Выполнить создание процедуры инициализации переменной i. Процедура должна выполняться при загрузке формы, поэтому в окне редактора выбрать из раскрывающегося списка элементов – FormCalc Events, из списка событий – Load. Ввести текст процедуры:
Private Sub FormCalc_Load(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load
i = 1
End Sub
-
Выполнить создание процедуры добавления десятичной точки. Для набора текста процедуры в окне редактора дважды щелкнуть по кнопке btnOposit. Ввести текст процедуры:
Private Sub btnOposit_Click(ByVal sender As _ Object, ByVal e As System.EventArgs) _ Handles btnOposit.Click
If i = 1 Then
txtOp1.Text = -Val(txtOp1.Text)
ElseIf i = 2 Then
txtOp2.Text = -Val(txtOp2.Text)
End If
End Sub
-
Выполнить создание процедуры изменения знака числа. Для набора текста процедуры в окне редактора дважды щелкнуть по кнопке btnDecPoint. Ввести текст процедуры:
Private Sub btnDecPoint_Click(ByVal sender _ As System.Object, ByVal e As System.EventArgs) _ Handles btnDecPoint.Click
If i = 1 Then
txtOp1.Text = txtOp1.Text & "."
ElseIf i = 2 Then
txtOp2.Text = txtOp2.Text & "."
End If
End Sub
-
Выполнить создание процедуры присвоения переменной i номера соответствующего элемента. Процедура должна выполняться в тот момент, когда курсор будет помещен в одно из текстовых полей, такое событие называется получением фокуса. В окне редактора из списка элементов выбрать txtOp1, из списка событий – GotFocus. Ввести текст процедуры:
Private Sub txtOp1_GotFocus(ByVal sender As _ Object, ByVal e As System.EventArgs) _ Handles txtOp1.GotFocus
i = 1
End Sub
В окне редактора из списка элементов выбрать txtOp2, из списка событий – GotFocus. Ввести текст процедуры:
Private Sub txtOp2_GotFocus(ByVal sender As _ Object, ByVal e As System.EventArgs) _ Handles txtOp2.GotFocus
i = 2
End Sub
-
Выполнить создание процедуры очистки полей ввода операндов. Она должна выполняться для элемента txtOp1 и txtOp2 при выполнении двойного щелчка по элементу (событие DoubleClick). Ввести текст процедур:
Private Sub txtOp1_DoubleClick(ByVal sender _ As Object, ByVal e As System.EventArgs) _ Handles txtOp1.DoubleClick
txtOp1.Text = ""
End Sub
Private Sub txtOp2_DoubleClick(ByVal sender _ As Object, ByVal e As System.EventArgs) _
Handles txtOp2.DoubleClick
txtOp2.Text = ""
End Sub
-
Выполнить создание процедуры сложения чисел. Она должна выполняться при нажатии на кнопку btnPlus (событие Click). Процедура должна найти сумму операндов (элементы txtOp), свойству Text элемента lblRes присвоить полученное значение, а свойству Text элемента lblOper присвоить значение “+”. Для набора текста процедуры в окне редактора дважды щелкнуть по кнопке btnPlus. Ввести текст процедуры:
Private Sub btnPlus_Click(ByVal sender _ As System.Object, ByVal e As System.EventArgs) Handles btnPlus.Click
lblRes.Text = Val(txtOp1.Text) + Val(txtOp2.Text)
lblOper.Text = "+"
End Sub
-
Руководствуясь указаниями пункта 5.7 для элемента btnMinus создать процедуру вычитания чисел. Текст процедуры:
Private Sub btnMinus_Click(ByVal sender _ As Object, ByVal e As System.EventArgs) _ Handles btnMinus.Click
lblRes.Text = Val(txtOp1.Text) - Val(txtOp2.Text)
lblOper.Text = "-"
End Sub
-
Аналогично для элемента btnMult создать процедуру умножения чисел. Текст процедуры:
Private Sub btnMult_Click(ByVal sender _ As System.Object, ByVal e As System.EventArgs) Handles btnMult.Click
lblRes.Text = Val(txtOp1.Text) * Val(txtOp2.Text)
lblOper.Text = "*"
End Sub
-
Аналогично для элемента btnDevide создать процедуру деления чисел. Текст процедуры:
Private Sub btnDevide_Click(ByVal sender _ As System.Object, ByVal e As System.EventArgs) Handles btnDevide.Click
If Val(txtOp2.Text) <> 0 Then
lblRes.Text = Val(txtOp1.Text) / Val(txtOp2.Text)
lblOper.Text = "/"
Else
lblMes.Text = "Деление на ноль запрещено"
End If
End Sub
-
Аналогично для элемента btnMod создать процедуру нахождения остатка от деления чисел. Текст процедуры:
Private Sub btnMod_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles btnMod.Click
If Val(txtOp2.Text) <> 0 Then
lblres.Text=Val(txtOp1.Text) Mod Val(txtOp2.Text)
lblOper.Text = "Mod"
Else
lblMes.Text = "Деление на ноль запрещено"
End If
End Sub
-
Аналогично для элемента btnPower создать процедуру возведения числа в степень. Текст процедуры:
Private Sub btnPower_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles btnPower.Click
If Val(txtOp2.Text) > 0 Then
lblRes.Text = Val(txtOp1.Text) ^ _ Val(txtOp2.Text)
lblOper.Text = "^"
Else
lblMes.Text = "Думай, что делаешь!"
End If
End Sub
-
Для элемента btnClear создать процедуру очистки содержимого всех элементов, хранящих данные предыдущей операции. Текст процедуры:
Private Sub btnClear_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles btnClear.Click
txtOp1.Text = ""
txtOp2.Text = ""
lblMes.Text = ""
lblOper.Text = ""
lblRes.Text = ""
End Sub
-
Запрограммировать выход из приложения. Для элемента btnExit создать процедуру и проверить ее работу:
Private Sub btnExit_Click(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles btnExit.Click
End
End Sub
-
Сохранить проект.
-
В окне Solution Explorer выбрать объект проект Calc и выполнить из контекстного меню команду Properties. В окне Calc Properties Pages из списка Startup object выбрать объект FormCalc, нажать Ok.
-
Запустить приложение Калькулятор в среде Visual Studio 2005. Для этого необходимо выполнить команду Start из меню Debug, или нажать клавишу F5. Затем:
-
если текст кода набрали верно, то на экране поверх других окон появится окно приложения Калькулятор. Проверить работу Калькулятора, выполнив все операции. Выход из приложения выполнить нажатием кнопки Выход. Затем перейти к выполнению пункта 11;
-
если произошло аварийное завершение работы компилятора, перейти к пункту 9;
-
если калькулятор работает не правильно, завершить выход из приложения (кнопка Выход) и перейти к выполнению пункта 10.
-
Завершить работу нажатием команды Stop Debugging меню Debug или нажав кнопку (Stop Debugging) инструментальной панели Debug .
-
Исправить ошибки и перейти к выполнению пункта 8.
-
Сохранить проект.
-
Выполнить команду Exit меню File для завершения работы Visual Studio 2005.
-
Запустить приложение Калькулятор. Исполняемый exe-файл проекта создаётся автоматически при выполнении команды Start и хранится в подкаталоге bin, того каталога, где хранится проект.