Elke vraag in een multiple choice test bestaat uit een vraag zelf en een aantal verschillende antwoorden , waarvan er slechts een juist is . U kunt een multiple choice test in Visual Basic met behulp van labels te maken op de vragen , radio knoppen voor de mogelijke antwoorden en knoppen weer te navigeren tussen de verschillende vragen . In de code , gebruik arrays om de vragen en antwoorden die de gebruiker indient opslaan en onderhouden van een teller variabele om bij te houden wat de vraag van de gebruiker op te houden . Aan het einde van de test , antwoorden merk van de gebruiker en het resultaat op het formulier . Instructies 1 Open een nieuw Visual Basic project . Voeg twee labels , drie keuzerondjes en twee knoppen om het formulier . Sleep de twee labels aan de top met Label1 bovenop Label2 . Sleep RadioButton1 , RadioButton2 en RadioButton3 aan line-up verticaal onder de labels . Sleep de twee knoppen onder de radio knoppen met Button1 aan de linkerkant en Button2 rechts . Druk op " F7 " 2 om het venster code te openen . Typ de volgende code in de klas niveau : Dim vragen ( 2 , 4 ) als Koord Dim antwoorden ( 2 ) als Koord Dim quesNum als Geheel De eerste regel creëert een twee - dimensionale array . De eerste dimensie is voor elke vraag en de tweede dimensie is voor de vraag zelf , drie antwoordmogelijkheden en het juiste antwoord . De tweede regel maakt een array aan antwoorden van de gebruiker opslaan . De derde lijn creëert een teller variabele die bijhoudt van de vraag van de gebruiker op Type 3 de volgende code : . Private Sub GetQuestions ( ) op Twitter vragen = New String ( , ) { { " hoeveel kleuren in een regenboog ? " , " 5 " , " 6 " , " 7 " , " 7 " } , _ { " Who starred in Pirates of the Caribbean ? "," Johnny Depp " , " John Malkovich ' , ' John Cusack " , " Johnny Depp " } , _ { " Wat is de hoofdstad van Florida ? Miami " , " " , " Tallahassee " , " Jacksonville " , " Tallahassee " } } End Sub Deze subroutine initialiseert gewoon de drie vragen en antwoorden op de vragen array. U kunt extra vragen toe te voegen of om hen op andere manieren , zoals via een tekstbestand , maar als je dat doet , vergeet niet om de grootte van de vraag en antwoord arrays te wijzigen in het aantal vragen tegemoet te komen. 4 Typ de volgende code : Private Sub MarkTest ( ) Dim leerjaar As Integer = 0 Voor i = 0 To 2 Als antwoord ( i ) = vragen ( i , 4 ) dan leerjaar + = 1 End Als Volgende Label1.Text = "Test klaar ! " Label2.Text = " Je scoorde " & leerjaar en " uit " & answers.Length & " ! " RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub De eerste regel verklaart een subroutine die de test aangeeft. Het creëert een lokale variabele om de score te tellen , dan doorloopt de antwoorden op de vragen array en de door de gebruiker wordt voorgelegd antwoorden . Voor elk antwoord dat past , de rang omhoog gaat met een. Het toont dan de score in de labels en schakelt de rest van de controles 5 Open de Form1_Load ( ) subroutine en typ de volgende code : . Me.Text = " Mijn multiple Choice Quiz ! " GetQuestions ( ) quesNum = 1 Label1.Text = " Question " & quesNum & " van " & answers.Length Label2.Text = vragen ( 0 , 0 ) op Twitter Button1.Text = " Vorige " Button2.Text = " Volgende " RadioButton1.Text = vragen ( 0 , 1 ) RadioButton2.Text = vragen ( 0 , 2 ) RadioButton3.Text = vragen ( 0 , 3 ) op Twitter de eerste regel geeft de titel in de titelbalk . De volgende regel roept de GetQuestions ( ) subroutine . De derde regel initialiseert de vraag tellervariabele . De vierde regel geeft wat vraagtekens nummer van de gebruiker op . De vijfde regel displays ondervragen in het label . De zesde en zevende lijnen verandert de tekst van de twee knoppen . De laatste drie regels insert de drie multiple choice antwoorden als tekst voor de drie keuzerondjes 6 Open de Button1_Click ( ) subroutine en typ de volgende code : . Als quesNum > 1 dan quesNum - = 1 Label1.Text = " Question " & quesNum & " of 3 " Label2.Text = vragen ( quesNum - 1 , 0 ) RadioButton1.Text = vragen ( quesNum - 1 , 1 ) RadioButton2.Text = vragen ( quesNum - 1 , 2 ) RadioButton3.Text = vragen ( quesNum - 1 , 3 ) op Twitter Als Button2.Text = " Verzenden" Button2.Text = " Volgende " Einde dan Als End Als < br > p Dit is de code voor de " Vorige " knop . Het controleert eerst of de gebruiker op de knop terwijl u al gedrukt op de eerste vraag . Zo niet, dan verlaagt de vraag teller door een en bijwerking van de tekst van de etiketten en radio knoppen op de vorige vraag blijkt . Als de gebruiker was op de laatste vraag , de tekst op Button2 verandert van "Submit " terug naar 7 Open de Button2_Click ( ) subroutine en typ de volgende code " Next . " : Als RadioButton1.Checked = True antwoorden dan ( quesNum - 1 ) = RadioButton1.Text ElseIf RadioButton2.Checked = True dan antwoorden ( quesNum - 1 ) op Twitter ElseIf RadioButton3.Checked = True antwoorden dan ( quesNum - 1 ) = RadioButton2.Text End = RadioButton3.Text Als RadioButton1.Focus ( ) op Als quesNum < 3 quesNum + = 1 Label1.Text = " Question " & quesNum & " van " & answers.Length dan Label2.Text = vragen ( quesNum - 1 , 0 ) RadioButton1.Text = vragen ( quesNum - 1 , 1 ) RadioButton2.Text = vragen ( quesNum - 1 , 2 ) op RadioButton3.Text = vragen ( quesNum - 1 , 3 ) op Twitter Als quesNum = 3 dan Button2.Text = " Verzenden" End Als Else MarkTest ( ) End Als p Dit is de code voor de knop "Volgende " . De eerste zeven regels controleren om te zien wat radioknop de gebruiker had gekozen , dan slaat dat antwoord op de antwoorden array. De volgende regel is gericht op de radioknop selectie op RadioButton1 . De volgende regel controleert om te zien dat de gebruiker niet op de laatste vraag . Als dit waar is , het verhoogt de vraag teller door een en actualiseert de labels en radio knoppen om de volgende vraag te tonen . Daarna onderzoekt om te zien of de gebruiker is nu op de laatste vraag . Als dat zo is , verandert de tekst voor de Next knop " Volgende" om 'Verzenden'. Als de gebruiker al op de laatste vraag en klikte "Verzenden ", het programma roept de functie " MarkTest " om de score van de gebruiker te krijgen. 8 Sla de Visual Basic -programma . Druk op " F5 " om het uit te voeren .
|