И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

АЛГОРИТМИЗАЦИЯ

И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ

Учебно-методический комплекс

 

 

Методические указания

к курсовой работе


Оглавление

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) Назначение Свойство Значение

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

1 Form 1   Caption АРМ преподавателя

Метки Label

1   lblNlet  надпись "Имя контрольной работы"; Caption Имя контрольной работы 2 lblText1 (lblText2)  надпись "Вопрос №"; Caption Вопрос № 3 lblV1 (lblV2)  надпись "Вопрос:"; Caption Вопрос: 4 lblO1 (lblO2)  надпись "Ответы:"; Caption Ответы: 5 lblNpo1 (lblNpo2)  надпись «Правильный ответ:». Caption Правильный ответ:

Поля редактирования TeхtBoх

6 txtNlet поле для ввода имени файла с вопросами конт­рольной работы (составляющая Nlet - «номер летучки»); TabIndex   0   7 txtNv1 (txtNv2) поле для ввода номера вопроса, кото­рый должен быть записан в файл вопросов контрольной работы (вызван на редактирование, исправление); TabIndex   1 (7)  

8

txtTexv1 (txtTexv2)

поле для записи вопроса (поле для просмотра вызванного на редактирование вопроса);

MultiLine True ScrollBars 2 — Vertical Enabled True (False) TabIndex 2 (по умолчанию)

9

txtTexo1 (txtTexo2)

поле для записи возможных вариан­тов ответов на поставленный вопрос (поле для просмотра выз­ванных на редактирование вариантов ответов);

MultiLine True ScrollBars 2 — Vertical Enabled True (False) TabIndex 3 (по умолчанию)

10

txtNpo1 (txtNpo2)

поле для записи номера правильного ответа из перечисленных в поле txtTexo1 (поле для просмотра правильного ответа).

Enabled True (False) TabIndex 4 (по умолчанию)

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

11

optZ

переключатель, служащий для подтверждения пра­вильности ввода номера вопроса, который будет записан в файл;

Caption   № введен TabIndex 5  

12

optR

переключатель, служащий для подтверждения пра­вильности ввода номера вопроса, вызываемого на редактирова­ние из файла

Caption   Редактор   TabIndex 8

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

    13 cmdZap  кнопка записи вопроса в файл; TabIndex 6 14 cmdVyz  кнопка вызова вопроса из файла для просмотра TabIndex 9  

 


 

Рис. 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) Назначение Свойство Значение

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

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 поле для ввода имени файла с вопросами конт­рольной работы (составляющая Nlet - «номер летучки»); TabIndex   0   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

поле для записи номера правильного ответа из перечисленных в поле txtTexo1 (поле для просмотра правильного ответа)

Enabled True TabIndex 3

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

11

optVvod

переключатель, служащий для ввода правильного ответа

Caption Ввод TabIndex 4

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

13

cmd1 – cmd5

цифровые кнопки для указания номера правильного ответа;

Caption 1 TabIndex 2

Таймер

14 Timer1 для отсчета времени, оставшегося на выполнение контрольной работы (Timer не виден на форме во время выполнения проекта). Interval   1000  

 

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




Форма с оценкой «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

Коды для 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.