程式考題練習
手邊沒題目,那我就自己出題啦
反正大同小異,比如說電費計算
至於那個夏日不夏日的,我就不寫了,相信大家一定會
設
0~110 每度2元
111~330 每度3元
331~500 每度4元
501以上 每度5元
比如說給350度
算法如下
總金額=110x2 + (330-110)x3 + (350-330)x4
就簡單搞個視窗,如下

那照我們上學期學的方法來寫的話,可以有下面幾種寫法
Way 1 通常用If來做
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x As Integer
x = CInt(TextBox1.Text)
If x >= 0 And x <= 110 Then
TextBox2.Text = x * 2
ElseIf x > 110 And x <= 330 Then
TextBox2.Text = 110 * 2 + (x - 110) * 3
ElseIf x > 330 And x <= 500 Then
TextBox2.Text = 110 * 2 + (330 - 110) * 3 + (x - 330) * 4
ElseIf x > 500 Then
TextBox2.Text = 110 * 2 + (330 - 110) * 3 + (500 - 330) * 4 + (x - 500) * 5
Else
TextBox2.Text = "請重新輸入數值"
End If
End Sub
End Class
這樣就完成了,我們發現,中間那又臭又長的東西
我們自己算完就好啦
所以,下面是偷懶的方法,不過要自己算完XD
Way 2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x As Integer
x = CInt(TextBox1.Text)
If x >= 0 And x <= 110 Then
TextBox2.Text = x * 2
ElseIf x > 110 And x <= 330 Then
TextBox2.Text = 220 + (x - 110) * 3
ElseIf x > 330 And x <= 500 Then
TextBox2.Text = 880 + (x - 330) * 4
ElseIf x > 500 Then
TextBox2.Text = 1560 + (x - 500) * 5
Else
TextBox2.Text = "請重新輸入數值"
End If
End Sub
End Class
當然用Select也可以,各位自己去玩
我自己是用副函式去寫這題,各位可以參考課本第七章
看完以後應該就會知道我在寫什麼,這次我有點懶得解釋Orz
自定遞迴函數money
Function money(ByVal x As Integer)
If x < 0 Then
Return "請重新輸入數值"
ElseIf x <= 110 Then
Return x * 2
ElseIf x <= 330 Then
Return (x - 110) * 3 + money(110)
ElseIf x <= 500 Then
Return (x - 330) * 4 + money(330)
ElseIf x > 500 Then
Return (x - 500) * 5 + money(500)
End If
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
直接呼叫函數money來使用
TextBox2.Text = money(CInt(TextBox1.Text))
End Sub
End Class
我是覺得這方法比較快啦,也比迴圈好寫
這方法各位看得懂就參考看看,考試用前兩種就足夠了
Previous in This Category: VB程式小教學 - 期末考練習題篇 Next in This Category: 程式設計作業1


Sealed (Apr 25)
1樓
1樓搶頭香
太棒了 哈哈 我還在煩惱ˇ都有點忘了說
謝囉~