Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Reihe von vier Lernprogrammen erstellen Sie ein mathematisches Quiz. Das Quiz enthält vier zufällige mathematische Probleme, die ein Quiz taker innerhalb eines bestimmten Zeitraums beantworten möchte.
Steuerelemente verwenden C# oder Visual Basic-Code. In diesem zweiten Lernprogramm machen Sie das Quiz herausfordernd, indem Sie Code für mathematische Probleme hinzufügen, die auf Zufallszahlen basieren. Außerdem erstellen Sie eine Methode, die StartTheQuiz()
genannt wird, um die Probleme zu beheben.
In diesem zweiten Lernprogramm erfahren Sie, wie Sie:
- Schreiben Sie Code, um zufällige Objekte zu erstellen, die in mathematischen Problemen verwendet werden sollen.
- Fügen Sie einen Ereignishandler für die Startschaltfläche hinzu.
- Schreiben Sie Code, um das Quiz zu starten.
Voraussetzungen
Dieses Lernprogramm basiert auf einem vorherigen Lernprogramm Erstellen einer WinForms-App für mathematische Tests. Wenn Sie dieses Lernprogramm noch nicht abgeschlossen haben, durchlaufen Sie es zuerst.
Erstellen eines zufälligen Additionsproblems
Wählen Sie in Ihrem Visual Studio-Projekt Windows Forms Designeraus.
Wählen Sie das Formular Form1aus.
Wählen Sie auf der Menüleiste Anzeigen>Code aus. Form1.cs oder Form1.vb wird je nach verwendeter Programmiersprache angezeigt, sodass Sie den Code hinter dem Formular anzeigen können.
Erstellen Sie ein Random-Objekt, indem Sie oben im Code in Form1.cs oder Form1.vbeine
new
-Anweisung hinzufügen.
Sie können new
Anweisungen wie diese verwenden, um Schaltflächen, Bezeichnungen, Panels, OpenFileDialogs, ColorDialogs, SoundPlayers, Randoms und sogar Formulare zu erstellen. Diese Elemente werden als Objektebezeichnet.
Wenn Sie Ihr Programm ausführen, wird das Formular gestartet. Der dahinter liegende Code erstellt ein Random-Objekt und benennt es randomizer.
Ihr Quiz benötigt Variablen, um die Zufallszahlen zu speichern, die für jedes Problem erstellt werden. Bevor Sie Variablen verwenden, deklarieren Sie sie, was bedeutet, dass die Namen und Datentypen aufgelistet werden.
Fügen Sie dem Formular zwei ganzzahlige Variablen hinzu, und nennen Sie sie addend1 und addend2 in Form1.cs oder Form1.vb.
Anmerkung
Eine ganzzahlige Variable wird als int in C# oder als Integer- in Visual Basic bezeichnet. Diese Art von Variable speichert eine positive oder negative Zahl von -2147483648 bis 2147483647 und kann nur ganze Zahlen und keine Dezimalstellen speichern.
Sie verwenden ähnliche Syntax, um eine ganzzahlige Variable hinzuzufügen, wie Sie das Random-Objekt hinzufügen, wie der folgende Code zeigt.
Fügen Sie eine Methode mit dem Namen
StartTheQuiz()
Form1.cs oder Form1.vbhinzu. Diese Methode verwendet die Next() Methode des Random-Objekts, um Zufallszahlen für die Beschriftungen zu generieren.StartTheQuiz()
wird schließlich alle Probleme beheben und dann den Timer starten, also fügen Sie diese Informationen dem Zusammenfassungskommentar hinzu. Die Funktion sollte wie der folgende Code aussehen./// <summary> /// Start the quiz by filling in all of the problems /// and starting the timer. /// </summary> public void StartTheQuiz() { // Fill in the addition problem. // Generate two random numbers to add. // Store the values in the variables 'addend1' and 'addend2'. addend1 = randomizer.Next(51); addend2 = randomizer.Next(51); // Convert the two randomly generated numbers // into strings so that they can be displayed // in the label controls. plusLeftLabel.Text = addend1.ToString(); plusRightLabel.Text = addend2.ToString(); // 'sum' is the name of the NumericUpDown control. // This step makes sure its value is zero before // adding any values to it. sum.Value = 0; }
Wenn Sie die Next()
-Methode mit einem Random-Objekt verwenden, z. B. wenn Sie randomizer.Next(51)
aufrufen, erhalten Sie eine Zufallszahl, die kleiner als 51 oder zwischen 0 und 50 ist. Dieser Code ruft randomizer.Next(51)
auf, sodass die beiden Zufallszahlen sich zu einer Antwort zwischen 0 und 100 addieren.
Werfen Sie einen genaueren Blick auf diese Aussagen.
Diese Anweisungen legen die Text-Eigenschaften von plusLeftLabel und plusRightLabel fest, damit hier die beiden Zufallszahlen angezeigt werden. Label-Steuerelemente zeigen Werte im Textformat an, und bei der Programmierung enthalten Zeichenfolgen Text. Die ToString()
-Methode jeder ganzen Zahl konvertiert sie in Text, den eine Beschriftung anzeigen kann.
Erstellen zufälliger Subtraktions-, Multiplikations- und Divisionsprobleme
Der nächste Schritt besteht darin, Variablen zu deklarieren und Zufallswerte für die anderen mathematischen Probleme bereitzustellen.
Fügen Sie ganzzahlige Variablen für die verbleibenden mathematischen Aufgaben zu Ihrem Formular hinzu, nach den Variablen für die Additionsaufgaben. Der Code in Form1.cs oder Form1.vb sollte wie im folgenden Beispiel aussehen.
public partial class Form1 : Form { // Create a Random object called randomizer // to generate random numbers. Random randomizer = new Random(); // These integer variables store the numbers // for the addition problem. int addend1; int addend2; // These integer variables store the numbers // for the subtraction problem. int minuend; int subtrahend; // These integer variables store the numbers // for the multiplication problem. int multiplicand; int multiplier; // These integer variables store the numbers // for the division problem. int dividend; int divisor;
Ändern Sie die
StartTheQuiz()
-Methode in Form1.cs oder Form1.vb, indem Sie den folgenden Code hinzufügen, beginnend mit dem Kommentar "Subtraktionsproblem ausfüllen"./// <summary> /// Start the quiz by filling in all of the problem /// values and starting the timer. /// </summary> public void StartTheQuiz() { // Fill in the addition problem. // Generate two random numbers to add. // Store the values in the variables 'addend1' and 'addend2'. addend1 = randomizer.Next(51); addend2 = randomizer.Next(51); // Convert the two randomly generated numbers // into strings so that they can be displayed // in the label controls. plusLeftLabel.Text = addend1.ToString(); plusRightLabel.Text = addend2.ToString(); // 'sum' is the name of the NumericUpDown control. // This step makes sure its value is zero before // adding any values to it. sum.Value = 0; // Fill in the subtraction problem. minuend = randomizer.Next(1, 101); subtrahend = randomizer.Next(1, minuend); minusLeftLabel.Text = minuend.ToString(); minusRightLabel.Text = subtrahend.ToString(); difference.Value = 0; // Fill in the multiplication problem. multiplicand = randomizer.Next(2, 11); multiplier = randomizer.Next(2, 11); timesLeftLabel.Text = multiplicand.ToString(); timesRightLabel.Text = multiplier.ToString(); product.Value = 0; // Fill in the division problem. divisor = randomizer.Next(2, 11); int temporaryQuotient = randomizer.Next(2, 11); dividend = divisor * temporaryQuotient; dividedLeftLabel.Text = dividend.ToString(); dividedRightLabel.Text = divisor.ToString(); quotient.Value = 0;
Dieser Code verwendet die Next()-Methode der Random Klasse etwas anders als die Funktionsweise des Additionsproblems. Wenn Sie die Next()
Methode zwei Werte angeben, wählt sie eine Zufallszahl aus, die größer oder gleich dem ersten Wert und kleiner als der zweite ist.
Mithilfe der Next()
-Methode mit zwei Argumenten können Sie sicherstellen, dass das Subtraktionsproblem eine positive Antwort hat, die Multiplikationsantwort höchstens 100 ist und die Divisionsantwort kein Bruch ist.
Hinzufügen eines Ereignishandlers zur Startschaltfläche
In diesem Abschnitt fügen Sie Code hinzu, um das Quiz zu starten, wenn die Schaltfläche "Start" ausgewählt ist. Code, der als Reaktion auf ein Ereignis wie eine Schaltflächenauswahl ausgeführt wird, wird als Ereignishandler bezeichnet.
Doppelklicken Sie in Windows Forms Designerentweder auf die Schaltfläche Quiz starten, oder wählen Sie sie aus und drücken anschließend Enter. Der Code des Formulars wird angezeigt, und eine neue Methode ist sichtbar.
Diese Aktionen fügen der Startschaltfläche einen Click-Ereignishandler hinzu. Wenn Quizteilnehmende diese Schaltfläche auswählen, führt die App den Code aus, den Sie dieser neuen Methode hinzufügen.
Fügen Sie die folgenden beiden Anweisungen hinzu, damit der Ereignishandler das Quiz startet.
Die erste Anweisung ruft die neue StartTheQuiz()
-Methode auf. Die zweite Anweisung legt die Enabled-Eigenschaft des startButton-Steuerelements auf false
fest, damit Quizteilnehmende während des Quiz die Schaltfläche nicht auswählen können.
Ausführen der App
Speichern Sie Ihren Code.
Führen Sie Ihre App aus, und wählen Sie dann Quiz starten aus. Zufällige mathematische Probleme werden angezeigt, wie der folgende Screenshot zeigt.
Nächste Schritte
Wechseln Sie zum nächsten Lernprogramm, um Ihrem mathematischen Quiz einen Timer hinzuzufügen und Benutzerantworten zu überprüfen.