Пропущенный вопрос перенести в конец теста - VB

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Пропущенный вопрос перенести в конец теста»

textual
Листинг программы
Option Explicit
Const r = 90
Dim WithEvents Lb As Label
Dim WithEvents cb1 As CommandButton, WithEvents cb2 As CommandButton, WithEvents cb3 As CommandButton
Dim i&, ii&, nn&, a$(), aa$()
 
Private Sub cb3_Click()
    'Новый массив с вопросами (Сброс)
    aa = Split("1 2 3 4 5 6 7 8 9 10")
    ii = 0: nn = 0 'Сброс индекса ответа и счетчика ответов
    Lb.Caption = "Вопрос " & aa(ii)
End Sub
 
Private Sub cb2_Click()
    'Перемещение неотвеченного вопроса в конец массива (пропуск)
    Dim s$, n&
    a = aa
    For i = 0 To UBound(aa)
        If i <> ii Then
            a(n) = aa(i): n = n + 1
        End If
    Next
    a(n) = aa(ii)
    aa = a: nn = 0 'Сброс счётчика ответов
    Lb.Caption = "Вопрос " & aa(ii)
End Sub
 
 
Private Sub cb1_Click()
    'Режим ответов
    If MsgBox("Это был правильный ответ ?", 68) = vbNo Then
        cb2_Click
        Exit Sub
    End If
    ii = (ii + 1) Mod 10
    nn = nn + 1
    If nn = 10 Then
        MsgBox "Поздравляю, вы ответили на все вопросы", 64
        End 'конец программы
    End If
    Lb.Caption = "Вопрос " & aa(ii)
End Sub
 
 
Private Sub Form_Load()
    Set Lb = Controls.Add("vb.Label", "Lb"): With Lb
        .Move r, r
        .Visible = 1
    End With
    Set cb1 = Controls.Add("vb.CommandButton", "cb1"): With cb1
        .Move r, Lb.Height + r
        .Caption = "Ответить"
        .Visible = 1
    End With
    Set cb2 = Controls.Add("vb.CommandButton", "cb2"): With cb2
        .Move r * 2 + cb1.Width, Lb.Height + r
        .Caption = "Пропустить"
        .Visible = 1
    End With
    Set cb3 = Controls.Add("vb.CommandButton", "cb3"): With cb3
        .Move r * 2 + cb1.Width * 2, Lb.Height + r
        .Caption = "Сброс"
        .Visible = 1
    End With
    cb3_Click
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы