Multiple Chice Fragen in gemischter Reihenfolge mit anschließender Auswertung mit Microsoft Visual Basic 2010 Express

  • VB.NET

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von BlackNetworkBit.

    Multiple Chice Fragen in gemischter Reihenfolge mit anschließender Auswertung mit Microsoft Visual Basic 2010 Express

    Hi,
    ich bin neu hier und möchte, zum üben für eine Prüfung, für mehrere Person ein Programm zur verfügung stellen, mit dem man die Fragen üben kann, also mit Microsoft Visual Basic 2010 Express. Am besten wäre es, wenn man sogar wählen könnte zw. richtiger Reihenfolge, gemischte Reihenfolge und wie in der Prüfung mit nur einer bestimmten Anzahl, in gemischter Reihenfolge.

    Die Fragen sind Multiple Coice Fragen, bei denen man teilweise auch mehrere Antwortmöglichkeiten markieren muss, damit die Frage richtig beantwortet ist. Insgesamt handelt es sich um 212 Fragen und ich wäre glücklich, wenn ich nicht für jede Frage eine neue Form erstellen müsste.

    Am Ende sollte bei der Prüfungssimulation eine Auswertung kommen, mit bestanden oder nicht bestanden (da geht es um einen bestimmten Prozentsatz). Bei den anderen zwei will ich nach jeder Frage eine Auswertung mit Richtig oder Falsch.

    Ich bin leider noch ein Anfänger...

    Wie kann ich das verwirklichen?

    Ich würde mich über jede Hilfe freuen...

    LG Marius

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „marius“ ()

    Darauf kann man sowas aufbauen, mit ner Datenbank wäre das auch machbar,
    aber ich zeig dir mal ein Beispiel ohne.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Questionnumber As Integer
    3. Dim A, B, C, D As Boolean
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. Label1.Text = "Kann es losgehen?"
    6. A = False
    7. B = False
    8. C = False
    9. D = False
    10. End Sub
    11. Private Sub Select_Questions()
    12. Select Case Questionnumber
    13. Case 1
    14. Label1.Text = "A ist richtig"
    15. A = True
    16. Case 2
    17. Label1.Text = "b ist richtig"
    18. B = True
    19. Case 3
    20. Label1.Text = "c ist richtig"
    21. C = True
    22. Case 4
    23. Label1.Text = "d ist richtig"
    24. D = True
    25. Case 5
    26. Label1.Text = "a + b ist richtig"
    27. A = True
    28. B = True
    29. Case 6
    30. Label1.Text = "a + c ist richtig"
    31. A = True
    32. C = True
    33. Case 7
    34. Label1.Text = "a + d ist richtig"
    35. A = True
    36. D = True
    37. Case 8
    38. Label1.Text = "b + c ist richtig"
    39. B = True
    40. C = True
    41. Case 9
    42. Label1.Text = "b + d ist richtig"
    43. B = True
    44. D = True
    45. Case 10
    46. Label1.Text = "c + d ist richtig"
    47. C = True
    48. D = True
    49. Case 11
    50. Label1.Text = "a + b + c ist richtig"
    51. A = True
    52. B = True
    53. C = True
    54. Case 12
    55. Label1.Text = "a + b + d ist richtig"
    56. A = True
    57. B = True
    58. D = True
    59. Case 13
    60. Label1.Text = "b + c + d ist richtig"
    61. B = True
    62. C = True
    63. D = True
    64. Case 14
    65. Label1.Text = "a + c + d ist richtig"
    66. A = True
    67. C = True
    68. D = True
    69. Case 15
    70. Label1.Text = "alle sind richtig"
    71. A = True
    72. B = True
    73. C = True
    74. D = True
    75. End Select
    76. End Sub
    77. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    78. Button1.Enabled = False
    79. Button2.Enabled = True
    80. Questionnumber += 1
    81. If Questionnumber > 14 Then
    82. Questionnumber = 1
    83. End If
    84. Select_Questions()
    85. Button2.Text = "Prüfen"
    86. CheckBox1.Checked = False
    87. CheckBox2.Checked = False
    88. CheckBox3.Checked = False
    89. CheckBox4.Checked = False
    90. Label2.Text = ""
    91. End Sub
    92. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    93. If A And CheckBox1.Checked And B And CheckBox2.Checked And C And CheckBox3.Checked And D And CheckBox4.Checked Then
    94. Label2.Text = "richtig"
    95. ElseIf A And CheckBox1.Checked And B And CheckBox2.Checked And C And CheckBox3.Checked Then
    96. Label2.Text = "richtig"
    97. ElseIf A And CheckBox1.Checked And B And CheckBox2.Checked And D And CheckBox4.Checked Then
    98. Label2.Text = "richtig"
    99. ElseIf B And CheckBox2.Checked And C And CheckBox3.Checked And D And CheckBox4.Checked Then
    100. Label2.Text = "richtig"
    101. ElseIf A And CheckBox1.Checked And C And CheckBox3.Checked And D And CheckBox4.Checked Then
    102. Label2.Text = "richtig"
    103. ElseIf A And CheckBox1.Checked And B And CheckBox2.Checked Then
    104. Label2.Text = "richtig"
    105. ElseIf A And CheckBox1.Checked And C And CheckBox3.Checked Then
    106. Label2.Text = "richtig"
    107. ElseIf A And CheckBox1.Checked And D And CheckBox4.Checked Then
    108. Label2.Text = "richtig"
    109. ElseIf B And CheckBox2.Checked And C And CheckBox3.Checked Then
    110. Label2.Text = "richtig"
    111. ElseIf B And CheckBox2.Checked And D And CheckBox4.Checked Then
    112. Label2.Text = "richtig"
    113. ElseIf D And CheckBox4.Checked And C And CheckBox3.Checked Then
    114. Label2.Text = "richtig"
    115. ElseIf A And CheckBox1.Checked Then
    116. Label2.Text = "richtig"
    117. ElseIf B And CheckBox2.Checked Then
    118. Label2.Text = "richtig"
    119. ElseIf C And CheckBox3.Checked Then
    120. Label2.Text = "richtig"
    121. ElseIf D And CheckBox4.Checked Then
    122. Label2.Text = "richtig"
    123. Else
    124. Label2.Text = "falsch"
    125. End If
    126. Button1.Enabled = True
    127. Button2.Enabled = False
    128. A = False
    129. B = False
    130. C = False
    131. D = False
    132. Button1.Text = "weiter"
    133. End Sub
    134. End Class


    In label1.text stellst du fragen und setzt dann, für die
    richtigen antworten die entsprechenden Booleans auf True

    MfG

    Derfuhr

    [VB2010 Projektmappe] Quiz.7z

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Derfuhr“ ()

    Hi,

    danke für die schnellen Antworten.

    Den Code von Derfuhr finde ich schon richtig gut. Das hätte ich nicht hinbekommen. Es ist aber noch ein Fehler drin. Wenn zB. A richtig ist und man hat A angeklickt ist es immer richtig, egal was man sonst noch angeklickt hat.

    Ich bin aber überascht, wie schnell du mitr mit einem guten Code geholfen hast.

    Wie müsste man so etwas denn mit einer Datenbank machen?

    LG Marius

    marius schrieb:

    DEn Code von Derfuhr finde ich schon richtig gut.

    Nein. Der Code ist großer Mist. Nur weil du es nicht hinbekommen hättest, beweist das nicht das Gegenteil. Überleg dir einfach mal, wie der Code aussehen würde, wenn du 200 Fragen hättest. Und was würdest du machen, wenn du feststellst, dass eine Frage falsch formuliert ist oder die vorgegebene Antwort nicht korrekt? Programm neu kompilieren? Wie gesagt: Lösung wie von derFuhr ist eine "Hauptsache es funzt"-Lösung.
    Überdenk mal folgende Aufgabenstellung:
    Die Kunden (Plural) wollen ein Programm, wo sie ihre (beliebig vielen) Multiple Choice Fragen und die Antworten selbst einpflegen können.
    Mach ein Programm, dass bei allen diesen Kunden läuft.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok, aber wie soll ich es dann machen??

    DEr Code funzt auch noch nicht. Ich dachte ich könnte das Problem so lösen, hat aber nicht geklappt:

    VB.NET-Quellcode

    1. Case 1
    2. Label5.Text = "A ist richtig"
    3. A = True
    4. B = False
    5. C = False
    6. D = False


    ZU RodFromGermany

    So war das nicht gemeint, da habe ich mich wohl missverständlich ausgedrückt. Noch mal zur genaueren Erklärung:

    Das Programm ist für Freunde von mir. Also keine Kunden oder so und auch alles kostenlos.
    Es handelt sich auch immer um die selben Fragen, es gibt aber drei verschiedene Schwierigkeitsstufen: Bronze, Silber und Gold. Desto höher, umso mehr Fragen. Bei Gold 212.
    LG Marius

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „marius“ ()

    marius schrieb:

    Also keine Kunden oder so und auch alles kostenlos.
    Darum geht es nicht.
    Es geht um den Lösungsansatz.
    Mach Dir eine DataTable und pro Frage einen Datensatz. n Fragen (Strings) , die richtige Antwort (Integer).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    marius schrieb:

    Datenbank?
    Nein.
    XML-Datei.
    Such mal danach im Forum.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe die Auswertung falsch geschrieben, hab wohl die Bits vor lauter
    Bytes nicht mehr gesehen, so wäre die bedingung richtig gewesen.

    VB.NET-Quellcode

    1. If A = CheckBox1.Checked And B = CheckBox2.Checked And C = CheckBox3.Checked And D = CheckBox4.Checked Then
    2. Label2.Text = "richtig"
    3. Else
    4. Label2.Text = "falsch"
    5. End If

    Derfuhr schrieb:

    Ich habe die Auswertung falsch geschrieben
    So isses.
    @marius: Nimm RadioButton.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Derfuhr schrieb:

    ... hab wohl die Bits vor lauter
    Bytes nicht mehr gesehen...


    Ich bin beeindruckt, dass du bei dem Code noch "bit" und "byte" unterscheiden kannst.
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer

    milaim schrieb:

    Ich bin beeindruckt, dass du bei dem Code noch "bit" und "byte" unterscheiden kannst.


    Wenn man erst seit wenigen monaten Programmieren lernt, ist es doch
    nicht verwunderlich das man noch nicht die Perfekten Codes runtertippt
    oder nicht? Deshalb bin ich ja in diesem Forum, wer kritisiert wird,
    der weiss auch was er falsch macht und lernt durch diese kritiken.

    edit: Waren deine ersten Codes wie von "Steve Wozniak" getippt?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Derfuhr“ ()

    picoflop schrieb:

    Geht nicht, weil:
    OK, dann muss in die oben beschriebene DataTable noch die Anzahl der richtigen Antworten und die Nummern aller richtigen Antworten, das ist sicherer, als allein die Liste der richtigen Antworten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    marius schrieb:

    Wie mss ich da die Fragen rein schreiben?
    Lass das ein Programm tun.
    Mach für den Anfang eine untypisierte DataTable, gib ihr die richtigen Spalten und dann addest Du pro Frage einfach eine Zeile.
    Und dann MyDataTable.SaveXml(DEIN_PFAD).
    Fertich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!