АЛГОРИТМИЗАЦИЯ
И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
Учебно-методический комплекс
Методические указания
к курсовой работе
Оглавление
1. Цель и структура курсовой работы.. 3
2. Задание первого уровня: разработка системы тестирования. 4
2.1 Создание приложения «АРМ преподавателя». 6
2.1.1 Последовательность этапов разработки приложения. 6
2.1.2 Переменные и программный код приложения. 10
2.1.3 Рекомендации по тестированию работы приложения. 14
2.2 Создание приложения «АРМ обучаемого». 15
2.2.1 Последовательность этапов разработки приложения. 15
2.2.2 Переменные и программный код приложения. 19
3. Задание второго уровня: индивидуальные варианты.. 31
3.1 Общие положения. 31
3.2 Примеры вариантов заданий. 32
Цель и структура курсовой работы
Курсовая работа предназначена для освоения технологии визуального программирования, выполняется в системе программирования Microsott Visual Basic 6.0 с использованием языка Basic.
Курсовая работа включает 2 уровня заданий:
1. Задание первого уровня:
- является единым для студентов группы,
- выполняется на основе методических указаний,
- не требует знаний языка программирования,
- демонстрирует компонентный подход к разработке приложений,
- представляет собой программный комплекс для тестирования знаний,
- состоит из двух приложений (АРМ преподавателя и АРМ обучаемого), работающих совместно благодаря общим данным, сохраняемым в текстовых файлах,
- состоит в разработке дизайна экранных форм приложений, задания свойств элементов управления форм, встраивания готовых кодов обработки событий, вызываемых действиями пользователя в экранных формах.
2. Задание второго уровня:
- является индивидуальным для каждого студента группы,
- выполняется по аналогии с заданием первого уровня, но без методических указаний, готовых кодов и других подсказок,
- закрепляет практические навыки в технологии визуального программирования,
- требует понимания языка программирования Basic в объеме кодов из задания первого уровня.
Задание первого уровня: разработка системы тестирования
Цель работы – разработка программного комплекса контроля знаний «Система тестирования», состоящего из двух автоматизированных рабочих места для пользователей: «АРМ преподавателя» и «АРМ обучаемого».
Пользователи системы тестирования – преподаватель и обучаемый. Порядок их работы представлен на рис. 1.
Порядок работы преподавателя в процессе создания контрольного задания:
1. Присвоить контрольному заданию шифр (имя контрольной работы).
2. Ввести и сохранить 19 вопросов с 3-5 альтернативными ответами по каждому вопросу. Вопросы должны иметь возрастающую степень сложности.
3. При необходимости просмотреть введенные вопросы и ответы, отредактировать их.
Порядок работы обучаемого в процессе тестирования:
1. Зарегистрироваться в системе тестирования (ввести фамилию).
2. Указать шифр задания (имя контрольной работы).
3. Отвечать на появляющиеся вопросы (обучаемому предлагается 5 вопросов с нарастающей сложностью) путем указания порядкового номера правильного ответа из числа альтернативных.
4. Уложиться в отведенное для тестирования время (по умолчанию – 10 минут).
5. По завершении тестирования получить результат в виде оценки по пятибалльной шкале:
- пять правильных ответов – оценка 5;
- четыре правильных ответа – оценка 4;
- три правильных ответа – оценка 3;
- два и менее правильных ответа – оценка 2.
Рис. 1 Инструкция по работе с системой тестирования
Создание приложения «АРМ преподавателя»
Дизайн стартовой формы
Стартовая форма приложения «АРМ преподавателя» условно состоит из трех частей (рис. 2):
1. В верхней части расположено поле для ввода имени файла, в который будут записываться (из которого будут вызываться для редактирования) вопросы контрольной работы;
2. В средней части (поля записи-редактирования) расположены два табло (заключенные в рамки):
- табло ввода номера (ввод номера вопроса – поле Вопрос №, подтверждение номера с помощью переключателя «№ введен» и запись вопроса в файл с помощью кнопки Запись);
- табло ввода текста (ввод вопроса – поле Вопрос:, ввод возможных вариантов ответов – поле Ответы:, ввод номера правильного ответа из приведенных в поле Ответы: – поле Правильный ответ:);
3. В нижней части (поля просмотра) расположены два табло (заключенные в рамки):
- табло ввода номера (ввод номера вопроса – поле Вопрос №, вызов вопроса из файла для редактирования с помощью переключателя «Редактор», вызов вопроса из файла для просмотра с помощью кнопки Вызов);
- табло просмотра текста (просмотр вопроса – поле Вопрос:, просмотр возможных вариантов ответов – поле Ответы:, просмотр номера правильного ответа из приведенных в поле Ответы: – поле Правильный ответ).
Основные свойства стартовой формы (Form1) приведены табл. 1.
Рекомендуется начинать заполнять форму с установки фреймов (рамок). Рамки служат для объединения элементов в группы. Для создания рамки нужно выполнить щелчок по элементу Frame на панели элементов, установить графический курсор в форме, нажать левую кнопку мыши и, не отпуская ее, передвинуть мышь. Положение и размеры рамки в форме могут быть легко изменены традиционными для Windows способами. Если сначала создать рамку, а затем расположить внутри нее элементы, то переместить эти объекты за пределы рамки нельзя. В этом случае получается своего рода контейнер, подобно форме, содержащей элементы внутри своих границ
Имена элементов управления на форме начинаются с сокращенного названия элемента, за которым следует смысловая мнемоническая часть.
Таблица 1. Свойства и их значения для элементов управления стартовой формы приложения «АРМ преподавателя»
№ п/п | Имя элемента (значение свойства Name) | Назначение | Свойство | Значение |
Стартовая форма
Метки Label
Поля редактирования TeхtBoх
8
txtTexv1 (txtTexv2)
поле для записи вопроса (поле для просмотра вызванного на редактирование вопроса);
9
txtTexo1 (txtTexo2)
поле для записи возможных вариантов ответов на поставленный вопрос (поле для просмотра вызванных на редактирование вариантов ответов);
10
txtNpo1 (txtNpo2)
поле для записи номера правильного ответа из перечисленных в поле txtTexo1 (поле для просмотра правильного ответа).
Переключатели OptionButton
11
optZ
переключатель, служащий для подтверждения правильности ввода номера вопроса, который будет записан в файл;
12
optR
переключатель, служащий для подтверждения правильности ввода номера вопроса, вызываемого на редактирование из файла
Командные кнопки CommandButton
Рис. 2. Стартовая форма приложения «АРМ преподавателя»
Листинг 1.
(General) -> (Declarations)
Public nvz As Integer, nvv As Integer
Private Sub cmdVyz_Click()
Dim z As vop
nvv = Val(txtNv2.Text)
txtTexv2.Text = ""
txtTexv2.Refresh
txtTexo2.Text = ""
txtTexo2.Refresh
txtNpo2.Text = ""
txtNpo2.Refresh
Open "c:\let\" + txtNlet.Text + ".txt" For Random As #1 Len = 2048
If txtNlet.Text = "" Then
MsgBox ("Где имя работы?")
GoTo m1
End If
If nvv = 0 Then
MsgBox ("Где номер вопроса?")
GoTo m1
End If
MsgBox ("Открываем файл!")
Get #1, nvv, z
cmdVyz.Caption = "Готово!"
For i = 1 To 100000000
Next i
cmdVyz.Caption = "Bызов"
txtTexv2.Text = z.v
txtTexv2.Refresh
txtTexo2.Text = z.o
txtTexo2.Refresh
txtNpo2.Text = z.n
txtNpo2.Refresh
m1: Close 1
z.v = ""
z.o = ""
z.n = ""
txtNv2.SetFocus
m2: End Sub
Private Sub cmdZap_Click()
Dim z As vop
z.v = txtTexv1.Text
z.o = txtTexo1.Text
z.n = txtNpo1.Text
If optZ.Value = False Then
MsgBox ("Подтвердите № записи!")
txtNvl.SetFocus
GoTo m2
End If
Open "c:\let\" + txtNlet.Text + ".txt" For Random As #1 Len = 2048
If z.v = "end" Then End
If z.v = "" Then
MsgBox ("Где вопрос?")
GoTo m1
End If
If z.o = "" Then
MsgBox ("Где ответы?")
GoTo m1
End If
If z.n = "" Then
MsgBox ("Где правильный ответ?")
GoTo m1
End If
If nvz = 0 Then
MsgBox ("Где номер вопроса?")
GoTo m1
End If
If txtNlet.Text = "" Then
MsgBox ("Где имя работы?")
GoTo m1
End If
Put #1, nvz, z
cmdZap.Caption = "Готово!"
For i = 1 To 1000000
Next i
cmdZap.Caption = "3апись"
m1: Close 1
optZ.Value = False 'c6poc флажка
txtTexv1.Text = " "
txtTexo1.Text = " "
txtNpo1.Text = " "
txtNv1.Text = " "
txtTexv1.SetFocus
m2: End Sub
Private Sub Form_Load()
i=0
End Sub
Private Sub Form_Unload(Cancel As Integer)
End Sub
Private Sub mnuExit_Click()
End
End Sub
Private Sub mnuHelpAbout_Click()
frmHelpAbout.Show 1
End Sub
Private Sub mnuHelpInst_Click ()
frmHelpInst.Show 1
End Sub
Private Sub optR_Click()
Dim z As vop
nvv = Val(txtNv2.Text)
If txtNlet.Text = "" Then
MsgBox ("Где имя работы?")
GoTo m1
End If
txtTexv1.Text = "" 'очистка полей записи
txtTexv1.Refresh
txtTexo1.Text = ""
txtTexo1.Refresh
txtNpo1.Text = ""
txtNpo1.Refresh
txtNv1.Text = ""
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
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
Рекомендации по тестированию работы приложения
При тестировании экранной формы рекомендуется точно следовать порядку работы пользователя, изложенного в инструкции к приложению. В целях тестирования приложения при создании файла контрольной работы рекомендуется вводить записи следующего содержания:
№ записи | Содержание записи | ||
Вопрос | Ответы | № правильного ответа | |
1 | Вопрос 1 | Ответ 1 Ответ 2 Ответ 3 | 2 |
2 | Вопрос 2 | Ответ 1 Ответ 2 Ответ 3 | 1 |
3 | Вопрос 3 | Ответ 1 Ответ 2 Ответ 3 | 3 |
и т.д. | |||
19 | Вопрос 19 | Ответ 1 Ответ 2 Ответ 3 | 1 |
ВНИМАНИЕ! При вводе № правильного ответ не допускается оставлять пробел перед введенным значением, т.е. следует начинать ввод с первой позиции текстового поля.
Дизайн стартовой формы
Стартовая форма приложения «АРМ обучаемого» условно состоит из трех частей (рис. 4):
1. В верхней части экранной формы пользователь вводит имя контрольной работы, содержащей тестовые вопросы, и собственную фамилию.
2. В средней части экранной формы находятся поля вопроса и вариантов ответов. Порядковый номер очередного вопроса будет отображаться в поле, расположенном слева от поля вопроса.
3. В нижней части экранной формы расположены два табло, заключенные в рамки:
- табло для вывода времени (в секундах), которое осталось для ответа на поставленные вопросы;
- табло для ввода номера правильного ответа, состоящее из блока цифровых кнопок.
Текстовое поле и переключатель «Ввод» предназначены для ввода текстового ответа на вопрос для случая, когда в вопросе отсутствуют варианты ответов.
Основные свойства стартовой формы (Form1) приведены табл. 2.
Рекомендуется начинать заполнять форму с установки фреймов (рамок). Имена элементов управления на форме начинаются с сокращенного названия элемента, за которым следует смысловая мнемоническая часть.
Таблица 2. Свойства и их значения для элементов управления стартовой формы приложения «АРМ обучаемого»
№ п/п | Имя элемента (значение свойства Name) | Назначение | Свойство | Значение |
Стартовая форма
Метки Label
Текстовые поля TeхtBoх
8
txtTexv2
поле для записи вопроса (поле для просмотра вызванного на редактирование вопроса);
9
txtTexo2
поле для записи возможных вариантов ответов на поставленный вопрос (поле для просмотра вызванных на редактирование вариантов ответов);
10
txtVvod
поле для записи номера правильного ответа из перечисленных в поле txtTexo1 (поле для просмотра правильного ответа)
Переключатели OptionButton
11
optVvod
переключатель, служащий для ввода правильного ответа
Командные кнопки CommandButton
13
cmd1 – cmd5
цифровые кнопки для указания номера правильного ответа;
Таймер
Рис. 4 Стартова форма приложения «АРМ обучаемого»
Форма с оценкой «5»
Форма с оценкой «4»
Форма с оценкой «3»
Форма с оценкой «2»
Листинг 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
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
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
If txtTexo2.Text = "" Or txtTexo2.Text = " " Or txtTexo2.Text = " " Or 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
txtFam.SetFocus
GoTo mksub
End If
If (optVvod.Value = False) And (netotv = 0) Then
sv = sv + 1 'счетчик вопросов
no = "1" 'нажата кнопка 1
If npo = no Then
sb = sb + 1
txtVvod.Text = "Да!"
txtVvod.Refresh
For i = 1 To 30000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
Else
txtVvod.Text = "Heт!"
txtVvod.Refresh
For i = 1 To 30000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
End If
Else
txtVvod.Text = txtVvod.Text + "0"
txtVvod.Refresh
GoTo mksub
End If
lblPodskazka.Caption = " "
lblPodskazka.Refresh
Doit
mksub: End Sub
Private Sub cmd2_Click()
If txtFam.Enabled = True Then
cmd2.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
txtFam.SetFocus
GoTo mksub
End If
If (optVvod.Value = False) And (netotv = 0) Then
sv = sv + 1 'счетчик вопросов
no = "2" 'нажата кнопка 2
If npo = no Then
sb = sb + 1
txtVvod.Text = "Да!"
txtVvod.Refresh
For i = l To 30000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
Else
txtVvod.Text = "Heт!"
txtVvod.Refresh
For i = l To 30000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
End If
Else
txtVvod.Text = txtVvod.Text + "0"
txtVvod.Refresh
GoTo mksub
End If
lblPodskazka.Caption = " "
lblPodskazka.Refresh
Doit
mksub: End Sub
Private Sub cmd3_Click()
If txtFam.Enabled = True Then
cmd3.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
txtFam.SetFocus
GoTo mksub
End If
If (optVvod.Value = False) And (netotv = 0) Then
sv = sv + 1 'счетчик вопросов
no = "3" 'нажата кнопка 3
If npo = no Then
sb = sb + 1
txtVvod.Text = "Да!"
txtVvod.Refresh
For i = l To 30000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
Else
txtVvod.Text = "Heт!"
txtVvod.Refresh
For i = l To 30000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
End If
Else
txtVvod.Text = txtVvod.Text + "0"
txtVvod.Refresh
GoTo mksub
End If
lblPodskazka.Caption = " "
lblPodskazka.Refresh
Doit
mksub: End Sub
Private Sub cmd4_Click()
If txtFam.Enabled = True Then
cmd4.Enabled = False 'запрет cmd, пока не введена фамилия
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
txtFam.SetFocus
GoTo mksub
End If
If (optVvod.Value = False) And (netotv = 0) Then
sv = sv + 1 'счетчик вопросов
no = "4" 'нажата кнопка 4
If npo = no Then
sb = sb + 1
txtVvod.Text = "Да!"
txtVvod.Refresh
For i = l To 3000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
Else
txtVvod.Text = "Heт!"
txtVvod.Refresh
For i = l To 3000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
End If
Else
txtVvod.Text = txtVvod.Text + "0"
txtVvod.Refresh
GoTo mksub
End If
lblPodskazka.Caption = " "
lblPodskazka.Refresh
Doit
End If
mksub: End Sub
Private Sub cmd5_Click()
If txtFam.Enabled = True Then
cmd5.Enabled = False 'запрет cmd, пока не введена фамилия
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
txtFam.SetFocus
GoTo mksub
End If
If (optVvod.Value = False) And (netotv = 0) Then
sv = sv + 1 'счетчик вопросов
no = "5" 'нажата кнопка 5
If npo = no Then
sb = sb + 1
txtVvod.Text = "Да!"
txtVvod.Refresh
For i = l To 3000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
Else
txtVvod.Text = "Heт!"
txtVvod.Refresh
For i = l To 3000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
End If
Else
txtVvod.Text = txtVvod.Text + "0"
txtVvod.Refresh
GoTo mksub
End If
lblPodskazka.Caption = " "
lblPodskazka.Refresh
Doit
End If
mksub: End Sub
Private Sub Form_Load()
i = 0
txtVvod.Enabled = False
optVvod.Enabled = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
End Sub
Private Sub mnuHelpAbout_Click()
frmHelpAbout.Show 1
End Sub
Private Sub mnuHelpInst_Click()
frmHelpInst.Show 1
End Sub
Private Sub optVvod_Click()
If txtFam.Enabled = True Then
cmdl.Enabled = False 'запрет cmd, пока не введена фамилия
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
txtFam.SetFocus
GoTo mksub
End If
sv = sv + 1 'счетчик вопросов
If npo = txtVvod.Text Then
sb = sb + 1
txtVvod.Техt = "Да!"
txtVvod.Refresh
For i = 1 To 3000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
optVvod.Value = False
Else
txtVvod.Text = "Нет!"
txtVvod.Refresh
For i = 1 To 3000000
Next i
txtVvod.Text = " "
txtVvod.Refresh
optVvod.Value = False
End If
lblPodskazka.Caption = " "
lblPodskazka.Refresh
txtVvod.Enabled = False
optVvod.Enabled = False
Doit
mksub: End Sub
Private Sub Timer1_Timer()
If lblNv2.Caption <> " " Then
t = t - 1
lblTime.Caption = Str(t)
End If
If t = 1 Then
t = 0
lblTime.Caption = Str(t)
MsgBox ("Извините, время вышло!")
Doit
End If
If t = 0 Then t = 600
End Sub
Private Sub txtFam_Click()
Fam = txtFam.Text 'фамилия
txtFam.Enabled = False 'недоступность поля текста
t = 600 'установка времени
sb = 0 'счетчик баллов
sv = 0 'счетчик вопросов
npo = "0"
cmd1.Enabled = True 'разрешение cmd — введена фамилия
cmd2.Enabled = True
cmd3.Enabled = True
cmd4.Enabled = True
cmd5.Enabled = True
Doit ' вызов общей процедуры
End Sub
Private Sub txtFam_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Fam = txtFam.Text 'фамилия
txtFam.Enabled = False 'недоступность поля текста
t = 600 'установка времени
sb = 0 'счетчик баллов
sv = 0 'счетчик вопросов npo = "0"
cmd1.Enabled = True 'разрешение cmd — введена фамилия
cmd2.Enabled = True
cmd3.Enabled = True
cmd4.Enabled = True
cmd5.Enabled = True
Doit 'вызов общей процедуры
End If
End Sub
Private Sub txtNlet_Click ()
txtNlet.Enabled = False 'недоступность поля текста
If txtFam.Enabled = False Then
txtFam.Enabled = True
txtFam.SetFocus
End If
End Sub
Private Sub txtNlet_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
txtNlet.Enabled = False 'недоступность поля текста
End If
If txtFam.Enabled = False Then
txtFam.Enabled = True
txtFam.SetFocus
End If
End Sub
Коды для Module 1
(General) -> (Declarations)
Type vop 'определение записи
v As String
o As String
n As String
End Type
Dim z As vop
3. Задание второго уровня: индивидуальные варианты
Общие положения
Цель индивидуального задания – продемонстрировать степень освоения технологии визуального программирования на примере RAD-системы Microsort Visual Basic 6.0.
В каждом варианте задания требуется:
- создать дизайн экранной формы для работы пользователя при решении профессиональной задачи;
- создать программный код, связанный с элементом управления CommandButton, производящий вычисления над введенными пользователем данными;
- обеспечить возможность сохранения данных в файле и вывод их из файла в поля экранной формы.
Требования к работе экранной формы:
- поля, предназначенные для отображения расчетных значений, должны быть недоступны для редактирования пользователем,
- имя файла должно задаваться пользователем произвольно,
- предусмотреть обработку ошибочных действий пользователя путем формирования диагностических сообщений.
3.2 Примеры вариантов заданий
№ поля | Перевод шкал | Формула для вычисления |
1 | Цельсий-> Фаренгейт, Кельвин | Ф = Ц / 5*9+32 К = Ц + 273,15 |
2 | Фаренгейт-> Цельсий, Кельвин | Ц = (Ф – 32) * 5 / 9 К = (Ф – 32) * 5 / 9 +273,15 |
3 | Кельвин-> Цельсий, Фаренгейт | Ц = К – 273,15 Ф = (К – 273,15) * 9 / 5 +32 |
АЛГОРИТМИЗАЦИЯ
И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
Учебно-методический комплекс
Методические указания
к курсовой работе
Оглавление
1. Цель и структура курсовой работы.. 3
2. Задание первого уровня: разработка системы тестирования. 4
2.1 Создание приложения «АРМ преподавателя». 6
2.1.1 Последовательность этапов разработки приложения. 6
2.1.2 Переменные и программный код приложения. 10
2.1.3 Рекомендации по тестированию работы приложения. 14
2.2 Создание приложения «АРМ обучаемого». 15
2.2.1 Последовательность этапов разработки приложения. 15
2.2.2 Переменные и программный код приложения. 19
3. Задание второго уровня: индивидуальные варианты.. 31
3.1 Общие положения. 31
3.2 Примеры вариантов заданий. 32
Дата: 2019-04-23, просмотров: 282.