第二次作業: 四則運算的實現

藝林發表於2016-03-16

Visual Basic 實現隨機四則運算

 

 

前提:

 

    老實的講在學校裡並沒有教過Visual B,但是我用C-Free實在是沒有辦法獨立寫出來了,所以我把目標轉向了Microsoft Visual Studio 2010,並且找到了《VB例項講解》這本書裡面找到了類似的例題就照著做了,到處修修改改之後還能用,感覺還不錯^.^

 PS:

     VB用起來比C和C#都要簡單,而且程式碼也要少很多!

 

 

實驗要求:

使用隨機函式與選擇結構,實現動態的兩位數的四則運算練習軟體。

1、能夠實現真正的動態出題(每次的出題內容不同)。

2、能夠針對正確答案與錯誤答案提供多種評定語句。

3、能夠統計每次練習的內容。

5、能夠確定練習次數,並統計正確與錯誤的數量。

6、儘可能將基礎控制元件的基本屬性使用出來。

 

 

 

設計介面:

 

程式執行結果

 

Visual Basic實驗四 隨機四則運算軟體 詳解 - rsb_long - rsb_long的部落格
啟動介面

Visual Basic實驗四 隨機四則運算軟體 詳解 - rsb_long - rsb_long的部落格

執行介面

 

1、關於時間控制元件的使用程式碼說明:

      此控制元件的內容屬於後續章節的內容,但由於其功能簡單,完全可以通過MSDN或基礎控制元件的使用方式進行推理分析。該控制元件有兩個重要屬性需要設定:EnabledInterva

其中Enabled與基本控制元件的概念相同,都是用於物件是否可以執行(可以顯示但不能使用),在程式啟動時設定為True表示該控制元件可以使用。第二個屬性用於表示該控制元件執行的時間間隔是多長時間。通常設定為100,它代表100毫秒。因此Interval設計的數字越大表示執行的間隔越長。它的事件只有一個,相關的MSDN解釋如下圖。

 

Visual Basic實驗四 隨機四則運算軟體 詳解 - rsb_long - rsb_long的部落格

 

 

       在本程式的設計中,要求程式啟動的時候,螢幕中出現一個由大變小,然後又由小變大的提示內容。相關的程式碼如下。此程式碼稍加修改可以變成讓字幕左右飄動的樣式。

Private Sub Timer1_Timer()

If fx = True Then    ‘fx為自定義的變數,用來控制元件是變大,還是變小,為邏輯變數

    If Label3.FontSize + 5 < 60 Then

        Label3.FontSize = Label3.FontSize + 5

    Else

        fx = False

    End If

Else

    If Label3.FontSize - 5 > 10 Then

        Label3.FontSize = Label3.FontSize - 5

    Else

        fx = True

    End If

End If

End Sub

2、系統初始化效果實現

       由設計要求的樣式,可以發現大多數的控制元件在啟動的時間並沒有出現。因此顯然當時的屬性設定為VisabledFasle。在程式載入的過程中需要完成對基本控制元件的引數設定工作。

Private Sub Form_Load()

Randomize      ‘確認系統將真正隨機組合數字

Form1.Caption = "Visual Basic實驗4"

Label1.Caption = ""

Label2.Caption = "="

Label3.Caption = "隨機四則運算練習"

Label4.Caption = "耿丹:韋藝林"

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text5.Visible = False      ‘題目要求中沒有出現,它的功能是用來顯示原始碼

Command1.Caption = "出題"

Command2.Caption = "檢查"

Command3.Caption = "程式碼"

Command4.Caption = "退出"

Text1.Visible = False

Text2.Visible = False

Text3.Visible = False

Text4.Visible = False

Command1.Visible = False

Command2.Visible = False

Command3.Visible = False

Command4.Visible = False

Label1.Visible = False

Label2.Visible = False

End Sub

3、題目的隨機出現方式

       題目設計的核心內容是出現題目後等待使用者的操作。出題後,需要儲存題目的運算方式。利用記憶體變數,在程式執行到End Sub後會自動放棄其中的內容。因此在通用程式行需要宣告相關的變數。這樣程式在其它過程中可以繼續使用變數的內容。

(通用)部分的程式碼如下

Dim fx As Boolean, xz As Integer

出題部分的程式碼如下

Private Sub Command1_Click()

xz = Int(Rnd * 4 + 1)    xz表示產生的選擇條件的型別

Text1.Text = Int(Rnd * 90 + 10)

Text2.Text = Int(Rnd * 90 + 10)

Text3.Text = ""

Select Case xz        ‘使用多分支結構,利用隨機函式功能實現動態四則運算功能

Case 1

    Label1.Caption = ""

Case 2

    Label1.Caption = ""

Case 3

    Label1.Caption = "×"

Case Else               ‘注意case結構的最後一項應當是case else。避免出現考慮不完整

    Label1.Caption = "÷"

End Select

End Sub

4核心程式碼:

Private Sub Command2_Click()

If Text1.Text = "" Or Text2.Text = "" Then

    MsgBox "請先出題目然後再進行此動作", , "系統提示"

Else

    Select Case xz

    Case 1

        If Text3.Text = Val(Text1.Text) + Val(Text2.Text) Then

            jl = Int(Rnd * 5 + 1)   '選擇5表示有五種可能的表揚方式

            Select Case jl

            Case 1

                MsgBox "今天發揮的不錯"

            Case 2

                MsgBox "聰明的人,請繼續努力"

            Case 3

                MsgBox "是你聰明還是運氣不錯"

            Case 4

                MsgBox "比較神奇的能力"

            Case Else

                MsgBox "判斷相當的給力,繼續努力"

            End Select

            Text4.Text = Text4.Text + Text1.Text + "+" + Text3.Text + "=" + Text3.Text + "正確" + vbCrLf

        Else

            jl = Int(Rnd * 5 + 1)

            Select Case jl

            Case 1

                MsgBox "沒有看清題目的要求?"

            Case 2

                MsgBox "需要提高注意力了!!!!"

            Case Else

                MsgBox "你是不是需要休息一下了?成績太差了"

            End Select

            Text4.Text = Text4.Text + Text1.Text + "+" + Text3.Text + "=" + Text3.Text + "錯誤" + vbCrLf

        End If

    Case 2

        If Text3.Text = Val(Text1.Text) - Val(Text2.Text) Then

            jl = Int(Rnd * 5 + 1)   '選擇5表示有五種可能的表揚方式

            Select Case jl

            Case 1

                MsgBox "今天發揮的不錯"

            Case 2

                MsgBox "聰明的人,請繼續努力"

            Case Else

                MsgBox "判斷相當的給力,繼續努力"

            End Select

            Text4.Text = Text4.Text + Text1.Text + "+" + Text3.Text + "=" + Text3.Text + "正確" + vbCrLf

        Else

            jl = Int(Rnd * 5 + 1)

            Select Case jl

            Case 1

                MsgBox "沒有看清題目的要求?"

            Case 2

                MsgBox "需要提高注意力了!!!!"

            Case 3

                MsgBox "如此簡單還要出錯????"

            Case 4

                MsgBox "能不能仔細一些!!!!!!!"

            Case Else

                MsgBox "你是不是需要休息一下了?成績太差了"

            End Select

            Text4.Text = Text4.Text + Text1.Text + "+" + Text3.Text + "=" + Text3.Text + "錯誤" + vbCrLf

        End If

    Case 3

        If Text3.Text = Val(Text1.Text) * Val(Text2.Text) Then

            jl = Int(Rnd * 5 + 1)   '選擇5表示有五種可能的表揚方式

            Select Case jl

            Case 1

                MsgBox "今天發揮的不錯"

            Case 2

                MsgBox "聰明的人,請繼續努力"

            Case 3

                MsgBox "是你聰明還是運氣不錯"

            Case 4

                MsgBox "比較神奇的能力"

            Case Else

                MsgBox "判斷相當的給力,繼續努力"

            End Select

            Text4.Text = Text4.Text + Text1.Text + "+" + Text3.Text + "=" + Text3.Text + "正確" + vbCrLf

        Else

            jl = Int(Rnd * 5 + 1)

            Select Case jl

            Case 1

                MsgBox "沒有看清題目的要求?"

            Case 2

                MsgBox "需要提高注意力了!!!!"

            Case 3

                MsgBox "如此簡單還要出錯????"

            Case 4

                MsgBox "能不能仔細一些!!!!!!!"

            Case Else

                MsgBox "你是不是需要休息一下了?成績太差了"

            End Select

            Text4.Text = Text4.Text + Text1.Text + "+" + Text3.Text + "=" + Text3.Text + "錯誤" + vbCrLf

        End If

    Case Else

        If Text3.Text = Val(Text1.Text) / Val(Text2.Text) Then

            jl = Int(Rnd * 5 + 1)   '選擇5表示有五種可能的表揚方式

            Select Case jl

            Case 1

                MsgBox "今天發揮的不錯"

            Case 2

                MsgBox "聰明的人,請繼續努力"

            Case 3

                MsgBox "是你聰明還是運氣不錯"

            Case 4

                MsgBox "比較神奇的能力"

            Case Else

                MsgBox "判斷相當的給力,繼續努力"

            End Select

            Text4.Text = Text4.Text + Text1.Text + "+" + Text3.Text + "=" + Text3.Text + "正確" + vbCrLf

        Else

            jl = Int(Rnd * 5 + 1)

            Select Case jl

            Case 1

                MsgBox "沒有看清題目的要求?"

            Case 2

                MsgBox "需要提高注意力了!!!!"

            Case 3

                MsgBox "如此簡單還要出錯????"

            Case 4

                MsgBox "能不能仔細一些!!!!!!!"

            Case Else

                MsgBox "你是不是需要休息一下了?成績太差了"

            End Select

            Text4.Text = Text4.Text + Text1.Text + "+" + Text3.Text + "=" + Text3.Text + "錯誤" + vbCrLf

        End If

    End Select

End If

End Sub

 

Private Sub Command3_Click()

If Command3.Caption = "程式碼" Then

    Command3.Caption = "關閉"

    Text5.Visible = True

Else

    Command3.Caption = "程式碼"

    Text5.Visible = False

End If

End Sub

 

 

相關文章