天天看點

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

Visual Basic 實作随機四則運算

前提:

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

 PS:

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

實驗要求:

使用随機函數與選擇結構,實作動态的兩位數的四則運算練習軟體。

1、能夠實作真正的動态出題(每次的出題内容不同)。

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

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

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

6、盡可能将基礎控件的基本屬性使用出來。

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

設計界面:

程式運作結果

啟動界面

運作界面

1、關于時間控件的使用代碼說明:

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

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

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

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

        fx = True

End If

End Sub

2、系統初始化效果實作

       由設計要求的樣式,可以發現大多數的控件在啟動的時間并沒有出現。是以顯然當時的屬性設定為Visabled為Fasle。在程式加載的過程中需要完成對基本控件的參數設定工作。

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

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)

Select Case xz        ‘使用多分支結構,利用随機函數功能實作動态四則運算功能

Case 1

    Label1.Caption = "+"

Case 2

    Label1.Caption = "-"

Case 3

    Label1.Caption = "×"

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

    Label1.Caption = "÷"

End Select

4、核心代碼:

Private Sub Command2_Click()

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

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

    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)

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

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

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

            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

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

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

    Case 3

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

    Case Else

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

    End Select

Private Sub Command3_Click()

If Command3.Caption = "代碼" Then

    Command3.Caption = "關閉"

    Text5.Visible = True

    Command3.Caption = "代碼"

    Text5.Visible = False

繼續閱讀