Случайный 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
Смотрите также мое обновленное Решение ниже.