Member 13834531 Ответов: 1

Случайный McQ вопросы


дорогие,

пожалуйста помогите мне в этом VB.net как от новичка

я пытаюсь сделать простое приложение (сотрудников и подразделений). у меня есть 3 проблемы :

(прежде чем вы начнете читать мои проблемы , пожалуйста , скопируйте и вставьте все мои коды в новую форму visual basic и добавьте 4 переключателя, 1 метку и 2 кнопки, чтобы вопросы были легко понятны)

1 - я хочу рандомизировать вопросы (а не ответы): всегда мои вопросы находятся в одной и той же последовательности. например : вопрос № 1 - "богатый" , Q2- "Тал" , Q3 - "САУ".
что я хочу, так это рандомизировать их несколько раз, когда "sau" становится Q#1 и так далее...

2 - если человек ответил на правильный вопрос, я не хочу снова видеть этот вопрос в списке (если только человек не загрузит форму снова). например: "богатый" - это ИТ-отдел, если человек выбирает его, то викторина продолжается с остальными вопросами "Тал","САУ" без правильного ответа на вопрос "богатый"

3-я хочу перейти непосредственно к следующему вопросу: в моем примере: если я выберу переключатель 1 или 2, или 3, или 4, то я должен нажать на кнопку 1, чтобы перейти к следующему вопросу.
что я хочу, так это пропустить кнопку 1( я хочу удалить ее) и просто иметь тест с кнопкой запуска и 1 меткой и 4 переключателями.

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

Большое спасибо!

Что я уже пробовал:

Общественного Класса Form1



Частная структура questionsNanswers
Общественный Вопрос Как Строку
Public a As String
Публичный QT как целое число
Публичный QC как целое число
Торцевая Конструкция

Private wstart As Integer


Частный adad как целое число = 10
Частное QA(15) как questionsNanswers


Частное слово(999) в виде строки
Частные имена(999) в виде строки

Частный Арай(999) как целое число


Частная суб RandomizeArray(а как integer, byref по спектру() как целое число)

Dim i как целое число
Dim j как целое число
Dim tmp как целое число

Рандомизировать()
Для i = 0 до a - 1
j = Int((6 - i + 1) * Rnd() + i)

tmp = массив(i)
array(i) = array(j)
массив(j) = tmp

Следующий

Конец Подводной Лодки

Частная суб рандомизация()
Dim r как новый случайный



Конец Подводной Лодки

Private Sub Button1_Click(отправитель как система.Объект, как система.EventArgs) Обрабатывает Button1.Щелчок
' следующий

CheckEntry()

wstart = wstart + 1
Если wstart >= adad, то
wstart = 0
Конец, Если


Инструкция writetext()
рандомизировать()

Конец Подводной Лодки

Private Sub Button2_Click(отправитель как система.Объект, как система.EventArgs) Обрабатывает Button2.Click
' предыдущий

CheckEntry()

wstart = wstart - 1
Если wstart < 0, то
wstart = adad - 1
Конец, Если

Инструкция writetext()
Конец Подводной Лодки

Частная Суб CheckEntry()

Задав ему значение radiobutton1.Видимое = Истинное
RadioButton2.Видимое = Истинное
RadioButton3.Видимое = Истинное
RadioButton4.Видимое = Истинное

Задав ему значение radiobutton1.ForeColor = Цвет.Черный
RadioButton2.ForeColor = Цвет.Черный
RadioButton3.ForeColor = Цвет.Черный
RadioButton4.ForeColor = Цвет.Черный

Задав ему значение radiobutton1.Проверено = Ложь
RadioButton2.Проверено = Ложь
RadioButton3.Проверено = Ложь
RadioButton4.Проверено = Ложь

Конец Подводной Лодки


Частная Суб Инструкция Writetext()

Затемнение как Boolean = False

Для kk = от 0 до 6
Арай(КК) = КК
Следующий
RandomizeArray(7, Арай)


Делайте это до тех пор, пока не выйдет
Для j = от 0 до 3
Если = false, то
Если aray(j) = QA(wstart).QT тогда
out = True
Выход Делать
Конец, Если
Конец, Если
Следующий

Для kkk = от 0 до 6
Арай(ККК) = ККК
Следующий
RandomizeArray(7, Арай)
Петля

Задав ему значение radiobutton1.Текст = слово(Арай(0))
RadioButton2.Текст = слово(Арай(1))
RadioButton3.Текст = слово(Арай(2))
RadioButton4.Текст = слово(Арай(3))





Этикетка 1.Text = QA(wstart).Q





' ==============================
'Dim go As Boolean = False
- Если пойдешь тогда
'Дим Сообщение Как строку
'Для ll = от 0 до 6
'msg = msg + CStr(aray(ll)) + "|"
- Следующий

'MsgBox(msg)
-Конец, Если

Конец Подводной Лодки



Общественные Саб Новый()

- Этот звонок нужен проектировщику.
метод InitializeComponent()

'Добавьте любую инициализацию после вызова InitializeComponent ().

слово(0) = "та"
слово(1) = "GR"
слово(2) = "HR"
слово(3) = "плавник"
слово(4) = "коммерческий"
слово(5) = "Proc"
слово(6) = "оно"

имена(0) = "богатые"
имена(1) = "Тал"
имена(2) = "САУ"
имена(3) = "ПЭТ"
имена(4) = "del"



'q и wstart означают между ( )
QA(0).Q = имена(0)
QA(0).a = слово(6)
QA(0).QT = 6
QA(0).QC = -1

QA(1).Q = имена(1)
QA(1).a = слово(1)
QA(1).QT = 1
QA(1).QC = -1

QA(2).Q = имена(2)
QA(2).a = слово(2)
QA(2).QT = 2
QA(2).QC = -1

QA(3).Q = имена(3)
QA(3).a = слово(3)
QA(3).QT = 3
QA(3).QC = -1

QA(4).Q = имена(4)
QA(4).a = слово(5)
QA(4).QT = 5
QA(4).QC = -1




Инструкция writetext()

Конец Подводной Лодки

Private Sub RadioButton1_CheckedChanged(отправитель как система.Объект, как система.EventArgs) Обрабатывает RadioButton1.CheckedChanged


Если Задав Ему Значение Radiobutton1.Тогда Проверено
Если StrComp(QA(wstart).a, RadioButton1.Text) = 0, то
Задав ему значение radiobutton1.Цвет Текста = Цвет.Красный
RadioButton2.Видна = Ложь
RadioButton3.Видна = Ложь
RadioButton4.Видна = Ложь
Конец, Если
Конец, Если


Если Задав Ему Значение Radiobutton1.ForeColor = Цвет.Тогда Красный
- Конец, Если
'Если wstart >= adad, то
'wstart = 0

- Конец, Если
'wstart = wstart + 1
'Если wstart >= adad, то
'wstart = 0
- Конец, Если
Конец Подводной Лодки

Private Sub RadioButton2_CheckedChanged(отправитель как система.Объект, как система.EventArgs) Обрабатывает RadioButton2.CheckedChanged
Если RadioButton2.Тогда Проверено
Если StrComp(QA(wstart).a, RadioButton2.Text) = 0, то
RadioButton2.Цвет Текста = Цвет.Красный
Задав ему значение radiobutton1.Видна = Ложь
RadioButton3.Видна = Ложь
RadioButton4.Видна = Ложь
Конец, Если
Конец, Если
Конец Подводной Лодки

Private Sub RadioButton3_CheckedChanged(отправитель как система.Объект, как система.EventArgs) Обрабатывает RadioButton3.CheckedChanged
Если RadioButton3.Тогда Проверено
Если StrComp(QA(wstart).a, RadioButton3.Text) = 0, то
RadioButton3.Цвет Текста = Цвет.Красный
Задав ему значение radiobutton1.Видна = Ложь
RadioButton2.Видна = Ложь
RadioButton4.Видна = Ложь
Конец, Если
Конец, Если
Конец Подводной Лодки

Private Sub RadioButton4_CheckedChanged(отправитель как система.Объект, как система.EventArgs) Обрабатывает RadioButton4.CheckedChanged
Если RadioButton4.Тогда Проверено
Если StrComp(QA(wstart).a, RadioButton4.Text) = 0, то
RadioButton4.Цвет Текста = Цвет.Красный
Задав ему значение radiobutton1.Видна = Ложь
RadioButton2.Видна = Ложь
RadioButton3.Видна = Ложь
Конец, Если
Конец, Если

Конец Подводной Лодки

Private Sub Label1_Click(sender As Object, e As EventArgs) обрабатывает Label1.Click



Конец Подводной Лодки

Private Sub RadioButton1_Click(sender As Object, e As EventArgs) обрабатывает RadioButton1.Щелчок


Конец Подводной Лодки

Private Sub RadioButton1_MouseClick(sender As Object, e As MouseEventArgs) обрабатывает RadioButton1.Щелчок мышью


Если Задав Ему Значение Radiobutton1.Тогда Проверено
'Если StrComp(QA(wstart).a, RadioButton1.Text) = 0, то



'Задав ему значение radiobutton1.Цвет Текста = Цвет.Красный
'RadioButton2.Видна = Ложь
'RadioButton3.Видна = Ложь
'RadioButton4.Видна = Ложь
-Конец, Если

- Конец, Если
'метод MoveTo()

Конец Подводной Лодки
Частная суб перейти()

wstart = wstart + 1
Если wstart >= adad, то
wstart = 0
Конец, Если

-случайный()
Инструкция writetext()


Если Задав Ему Значение Radiobutton1.ForeColor = Цвет.Красный, Затем MessageBox.Показать("правильно") Еще MessageBox.Показать("ложь")
'If RadioButton2.ForeColor = Цвет.Красный, Затем Этикетка1.Text = QA(wstart).Q
Если RadioButton3.ForeColor = Цвет.Красный, Затем Этикетка1.Text = QA(wstart).Q
Если RadioButton3.ForeColor = Цвет.Красный, Затем Этикетка1.Text = QA(wstart).Q


Конец Подводной Лодки

End Класса

Richard MacCutchan

Пожалуйста, не сбрасывайте груз неформатированного кода и не говорите людям, чтобы они отлаживали его для вас. Объясните точно, в чем проблема, и покажите только соответствующий код, внутри тегов "pre", чтобы он был читабельным.

Member 13834531

хорошо, я апполгизирую... возможно, вот мой вопрос, как его рандомизировать: Label1.Text = QA(wstart).Q

Richard MacCutchan

Создайте коллекцию (List<t>) и используйте случайные значения для выбора элемента.

Member 13834531

не могли бы вы, если не возражаете, объяснить это в кодексах? я действительно не совсем выздоровел.

Richard MacCutchan

Видеть Класс List(T) (System.Коллекции.Общий)[^] и Случайный Класс (Система)[^Вы узнаете гораздо больше, попробовав это самостоятельно.

Member 13834531

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

Member 13834531

пожалуйста...

Richard MacCutchan

Перейдите и прочитайте документацию, обе ссылки содержат пояснения и примеры. Ничто из того, что я пишу, не объясняет этого более ясно. Если вы действительно хотите быть разработчиком, вам нужно учиться и практиковаться, практиковаться, практиковаться.

Member 13834531

я знаю... но, пожалуйста, только один образец примените его, если вы не возражаете... я действительно не получил его по ссылке (я использую метод структуры), поэтому, пожалуйста, помогите мне с ним.

Richard MacCutchan

Se ниже, это C#, но вы должны быть в состоянии понять эту идею.

Member 13834531

я буду честен ... я действительно благодарен тебе, но... я еще не понял этой идеи ...я новичок в этом деле vb.net и вдруг ответ в C#...is есть способ, которым можно применить его в структуре, а не в методе списка, пожалуйста?... спасибо

Richard MacCutchan

Все.Чистые классы доступны в C# и VB.NET версии. Перейдите по ссылкам, которые я вам дал, и вы можете увидеть его в нужных вам версиях. Но если вы действительно испытываете трудности с пониманием этого, то я думаю, что вам нужно сделать шаг назад и провести некоторое базовое исследование.

Member 13834531

Большое спасибо!... я последую твоему совету...

Richard MacCutchan

Смотрите также мое обновленное Решение ниже.

1 Ответов

Рейтинг:
0

Richard MacCutchan

Sub Main()
    Dim questions As New List(Of KeyValuePair(Of String, String))
    questions.Add(New KeyValuePair(Of String, String)("What is the capital of England?", "London"))
    questions.Add(New KeyValuePair(Of String, String)("What is the capital of France?", "Paris"))
    questions.Add(New KeyValuePair(Of String, String)("What is the capital of Germany?", "Berlin"))

    Dim qNumber As New Random()
    For i As Integer = 0 To 5

        Dim qi As Integer = qNumber.Next() Mod questions.Count
        Dim qa As KeyValuePair(Of String, String) = questions.ElementAt(qi)
        Console.WriteLine(qa.Key)
        Console.WriteLine(qa.Value)
    Next
    Console.ReadLine()

End Sub


Обновлено для VB.NET