Udostępnij za pośrednictwem


Krok 7: Dodawanie, mnożenie i dzielenie problemów

Przed rozpoczęciem tej procedury należy przemyśleć jak spowoduje dodanie problemów mnożenia i dzielenia.Należy wziąć pod uwagę etap wstępny, który obejmuje przechowywania wartości.

Aby dodać problemów mnożenie i dzielenie

  1. Dodać cztery wskazówki (liczby całkowite) do formularza.Kod powinien wyglądać następująco.

    Public Class Form1
    
        ' Create a Random object to generate random numbers.
        Private randomizer As New Random
    
        ' These Integers will store the numbers in the addition problem.
        Private addend1 As Integer
        Private addend2 As Integer
    
        ' These Integers will store the numbers for the subtraction problem.
        Private minuend As Integer
        Private subtrahend As Integer
    
        ' These Integers will store the numbers for the multiplication problem.
        Private multiplicand As Integer
        Private multiplier As Integer
    
        ' These Integers will store the numbers for the division problem.
        Private dividend As Integer
        Private divisor As Integer
    
        ' This Integer will keep track of the time left.
        Private timeLeft As Integer
    
    public partial class Form1 : Form
    {
        // Create a Random object to generate random numbers.
        Random randomizer = new Random();
    
        // These ints will store the numbers for the addition problem.
        int addend1;
        int addend2;
    
        // These ints will store the numbers for the subtraction problem.
        int minuend;
        int subtrahend;
    
        // These ints will store the numbers for the multiplication problem.
        int multiplicand;
        int multiplier;
    
        // These ints will store the numbers for the division problem.
        int dividend;
        int divisor;
    
        // This int will keep track of the time left.
        int timeLeft;
    
  2. Jak zmodyfikować przed, StartTheQuiz() metody do wypełnienia losowe problemów mnożenia i dzielenia.Kod powinien wyglądać następująco.

    ''' <summary>
    ''' Start the quiz by filling in all of the problems
    ''' and starting the timer.
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub StartTheQuiz()
    
        ' Fill in the addition problem.
        addend1 = randomizer.Next(51)
        addend2 = randomizer.Next(51)
        plusLeftLabel.Text = addend1.ToString()
        plusRightLabel.Text = addend2.ToString()
        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)
        Dim temporaryQuotient As Integer = randomizer.Next(2, 11)
        dividend = divisor * temporaryQuotient
        dividedLeftLabel.Text = dividend.ToString()
        dividedRightLabel.Text = divisor.ToString()
        quotient.Value = 0
    
        ' Start the timer.
        timeLeft = 30
        timeLabel.Text = "30 seconds"
        Timer1.Start()
    
    End Sub
    
    /// <summary>
    /// Start the quiz by filling in all of the problems
    /// and starting the timer.
    /// </summary>
    public void StartTheQuiz()
    {
        // Fill in the addition problem.
        addend1 = randomizer.Next(51);
        addend2 = randomizer.Next(51);
        plusLeftLabel.Text = addend1.ToString();
        plusRightLabel.Text = addend2.ToString();
        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;
    
        // Start the timer.
        timeLeft = 30;
        timeLabel.Text = "30 seconds"; 
        timer1.Start();
    }
    
  3. Modyfikowanie CheckTheAnswer() metody, dzięki czemu metoda sprawdza również problemy mnożenia i dzielenia.Kod powinien wyglądać następująco.

    ''' <summary>
    ''' Check the answer to see if the user got everything right.
    ''' </summary>
    ''' <returns>True if the answer's correct, false otherwise.</returns>
    ''' <remarks></remarks>
    Public Function CheckTheAnswer() As Boolean
    
        If addend1 + addend2 = sum.Value AndAlso 
           minuend - subtrahend = difference.Value AndAlso 
           multiplicand * multiplier = product.Value AndAlso 
           dividend / divisor = quotient.Value Then
    
            Return True
        Else
            Return False
        End If
    
    End Function
    
    /// <summary>
    /// Check the answer to see if the user got everything right.
    /// </summary>
    /// <returns>True if the answer's correct, false otherwise.</returns>
    private bool CheckTheAnswer()
    {
        if ((addend1 + addend2 == sum.Value)
            && (minuend - subtrahend == difference.Value)
            && (multiplicand * multiplier == product.Value)
            && (dividend / divisor == quotient.Value))
            return true;
        else
            return false;
    }
    

    [!UWAGA]

    Ponieważ nie istnieje prosty sposób wprowadzić znak mnożenia (x) i znak podziału (÷) za pomocą klawiatury, Visual C# i Visual Basic użyj gwiazdka (*) dla mnożenia, jak i kreska ułamkowa (/) dla dzielenia.

  4. Ostatnia część obsługi zdarzeń podziałki timer należy zmienić, aby wypełniał w poprawnej odpowiedzi, skończy się czas.Kod powinien wyglądać następująco.

    Else
        ' If the user ran out of time, stop the timer, show
        ' a MessageBox, and fill in the answers.
        Timer1.Stop()
        timeLabel.Text = "Time's up!"
        MessageBox.Show("You didn't finish in time.", "Sorry")
        sum.Value = addend1 + addend2
        difference.Value = minuend - subtrahend
        product.Value = multiplicand * multiplier
        quotient.Value = dividend / divisor
        startButton.Enabled = True
    End If
    
    else
    {
        // If the user ran out of time, stop the timer, show
        // a MessageBox, and fill in the answers.
        timer1.Stop();
        timeLabel.Text = "Time's up!";
        MessageBox.Show("You didn't finish in time.", "Sorry");
        sum.Value = addend1 + addend2;
        difference.Value = minuend - subtrahend;
        product.Value = multiplicand * multiplier;
        quotient.Value = dividend / divisor;
        startButton.Enabled = true;
    }
    
  5. Zapisz i uruchom program.Teraz cztery problemów należy odpowiedzieć do ukończenia quizu, jak pokazano na poniższym obrazie.

    Quiz Math z czterech problemów

    Kwiz matematyczny z czterema problemami

Aby kontynuować, lub przejrzeć