Технология разработки приложения Калькулятор



 

Разработка любого приложения представляет собой многоэтапный процесс. Разрабатывая приложение Калькулятор будем придерживаться следующей технологии:

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

2. Сохраним новый проект в отдельной папке.

3. Выполним настройку параметров формы – окна приложения, используя для этого разные способы.

4. Выполним размещение и настройку элементов управления в форме в соответствии с проектом окна, представленного на рис. 1.1.

На этом этапе необходимо осуществить выбор элементов управления. Так как проект окна уже разработан на этапе постановки задачи, то выбираем следующие элементы управления:

- для полей ввода операндов элемент текстовое поле(TextBox);

- кнопки управления (CommamdButton)для набора значений операндов и выбора операций;

- элемент надпись (Label) для отображения знака операции, результата и выдачи предупредительного сообщения в случае невозможности выполнения операции;

- элемент рамка (Frame) для объединения кнопок в логические группы: кнопки набора числа и кнопки операций;

- для отделения результата от операндов элемент линия (Line).

После размещения элементов форма в окне конструктора форм будет иметь следующий вид (рис. 1.5):

 

Рис. 1.5. Вид формы

 

5. Разработаем программный код, представляющий собой набор процедур выполняющих обработку событий, возникающих при работе в приложении Калькулятор

Основные сведения об используемых в процедурах операторах Visual Basic приведены в приложении 1.

 

Выполнение лабораторной работы

 

1. Выполнить запуск Visual Basic 6. Для этого следует выполнить следующие действия:

- нажать на панели задач кнопку Пуск;

- в открывшемся главном меню Windows выбрать команду Программы;

- в появившемся подменю выбрать Microsoft Visual Basic 6.

Создать новый проект. Для этого на вкладкеNew(Новый) в диалоговом окнеNew Project(Новый проект) выбрать шаблон Standard EXEи нажать кнопкуОткрыть.

2. Созданный новый проект имеет по умолчанию имя Project1. Расположенное рядом с именем проекта выражение [design] указывает на текущий режим приложения – проектирование.

3. Используя команды главного меню сохранить проект. Проект состоит из входящих в него компонентов, таких как формы, модули кода, элементы управления и т. д., поэтому процесс сохранения проекта требует последовательного сохранения его компонентов. Сохранение проекта и входящих в его состав файлов целесообразно выполнять в отдельной, предварительно созданной папке.

Для сохранения проекта выполнить следующие действия:

- Создать папку с именем MyProject для хранения приложения «Калькулятор».

- В меню File (Файл) выбрать команду Save Project (Сохранить проект) или нажать кнопку Save Project на стандартной панели инструментов.

- В открывшемся диалоговом окне Save File As значение Form Files в списке Тип файла указывает, что сохраняется входящая в приложение форма. Используя раскрывающийся список Папка, выбрать папку MyProject, затем в поле Имя файла ввести имя формы Form1 и нажать кнопку Сохранить.

- Так как никаких компонентов, кроме формы, новое приложение не со­держит, появляется диалоговое окно Save Project As для сохранения самого проекта. По умолчанию в списке Папка выбрана папка, в которой сохранили форму. Ввести наименование проекта Calcи нажать кнопку Сохранить.

4. Выполнить настройку параметров формы.

4.1. Изменить размеры окна формы Form1, используя маркеры выделения формы и мышь.

4.2.  Выполнить настройку параметров формы в окне свойств. Для этого указанным свойствам задать значения в соответствии с данными таблицы 1.2:

 

Таблица 1.2.

Описание свойства Свойство Значение
Изменить имя формы Name FormCalc
Задать имя окна Caption Калькулятор
Задать стиль обрамления рамки BorderStyle 3-Fixed Dialog (двойная рамка)
Задать цвет фона формы BackColor Любое на вкладке Palette
Задать положение формы (по горизонтальной оси от левого края и по вертикальной оси от верхнего края) Left Top 3000 2000
Задать размеры формы Width (ширина) Height (высота) 5300   4900

 

4.3. После того как выполнена настройка параметров формы, просмотреть изображение проектируемой формы в окне макета формы. Если окно макета формы отсутствует на экране, вывести его командой Form Layout Window из меню View.

4.4.  Научиться изменять положение формы на экране в окне макета форм. Перемещая форму в окне макета наблюдайте за изменением значений свойств Left и Top.

4.5.  Расположить окно формы строго по центру. Для этого вызвать контекстное меню окна макета форм и в подменю пункта меню Startup Position (Стартовая позиция) выбрать Center Screen (Центр экрана).

5. Разместить и выполнить настройку элементов управления в форме.

5.1. Для более точного размещения элементов управления установить на вкладке General(Общее) в окне команды Options(Параметры) из менюTools более мелкий шаг сетки формы размером 60х60.

5.2.  Двойным щелчком по элементу TextBox разместить поле ввода первого операнда. Отрегулировать мышью положение текстового поля. Размер поля 1700х300 определить с помощью свойств Width и Height.

5.3. Тесктовое поле для ввода второго операнда создать копированием уже размещенного элемента в форму через буфер обмена (Clipboard). Для этого необходимо выделить текстовое поле и выполнить команду Copy из контекстного меню или из меню Edit, а затем команду Paste(она находиться там же). На запрос: “You already have a control “Text1”. Do you wait to creat a control array?” («У вас уже есть элемент “Text1”. Вы хотите создать массив элементов?») выбрать ответ «Да». Тем самым создается массив из двух элементов с общим именем Text1. Убедитесь, что в списке элементов окна свойств появились элементы Text1(0)и Text1(1). Для каждого элемента изменить в окне свойств имя Text1 на txtOp (свойство Name), надписи Text1 (значения свойства Text) удалить.

5.4. Для набора значения операнда разместить в форме массив элементов - кнопки управления. Для этого дважды щелкнуть по элементу CommandButton. Отрегулировать мышью положение кнопки. Свойствами Width и Height задать размер кнопки 495х315. Копированием через буфер обмена создать массив из 11 кнопок (см. п. 5.3). Для каждого элемента изменить в окне свойств имя CommandButton на cmdNum (свойство Name), надписи на кнопках (значения свойства Caption) изменить для элементов cmdNum(0)- cmdNum(9)соответственно на цифры от 0 до 9. Для cmdNum(10)установить надпись на кнопке – точка.

5.5. Добавить в форму кнопку для операции “изменить знак”, установить имя кнопки – cmdOpposit, надпись на кнопке – «-/+».

5.6. Выбрать на панели инструментов элемент Frame. Перейти в окно конструктора форм и установить указатель мыши (он примет форму крестика) левее и выше левой верхней кнопки. Удерживая левую клавишу мыши растянуть рамку вниз и вправо вокруг 12 кнопок. Добавленная в форму рамка расположилась поверх группы кнопок. Нужно переместить ее за кнопки. Для этого следует выделить рамку и из контекстного меню рамки выполнить команду Send to Back. Удалить надпись заголовка рамки (значение свойства Caption). Установить цвет фона рамки такой же, как и цвет фона формы (значение свойства BackColor). Установить стиль обрамления – одинарная рамки (значение 1- Fixed Single свойства BorderStyle).

5.7. Аналогично действиям, описанным в п. 5.4. разместить слева от группы кнопок набора числа шесть кнопок, однако при копировании кнопок в ответ на запрос “You already have a control “Text1”. Do you wait to creat a control array?” («У вас уже есть элемент “Text1”. Вы хотите создать массив элементов?») выбрать ответ «Нет». В этом случае мы добавили в форму шесть отдельных элементов CommandButton, а не массив элементов, как это было сделано выше. Изменить имена кнопок и надписи на них следующим образом:

- для первой кнопки указать имя cmdPlus, надпись –«+»;

- для второй – имя cmdMinus, надпись – «-»;

- для третьей – имя cmdMult, надпись – «*»;

- для четвертой – имя cmdDevige, надпись - «:»;

- для пятой – имя cmdMod, надпись - «Mod»

- для шестой – имя cmdPower, надпись – «a^b».

5.8. Аналогично действиям п. 5.6. добавить в форму элемент Frame и заключить в рамку группу кнопок операций.

5.9. Разместить в форме элемент Label для отображения знака выполняемой операции. Для этого дважды щелкнуть по элементу Label.Отрегулировать мышью положение элемента - надпись. Свойствами Width и Height задать размер надписи 495х315. Чтобы выделить надпись в форме, сделать ее “утопленной”, установить свойство BorderStyle в 1-Fixed Single. Надпись Label1 удалить (значение свойства Caption) и изменить имя элемента Label1 на lblOper.

5.10. Аналогично действиям пункта 5.9. разместить элемент Labelдля отображения результата вычисления. Установить размер элемента – 1700х300, имя элемента – lblRes, стиль рамки -. 1-Fixed Single, надпись удалить (значение свойства Caption)

5.11. Выше нижней границы формы разместить элемент Label с именем lblMes, с пустой надписью и без «утопления», размером 3000х315. Чтобы сделать элемент невидимым, установить цвет фона таким же, как и у формы (свойство BackColor). Эта надпись будет отображать предупредительное сообщение о невозможности выполнения операции.

5.12. Между текстовыми полями операндов разместить элемент Line.

5.13. Разместить в форме элемент CommandButton с именем cmdClear и надписью Очистка.

5.14. Разместить в форме элемент cmdExit и надписью Выход.

6. Выполнить разработку программного кода выполняющего обработку событий возникающих при работе с приложением.

6.1. Выполнить создание процедуры набора числа.

Так как набор значения операнда осуществляется в нашем приложении мышью посредством нажатия кнопок набора числа (элемент cmdNum), то нужно разработать процедуру формирования числового значения операнда и организовать ее выполнения в момент нажатия на кнопку (т.е. в момент события Click элемента cmdNum).

Щелкнуть по любой кнопке массива cmdNum. В появившемся окне редактора возникла следующая заготовка процедуры.

Private Sub cmdNum_Click(Index As Integer)

End Sub

Элемент cmdNum представляет собой массив элементов - кнопок. Обращение к элементу массива осуществляется по имени массива и индексу (номеру элемента), например обращаясь к 1-й элементу нужно указать cmdNum(0), к 5-му элемент - cmdNum(4) и т.д. Так как обрабатывается событие элемента массива, в первой строке в круглых скобках появилось описание параметра. Параметром является переменная Index. Всякий раз при нажатии кнопки массива cmdNum эта переменная будет получать значение, соответствующее номеру кнопки в массиве. Нажали кнопку «0», переменная Index получит значение 0, нажали кнопку «9», переменная Index получит значение 9 и т.д. Значение операнда (txtOp) формируется операцией сцепления (&) символа, изображенного на нажимаемой кнопке со строкой, являющейся значением свойства Text элемента txtOp. Добавить в имеющуюся заготовку процедуры строки в соответствии с текстом процедуры:

Private Sub cmdNum_Click(Index As Integer)

If Index < 10 Then

txtOp(i).Text = txtOp(i).Text & Index ‘

Else

txtOp(i).Text = txtOp(i).Text & "."

End If

End Sub

В форме элемент txtOp также представляет собой массив из двух текстовых полей, поэтому обращение в процедуре к элементу массива – txtOp(i), где i – переменная, хранящая индекс(номер) элемента массива txtOp. Процедура будет формировать двух операндов. Значение переменной i и определяет, в какой операнд добавляется цифра. Переменная i будет использоваться в нескольких процедурах, поэтому ее нужно объявить в разделе General (секция общих объявлений). В окне редактора из левого списка элементов выбрать General и набрать строку:

Dim i As Integer

6.2. Выполнить создание процедуры инициализации переменной i. Процедура должна выполняться при загрузке формы, поэтому в окне редактора выбрать из раскрывающегося списка элементов – Form, из списка событий – Load. Ввести текст процедуры:

Private Sub Form_Load()    'Загрузка формы

i = 0         'Присвоение начального значения переменной i

End Sub

6.3. Выполнить создание процедуры присвоения переменной i номера элемента из массива txtOp. Процедура должна выполняться в тот момент, когда курсор будет помещен в один из элементов массива, такое событие называется получением фокуса. В окне редактора из списка элементов выбрать txtOp,из списка событий – GotFocus. Ввести текст процедуры:

Private Sub txtOp_GotFocus(Index As Integer)

lblMes.Caption = ""

i = Index  'Запоминаем в i индекс поля ввода, получившего фокус

End Sub

6.4. Выполнить создание процедуры очистки полей ввода операндов. Она должна выполняться для элемента txtOp при выполнении двойного щелчка по элементу (событие DblClick). Ввести текст процедуры:

Private Sub txtOp_DblClick(Index As Integer)

txtOp(i).Text = ""

End Sub

6.5.  Выполнить создание процедуры сложения чисел. Она должна выполняться при нажатии на кнопку cmdPlus (событие Clik). Процедура должна найти сумму операндов (элементы txtOp), свойству Captoin элемента lblRes присвоить полученное значение, а свойству Captoin элемента lblOper присвоить значение “+”. Для набора текста процедуры в окне редактора дважды щелкнуть по кнопке cmdPlus.Ввести текст процедуры:

Private Sub cmdPlus_Click()             ' сложение

lblRes.Caption = Val(txtOp(0).Text) + Val(txtOp(1).Text)

lblOper.Caption = "+"

End Sub

6.6.  Руководствуясь указаниями пункта 6.5. для элемента cmdMinus создать процедуру вычитания чисел. Текст процедуры:

Private Sub cmdMinus_Click() 'Вычитание

lblRes.Caption = Val(txtOp(0).Text) - Val(txtOp(1).Text)

lblOper.Caption = "-"

End Sub

6.7.  Аналогично для элемента cmdMultсоздать процедуру умножения чисел. Текст процедуры:

Private Sub cmdMult_Click()     ‘ Умножение

lblRes.Caption = Val(txtOp(0).Text) * Val(txtOp(1).Text)

lblOper.Caption = "*"

End Sub

6.8. Аналогично для элемента cmdDevideсоздать процедуру деления чисел. Текст процедуры:

Private Sub cmdDevide_Click()     ‘ Деление

if Val(txtOp(1).Text) <> 0 Then

lblRes.Caption = Val(txtOp(o).Text) / Val(txtOp(i).Text)

lblOper.Caption = ":"

Else

lblMes.Caption = "Деление на ноль запрещено"

End If

End Sub

6.9. Аналогично для элемента cmdModсоздать процедуру нахождения остатка от деления чисел. Текст процедуры:

Private Sub cmdMod_Click() 'Остаток от деления

lblRes.Caption = Val(txtOp(0).Text) Mod Val(txtOp(1).Text)

lblOper.Caption = "mod"

End Sub

6.10. Аналогично для элемента cmdPowerсоздать процедуру возведения числа в степень. Текст процедуры:

Private Sub cmdPower_Click() 'Возведение в степень

If Val(txtOp(1).Text) > 0 Then

lblRes.Caption = Val(txtOp(o).Text) ^ Val(txtOp(i).Text)

lblOper.Caption = "^"

Else

lblMes.Caption = "Думай, что делаешь!"

End If

End Sub

6.11. Для элемента cmdClear создать процедуру очистки содержимого всех элементов, хранящих данные предыдущей операции. Текст процедуры:

Private Sub cmdClear_Click()

txtOp(0).Text = ""

txtOp(1).Text = ""

lblOper.Caption = ""

lblRes.Caption = ""

lblMes.Caption = ""

End Sub

6.12. Запрограммировать выход из приложения. Для элемента cmdExit создать процедуру и проверить ее работу:

Private Sub cmdExit_Click()

End

End Sub

7. Сохранить проект.

8. Запустить приложение Калькулятор в среде Visual Basic 6. Для этого выполнить команду Start из меню Run,или нажать клавишуF6, или нажать кнопку  (Start) инструментальной панели. Затем:

- если текст процедур был набран верно, то на экране поверх других окон появится окно Калькулятора. Проверить работу Калькулятора,выполнив все операции. Выход из приложения выполнить нажатием кнопки Выход. Затем перейти к выполнению пункта 11;

- если произошло аварийное завершение работы калькулятора перейти к выполнению следующего пункта;

- если приложение аварийно не завершилось, но калькулятор работает не правильно перейти к пункту 10.

9. Завершить выполнение, нажав кнопку  (End)инструментальной панели.

10. Проверить текст процедур, исправить ошибки и перейти к выполнению пункта 7.

11. Сохранить проект

12. Создать исполняемого exe-файл проекта. Для этого следует:

- выполнить команду Make Calc.exe меню File;

- в диалоговом окне команды Make Project ввести в поле Имя файла имя исполняемого файла;

- нажать кнопку Ok.

13. Выполнить команду Exit меню File для завершения работы Visual Basic.

14. Запустить Калькулятор из папки Мой компьютер или программы Проводник и повторно проверить его работу.


ЛАБОРАТОРНАЯ РАБОТА №2.


Дата добавления: 2018-05-12; просмотров: 484; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!