Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

УМК_ПрОА_4

.pdf
Скачиваний:
12
Добавлен:
03.05.2015
Размер:
1.01 Mб
Скачать

txtNv1.Refresh

Open "c:\let\" + txtNlet.Text + ".txt" For Random As #1 Len = 2048 If nvv = 0 Then

MsgBox ("Где номер вопроса?")

GoTo m1

End If

Get #1, nvv, z txtTexv1.Text = z.v txtTexv1.Refresh txtTexo1.Text = z.o txtTexo1.Refresh txtNpo1.Text = z.n txtNpo1.Refresh txtNv1.Text = txtNv2.Text txtNv1.Refresh

txtTexv2.Text = "" 'очистка полей записи txtTexv2.Refresh

txtTexo2.Text = "" txtTexo2.Refresh txtNpo2.Text = "" txtNpo2.Refresh txtNv2.Text = "" txtNv2.Refresh txtTexv1.SetFocus m1: Close 1

z.v = "" z.o = "" z.n = 0

optR.Value = False 'сброс флажка txtTexv2.BackColor = &H80000005 txtTexo2.BackColor = &H80000005 txtNpo2.BackColor = &H80000005

m2: End Sub

Private Sub optZ_Click()

nvz = Val(txtNv1.Text) txtTexv1.BackColor = QBColor(15) txtTexo1.BackColor = QBColor(15) txtNpo1.BackColor = QBColor(15) End Sub

Private Sub txtNlet_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then txtNv1.Refresh txtNv1.SetFocus

End If

End Sub

Private Sub txtNvl_DblClick()

txtTexv1.Text = "" txtTexv1.Refresh txtTexo1.Text = "" txtTexo1.Refresh

190

txtNpo1.Text = "" txtNpo1.Refresh txtTexv1.SetFocus End Sub

Private Sub txtNv2_DblClick()

txtTexv2.Text = "" txtTexv2.Refresh txtTexo2.Text = "" txtTexo2.Refresh txtNpo2.Text = "" txtNpo2.Refresh End Sub

Коды для Modulel

(General) (Declarations)

Type vop

v As String o As String n As String End Type Dim z As vop

2.1.3 Рекомендации по тестированию работы приложения

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

№ записи

 

Содержание записи

 

Вопрос

Ответы

№ правильного ответа

1

Вопрос 1

Ответ 1

2

 

 

Ответ 2

 

 

 

Ответ 3

 

 

 

 

 

2

Вопрос 2

Ответ 1

1

 

 

Ответ 2

 

 

 

Ответ 3

 

 

 

 

 

3

Вопрос 3

Ответ 1

3

 

 

Ответ 2

 

 

 

Ответ 3

 

 

 

 

 

 

 

и т.д.

 

19

Вопрос 19

Ответ 1

1

 

 

Ответ 2

 

 

 

Ответ 3

 

 

 

 

 

ВНИМАНИЕ! При вводе № правильного ответ не допускается оставлять пробел перед введенным значением, т.е. следует начинать ввод с первой позиции текстового поля.

191

2.2 Создание приложения «АРМ обучаемого»

2.2.1 Последовательность этапов разработки приложения

1.Запустить MS Visual Studio 6.0 -> MS Visual Basic 6.0

2.Выбрать вид нового файла Standart.exe

3.На рабочем столе появилась пустая форма.

4.Увеличить ее размер до визуально-приятного.

5.Поместить на форму элементы управления в соответствии с рис. 4

6.Присвоить значения свойств элементам формы в соответствии с табл. 2.

7.В окно редактора кода скопировать программный код в соответствии с листингом 2.

8.Создать 4 экранные формы с результатом тестирования (оценки 2 – 5).

2.2.1.1 Дизайн стартовой формы

Стартовая форма приложения «АРМ обучаемого» условно состоит из трех

частей (рис. 4):

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

2.В средней части экранной формы находятся поля вопроса и вариантов ответов. Порядковый номер очередного вопроса будет отображаться в поле,

расположенном слева от поля вопроса.

3.В нижней части экранной формы расположены два табло, заключенные в рамки:

табло для вывода времени (в секундах), которое осталось для ответа на поставленные вопросы;

табло для ввода номера правильного ответа, состоящее из блока цифровых кнопок.

Текстовое поле и переключатель «Ввод» предназначены для ввода текстового ответа на вопрос для случая, когда в вопросе отсутствуют варианты ответов.

Основные свойства стартовой формы (Form1) приведены табл. 2.

Рекомендуется начинать заполнять форму с установки фреймов (рамок).

192

Имена элементов управления на форме начинаются с сокращенного названия

элемента, за которым следует смысловая мнемоническая часть.

Таблица 2. Свойства и их значения для элементов управления стартовой формы приложения «АРМ обучаемого»

№ п/п

Имя элемента (значение

 

 

Назначение

 

 

 

Свойство

Значение

 

свойства Name)

 

 

 

 

 

 

 

 

 

 

 

 

 

Стартовая форма

 

 

 

 

1

Form 1

 

 

 

 

 

 

 

 

Caption

АРМ обучаемого

 

 

 

 

Метки Label

 

 

 

 

 

1

lblNlet

надпись "Имя контрольной

 

 

Caption

Контрольная

 

 

работы";

 

 

 

 

 

 

 

работа

2

lblFam

надпись "Фамилия";

 

 

 

Caption

Фамилия

3

lblV2

надпись "Вопрос";

 

 

 

 

Caption

Вопрос:

4

lblNv2

текущий номер вопроса

 

 

 

 

 

5

lblO2

надпись «Варианты ответов».

 

 

Caption

Варианты ответов

 

lblTime

электронный циферблат

 

 

 

Caption

600

 

lblNameTime

надпись "Время"

 

 

 

 

Caption

Время

 

lblPodskazka

поле подсказки

 

 

 

 

 

 

 

 

 

 

Текстовые поля TeхtBoх

 

 

6

txtNlet

поле для ввода имени файла с

 

TabIndex

0

 

 

вопросами

контрольной

работы

 

 

 

 

 

(составляющая Nlet - «номер

 

 

 

 

 

летучки»);

 

 

 

 

 

 

 

 

7

txtFam

поле для ввода номера вопроса,

 

TabIndex

1

 

 

который должен быть записан в

 

 

 

 

 

файл

вопросов

контрольной

 

 

 

 

 

работы

(вызван

 

на

 

 

 

 

 

редактирование, исправление);

 

 

 

8

txtTexv2

поле для записи вопроса (поле

 

MultiLine

True

 

 

для

просмотра вызванного

на

 

 

 

 

 

 

ScrollBars

2 — Vertical

 

 

редактирование вопроса);

 

 

 

 

 

 

 

 

Enabled

False

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TabIndex

-

9

txtTexo2

поле

для

записи возможных

 

MultiLine

True

 

 

вариантов

 

ответов

 

на

 

ScrollBars

2 — Vertical

 

 

поставленный вопрос (поле для

 

 

 

 

Enabled

False

 

 

просмотра

вызванных

 

на

 

 

 

редактирование

 

вариантов

 

TabIndex

-

 

 

ответов);

 

 

 

 

 

 

 

 

10

txtVvod

поле

для

записи

номера

 

Enabled

True

 

 

правильного

 

ответа

 

из

 

 

 

 

 

перечисленных

 

в

поле

 

 

 

 

 

 

 

TabIndex

3

 

 

txtTexo1 (поле для просмотра

 

 

 

правильного ответа)

 

 

 

 

 

 

 

Переключатели OptionButton

 

 

11

optVvod

переключатель,

служащий

для

 

Caption

Ввод

 

 

ввода правильного ответа

 

 

 

TabIndex

4

 

 

Командные кнопки CommandButton

 

13

cmd1 – cmd5

цифровые

кнопки

для указания

 

Caption

1

 

 

номера правильного ответа;

 

 

TabIndex

2

 

 

 

 

Таймер

 

 

 

 

 

14

Timer1

для

отсчета

времени,

 

Interval

1000

 

 

оставшегося

на

выполнение

 

 

 

 

 

контрольной работы (Timer не

 

 

 

 

 

виден на форме во время

 

 

 

 

 

выполнения проекта).

 

 

 

 

 

193

Form1

Frame1

txtFam

 

 

 

lblNlet

txtNlet

 

 

 

 

 

 

 

lblFam

Фамилия

 

 

 

 

Имя контрольной работы

 

lblV2

 

 

 

 

 

 

 

 

 

 

 

txtTexv2

 

Вопрос №

 

 

 

 

 

lblNv2

 

 

 

 

 

 

 

 

 

 

 

 

 

lblO2

 

 

 

 

 

 

 

 

Варианты

 

 

 

 

 

txtTexo2

 

ответов

 

 

 

 

 

 

 

 

 

 

 

 

Timer1

 

 

 

 

 

 

 

lblTime

 

 

 

 

 

 

txtVvod

 

 

 

 

 

 

 

lblNameTime

600

1

2

3

4

5

optVvod

 

 

 

 

 

 

 

Время

 

 

 

 

 

Ввод

Frame 2

lblPodskazk

 

 

 

cmd1 ... cmd5

 

 

 

 

Frame 3

 

Рис. 4 Стартова форма приложения «АРМ обучаемого»

194

2.2.1.2 Дизайн форм с результатами тестирования

Для представления обучаемому результатов тестирования в виде оценок по пятибалльной шкале следует добавить к проекту еще четыре формы, пример одной из которых приведен на рис. 5.

Ваша оценка: 5

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

Основные свойства форм с результатми тестирования приведены табл. 3.

Таблица 3. Свойства и их значения для элементов управления форм результатов тестирования

№ п/п

Имя элемента (значение

Назначение

Свойство

Значение

 

свойства Name)

 

 

 

 

 

Форма с оценкой «5»

 

 

 

frmMark5

форма с результатом 5 баллов

Caption

Оценка

 

Label1

надпись «Ваша оценка»

Caption

Ваша оценка

 

 

 

Label2

надпись «5»

Caption

5

 

 

Форма с оценкой «4»

 

 

 

frmMark4

форма с результатом 4 балла

Caption

Оценка

 

Label1

надпись «Ваша оценка»

Caption

Ваша оценка

 

 

 

Label2

надпись «4»

Caption

4

 

 

Форма с оценкой «3»

 

 

 

frmMark3

форма с результатом 3 балла

Caption

Оценка

 

Label1

надпись «Ваша оценка»

Caption

Ваша оценка

 

 

 

Label2

надпись «3»

Caption

3

 

 

Форма с оценкой «2»

 

 

 

frmMark2

форма с результатом 2 балла

Caption

Оценка

 

Label1

надпись «Ваша оценка»

Caption

Ваша оценка

 

 

 

Label2

надпись «2»

Caption

2

2.2.2Переменные и программный код приложения

Для объявления глобальных переменных, доступных всем элементам

приложения и используемых в тексте программного кода, необходимо к

195

проекту добавить модуль формы, как было показано ранее.

Программный код обработки событий в приложении «АРМ преподавателя» использует следующие переменные памяти:

1.z — запись типа vop, состоящая из трех полей, в которых размещены символьные строки для хранения:

v — вопроса,

о — ответов,

n — правильного ответа;

2.ng% — переменная, в которой хранится номер вопроса (записи),

выбираемый случайным образом из очередной группы вопросов;

3.sb — счетчик баллов (правильных ответов);

4.sv — счетчик количества заданных вопросов;

5.no — номер (цифра) одного из вариантов ответов, который выбирает обучаемый при ответе на поставленный вопрос;

6.nро — номер правильного ответа (строка правильного ответа),

записанного в файле с вопросами;

7.Fam — переменная для хранения фамилии обучаемого;

8.t — переменная для хранения времени (в секундах);

9.netotv — флаг состояния переключателя «Ввод».

Вприложении используется общая процедура Doit. Для создания общей процедуры в меню команд VB 6.0 выбрать команду Tools, а в раскрывшемся затем списке — команду Add Procedure. В поле Name диалогового окна Add Procedure (рис. 6) записать имя процедуры, нажать кнопку ОК. Общая процедура с указанным именем будет добавлена к кодам проекта.

Тексты кодов приложения представлены в листинге 2.

196

Рис. 6. Окно добавления общей процедуры

Листинг 2

Коды для Form1

(General) -> (Declarations)

Public sb As Integer, sv As Integer

Public no As String, npo As String

Public Fam As String, t As Integer

Public netotv As Integer

Public Sub Doit()

Dim z As vop

If cmd1.Enabled = False Or cmd2.Enabled = False Or cmd3.Enabled = False Or

cmd4.Enabled = False Then MsgBox ("Введите фамилию!") txtFam.SetFocus

GoTo mksub 'запрет вызова вопросов, пока не введена фамилия

End If

If t = 0 Then txtTexv2.Text = " " txtTexv2.Refresh txtTexo2.Text = " " txtTexo2.Refresh GoTo m6

End If

If txtNlet.Text = "" Or txtNlet.Text = " " Or txtNlet.Text = " " Or txtNlet.Text = " " Then

MsgBox ("Введите имя работы!") txtNlet.Enabled = True txtNlet.SetFocus

GoTo mksub

End If

If txtFam.Text = "" Or txtFam.Text = " " Or txtFam.Text = " " Or txtFam.Text

= "

" Or txtFam.Text = "

" Or txtFam.Text = "

" Or txtFam.Text = "

"

Or

txtFam.Text = "

" Or txtFam.Text = "

" Or txtFam.Text

= "

" Or txtFam.Text = "

" Then

 

 

MsgBox ("Введите фамилию!") txtFam.Enabled = True txtFam.SetFocus

197

GoTo mksub

End If

txtTexv2.Text = " " txtTexv2.Refresh txtTexo2.Text = " " txtTexo2.Refresh

If sv = 0 Then GoTo m1

If sv = 1 Then GoTo m2

If sv = 2 Then GoTo m3

If sv = 3 Then GoTo m4

If sv = 4 Then GoTo m5

If sv > 4 Then GoTo m6

m1: lblNv2.Caption = Str(sv + 1) 'номер вопроса

Randomize Timer

ng% = Rnd(1) * 2 + 1 'номер из первой группы записей 1-3 GoSub 100

GoTo mk

m2: lblNv2.Caption = Str(sv + 1) Randomize Timer

ng% = Rnd(1) * 2 + 4 'номер из второй группы записей 4—6 GoSub 100

GoTo mk

m3: lblNv2.Caption = Str(sv + 1) Randomize Timer

ng% = Rnd(1) * 3 + 7 'номер из третьей группы записей 7—10 GoSub 100

GoTo mk

m4: lblNv2.Caption = Str(sv + 1) Randomize Timer

ng% = Rnd(1) * 3 + 11 'номер из четвертой группы записей 11-14 GoSub 100

GoTo mk

m5: lblNv2.Caption = Str(sv + 1) Randomize Timer

ng% = Rnd(1) * 4 + 15 'номер из пятой группы записей 15—19 GoSub 100

GoTo mk

m6: If sb <= 2 Then sb = 2 'коррекция двойки

If sb = 2 Then t = 0

lblNv2.Caption = " " frmMark2.Show 1

End If

If sb = 3 Then t = 0

lblNv2.Caption = " " frmMark3.Show 1

End If

If sb = 4 Then t = 0

lblNv2.Caption = " " frmMark4.Show 1

End If

If sb = 5 Then

198

t = 0

 

 

 

 

 

 

lblNv2.Caption = " "

 

 

 

 

frmMark5.Show 1

 

 

 

 

 

 

End If

 

 

 

 

 

 

txtFam.Enabled = True

 

 

 

 

txtFam.Text = " "

 

 

 

 

 

 

txtFam.SetFocus

 

 

 

 

 

 

GoTo mksub

 

 

 

 

 

 

End

 

 

 

 

 

 

100 Open "c:\let\" + txtNlet.Text + ".txt" For Random As #1 Len = 2048

 

 

Get #1, ng%, z

 

 

 

 

 

 

txtTexv2.Text = z.v

 

 

 

 

 

txtTexv2.Refresh

 

 

 

 

 

 

txtTexo2.Text = z.о

 

 

 

 

 

txtTexo2.Refresh

 

 

 

 

 

 

npo = z.n

 

 

 

 

 

 

Close 1

 

 

 

" Or txtTexo2.Text = "

"

Or

If txtTexo2.Text = "" Or txtTexo2.Text = "

"

txtTexo2.Text = "

"

Or txtTexo2.Text = "

Or txtTexo2.Text = "

"

Or

txtTexo2.Text = "

 

" Or txtTexo2.Text = "

 

" Or txtTexo2.Text = "

 

"

Or txtTexo2.Text = "

 

" Or txtTexo2.Text = "

" Then

 

 

netotv = l

 

 

 

 

 

 

lblPodskazka.Caption = "Введите ответ" lblPodskazka.Refresh

txtVvod.Text = "" txtVvod.Refresh txtVvod.Enabled = True optVvod.Enabled = True GoTo mksub

Else netotv = 0

lblPodskazka.Caption = "Нажмите кнопку с номером ответа" lblPodskazka.Refresh

End If

Return

mk: z.v = " " z.о = " " z.n = " "

mksub: End Sub

Private Sub cmd1_Click()

If txtFam.Enabled = True Then

cmd1.Enabled = False 'запрет cmd, пока не введена фамилия

End If

If txtNlet.Text = "" Or txtNlet.Text = " " Or txtNlet.Text = " " Or txtNlet.Text = " " Then

MsgBox ("Введите имя работы!") txtNlet.Enabled = True txtNlet.SetFocus

GoTo mksub

End If

If txtFam.Text = " " Then MsgBox ("Введите фамилию!") txtFam.Enabled = True

199