Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания к ЛР5 (Программирование на VB).pdf
Скачиваний:
15
Добавлен:
15.03.2016
Размер:
399.21 Кб
Скачать

Методические указания к выполнению лабораторной работы по программированию в VB

чае её закрытия, т.е. при нажатии кнопки закрытия в верхнем правом углу формы. 12. Дважды щелкните на форме Form1, чтобы открыть окно программных кодов. В левом верхнем окне выберите из списка объектов Form, а в правом верхнем окне выберите событие Unload. Вставьте в подпрограмму Unload следующий фрагмент.

Private Sub Form_Unload(Cancel As Integer)

If МsgВох("Уверены?", vbYesNo, "Выход?") = vbYes Then Unload Me

Set frmPriern = Nothing Else

Cancel = 1 End If

End Sub

Обратите внимание на то, что в программном коде используется не процедура, а функция MsgBox. Она возвращает целое значение, которое соответствует нажатой кнопке. Второй аргумент функции MsgBox задается константой vbYesNo, значение которой определяет наличие двух кнопок в окне сообщений Yes и No. Таким образом функция MsgBox может возвращать значение vbYes (нажата кнопка Yes) или vbNo (нажата кнопка No). Другие константы приведены в табл. 33 Приложения: 3.

12. Сохраните проект программы командой File, Save Project As (Файл, Сохранить проект как) с именем z3-l, а также сохраните модуль формы командой File, Save frmPriem.frm As (Файл, Сохранить frmPriem.frm как) с именем z3-l

13. Запустите программу командой Run, Start (Пуск, Старт). Вводим фамилию, имя, число баллов и нажимаем кнопку Прием. Можно убедиться, что программа выдает сообщения при любом числе баллов.

Контрольные вопросы

1.Чем отличается однострочный оператор If Then от многострочного?

2.Куда передается управление, если условие в операторе If Then Else истинно?

3.Куда передается управление, если условие в операторе If Then Else ложно?

4.Какие события используются в программе?

3.2.Оператор IF...THEN ... ELSEIF ... END IF

Задание 3.2

Усовершенствуйте программу задания 3.1, так чтобы

она в зависимости от

числа баллов давала следующие сообщения:

 

а) больше 100: принят на бюджетную ставку

 

б) от 80 до 100: принят по контракту

 

 

в) от 75 до 79: вопрос о приеме будет решаться после собеседования

д) меньше 75: не принят (а).

 

 

 

 

 

Усков Ю.И.

15

каф. МиИТ,

2015

 

 

Методические указания к выполнению лабораторной работы по программированию в VB

Технология выполнения задания

1.Откройте проект z3-l командой File, Open Project (Файл, Открыть Проект).

2.Откройте код процедуры и откорректируйте процедуру cmdPriem_Click()

Private Sub cmdPriem_Click() Dim intNuin As Integer intNum = Val(txtNum.Text)

If intNum > 100 Then IblResol.Caption = IxIName.Texl &_ " принят(а) на бюджетную ставку"

Elself intNum >= 80 Then

IblResol.Caption = txtName.Text & " принят(а) по контракту" Elself intNum >= 75 Then

IblResol.Caption = txtName.Text &_

" вопрос о приеме будет решаться после собеседования" Else

IblResol.Caption = txtName.Text & " не принят(а)" End If

End Sub

3. Запустите программу командой Run, Start (Пуск, Старт). Вводим фамилию, имя, число баллов и нажимаем кнопку Прием. Можно убедиться, что программа выдает сообщения при любом числе баллов.

4. Добавим в программу кнопку сдачи экзаменов. Число баллов, набранных во время экзамена, будем определять с помощью датчика случайных чисел.

5. В Visual Basic случайные числа генерируются с помощью функции функцию Rnd(), которая генерирует случайное число в интервале от 0 до 1. Для задания

псевдослучайной последовательности используется

подпрограмма Randomize.

Обращение к этому подпрограмму Randomize k, где k

случайное число. Если пара-

метр k у подпрограммы Randomize отсутствует, то по умолчанию в качестве случайного числа используется значение функции Timer/

Добавьте кнопку на форму cmdPriem . В окне свойств задайте свойству Name значение cmdExam, а свойству Caption задайте значение &Сдача экзаменов. Измените размер и начертание шрифта: 14, полужирный (свойство Font) (рис. 3.2).

7. Дважды щелкните на кнопке Сдача экзаменов, чтобы открыть окно программы. Откорректируйте процедуру события Click кнопки:

Private Sub cmdExarn_Click()

Dim intNum As Integer

Randomize intNum = lnt(Rnd(1) * 150) + 1

Рис. 3.2

8.Сохраните проект и форму с именем z3-2.

9.Запустите программу командой Run, Start (Пуск, Старт). 1милию, имя и нажимаем сначала

16

каф. МиИТ,

Методические указания к выполнению лабораторной работы по программированию в VB

кнопку «Сдача экзаменов», а затем «Прием»

Контрольные вопросы

1.Как работает оператор If Then Elself?

2.Что возвращает функция Rnd()?

3.Для чего нужен оператор Randomize?

4.Какие события возникают при работе программы?

5.Что означает знак подчеркивания _ , используемый в программном коде задания

3.2?

3.3. Оператор SELECT CASE... END SELECT

Задание 3.3

Напишите программу, которая бы загадывала число от 1 до 10 и предлагала бы Пользователю угадать число. Примерный вид программы показан на рис. 3.3.

Рис. 3.3

Технология выполнения задания

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

1. Создайте новый проект File, New Project (Файл, Новый проект).

2. Задайте свойству Name формы значение frmMain, а у свойства Caption измените значение на Выберите число.

3.Создайте на форме две кнопки. Задайте свойству Name первой кнопки значение cmdGetSecretNumber, а свойству Caption задайте значение Начать игру.

4.Укажите для свойства Name второй кнопки значение cmdGuess, а для свойства Caption измените значение на &Угадай Число.

5.Создайте в верхней части формы два элемента-надписи (Label). Задайте свойству Caption первой этикетки значение Попытка, а свойству Name второй этикетки ука-

жите значение lblTry. Задайте размер шрифта 14, полужирный (свойство Font)

6.

Дважды щелкните на форме frmMain. чтобы открыть окно программы.

7.

Вставьте следующие строки в секцию (General)(Declarations) формы frmMain:

Option Explicit

Private intSecrelNumber As Integer

Private intTry As Integer

8. Перейдем к созданию функции GetSecretNumberQ, которая является одним из важнейших компонентов приложения. Вставьте описание функции с помощью команды Tools, Add Procedure. В открывшемся окне введем Name (имя функции) —

Усков Ю.И.

17

каф. МиИТ,

2015

 

 

Методические указания к выполнению лабораторной работы по программированию в VB

GetSecretNumber , Туре (тип) — Function, Scope (область видимости) — Private. 9. Вставьте код функции:

Private Function GetSecretNumber() As Integer ‘ Загадать число от 1 до 10

Randomize

GetSecretNumber = Int(Rnd(1) * 10) +1 End Function

В функции GetSecretNumber используется три стандартных функции Rnd(), Int(). Последний оператор функции

GetSecretNumber = lnt(Rnd(1) * 10) + 1

обеспечивает возвращение случайного числа в диапазоне от 1 до 10. Обратите внимание, что левая часть оператора - это имя функции.

10.Bставьте следующий фрагмент в процедуру события Load формы frmMain:

Private Sub Form_Load() ' Загадать число

IntSecretNumber = GetSecretNumber intTry=0

End Sub

11. Вставьте следующий фрагмент в процедуру события Click кнопки. cmdGetSecretNumber:

Private Sub cmdGetSecretNumber_Click() ' Загадать число

intSeu etNumber = GetSecretNumber cmdGuess.Caption = "Угадай число" End Sub

12. Отредактируйте процедуру события Click кнопки cmdGuess и приведите ее к следующему виду:

Private Sub cmdGuess_Click()

 

 

Dim intGuess As Integer

 

 

Dim strMsg As String

 

 

Dim strCap As String

 

 

Dim strRc As String

 

 

intTry = intTry + 1

 

 

lblTry.Caption = Str(intTry)

 

'

Создать сообщение

 

 

strMsg = "Введите число от 1 до 10"

 

'

Получить число от пользователя

 

 

strRc = lnputBox(strMsg, "Введите число" )

 

'Убедиться в том. что пользователь ввел значение...

If strRc <> "" Then

 

' Преобразовать строку в целое число с помощью функции СInt()

 

 

 

 

 

 

Усков Ю.И.

18

каф. МиИТ,

2015

 

 

Методические указания к выполнению лабораторной работы по программированию в VB

intGuess =Clnt(strRc)

'Проверка: число угадано верно? Select Case intGuess

Case Is = intSecretNumber ' Да, пользователь угадал

strMsg = "Вы угадали" strCap = "Верно!" MsgBox strMsg, vbExclarnation. strCap

'Закончить игру

'0ператор End используется для завершения программы. End Case Is > intSecretNumber

'Нет, следующая попытка

strMsg = "Неверно. Загаданное число меньше" strCap = "Попробуйте снова"

MsgBox strMsg, vblnformation, strCap Case Is < intSecretNumber

' Нет, следующая попытка

strMsg = "Неверно. Загаданное число больше" strCap = "Попробуйте снова"

MsgBox strMsg, vblnformation, strCap End Select

Else

' Новая попытка

strMsg = "Вы должны ввести число!" strCap = "Введите число!"

MsgBox strMsg, vblnformation, strCap End If

cmdGuess.Caption = strCap End Sub

13. Сохраните проект и форму с именем z3-3. 14..Запустите программу.

Этап 2. Освоение режима отладки

1. Добавьте в отладочное окно переменные, за значениями которых мы хотим наблюдать в режиме отладки. Для этого выполните команду Debug, Add Watch Отладка, Добавить наблюдателя). В открывшемся окне в поле Выражение внести имя переменной intGuess и нажать кнопку ОК. Аналогичным образом доба вить переменную strMsg , intTry.

2.Поставить курсор на строку программного кода intTry= intTry+1 и выполнить команду Debug, Run To Cursor (Отладка, Пуск к курсору) или нажмите кнопку F8. Далее в открывшемся окне программы нажать кнопку F8 (или выполнить команду Debug, Step Into (Отладка, Войти) ) для перехода к следующему оператору и наблюдать, как изменяются значения переменных

Усков Ю.И.

19

каф. МиИТ,

2015