06.08.2013 Views

張庭甄

張庭甄

張庭甄

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Visual Basic 2008<br />

資-料-處-理-科<br />

班級:二年一班<br />

學生:<strong>張庭甄</strong><br />

座號:24 號<br />

指導老師:張銘棋


目錄<br />

CH4<br />

4-1 溫度單位轉換 - 攝氏轉華氏......................................................4<br />

4-2 框架設定....................................................................................5<br />

4-3 label 方塊的變化.......................................................................6<br />

4-4 背景變換....................................................................................7<br />

4-5 溫度單位轉換 - 華、攝氏互換..................................................8<br />

4-6 國旗轉換與背景變化 ................................................................9<br />

CH5<br />

5-1 按鈕顯示時間日期 .................................................................10<br />

5-2 顯示編碼 - 十六進位...............................................................11<br />

5-3 簡易計算機 .............................................................................12<br />

CH6<br />

6-1 購買金額折扣計算 .................................................................14<br />

6-2 終極密碼.................................................................................15<br />

6-3 字型設定.................................................................................16<br />

6-4 三數求最大值 .........................................................................17<br />

6-5 美餓美小吃店點餐程式..........................................................18<br />

CH7<br />

7-1 數字沙漏.................................................................................20<br />

7-2 蟑螂進行曲 .............................................................................20<br />

7-3 電子時鐘.................................................................................21<br />

7-4 成績統計.................................................................................22<br />

7-5 數字金字塔 .............................................................................23<br />

CH8<br />

8-1 成績計算.................................................................................25<br />

8-2 計算輸入資料數 – 主控台 ......................................................26<br />

8-3 數值資料比大小 – 主控台 ......................................................27<br />

1


8-4 成績查詢.................................................................................28<br />

8-5 計算應納稅額 .........................................................................29<br />

8-6 字型設定.................................................................................30<br />

8-7 兩個 ListBox 資料互換 ..........................................................31<br />

8-8 字型設定.................................................................................32<br />

8-9 歌唱成績排行 .........................................................................33<br />

8-10 . 移動 ListBox 選項順序.......................................................34<br />

8-11 餐廳排隊給號系統 ...............................................................35<br />

CH9<br />

9-1 模擬開獎程式 .........................................................................37<br />

9-2 遞迴.........................................................................................38<br />

9-3 計算階乘 – 主控台..................................................................39<br />

9-4 計算等加速度運動的速度 – 主控台.......................................40<br />

9-5 傳值呼叫 – 主控台..................................................................41<br />

9-6 河內塔遞迴 – 主控台..............................................................42<br />

9-7 擲骰模擬程式 .........................................................................43<br />

9-8 自由落體掉落距離 .................................................................44<br />

CH10<br />

10-1 大寫轉小寫、加入千分位 ...................................................45<br />

CH11<br />

11-1 繪製基本幾何圖形 ...............................................................46<br />

11-2 亂數畫圓...............................................................................47<br />

11-3 調整圖片大小、旋轉圖片 ...................................................48<br />

11-4 指定畫圓大小.......................................................................49<br />

11-5 簡易播放程式.......................................................................51<br />

CH11-1<br />

11-1-1 多邊形繪畫 .......................................................................53<br />

CH12<br />

12-1 功能表設計...........................................................................55<br />

12-2 功能表設計、單位換算 .......................................................58<br />

2


CH13<br />

13-1 讀寫文字檔...........................................................................60<br />

13-2 讀寫文字檔...........................................................................62<br />

13-3 菜單管理...............................................................................64<br />

13-4 成績輸入程式.......................................................................67<br />

CH14<br />

14-1 資料庫總管...........................................................................70<br />

14-2 資料庫總管...........................................................................71<br />

14-3 資料庫總管...........................................................................72<br />

14-4 資料庫總管...........................................................................73<br />

Exam1<br />

EX1-1 加減乘除計算....................................................................74<br />

EX1-2 購買清單............................................................................75<br />

Exam2<br />

EX2-1 7 的倍數之和.....................................................................76<br />

EX2-2 計算員工薪資....................................................................76<br />

Exam3<br />

EX3-1 計算最大公因數、最小公倍數 ........................................78<br />

EX3-2 擲骰子................................................................................79<br />

Exam4<br />

EX4-1 畫十字圓............................................................................81<br />

EX4-2 播放器................................................................................82<br />

Exam5<br />

EX5-1 展現變化多端的色彩 ........................................................83<br />

EX5-2 簡易資料庫管理................................................................84<br />

EX5-3 便利貼................................................................................87<br />

Exam6<br />

EX6-1 求互質數、數字直角三角形、數字相加、身分證驗證<br />

...........................................................................................88<br />

3


題目說明-溫度單位轉換 - 攝氏轉華氏<br />

檔案路徑:24/CH4/form1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

Button1.Click<br />

Dim c, f, r As Integer<br />

c = Val(InputBox("請輸入攝氏溫度", "輸入溫度"))<br />

f = c * 9 / 5 + 32<br />

r = MsgBox("攝氏 " & c & "度 = 華氏 " & f & "度。", 1 + 64, "轉換結果")<br />

'MsgBox(r)<br />

If r = 1 Then<br />

MsgBox("感謝你使用本程式")<br />

Else<br />

End<br />

End If<br />

End Sub<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

MyBase.Load<br />

End Sub<br />

End Class<br />

4


題目說明-框架設定<br />

檔案路徑:24/CH4/form2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Label1.BorderStyle = BorderStyle.Fixed3D<br />

Label1.Text = "立體邊框"<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

Label1.BorderStyle = BorderStyle.FixedSingle<br />

Label1.Text = "單線邊框"<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Label1.BorderStyle = BorderStyle.None<br />

Label1.Text = "無邊框"<br />

End Sub<br />

End Class<br />

5


題目說明-label 方塊的變化<br />

檔案路徑:24/CH4/form3<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form3<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Label1.Location = New Point(Label1.Location.X - 20, Label1.Location.Y)<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

Label1.Location = New Point(Label1.Location.X + 20, Label1.Location.Y)<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Label1.Size = New Size(Label1.Size.Width + 10, Label1.Size.Height + 10)<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

Label1.Size = New Size(Label1.Size.Width - 10, Label1.Size.Height - 10)<br />

End Sub<br />

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click<br />

Label1.BackColor = Color.Blue<br />

End Sub<br />

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click<br />

Label1.BackColor = Color.Red<br />

End Sub<br />

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click<br />

Label1.BackColor = Color.Green<br />

End Sub<br />

End Class<br />

6


題目說明-背景變換<br />

檔案路徑:24/CH4/form4<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form4<br />

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

PictureBox1.Click<br />

PictureBox1.Image = New Bitmap("..\..\house.gif")<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Me.BackgroundImage = New Bitmap("..\..\考試順利.gif")<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

Me.BackgroundImage = New Bitmap("..\..\財源廣進.gif")<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Me.BackgroundImage = New Bitmap("..\..\闔家平安.gif")<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

Me.BackgroundImage = Nothing<br />

End Sub<br />

End Class<br />

7


題目說明-溫度單位轉換 - 華、攝氏互換<br />

檔案路徑:24/CH4/EX1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class EX1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim f, c As Integer<br />

c = TextBox1.Text<br />

f = c * 9 / 5 + 32<br />

Label2.Text = "攝氏 " & c & "度 = 華氏 " & f & "度"<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

Dim f As Integer<br />

Dim c As Single<br />

f = TextBox1.Text<br />

c = Math.Round((f - 32) * 5 / 9, 2)<br />

Label2.Text = "華氏 " & f & "度 = 攝氏 " & c & "度"<br />

End Sub<br />

End Class<br />

8


題目說明-國旗轉換與背景變化<br />

檔案路徑:24/CH4/EX2<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class EX2<br />

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click<br />

PictureBox1.Image = New Bitmap("..\..\fUSA2.gif")<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Me.BackgroundImage = New Bitmap("..\..\fBg1.gif")<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

Me.BackgroundImage = New Bitmap("..\..\fBg2.gif")<br />

End Sub<br />

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click<br />

Me.BackgroundImage = New Bitmap("..\..\fBg3.gif")<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

PictureBox1.Size = New Size(PictureBox1.Size.Width + 10, PictureBox1.Size.Height + 10)<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

PictureBox1.Size = New Size(PictureBox1.Size.Width - 10, PictureBox1.Size.Height - 10)<br />

End Sub<br />

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

PictureBox1.Click<br />

End Sub<br />

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click<br />

PictureBox1.Image = New Bitmap("..\..\fCanada2.gif")<br />

End Sub<br />

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click<br />

PictureBox1.Image = New Bitmap("..\..\fFrance2.gif")<br />

End Sub<br />

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click<br />

PictureBox1.Image = New Bitmap("..\..\fJapan2.gif")<br />

End Sub<br />

End Class<br />

9


題目說明-按鈕顯示時間日期<br />

檔案路徑:24/CH5/form1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Label1.Text = "按鈕時間為" & vbCrLf & Now<br />

End Sub<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

End Sub<br />

End Class<br />

10


題目說明-顯示編碼 - 十六進位<br />

檔案路徑:24/CH5/form2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim a<br />

a = AscW(TextBox1.Text & ChrW(0))<br />

Label1.Text = "Unicode : " & a & " (十六進位 : " & Hex(a) & ")"<br />

End Sub<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

End Sub<br />

End Class<br />

11


題目說明-按鈕顯示時間日期<br />

檔案路徑:24/CH5/EX1<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class EX1<br />

Dim a As String<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

TextBox1.Text = TextBox1.Text & "1"<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

TextBox1.Text = TextBox1.Text & "2"<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

TextBox1.Text = TextBox1.Text & "3"<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

TextBox1.Text = TextBox1.Text & "4"<br />

End Sub<br />

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click<br />

TextBox1.Text = TextBox1.Text & "5"<br />

End Sub<br />

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click<br />

TextBox1.Text = TextBox1.Text & "6"<br />

End Sub<br />

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click<br />

TextBox1.Text = TextBox1.Text & "7"<br />

End Sub<br />

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click<br />

TextBox1.Text = TextBox1.Text & "8"<br />

End Sub<br />

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click<br />

TextBox1.Text = TextBox1.Text & "9"<br />

End Sub<br />

Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

Button10.Click<br />

TextBox1.Text = TextBox1.Text & "0"<br />

End Sub<br />

Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

Button11.Click<br />

12


TextBox1.Text = TextBox1.Text & "."<br />

End Sub<br />

Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

Button12.Click<br />

If a.Substring(0, 1) = "+" Then TextBox1.Text = Mid(a, 2, Len(a) - 1) + Val(TextBox1.Text)<br />

If a.Substring(0, 1) = "-" Then TextBox1.Text = Mid(a, 2, Len(a) - 1) - Val(TextBox1.Text)<br />

If a.Substring(0, 1) = "x" Then TextBox1.Text = Mid(a, 2, Len(a) - 1) * Val(TextBox1.Text)<br />

If a.Substring(0, 1) = "/" Then TextBox1.Text = Mid(a, 2, Len(a) - 1) / Val(TextBox1.Text)<br />

End Sub<br />

Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

Button13.Click<br />

a = "+" & Val(TextBox1.Text)<br />

TextBox1.Text = ""<br />

End Sub<br />

Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

Button16.Click<br />

a = "/" & Val(TextBox1.Text)<br />

TextBox1.Text = ""<br />

End Sub<br />

Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

Button15.Click<br />

a = "x" & Val(TextBox1.Text)<br />

TextBox1.Text = ""<br />

End Sub<br />

Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

Button14.Click<br />

a = "-" & Val(TextBox1.Text)<br />

TextBox1.Text = ""<br />

End Sub<br />

Private Sub EX1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

End Sub<br />

End Class<br />

13


題目說明-購買金額折扣計算<br />

檔案路徑:24/CH6/form1<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim buy As Integer, pay As Integer<br />

Dim msg As String<br />

buy = Val(TextBox1.Text)<br />

If buy > 1000 Then<br />

pay = buy * 0.8<br />

If buy > 2000 Then<br />

msg = "超過 2000 元,先打 8 折再減 100 元。"<br />

pay = pay - 100<br />

Else<br />

msg = "超過 1000 元,先打 8 折再減 50 元。"<br />

pay = pay - 50<br />

End If<br />

Else<br />

If buy > 500 Then<br />

msg = "金額超過 500 元打 9 折。"<br />

pay = buy * 0.9<br />

Else<br />

msg = "金額未超過 500 元打 95 折。"<br />

pay = buy * 0.95<br />

End If<br />

End If<br />

TextBox2.Text = pay<br />

Label3.Text = msg<br />

TextBox1.Focus()<br />

TextBox1.SelectAll()<br />

End Sub<br />

End Class<br />

14


題目說明-終極密碼<br />

檔案路徑:24/CH6/form2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Randomize()<br />

vAns.Text = CInt(Int((100 * Rnd()) + 1))<br />

End Sub<br />

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim v As Integer, ans As Integer<br />

ans = Val(vAns.Text)<br />

v = Val(TextBox1.Text)<br />

vCnt.Text = Val(vCnt.Text) + 1<br />

If v = ans Then<br />

MsgBox("答對了,您共猜了" & vCnt.Text & " 次。")<br />

End '結束程式<br />

Else<br />

If v < ans Then<br />

vMin.Text = v<br />

Else<br />

vMax.Text = v<br />

End If<br />

TextBox1.Focus()<br />

TextBox1.SelectAll()<br />

End If<br />

End Sub<br />

End Class<br />

15


題目說明-字型設定<br />

檔案路徑:24/CH6/form3<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form3<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _<br />

Handles Button1.Click, fn_kai.Click, fn_new.Click, _<br />

fs_9.Click, fs_10.Click, fs_11.Click, fs_12.Click, _<br />

fst_b.Click, fst_i.Click, fst_del.Click, fst_und.Click<br />

Dim fName As String, fsize As Integer, fStyle As FontStyle<br />

If fn_new.Checked Then<br />

fName = "新細明體"<br />

Else<br />

fName = "標楷體"<br />

End If<br />

If fs_9.Checked Then<br />

fsize = 9<br />

ElseIf fs_10.Checked Then<br />

fsize = 10<br />

ElseIf fs_11.Checked Then<br />

fsize = 11<br />

Else<br />

fsize = 12<br />

End If<br />

If sender.Equals(Button1) Then<br />

fn_new.Checked = False<br />

fn_kai.Checked = True<br />

fs_9.Checked = False<br />

fs_10.Checked = False<br />

fs_11.Checked = False<br />

fs_12.Checked = True<br />

fst_b.Checked = False<br />

fst_i.Checked = False<br />

fst_del.Checked = False<br />

fst_und.Checked = False<br />

fName = "標楷體"<br />

fsize = 12<br />

fStyle = FontStyle.Bold<br />

16


Else<br />

fStyle = If(fst_b.Checked, FontStyle.Bold, 0) Or _<br />

If(fst_i.Checked, FontStyle.Italic, 0) Or _<br />

If(fst_del.Checked, FontStyle.Strikeout, 0) Or _<br />

If(fst_und.Checked, FontStyle.Underline, 0)<br />

End If<br />

Label1.Font = New Font(fName, fsize, fStyle)<br />

End Sub<br />

End Class<br />

題目說明-三數求最大值<br />

檔案路徑:24/CH6/EX1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class EX1<br />

Dim a, b, c As Integer<br />

Dim msg As String<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

a = TextBox1.Text<br />

b = TextBox2.Text<br />

c = TextBox3.Text<br />

If a >= b And a >= c Then<br />

msg = "最大值為" & a<br />

ElseIf b >= a And b >= c Then<br />

msg = "最大值為" & b<br />

Else<br />

msg = "最大值為" & c<br />

End If<br />

Label2.Text = msg<br />

End Sub<br />

End Class<br />

17


題目說明-美餓美小吃店點餐程式<br />

檔案路徑:24/CH6/EX2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class EX2<br />

Dim a, b, c, d As Integer, n, k As Integer<br />

Dim msg As String<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

a = Val(TextBox1.Text)<br />

b = Val(TextBox2.Text)<br />

c = Val(TextBox3.Text)<br />

d = Val(TextBox4.Text)<br />

k = a * 30 + b * 70 + c * 65 + d * 99<br />

n = a * 30 + b * 70 + c * 65 + d * 99<br />

msg = "總價" & n & "元"<br />

If rb2.Checked And n < 300 Then<br />

n = n + 30<br />

msg = "總價" & k & "元" & "+" & "運費30元"<br />

End If<br />

If cb1.Checked Then<br />

n = n * 0.9<br />

msg = "總價" & k & "元" & "+" & "打9折"<br />

18


End If<br />

If cb2.Checked Then<br />

n = n * 0.8<br />

msg = "總價" & k & "元" & "+" & "打8折"<br />

End If<br />

If cb1.Checked And rb2.Checked Then<br />

msg = "總價" & k & "元" & "+" & "運費30元" & "+" & "打9折"<br />

End If<br />

If cb2.Checked And rb2.Checked Then<br />

msg = "總價" & k & "元" & "+" & "運費30元" & "+" & "打8折"<br />

End If<br />

If cb1.Checked And cb2.Checked And rb2.Checked Then<br />

msg = "總價" & k & "元" & "+" & "運費30元" & "+" & "打9折" & "+" & "打8折"<br />

End If<br />

If cb1.Checked And cb2.Checked And rb1.Checked Then<br />

msg = "總價" & k & "元" & "+" & "打9折" & "+" & "打8折"<br />

End If<br />

If cb1.Checked And cb2.Checked And rb3.Checked Then<br />

msg = "總價" & k & "元" & "+" & "打9折" & "+" & "打8折"<br />

End If<br />

TextBox5.Text = n<br />

Label10.Text = msg<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

rb1.Checked = True<br />

rb2.Checked = False<br />

rb3.Checked = False<br />

cb1.Checked = False<br />

cb2.Checked = False<br />

TextBox1.Text = " "<br />

TextBox2.Text = " "<br />

TextBox3.Text = " "<br />

TextBox4.Text = " "<br />

TextBox5.Text = " "<br />

End Sub<br />

End Class<br />

19


題目說明-數字沙漏<br />

檔案路徑:24/CH7/form1<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Dim i As Integer<br />

For i = 25 To 1 Step -4<br />

Label1.Text = Label1.Text & vbCrLf & StrDup(i, CStr(i \ 4 + 1))<br />

Next<br />

For i = 5 To 25 Step 4<br />

Label1.Text = Label1.Text & vbCrLf & StrDup(i, CStr(i \ 4 + 1))<br />

Next<br />

End Sub<br />

End Class<br />

題目說明-蟑螂進行曲<br />

檔案路徑:24/CH7/form2<br />

表單畫面:<br />

20


執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub play_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles play.Click<br />

play.Visible = False<br />

roach.Left = 0 - roach.Size.Width<br />

roach.Visible = True<br />

Do<br />

roach.Left = roach.Left + 1<br />

If roach.Left Mod 10 = 0 Then<br />

roach.Top = roach.Top + CInt(Int(7 * Rnd())) - 3<br />

End If<br />

System.Threading.Thread.Sleep(0.1)<br />

Application.DoEvents()<br />

Loop Until (roach.Left > Me.ClientSize.Width)<br />

play.Visible = True<br />

roach.Visible = False<br />

End Sub<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Randomize()<br />

End Sub<br />

End Class<br />

題目說明-電子時鐘<br />

檔案路徑:24/CH7/form3<br />

執行結果:<br />

21


程式碼:<br />

Public Class Form3<br />

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick<br />

Label1.Text = Format(Now(), _<br />

If(CheckBox1.Checked, "hh:mm:ss", "HH:mm:ss"))<br />

End Sub<br />

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Label1.Text = Format(Now(), "HH:mm:ss")<br />

Label2.Text = DateValue(Now)<br />

End Sub<br />

Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles CheckBox2.CheckedChanged<br />

Timer1.Enabled = Not CheckBox2.Checked<br />

End Sub<br />

End Class<br />

題目說明-成績統計<br />

檔案路徑:24/CH7/EX1<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class EX1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim c As Integer<br />

Label4.Text = Val(Label4.Text) + 1<br />

Label6.Text = Val(Label6.Text) + 1<br />

Label7.Text = Val(Label7.Text) + 1<br />

If TextBox1.Text < 60 Then<br />

Label6.Text = Label6.Text - 1<br />

End If<br />

If TextBox1.Text >= 60 Then<br />

Label7.Text = Label7.Text - 1<br />

22


End If<br />

Label3.Text = Label3.Text + 1<br />

Label8.Text = Val(Label8.Text) + Val(TextBox1.Text)<br />

If TextBox1.Text > 100 Then<br />

Label5.Text = "請輸入介於1~100的數字"<br />

Label6.Text = Label6.Text - 1<br />

Label4.Text = Label4.Text - 1<br />

Label3.Text = Label3.Text - 1<br />

Label8.Text = Val(Label8.Text) - Val(TextBox1.Text)<br />

Else<br />

Label5.Text = ""<br />

End If<br />

If TextBox1.Text = -1 Then<br />

Label4.Text = Label4.Text - 1<br />

Label3.Text = Label3.Text - 1<br />

Label7.Text = Label7.Text - 1<br />

Label8.Text = Val(Label8.Text) - Val(TextBox1.Text)<br />

c = Label8.Text / Label4.Text<br />

Label5.Text = " 全班人數 " & Label4.Text & "人" & " , " & "及格人數" & Label6.Text & "人" & vbCrLf<br />

& "不及格人數" & Label7.Text & "人" & " , " & "全班平均值" & c<br />

Else<br />

TextBox1.Text = ""<br />

End If<br />

End Sub<br />

End Class<br />

題目說明-數字金字塔<br />

檔案路徑:24/CH7/EX2<br />

執行結果:<br />

23


程式碼:<br />

Public Class EX2<br />

Private Sub EX2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Dim i, k, j As Integer<br />

For i = 1 To 15<br />

For k = 1 To i<br />

Label1.Text = Label1.Text & CStr(k Mod 10)<br />

Next<br />

For j = i - 1 To 1 Step -1<br />

Label1.Text = Label1.Text & CStr(j Mod 10)<br />

Next<br />

Label1.Text = Label1.Text & vbCrLf<br />

Next<br />

End Sub<br />

End Class<br />

24


題目說明-成績計算<br />

檔案路徑:24/CH8/form1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim 總分 As Double<br />

Dim 成績陣列() As String = Split(TextBox1.Text, ",")<br />

Dim 筆數 = UBound(成績陣列) + 1<br />

For Each s In 成績陣列<br />

總分 = 總分 + Val(s)<br />

Next<br />

MsgBox("成績筆數:" & 筆數 & vbCrLf & "總成績為:" & 總分 & vbCrLf _<br />

& "平均成績:" & Math.Round(總分 / 筆數, 2))<br />

End Sub<br />

End Class<br />

25


題目說明-計算輸入資料數 – 主控台<br />

檔案路徑:24/CH8/form2<br />

執行結果:<br />

程式碼:<br />

Module Form2<br />

Sub Main()<br />

Dim 資料, 陣列() As String<br />

Dim 筆數 As Integer = 0<br />

Do<br />

Console.Write("請輸入資料:")<br />

資料 = Console.ReadLine()<br />

If 資料 = "" Then Exit Do<br />

ReDim Preserve 陣列(筆數)<br />

陣列(筆數) = 資料<br />

筆數 = 筆數 + 1<br />

Loop<br />

Console.WriteLine("您一共輸入了" & 筆數 & "筆資料。")<br />

Console.ReadLine()<br />

End Sub<br />

End Module<br />

26


題目說明-數值資料筆大小– 主控台<br />

檔案路徑:24/CH8/form3<br />

執行結果:<br />

程式碼:<br />

Module Form3<br />

Sub Main()<br />

Dim X(4), i As Integer<br />

For i = 0 To 4<br />

Console.Write("請輸入數值資料:")<br />

X(i) = Val(Console.ReadLine)<br />

Next<br />

Array.Sort(X)<br />

For i = 0 To 4<br />

Console.WriteLine("x(" & i & ")=" & X(i))<br />

Next<br />

Console.ReadLine()<br />

End Sub<br />

End Module<br />

27


題目說明-成績查詢<br />

檔案路徑:24/CH8/form4<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form4<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

Dim 姓名() = {"陳桶一", "黃光權", "胡生妙", "王為全", "李日正", "劉德菖", "方正一", _<br />

"劉康寶", "謝掬花", "王美蘭", "徐小噹", "葉小毛"}<br />

Dim 數學() = {90, 58, 41, 100, 59, 28, 100, 0, 100, 41, 91, 0}<br />

Dim 國文() = {76, 77, 14, 97, 66, 11, 98, 0, 74, 46, 99, 10}<br />

Dim 英文() = {98, 75, 33, 87, 57, 33, 100, 10, 89, 49, 84, 0}<br />

Dim 索引 = Array.IndexOf(姓名, TextBox1.Text)<br />

If 索引 < 0 Then<br />

Label5.Text = "查無此人!"<br />

Label6.Text = ""<br />

Label7.Text = ""<br />

Else<br />

Label5.Text = 數學(索引)<br />

Label6.Text = 國文(索引)<br />

Label7.Text = 英文(索引)<br />

End If<br />

Dim math100$, name$, i%<br />

i = Array.IndexOf(數學, 100)<br />

While i > 0<br />

name = 姓名(i)<br />

math100 = math100 + " " + name<br />

i = Array.IndexOf(數學, 100, i + 1)<br />

End While<br />

MsgBox(math100, , "數學100分")<br />

End Sub<br />

End Class<br />

28


題目說明-計算應納稅額<br />

檔案路徑:24/CH8/form5<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form5<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim 稅率(,) As Integer = _<br />

{{410000, 6, 0}, {1090000, 13, 28700}, {2180000, 21, 115900}, _<br />

{4090000, 30, 312100}, {4090001, 40, 721100}}<br />

Dim 所得淨額 As Integer = Val(TextBox1.Text)<br />

Dim i As Integer<br />

For i = 0 To UBound(稅率, 1) - 1<br />

If 所得淨額


題目說明-字型設定<br />

檔案路徑:24/CH8/form6<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Imports System.Drawing<br />

Public Class Form6<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

If ListBox1.SelectedIndex = -1 Then ListBox1.SelectedItem = Label1.Font.Name<br />

If ListBox2.SelectedIndex = -1 Then ListBox2.SelectedIndex = 0<br />

If ListBox3.SelectedIndex = -1 Then ListBox3.SelectedItem = "12"<br />

Dim 字型名稱 As String = ListBox1.SelectedItem<br />

Dim 字型樣式 As FontStyle<br />

Dim 字型大小 As Integer = Val(ListBox3.SelectedItem)<br />

Select Case ListBox2.SelectedItem<br />

Case "標準"<br />

字型樣式 = FontStyle.Regular<br />

Case "粗體"<br />

字型樣式 = FontStyle.Bold<br />

Case "斜體"<br />

字型樣式 = FontStyle.Italic<br />

Case "粗斜體"<br />

字型樣式 = FontStyle.Bold Or FontStyle.Italic<br />

End Select<br />

Label1.Font = New Font(字型名稱, 字型大小, 字型樣式)<br />

End Sub<br />

End Class<br />

30


題目說明-兩個 ListBox 資料互換<br />

檔案路徑:24/CH8/form7<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form7<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim i As Integer<br />

For i = 0 To ListBox1.SelectedItems.Count - 1<br />

ListBox2.Items.Add(ListBox1.SelectedItems(i))<br />

Next<br />

For i = ListBox1.SelectedIndices.Count - 1 To 0 Step -1<br />

ListBox1.Items.RemoveAt(ListBox1.SelectedIndices(i))<br />

Next<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

Dim i As Integer<br />

For i = 0 To ListBox2.SelectedItems.Count - 1<br />

ListBox1.Items.Add(ListBox2.SelectedItems(i))<br />

Next<br />

For i = ListBox2.SelectedIndices.Count - 1 To 0 Step -1<br />

ListBox2.Items.RemoveAt(ListBox2.SelectedIndices(i))<br />

Next<br />

End Sub<br />

End Class<br />

31


題目說明-字型設定<br />

檔案路徑:24/CH8/form8<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Imports System.Drawing<br />

Public Class Form8<br />

Private Sub Form8_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

ComboBox2.Text = "標準"<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

If ComboBox1.Text = "" Then ComboBox1.Text = Label1.Font.Name()<br />

If ComboBox2.Text = "" Then ComboBox2.SelectedIndex = 0<br />

If ComboBox3.Text = "" Then ComboBox1.Text = "12"<br />

Dim 字型名稱 As String = ComboBox1.Text<br />

Dim 字型樣式 As FontStyle<br />

Dim 字型大小 As Integer = Val(ComboBox3.Text)<br />

Select Case ComboBox2.Text<br />

Case "標準"<br />

字型樣式 = FontStyle.Regular<br />

Case "粗體"<br />

字型樣式 = FontStyle.Bold<br />

Case "斜體"<br />

字型樣式 = FontStyle.Italic<br />

Case "粗斜體"<br />

字型樣式 = FontStyle.Bold Or FontStyle.Italic<br />

End Select<br />

Label1.Font = New Font(字型名稱, 字型大小, 字型樣式)<br />

End Sub<br />

End Class<br />

32


題目說明-歌唱成績排行<br />

檔案路徑:24/CH8/EX1<br />

執行結果:<br />

程式碼:<br />

Public Class EX1<br />

Private Sub EX1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Dim 姓名() = {"吳國民", "李得勝", "蔡可申", "陳夢嬌", "方十全"}<br />

Dim 評分(,) = {{77, 78, 78, 84, 84, 79, 77, 76, 76, 81}, _<br />

{89, 89, 92, 88, 91, 87, 86, 90, 85, 89}, _<br />

{89, 82, 87, 83, 82, 89, 86, 86, 84, 80}, _<br />

{86, 86, 90, 89, 81, 86, 90, 85, 87, 86}, _<br />

{89, 88, 87, 88, 86, 84, 86, 93, 84, 87}}<br />

Dim d As Integer = UBound(姓名)<br />

Dim c As Integer<br />

Dim 平均(d), a, b As Double<br />

For i = 0 To d<br />

a = 評分(i, 0)<br />

b = 評分(i, 0)<br />

c = UBound(評分, 2)<br />

For j = 0 To c<br />

If a > 評分(i, j) Then a = 評分(i, j)<br />

If b < 評分(i, j) Then b = 評分(i, j)<br />

平均(i) = 平均(i) + 評分(i, j)<br />

Next<br />

平均(i) = Math.Round((平均(i) - a - b) / (c - 1), 2)<br />

Next<br />

Array.Sort(平均, 姓名)<br />

Dim m, s As String<br />

For i = d To 0 Step -1<br />

m = 姓名(i) & " " & 平均(i) & vbCrLf<br />

s = s + m<br />

Next<br />

Label1.Text = s<br />

End Sub<br />

End Class<br />

33


題目說明-移動 ListBox 選項順序<br />

檔案路徑:24/CH8/EX2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class EX2<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim i As Integer<br />

For i = 0 To ListBox1.SelectedItems.Count - 1<br />

ListBox1.Items.Insert(ListBox1.SelectedIndex - 1, ListBox1.SelectedItems(i))<br />

Next<br />

For i = ListBox1.SelectedIndices.Count - 1 To 0 Step -1<br />

ListBox1.Items.RemoveAt(ListBox1.SelectedIndices(i))<br />

Next<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

Dim i As Integer<br />

For i = 0 To ListBox1.SelectedItems.Count - 1<br />

ListBox1.Items.Insert(ListBox1.SelectedIndex + 2, ListBox1.SelectedItems(i))<br />

Next<br />

For i = ListBox1.SelectedIndices.Count - 1 To 0 Step -1<br />

ListBox1.Items.RemoveAt(ListBox1.SelectedIndices(i))<br />

Next<br />

End Sub<br />

End Class<br />

34


題目說明-餐廳排隊給號系統<br />

檔案路徑:24/CH8/EX3<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class EX3<br />

Dim i As Integer<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

i = i + 1<br />

ListBox1.Items.Add(Format(i, "00#-") & TextBox1.Text)<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Dim i As Integer<br />

For i = 0 To ListBox1.SelectedItems.Count - 1<br />

ListBox2.Items.Add(ListBox1.SelectedItems(i))<br />

Next<br />

For i = ListBox1.SelectedIndices.Count - 1 To 0 Step -1<br />

ListBox1.Items.RemoveAt(ListBox1.SelectedIndices(i))<br />

35


Next<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

Dim i As Integer<br />

For i = 0 To ListBox2.SelectedItems.Count - 1<br />

ListBox1.Items.Add(ListBox2.SelectedItems(i))<br />

Next<br />

For i = ListBox2.SelectedIndices.Count - 1 To 0 Step -1<br />

ListBox2.Items.RemoveAt(ListBox2.SelectedIndices(i))<br />

Next<br />

End Sub<br />

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click<br />

ListBox2.Items.Clear()<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

If ListBox1.SelectedIndex = -1 Then<br />

MsgBox("你尚未選取資料。")<br />

Else<br />

ListBox1.Items(ListBox1.SelectedIndex) = Format(ListBox1.SelectedIndex + 1, "00#-") & TextBox1.Text<br />

End If<br />

End Sub<br />

End Class<br />

36


題目說明-模擬開獎程式<br />

檔案路徑:24/CH9/form1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim Draw(4) As Integer<br />

Dim Lucky As Integer<br />

Randomize()<br />

For i = 0 To 4<br />

While Draw(i) = 0<br />

Lucky = CInt(Int(Rnd() * 39) + 1)<br />

If Array.IndexOf(Draw, Lucky) = -1 Then<br />

Draw(i) = Lucky<br />

End If<br />

End While<br />

Next<br />

Label1.Text = Draw(0)<br />

Label2.Text = Draw(1)<br />

Label3.Text = Draw(2)<br />

Label4.Text = Draw(3)<br />

Label5.Text = Draw(4)<br />

Button1.Text = "再試一次"<br />

End Sub<br />

End Class<br />

37


題目說明-遞迴<br />

檔案路徑:24/CH9/form2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Function fac(ByVal i As Integer) As Long<br />

If i


題目說明-計算階乘– 主控台<br />

檔案路徑:24/CH9/Module1<br />

執行結果:<br />

程式碼:<br />

Module Module1<br />

Sub main()<br />

Frac(5)<br />

End Sub<br />

Sub Frac(ByVal n As Integer)<br />

Dim total As Double = 1<br />

For i = 2 To n<br />

total *= i<br />

Next<br />

Console.WriteLine(n & "!的值為" & total)<br />

End Sub<br />

End Module<br />

39


題目說明-計算等加速度運動的速度 – 主控台<br />

檔案路徑:24/CH9/Module2<br />

執行結果:<br />

程式碼:<br />

Module Module2<br />

Sub finalV(ByVal Seconds As Single, _<br />

Optional ByVal V0 As Single = 0, _<br />

Optional ByVal Accelaration As Single = 9.8)<br />

Console.WriteLine("初速" & V0 & ",加速度" & Accelaration & _<br />

",經" & Seconds & "秒後,")<br />

Dim Velocity = V0 + Accelaration * Seconds<br />

Console.WriteLine("速度為" & Velocity)<br />

End Sub<br />

Sub Main()<br />

finalV(10, 15, 3)<br />

Console.WriteLine("----------")<br />

finalV(10, 20)<br />

Console.WriteLine("----------")<br />

finalV(10)<br />

End Sub<br />

End Module<br />

40


題目說明-傳值呼叫– 主控台<br />

檔案路徑:24/CH9/Module3<br />

執行結果:<br />

程式碼:<br />

Module Module3<br />

Sub DoubleArrayValue(ByVal b() As Integer)<br />

For i = 0 To b.Length - 1<br />

b(i) *= 2<br />

Next<br />

End Sub<br />

Sub main()<br />

Dim a() As Integer = {1, 2, 3, 4}<br />

DoubleArrayValue(a)<br />

For i = 0 To a.Length - 1<br />

Console.WriteLine(a(i))<br />

Next<br />

End Sub<br />

End Module<br />

41


題目說明-河內塔遞迴 – 主控台<br />

檔案路徑:24/CH9/Module4<br />

執行結果:<br />

程式碼:<br />

Module Module4<br />

Dim number As Integer '移動次數<br />

Sub Main()<br />

Dim n As Integer = 0<br />

number = 0<br />

Console.Write("圓盤的張數 = ")<br />

n = Console.ReadLine()<br />

aa(n, "A", "B", "C")<br />

Console.ReadLine()<br />

End Sub<br />

Sub aa(ByVal n, ByVal a, ByVal b, ByVal c)<br />

If n > 0 Then<br />

' 把 n-1 張圓盤從 a 移到 b<br />

aa(n - 1, a, c, b)<br />

' 把最下面的圓盤從 a 移到 c<br />

number += 1<br />

Console.WriteLine("{0} : {1} --> {2}", number, a, c)<br />

' 把 n-1 張圓盤從 b 移到 c<br />

aa(n - 1, b, a, c)<br />

End If<br />

End Sub<br />

End Module<br />

42


題目說明-擲骰模擬程式<br />

檔案路徑:24/CH9/EX1<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Imports System.Drawing<br />

Public Class EX1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim c(1) As Integer<br />

Randomize()<br />

For i = 0 To 1<br />

c(i) = CInt(Int(Rnd() * 6) + 1)<br />

Next<br />

If c(0) = 1 Then<br />

PictureBox1.Image = New Bitmap("..\..\1.gif")<br />

ElseIf c(0) = 2 Then<br />

PictureBox1.Image = New Bitmap("..\..\2.gif")<br />

ElseIf c(0) = 3 Then<br />

PictureBox1.Image = New Bitmap("..\..\3.gif")<br />

ElseIf c(0) = 4 Then<br />

PictureBox1.Image = New Bitmap("..\..\4.gif")<br />

ElseIf c(0) = 5 Then<br />

PictureBox1.Image = New Bitmap("..\..\5.gif")<br />

ElseIf c(0) = 6 Then<br />

PictureBox1.Image = New Bitmap("..\..\6.gif")<br />

End If<br />

If c(1) = 1 Then<br />

PictureBox2.Image = New Bitmap("..\..\1.gif")<br />

ElseIf c(1) = 2 Then<br />

PictureBox2.Image = New Bitmap("..\..\2.gif")<br />

ElseIf c(1) = 3 Then<br />

PictureBox2.Image = New Bitmap("..\..\3.gif")<br />

ElseIf c(1) = 4 Then<br />

PictureBox2.Image = New Bitmap("..\..\4.gif")<br />

ElseIf c(1) = 5 Then<br />

PictureBox2.Image = New Bitmap("..\..\5.gif")<br />

ElseIf c(1) = 6 Then<br />

PictureBox2.Image = New Bitmap("..\..\6.gif")<br />

End If<br />

End Sub<br />

End Class<br />

43


題目說明-自由落體掉落距離<br />

檔案路徑:24/CH9/EX2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class EX2<br />

Function freefall(ByVal t) As Single<br />

Return 1 / 2 * 9.8 * t ^ 2<br />

End Function<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Label3.Text = "自由落體掉落距離" & freefall(Val(TextBox1.Text)) & "米"<br />

End Sub<br />

End Class<br />

44


題目說明-大寫轉小寫、加入千分位<br />

檔案路徑:24/CH10/form1<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)<br />

Handles TextBox1.KeyPress<br />

Select Case e.KeyChar<br />

Case "a" To "z"<br />

End Select<br />

TextBox1.AppendText(Chr(Asc(e.KeyChar) - 32))<br />

e.Handled = True<br />

End Sub<br />

Private Sub Form1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles<br />

Me.MouseEnter<br />

Me.BackColor = Color.White<br />

End Sub<br />

Private Sub Form1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles<br />

Me.MouseLeave<br />

Me.BackColor = SystemColors.Control<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim a, b As String<br />

Dim c As Integer<br />

a = TextBox2.Text<br />

If Len(a) Mod 3 0 Then<br />

b = Mid(a, 1, Len(a) Mod 3)<br />

For c = (Len(a) Mod 3) + 1 To Len(a) Step 3<br />

b = b + "," + Mid(a, c, 3)<br />

Next<br />

Else<br />

For c = 1 To Len(a) Step 3<br />

b = b + "," + Mid(a, c, 3)<br />

Next<br />

b = Mid(b, 2)<br />

End If<br />

TextBox2.Text = b<br />

End Sub<br />

End Class<br />

45


題目說明-繪製基本幾何圖形<br />

檔案路徑:24/CH11/form1<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles<br />

Me.Paint<br />

Dim g = e.Graphics<br />

g.DrawRectangle(Pens.DarkBlue, 10, 10, 40, 60)<br />

Dim bigpen = New Pen(Color.Brown, 3)<br />

g.DrawRectangle(bigpen, 60, 10, 40, 60)<br />

Dim biggerpen = New Pen(Color.Gold, 9)<br />

g.DrawRectangle(biggerpen, 110, 10, 40, 60)<br />

g.DrawLine(bigpen, 160, 10, 210, 60)<br />

g.DrawLine(biggerpen, 160, 60, 210, 10)<br />

Dim p1 = New Point(40, 80)<br />

Dim p2 = New Point(15, 101)<br />

Dim p3 = New Point(26, 130)<br />

Dim p4 = New Point(54, 130)<br />

Dim p5 = New Point(65, 101)<br />

g.DrawLine(bigpen, p1, p2)<br />

g.DrawLine(bigpen, p2, p3)<br />

g.DrawLine(bigpen, p3, p4)<br />

g.DrawLine(bigpen, p4, p5)<br />

g.DrawLine(bigpen, p5, p1)<br />

g.DrawEllipse(Pens.Red, 80, 80, 100, 60)<br />

g.FillEllipse(Brushes.Red, 80, 80, 100, 60)<br />

End Sub<br />

End Class<br />

46


題目說明-亂數畫圓<br />

檔案路徑:24/CH11/form2<br />

執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub Form2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles<br />

Me.Paint<br />

Dim width = Me.ClientSize.Width / 10<br />

Dim height = Me.ClientSize.Height / 10<br />

Dim mybrushes() = {Brushes.Red, Brushes.Orange, _<br />

Brushes.Yellow, Brushes.Green, _<br />

Brushes.Blue, Brushes.Indigo, _<br />

Brushes.Purple, Brushes.White}<br />

Randomize()<br />

For i = 0 To 9<br />

For j = 0 To 9<br />

Dim index = Fix(Rnd() * 8)<br />

Dim size = Fix(Rnd() * width) + 1<br />

Dim rect = New Rectangle(i * width + index, _<br />

j * height + index, _<br />

size, size)<br />

e.Graphics.FillEllipse(mybrushes(index), rect)<br />

Next<br />

Next<br />

End Sub<br />

Private Sub Form2_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles<br />

Me.SizeChanged<br />

Me.Invalidate()<br />

End Sub<br />

End Class<br />

47


題目說明-調整圖片大小、旋轉圖片<br />

檔案路徑:24/CH11/form3<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form3<br />

Dim img As Image<br />

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Try<br />

img = Image.FromFile("..\..\simple.jpg")<br />

Catch ex As Exception<br />

MsgBox(ex.Message)<br />

End<br />

End Try<br />

End Sub<br />

Private Sub Form3_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)<br />

Handles Me.MouseClick<br />

If e.Button = Windows.Forms.MouseButtons.Left Then<br />

img.RotateFlip(RotateFlipType.Rotate270FlipNone)<br />

ElseIf e.Button = Windows.Forms.MouseButtons.Right Then<br />

img.RotateFlip(RotateFlipType.Rotate90FlipNone)<br />

End If<br />

Me.Invalidate()<br />

End Sub<br />

Private Sub Form3_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles<br />

Me.Paint<br />

e.Graphics.DrawImage(img, 0, 0, Me.ClientSize.Width, _<br />

Me.ClientSize.Height)<br />

End Sub<br />

Private Sub Form3_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles<br />

Me.SizeChanged<br />

Me.Invalidate()<br />

End Sub<br />

End Class<br />

48


題目說明-指定畫圓大小<br />

檔案路徑:24/CH11/EX1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class EX1<br />

Private Sub EX1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles<br />

Me.Paint<br />

Dim g = e.Graphics<br />

g.DrawRectangle(Pens.Black, 10, 10, 60, 60)<br />

g.FillRectangle(Brushes.White, 11, 11, 59, 59)<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim g = Me.CreateGraphics()<br />

g.Clear(Me.BackColor)<br />

Dim a As Integer = TextBox1.Text<br />

g.FillEllipse(Brushes.Red, 100, 10, a * 2, a * 2)<br />

g.Dispose()<br />

End Sub<br />

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

49


Handles RadioButton1.CheckedChanged<br />

End Sub<br />

Private Sub RadioButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles<br />

RadioButton1.Click<br />

Dim g = Me.CreateGraphics()<br />

g.Clear(Me.BackColor)<br />

Dim a As Integer = TextBox1.Text<br />

g.FillEllipse(Brushes.Red, 100, 10, a * 2, a * 2)<br />

g.Dispose()<br />

End Sub<br />

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles RadioButton2.CheckedChanged<br />

Dim g = Me.CreateGraphics()<br />

g.Clear(Me.BackColor)<br />

Dim a As Integer = TextBox1.Text<br />

g.FillEllipse(Brushes.Yellow, 100, 10, a * 2, a * 2)<br />

g.Dispose()<br />

End Sub<br />

Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles RadioButton3.CheckedChanged<br />

Dim g = Me.CreateGraphics()<br />

g.Clear(Me.BackColor)<br />

Dim a As Integer = TextBox1.Text<br />

g.FillEllipse(Brushes.Green, 100, 10, a * 2, a * 2)<br />

g.Dispose()<br />

End Sub<br />

Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles RadioButton4.CheckedChanged<br />

Dim g = Me.CreateGraphics()<br />

g.Clear(Me.BackColor)<br />

Dim a As Integer = TextBox1.Text<br />

g.FillEllipse(Brushes.Blue, 100, 10, a * 2, a * 2)<br />

g.Dispose()<br />

End Sub<br />

End Class<br />

50


題目說明-簡易播放程式<br />

檔案路徑:24/CH11/EX2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class EX2<br />

Private Sub EX2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

'AxWindowsMediaPlayer1.settings.autoStart = False<br />

'AxWindowsMediaPlayer1.URL = "\CH11\music.wma"<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

AxWindowsMediaPlayer1.Ctlcontrols.play()<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

AxWindowsMediaPlayer1.Ctlcontrols.pause()<br />

51


End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

AxWindowsMediaPlayer1.Ctlcontrols.stop()<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

AxWindowsMediaPlayer1.Ctlcontrols.fastReverse()<br />

End Sub<br />

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click<br />

AxWindowsMediaPlayer1.Ctlcontrols.fastForward()<br />

End Sub<br />

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click<br />

If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then<br />

AxWindowsMediaPlayer1.URL = OpenFileDialog1.FileName<br />

End If<br />

End Sub<br />

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click<br />

AxWindowsMediaPlayer1.fullScreen = True<br />

End Sub<br />

Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As<br />

System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll<br />

Me.AxWindowsMediaPlayer1.settings.volume = Me.HScrollBar1.Value<br />

End Sub<br />

End Class<br />

52


題目說明-溫度單位轉換 - 攝氏轉華氏<br />

檔案路徑:24/CH11-1/form1<br />

表單畫面:<br />

執行結果:<br />

53


程式碼:<br />

Public Class Form1<br />

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles _<br />

ComboBox1.SelectedIndexChanged, ComboBox2.SelectedIndexChanged,<br />

ComboBox3.SelectedIndexChanged, ComboBox4.SelectedIndexChanged<br />

If ComboBox2.SelectedIndex = -1 Then<br />

MsgBox("請記得選擇大小", , "")<br />

Else<br />

If ComboBox4.SelectedIndex = 0 Then Me.BackColor = Color.Red<br />

If ComboBox4.SelectedIndex = 1 Then Me.BackColor = Color.Yellow<br />

If ComboBox4.SelectedIndex = 2 Then Me.BackColor = Color.Green<br />

If ComboBox4.SelectedIndex = 3 Then Me.BackColor = Color.Blue<br />

If ComboBox4.SelectedIndex = 4 Then Me.BackColor = Color.Black<br />

If ComboBox4.SelectedIndex = 5 Then Me.BackColor = Color.White<br />

If ComboBox4.SelectedIndex = 6 Then Me.BackColor = Color.Purple<br />

Refresh()<br />

Dim g As Graphics = Me.CreateGraphics<br />

Dim size% = ComboBox2.SelectedItem<br />

Dim pointx(9), pointy(9) As Integer<br />

Dim i, j, x, y As Integer<br />

x = Me.ClientSize.Width / 2<br />

y = Me.ClientSize.Height / 2<br />

For i = 0 To ComboBox1.SelectedItem - 1<br />

pointx(i) = x + size * Math.Sin((360 / ComboBox1.SelectedItem * i * Math.PI / 180))<br />

pointy(i) = y + size * Math.Cos((360 / ComboBox1.SelectedItem * i * Math.PI / 180))<br />

Next<br />

For i = 0 To ComboBox1.SelectedItem - 1<br />

For j = 0 To ComboBox1.SelectedItem - 1<br />

g.DrawLine(Pens.Black, pointx(i), pointy(i), pointx(j), pointy(j))<br />

Next<br />

Next<br />

For i = 0 To ComboBox1.SelectedItem - 1<br />

For j = 0 To ComboBox1.SelectedItem - 1<br />

If ComboBox3.SelectedIndex = 0 Then g.DrawLine(Pens.Red, pointx(i), pointy(i), pointx(j),<br />

pointy(j))<br />

If ComboBox3.SelectedIndex = 1 Then g.DrawLine(Pens.Yellow, pointx(i), pointy(i), pointx(j),<br />

pointy(j))<br />

If ComboBox3.SelectedIndex = 2 Then g.DrawLine(Pens.Green, pointx(i), pointy(i), pointx(j),<br />

pointy(j))<br />

If ComboBox3.SelectedIndex = 3 Then g.DrawLine(Pens.Blue, pointx(i), pointy(i), pointx(j),<br />

pointy(j))<br />

If ComboBox3.SelectedIndex = 4 Then g.DrawLine(Pens.Black, pointx(i), pointy(i), pointx(j),<br />

pointy(j))<br />

If ComboBox3.SelectedIndex = 5 Then g.DrawLine(Pens.White, pointx(i), pointy(i), pointx(j),<br />

pointy(j))<br />

If ComboBox3.SelectedIndex = 6 Then g.DrawLine(Pens.Purple, pointx(i), pointy(i), pointx(j),<br />

pointy(j))<br />

Next<br />

Next<br />

End If<br />

End Sub<br />

End Class<br />

54


題目說明-功能表設計<br />

檔案路徑:24/CH12/form1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Dim x As Integer<br />

Private Sub 放大ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 放大ToolStripMenuItem.Click<br />

Me.Width *= 1.2<br />

Me.Height *= 1.2<br />

End Sub<br />

Private Sub 縮小ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 縮小ToolStripMenuItem.Click<br />

Me.Width *= 0.8<br />

Me.Height *= 0.8<br />

End Sub<br />

Private Sub 還原ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 還原ToolStripMenuItem.Click<br />

Me.Width = 300<br />

Me.Height = 300<br />

End Sub<br />

55


Private Sub 畫圓ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 畫圓ToolStripMenuItem.Click<br />

End Sub<br />

Private Sub ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripMenuItem3.Click<br />

x = 200<br />

Me.Invalidate()<br />

ToolStripMenuItem4.Checked = False<br />

ToolStripMenuItem5.Checked = False<br />

End Sub<br />

Private Sub ToolStripMenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripMenuItem4.Click<br />

x = 300<br />

Me.Invalidate()<br />

ToolStripMenuItem3.Checked = False<br />

ToolStripMenuItem5.Checked = False<br />

End Sub<br />

Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripMenuItem5.Click<br />

x = 400<br />

Me.Invalidate()<br />

ToolStripMenuItem3.Checked = False<br />

ToolStripMenuItem4.Checked = False<br />

End Sub<br />

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles<br />

Me.Paint<br />

Dim g = e.Graphics<br />

g.Clear(BackColor)<br />

g.FillEllipse(Brushes.Black, 10, 60, x, x)<br />

End Sub<br />

Private Sub RedToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles RedToolStripMenuItem.Click<br />

Me.BackColor = Color.Red<br />

End Sub<br />

Private Sub GreenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles GreenToolStripMenuItem.Click<br />

Me.BackColor = Color.Green<br />

End Sub<br />

Private Sub BlueToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles BlueToolStripMenuItem.Click<br />

Me.BackColor = Color.Blue<br />

End Sub<br />

Private Sub 一般ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 一般ToolStripMenuItem.Click<br />

Label1.Font = New Font(Label1.Font, FontStyle.Regular)<br />

粗體ToolStripMenuItem.Checked = False<br />

斜體ToolStripMenuItem.Checked = False<br />

粗斜體ToolStripMenuItem.Checked = False<br />

End Sub<br />

Private Sub 粗體ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 粗體ToolStripMenuItem.Click<br />

Label1.Font = New Font(Label1.Font, FontStyle.Bold)<br />

End Sub<br />

Private Sub 斜體ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 斜體ToolStripMenuItem.Click<br />

Label1.Font = New Font(Label1.Font, FontStyle.Italic)<br />

End Sub<br />

Private Sub 粗斜體ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 粗斜體ToolStripMenuItem.Click<br />

Label1.Font = New Font(Label1.Font, FontStyle.Bold Or FontStyle.Italic)<br />

56


End Sub<br />

Private Sub ToolStripMenuItem7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripMenuItem7.Click<br />

Label1.Font = New Font(Label1.Font.Name, 14, Label1.Font.Style)<br />

End Sub<br />

Private Sub ToolStripMenuItem8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripMenuItem8.Click<br />

Label1.Font = New Font(Label1.Font.Name, 18, Label1.Font.Style)<br />

End Sub<br />

Private Sub ToolStripMenuItem9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripMenuItem9.Click<br />

Label1.Font = New Font(Label1.Font.Name, 22, Label1.Font.Style)<br />

End Sub<br />

Private Sub 標楷體ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 標楷體ToolStripMenuItem.Click<br />

Label1.Font = New Font("標楷體", Label1.Font.Size, Label1.Font.Style)<br />

End Sub<br />

Private Sub 新細明體ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 新細明體ToolStripMenuItem.Click<br />

Label1.Font = New Font("新細明體", Label1.Font.Size, Label1.Font.Style)<br />

End Sub<br />

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripButton1.Click<br />

Label1.ForeColor = Color.SpringGreen<br />

End Sub<br />

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripButton2.Click<br />

Label1.ForeColor = Color.Khaki<br />

End Sub<br />

Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripButton3.Click<br />

Label1.ForeColor = Color.DarkSlateGray<br />

End Sub<br />

Private Sub ToolStripLabel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripLabel1.Click<br />

Shell("c:\windows\notepad.exe", AppWinStyle.NormalFocus)<br />

End Sub<br />

Private Sub ToolStripLabel2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripLabel2.Click<br />

Shell("c:\windows\system32\calc.exe", AppWinStyle.NormalFocus)<br />

End Sub<br />

End Class<br />

57


題目說明-功能表設計、單位換算<br />

檔案路徑:24/CH12/EX1<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class EX1<br />

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripButton1.Click<br />

Label1.ForeColor = Color.SpringGreen<br />

Label2.ForeColor = Color.SpringGreen<br />

Label3.ForeColor = Color.SpringGreen<br />

Label4.ForeColor = Color.SpringGreen<br />

TextBox1.ForeColor = Color.SpringGreen<br />

End Sub<br />

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripButton2.Click<br />

Label1.ForeColor = Color.DarkViolet<br />

Label2.ForeColor = Color.DarkViolet<br />

Label3.ForeColor = Color.DarkViolet<br />

Label4.ForeColor = Color.DarkViolet<br />

TextBox1.ForeColor = Color.DarkViolet<br />

End Sub<br />

Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripButton3.Click<br />

Label1.ForeColor = Color.DarkSlateGray<br />

Label2.ForeColor = Color.DarkSlateGray<br />

Label3.ForeColor = Color.DarkSlateGray<br />

Label4.ForeColor = Color.DarkSlateGray<br />

TextBox1.ForeColor = Color.DarkSlateGray<br />

End Sub<br />

Private Sub 公尺ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 公尺ToolStripMenuItem.Click<br />

Label1.Text = "公尺"<br />

Label2.Text = "英尺"<br />

Label3.Text = TextBox1.Text * 3.2808<br />

End Sub<br />

Private Sub 英尺ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 英尺ToolStripMenuItem.Click<br />

Label1.Text = "英尺"<br />

Label2.Text = "公尺"<br />

Label3.Text = TextBox1.Text * 0.3048<br />

End Sub<br />

Private Sub 公斤ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 公斤ToolStripMenuItem1.Click<br />

Label1.Text = "公斤"<br />

Label2.Text = "英磅"<br />

Label3.Text = TextBox1.Text * 2.2046<br />

End Sub<br />

58


Private Sub 英磅ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 英磅ToolStripMenuItem.Click<br />

Label1.Text = "英磅"<br />

Label2.Text = "公斤"<br />

Label3.Text = TextBox1.Text * 0.4536<br />

End Sub<br />

Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripButton4.Click<br />

Label1.ForeColor = Color.Aqua<br />

Label2.ForeColor = Color.Aqua<br />

Label3.ForeColor = Color.Aqua<br />

Label4.ForeColor = Color.Aqua<br />

TextBox1.ForeColor = Color.Aqua<br />

End Sub<br />

Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

ToolStripButton5.Click<br />

Label1.ForeColor = Color.Red<br />

Label2.ForeColor = Color.Red<br />

Label3.ForeColor = Color.Red<br />

Label4.ForeColor = Color.Red<br />

TextBox1.ForeColor = Color.Red<br />

End Sub<br />

Private Sub ToolStripMenuItem3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles ToolStripMenuItem3.Click<br />

Label1.Font = New Font(Label1.Font.Name, 9, Label1.Font.Style)<br />

Label2.Font = New Font(Label1.Font.Name, 9, Label1.Font.Style)<br />

Label3.Font = New Font(Label1.Font.Name, 9, Label1.Font.Style)<br />

Label4.Font = New Font(Label1.Font.Name, 9, Label1.Font.Style)<br />

TextBox1.Font = New Font(Label1.Font.Name, 9, Label1.Font.Style)<br />

ToolStripStatusLabel1.Text = "字型大小 = 9"<br />

End Sub<br />

Private Sub ToolStripMenuItem4_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles ToolStripMenuItem4.Click<br />

Label1.Font = New Font(Label1.Font.Name, 12, Label1.Font.Style)<br />

Label2.Font = New Font(Label1.Font.Name, 12, Label1.Font.Style)<br />

Label3.Font = New Font(Label1.Font.Name, 12, Label1.Font.Style)<br />

Label4.Font = New Font(Label1.Font.Name, 12, Label1.Font.Style)<br />

TextBox1.Font = New Font(Label1.Font.Name, 12, Label1.Font.Style)<br />

ToolStripStatusLabel1.Text = "字型大小 = 12"<br />

End Sub<br />

Private Sub ToolStripMenuItem5_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles ToolStripMenuItem5.Click<br />

Label1.Font = New Font(Label1.Font.Name, 15, Label1.Font.Style)<br />

Label2.Font = New Font(Label1.Font.Name, 15, Label1.Font.Style)<br />

Label3.Font = New Font(Label1.Font.Name, 15, Label1.Font.Style)<br />

Label4.Font = New Font(Label1.Font.Name, 15, Label1.Font.Style)<br />

TextBox1.Font = New Font(Label1.Font.Name, 15, Label1.Font.Style)<br />

ToolStripStatusLabel1.Text = "字型大小 = 15"<br />

End Sub<br />

End Class<br />

59


題目說明-讀寫文字檔<br />

檔案路徑:24/CH13/form1<br />

表單畫面:<br />

執行結果:<br />

60


程式碼:<br />

Public Class Form1<br />

Dim filechanged As Boolean = False<br />

Private Sub 開啟ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 開啟ToolStripMenuItem.Click<br />

If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then<br />

TextBox1.Text = My.Computer.FileSystem.ReadAllText(OpenFileDialog1.FileName)<br />

End If<br />

Me.Text = OpenFileDialog1.FileName<br />

Label2.Text = OpenFileDialog1.FileName<br />

filechanged = False<br />

End Sub<br />

Private Sub 儲存ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 儲存ToolStripMenuItem.Click<br />

If BIG5ToolStripMenuItem.Checked Then<br />

My.Computer.FileSystem.WriteAllText(OpenFileDialog1.FileName, TextBox1.Text, False,<br />

System.Text.Encoding.GetEncoding(950))<br />

Else<br />

My.Computer.FileSystem.WriteAllText(OpenFileDialog1.FileName, TextBox1.Text, False)<br />

End If<br />

Me.Text = OpenFileDialog1.FileName<br />

filechanged = False<br />

End Sub<br />

Private Sub BIG5ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles BIG5ToolStripMenuItem.Click<br />

UTF8ToolStripMenuItem.Checked = False<br />

UTF16ToolStripMenuItem.Checked = False<br />

End Sub<br />

Private Sub UTF8ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles UTF8ToolStripMenuItem.Click<br />

BIG5ToolStripMenuItem.Checked = False<br />

UTF16ToolStripMenuItem.Checked = False<br />

End Sub<br />

Private Sub UTF16ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles UTF16ToolStripMenuItem.Click<br />

BIG5ToolStripMenuItem.Checked = False<br />

UTF8ToolStripMenuItem.Checked = False<br />

End Sub<br />

Private Sub 另存新檔ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 另存新檔ToolStripMenuItem.Click<br />

SaveFileDialog1.Filter = "純文字檔(*.txt)|*.txt|" & "Big5文字檔(*.txt)|*.txt|" & "所有檔案(*.*)|*.*"<br />

If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then<br />

My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, TextBox1.Text, False,<br />

System.Text.Encoding.GetEncoding(950))<br />

Else<br />

My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, TextBox1.Text, False)<br />

End If<br />

Me.Text = SaveFileDialog1.FileName<br />

Label2.Text = SaveFileDialog1.FileName<br />

filechanged = False<br />

End Sub<br />

Private Sub 離開ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 離開ToolStripMenuItem.Click<br />

End<br />

End Sub<br />

Private Sub 關閉ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 關閉ToolStripMenuItem.Click<br />

Dim flag As Integer<br />

If filechanged = True Then<br />

61


flag = MsgBox("檔案尚未儲存,是否要存檔?", "4+32", "尚未存檔")<br />

If flag = 6 Then<br />

My.Computer.FileSystem.WriteAllText(OpenFileDialog1.FileName, TextBox1.Text, False)<br />

End If<br />

End If<br />

TextBox1.Text = ""<br />

Label2.Text = ""<br />

Me.Text = Me.Name<br />

filechanged = False<br />

End Sub<br />

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

TextBox1.TextChanged<br />

If filechanged = False Then<br />

Me.Text &= "*"<br />

filechanged = True<br />

End If<br />

End Sub<br />

End Class<br />

題目說明-讀寫文字檔<br />

檔案路徑:24/CH13/form2<br />

表單畫面:<br />

62


執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Dim writer As System.IO.StreamWriter<br />

Sub logging(ByVal message As String)<br />

writer.WriteLine(Now & ", " & message)<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then<br />

Dim linenum As Integer = 1<br />

Try<br />

Dim reader = My.Computer.FileSystem.OpenTextFileReader(OpenFileDialog1.FileName)<br />

While reader.EndOfStream = False<br />

Dim singleline = reader.ReadLine()<br />

TextBox1.Text &= linenum.ToString("D3") & " " & singleline & vbCrLf<br />

linenum += 1<br />

End While<br />

reader.Close()<br />

Catch ex As Exception<br />

MsgBox(ex.Message)<br />

End Try<br />

End If<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then<br />

Try<br />

My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, TextBox1.Text, False)<br />

Logging("儲存檔案:" & SaveFileDialog1.FileName)<br />

Catch ex As Exception<br />

MsgBox(ex.Message)<br />

End Try<br />

End If<br />

End Sub<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

End Sub<br />

End Class<br />

63


題目說明-菜單管理<br />

檔案路徑:24/CH13/form3<br />

表單畫面:<br />

執行結果:<br />

64


程式碼:<br />

Public Class Form3<br />

Dim Menufilepath = "D:\CH13\Menu.csv"<br />

Dim MenuItems As New ArrayList<br />

Dim OrderDetail As New ArrayList()<br />

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Try<br />

Dim Menureader = My.Computer.FileSystem.OpenTextFieldParser(Menufilepath, ",")<br />

While Not Menureader.EndOfData<br />

Dim OneRow() = Menureader.ReadFields()<br />

MenuItems.Add(OneRow)<br />

ListBox1.Items.Add(OneRow(0) & "-" & OneRow(1) & "元")<br />

End While<br />

Menureader.Close()<br />

Catch ex As Exception<br />

MsgBox(ex.Message)<br />

End Try<br />

End Sub<br />

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles ListBox1.SelectedIndexChanged<br />

Dim index = ListBox1.SelectedIndex<br />

If index >= 0 Then<br />

TextBox1.Text = MenuItems(index)(0)<br />

TextBox2.Text = MenuItems(index)(1)<br />

End If<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Dim index = ListBox1.SelectedIndex<br />

If index >= 0 Then<br />

MenuItems(index)(0) = TextBox1.Text<br />

MenuItems(index)(1) = TextBox2.Text<br />

ListBox1.Items(index) = MenuItems(index)(0) & "-" & MenuItems(index)(1) & "元"<br />

End If<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

If TextBox2.Text "" And Val(TextBox2.Text) Then<br />

Dim NewItem() = {TextBox1.Text, TextBox2.Text}<br />

MenuItems.Add(NewItem)<br />

ListBox1.Items.Add(TextBox1.Text & "-" & TextBox2.Text & "元")<br />

Else<br />

MsgBox("輸入錯誤!")<br />

End If<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

MenuItems.RemoveAt(ListBox1.SelectedIndex)<br />

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

Try<br />

Dim MenuWriter = My.Computer.FileSystem.OpenTextFileWriter(Menufilepath, False)<br />

For Each item In MenuItems<br />

MenuWriter.WriteLine(item(0) & "," & item(1))<br />

Next<br />

MenuWriter.Close()<br />

MsgBox("儲存成功")<br />

Catch ex As Exception<br />

MsgBox(ex.Message)<br />

End Try<br />

End Sub<br />

65


Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click<br />

Dim index = ListBox1.SelectedIndex<br />

If index >= 0 And Val(TextBox3.Text) > 0 Then<br />

Dim Entry() = {MenuItems(index)(0), TextBox3.Text, TextBox3.Text * MenuItems(index)(1)}<br />

OrderDetail.Add(Entry)<br />

ListBox2.Items.Add(MenuItems(index)(0) & "," & TextBox3.Text & "份," & Val(TextBox3.Text) *<br />

MenuItems(index)(1) & "元")<br />

Else<br />

MsgBox("需選取菜色且數量大於0")<br />

End If<br />

End Sub<br />

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click<br />

Dim index = ListBox2.SelectedIndex<br />

If index >= 0 Then<br />

ListBox2.Items.RemoveAt(index)<br />

OrderDetail.RemoveAt(index)<br />

End If<br />

End Sub<br />

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click<br />

If ListBox2.Items.Count > 0 Then<br />

Dim OrderWriter = My.Computer.FileSystem.OpenTextFileWriter("D:\CH13\Menu.csv", True)<br />

Dim Msg As String = "你點了:" & vbCrLf<br />

Dim SubTotal As Integer = 0<br />

For i = 0 To OrderDetail.Count - 1<br />

OrderWriter.WriteLine(Now & OrderDetail(i)(0) & "," & OrderDetail(i)(1) & "," & OrderDetail(i)(2))<br />

Msg &= ListBox2.Items(i) & vbCrLf<br />

SubTotal += OrderDetail(i)(2)<br />

Next<br />

OrderWriter.Close()<br />

ListBox2.Items.Clear()<br />

OrderDetail.Clear()<br />

MsgBox(Msg & vbCrLf & "共" & SubTotal & "元")<br />

Else<br />

MsgBox("你還沒點菜")<br />

End If<br />

End Sub<br />

End Class<br />

66


題目說明-成績輸入程式<br />

檔案路徑:24/CH13/EX1<br />

表單畫面:<br />

執行結果:<br />

67


程式碼:<br />

Public Class EX1<br />

Dim Menufilepath = "D:\CH13\Score.csv"<br />

Dim MenuItems As New ArrayList<br />

Private Sub EX1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Try<br />

Dim Menureader = My.Computer.FileSystem.OpenTextFieldParser(Menufilepath, ",")<br />

While Not Menureader.EndOfData<br />

Dim OneRow() = Menureader.ReadFields()<br />

MenuItems.Add(OneRow)<br />

ListBox1.Items.Add(OneRow(0) & " , 英文 " & OneRow(1) & " 分, 數學 " & OneRow(2) & " 分")<br />

End While<br />

Menureader.Close()<br />

Catch ex As Exception<br />

MsgBox(ex.Message)<br />

End Try<br />

Dim a As Integer<br />

Dim b As Integer<br />

For Each item In MenuItems<br />

a = a + item(1)<br />

b = b + item(2)<br />

Label6.Text = Math.Round(a / ListBox1.Items.Count, 2)<br />

Label7.Text = Math.Round(b / ListBox1.Items.Count, 2)<br />

Next<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

MenuItems.RemoveAt(ListBox1.SelectedIndex)<br />

ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)<br />

Dim a As Integer<br />

Dim b As Integer<br />

For Each item In MenuItems<br />

a = a + item(1)<br />

b = b + item(2)<br />

Label6.Text = Math.Round(a / ListBox1.Items.Count, 2)<br />

Label7.Text = Math.Round(b / ListBox1.Items.Count, 2)<br />

Next<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

If TextBox2.Text "" And TextBox3.Text "" And Val(TextBox2.Text) And Val(TextBox3.Text) Then<br />

Dim NewItem() = {TextBox1.Text, TextBox2.Text, TextBox3.Text}<br />

MenuItems.Add(NewItem)<br />

ListBox1.Items.Add(TextBox1.Text & " , 英文 " & TextBox2.Text & " 分, 數學 " & TextBox3.Text & "<br />

分")<br />

Else<br />

MsgBox("輸入錯誤!")<br />

End If<br />

Dim a As Integer<br />

Dim b As Integer<br />

For Each item In MenuItems<br />

a = a + item(1)<br />

b = b + item(2)<br />

Label6.Text = Math.Round(a / ListBox1.Items.Count, 2)<br />

Label7.Text = Math.Round(b / ListBox1.Items.Count, 2)<br />

Next<br />

End Sub<br />

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles ListBox1.SelectedIndexChanged<br />

Dim index = ListBox1.SelectedIndex<br />

If index >= 0 Then<br />

68


TextBox1.Text = MenuItems(index)(0)<br />

TextBox2.Text = MenuItems(index)(1)<br />

TextBox3.Text = MenuItems(index)(2)<br />

End If<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Dim index = ListBox1.SelectedIndex<br />

If index >= 0 Then<br />

MenuItems(index)(0) = TextBox1.Text<br />

MenuItems(index)(1) = TextBox2.Text<br />

MenuItems(index)(2) = TextBox3.Text<br />

ListBox1.Items(index) = MenuItems(index)(0) & " , 英文 " & MenuItems(index)(1) & " 分, 數學 " &<br />

MenuItems(index)(2) & " 分"<br />

End If<br />

Dim a As Integer<br />

Dim b As Integer<br />

For Each item In MenuItems<br />

a = a + item(1)<br />

b = b + item(2)<br />

Label6.Text = Math.Round(a / ListBox1.Items.Count, 2)<br />

Label7.Text = Math.Round(b / ListBox1.Items.Count, 2)<br />

Next<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

Try<br />

Dim MenuWriter = My.Computer.FileSystem.OpenTextFileWriter(Menufilepath, False)<br />

For Each item In MenuItems<br />

MenuWriter.WriteLine(item(0) & "," & item(1) & "," & item(2))<br />

Next<br />

MenuWriter.Close()<br />

MsgBox("儲存成功")<br />

Catch ex As Exception<br />

MsgBox(ex.Message)<br />

End Try<br />

End Sub<br />

End Class<br />

69


題目說明-資料庫總管<br />

檔案路徑:24/CH14/form1<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub 書籍BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles 書籍BindingNavigatorSaveItem.Click<br />

Me.Validate()<br />

Me.書籍BindingSource.EndEdit()<br />

Me.TableAdapterManager.UpdateAll(Me.產品DataSet)<br />

End Sub<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

'TODO: 這行程式碼會將資料載入 '產品DataSet.書籍' 資料表。您可以視需要進行移動或移除。<br />

Me.書籍TableAdapter.Fill(Me.產品DataSet.書籍)<br />

End Sub<br />

End Class<br />

70


題目說明-資料庫總管<br />

檔案路徑:24/CH14/form2<br />

執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub TshirtBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles TshirtBindingNavigatorSaveItem.Click<br />

Me.Validate()<br />

Me.TshirtBindingSource.EndEdit()<br />

Me.TableAdapterManager.UpdateAll(Me.成衣DataSet1)<br />

End Sub<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

'TODO: 這行程式碼會將資料載入 '成衣DataSet1.Tshirt' 資料表。您可以視需要進行移動或移除。<br />

Me.TshirtTableAdapter.Fill(Me.成衣DataSet1.Tshirt)<br />

End Sub<br />

End Class<br />

71


題目說明-資料庫總管<br />

檔案路徑:24/CH14/form3<br />

執行結果:<br />

程式碼:<br />

Public Class Form3<br />

Private Sub 書籍BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs)<br />

Me.Validate()<br />

Me.書籍BindingSource.EndEdit()<br />

Me.TableAdapterManager.UpdateAll(Me.產品DataSet1)<br />

End Sub<br />

Private Sub 書籍BindingNavigatorSaveItem_Click_1(ByVal sender As System.Object, ByVal e As<br />

System.EventArgs) Handles 書籍BindingNavigatorSaveItem.Click<br />

Me.Validate()<br />

Me.書籍BindingSource.EndEdit()<br />

Me.TableAdapterManager.UpdateAll(Me.產品DataSet1)<br />

End Sub<br />

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

'TODO: 這行程式碼會將資料載入 '產品DataSet1.書籍' 資料表。您可以視需要進行移動或移除。<br />

Me.書籍TableAdapter.Fill(Me.產品DataSet1.書籍)<br />

End Sub<br />

End Class<br />

72


題目說明-資料庫總管<br />

檔案路徑:24/CH14/form4<br />

執行結果:<br />

程式碼:<br />

Public Class Form4<br />

Private Sub Form4_FormClosing(ByVal sender As Object, ByVal e As<br />

System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing<br />

DataGridView1.EndEdit()<br />

書籍TableAdapter.Update(產品DataSet1.書籍)<br />

End Sub<br />

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

'TODO: 這行程式碼會將資料載入 '產品DataSet1.書籍' 資料表。您可以視需要進行移動或移除。<br />

Me.書籍TableAdapter.Fill(Me.產品DataSet1.書籍)<br />

End Sub<br />

End Class<br />

73


題目說明-加減乘除計算<br />

檔案路徑:24/Exam1/form1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Dim a, c As Integer<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Label5.Text = " + "<br />

a = TextBox1.Text<br />

c = TextBox2.Text<br />

Label6.Text = a + c<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

Label5.Text = " - "<br />

a = TextBox1.Text<br />

c = TextBox2.Text<br />

Label6.Text = a - c<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Label5.Text = " X "<br />

a = TextBox1.Text<br />

c = TextBox2.Text<br />

Label6.Text = a * c<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

Label5.Text = " / "<br />

a = TextBox1.Text<br />

c = TextBox2.Text<br />

Label6.Text = a / c<br />

End Sub<br />

End Class<br />

74


題目說明-購買清單<br />

檔案路徑:24/Exam1/form2<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Label5.Text = "購買清單" & Now & vbCrLf & "品名" & " " & "單價" & " " & "數量" & " " & "金額"<br />

& vbCrLf & TextBox1.Text & " " & TextBox2.Text & " " & TextBox3.Text & " " &<br />

Label6.Text<br />

End Sub<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

Label5.Text = "購買清單" & Now & vbCrLf & "品名" & " " & "單價" & " " & "數量" & " " & "金額"<br />

End Sub<br />

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles<br />

TextBox3.TextChanged<br />

Dim a, c<br />

a = TextBox2.Text<br />

c = TextBox3.Text<br />

Label6.Text = a * c<br />

End Sub<br />

End Class<br />

75


題目說明-7 的倍數之和<br />

檔案路徑:24/Exam2/form1<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim a, t As Integer<br />

If Val(TextBox1.Text) Mod 7 = 0 Then<br />

a = Val(TextBox1.Text) / 7<br />

Else<br />

a = Val(TextBox1.Text) \ 7<br />

End If<br />

For i = 7 To a * 7 Step 7<br />

t = t + i<br />

Next i<br />

Label2.Text = "計算結果:" & t<br />

TextBox1.Focus()<br />

End Sub<br />

End Class<br />

題目說明-計算員工薪資<br />

檔案路徑:24/Exam2/form2<br />

表單畫面:<br />

76


執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Dim a, b, c, d, f, g As Integer<br />

a = Val(TextBox1.Text)<br />

If 0 < a And a < 5 Then<br />

b = 30000<br />

ElseIf a >= 5 And a < 10 Then<br />

b = 40000<br />

ElseIf a >= 10 Then<br />

b = 50000<br />

ElseIf a < 0 Then<br />

MsgBox("年資必須為正數!")<br />

End If<br />

If RadioButton1.Checked Then<br />

c = 10000<br />

ElseIf RadioButton2.Checked Then<br />

c = 5000<br />

ElseIf RadioButton3.Checked Then<br />

c = 3000<br />

End If<br />

If CheckBox1.Checked Then<br />

d = -1000<br />

End If<br />

If CheckBox2.Checked Then<br />

f = -600<br />

End If<br />

g = b + c + d + f<br />

If a = 0 Then<br />

g = 0<br />

End If<br />

TextBox2.Text = g<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

End<br />

End Sub<br />

End Class<br />

77


題目說明-計算最大公因數、最小公倍數<br />

檔案路徑:24/Exam3/form1<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

GCD(Val(TextBox1.Text), Val(TextBox2.Text))<br />

TextBox4.Text = Val(TextBox1.Text) * Val(TextBox2.Text) / Val(TextBox3.Text)<br />

End Sub<br />

Private Function GCD(ByVal i As Integer, ByVal j As Integer) As Integer<br />

Dim a As Integer<br />

a = i Mod j<br />

If a = 0 Then<br />

TextBox3.Text = j<br />

Else<br />

GCD(j, a)<br />

End If<br />

End Function<br />

End Class<br />

78


題目說明-擲骰子<br />

檔案路徑:24/Exam3/form2<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Dim win, lose As Integer<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

Randomize()<br />

Dim a, b As Integer<br />

a = Int(Rnd() * 6 + 1)<br />

b = Int(Rnd() * 6 + 1)<br />

PictureBox1.Image = New Bitmap("..\..\" & a & ".gif")<br />

PictureBox2.Image = New Bitmap("..\..\" & b & ".gif")<br />

If RadioButton1.Checked = True Then<br />

If a + b


Else<br />

If a + b >= 7 Then<br />

win = win + 1<br />

MsgBox("你贏了,共贏了" & win & "次,輸了" & lose & "次", 48, "^_^")<br />

Else<br />

lose = lose + 1<br />

MsgBox("你輸了,共贏了" & win & "次,輸了" & lose & "次", 16, ">_


題目說明-畫十字圓<br />

檔案路徑:24/Exam4/form2<br />

執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub Form2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles<br />

Me.Paint<br />

Dim g = e.Graphics<br />

Dim width As Integer = Me.ClientSize.Width<br />

Dim height As Integer = Me.ClientSize.Height<br />

Dim p1 = New Point(width / 2, 0)<br />

Dim p2 = New Point(width / 2, height)<br />

Dim p3 = New Point(0, height / 2)<br />

Dim p4 = New Point(width, height / 2)<br />

g.FillEllipse(Brushes.White, 0, 0, width, height)<br />

g.DrawEllipse(Pens.Black, 0, 0, width, height)<br />

g.DrawLine(Pens.Black, p1, p2)<br />

g.DrawLine(Pens.Black, p3, p4)<br />

End Sub<br />

Private Sub Form2_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles<br />

Me.SizeChanged<br />

Me.Invalidate()<br />

End Sub<br />

End Class<br />

81


題目說明-播放器<br />

檔案路徑:24/Exam4/form3<br />

表單畫面:<br />

執行結果:<br />

程式碼:<br />

Public Class Form3<br />

Dim StarTtime As Date<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

If ListBox1.SelectedIndex = -1 Then<br />

MsgBox("未選取歌曲", 0 + 64, "確認")<br />

Else<br />

AxWindowsMediaPlayer1.URL = "C:\Exam4\" & ListBox1.SelectedItem<br />

AxWindowsMediaPlayer1.Ctlcontrols.play()<br />

StarTtime = Now<br />

Timer1.Enabled = True<br />

End If<br />

End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

AxWindowsMediaPlayer1.Ctlcontrols.stop()<br />

End Sub<br />

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick<br />

Label1.Text = AxWindowsMediaPlayer1.Ctlcontrols.currentPositionString<br />

End Sub<br />

End Class<br />

82


題目說明-展現變化多端的色彩<br />

檔案路徑:24/Exam5/form1<br />

執行結果:<br />

程式碼:<br />

Public Class Form1<br />

Dim f As String<br />

Dim color1() = {Color.Orange, Color.OrangeRed, Color.Pink, Color.Purple, _<br />

Color.Ivory, Color.SlateGray, Color.Tan, Color.Yellow, _<br />

Color.Silver, Color.Green}<br />

Dim color2() = {Color.Gray, Color.Cyan, Color.Black, Color.Aqua, Color.Blue, _<br />

Color.Linen, Color.MediumBlue, Color.Brown, Color.Gold, _<br />

Color.AntiqueWhite, Color.Indigo}<br />

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

f = "右下"<br />

Randomize()<br />

End Sub<br />

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick<br />

Dim a, b As Integer<br />

a = Fix(Rnd() * 10)<br />

b = Fix(Rnd() * 10)<br />

Label1.ForeColor = color1(a)<br />

Me.BackColor = color2(b)<br />

If Label1.Location.X + 270 > Me.ClientSize.Width Then<br />

If f = "右下" Then f = "左下"<br />

If f = "右上" Then f = "左上"<br />

End If<br />

If Label1.Location.Y + 33 > Me.ClientSize.Height Then<br />

If f = "左下" Then f = "左上"<br />

If f = "右下" Then f = "右上"<br />

End If<br />

If Label1.Location.X


If Label1.Location.Y


執行結果:<br />

程式碼:<br />

Public Class Form2<br />

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

TextBox1.Text = CurDir()<br />

TextBox1.Text = formatDir(TextBox1.Text)<br />

display()<br />

TextBox1.SelectionStart = Len(TextBox1.Text)<br />

End Sub<br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br />

ChDir("..")<br />

TextBox1.Text = (formatDir(CurDir))<br />

display()<br />

End Sub<br />

Function formatDir(ByVal strDir As String) As String<br />

If Microsoft.VisualBasic.Right(strDir, 1) "\" Then<br />

strDir &= "\"<br />

End If<br />

Return strDir<br />

End Function<br />

Sub display()<br />

Dim strItem As String<br />

ListBox1.Items.Clear()<br />

ListBox2.Items.Clear()<br />

TextBox1.Text = formatDir(TextBox1.Text)<br />

ChDir(TextBox1.Text)<br />

strItem = Dir("*.*", 18)<br />

Do Until strItem = ""<br />

If (GetAttr(TextBox1.Text & strItem) And 16) = 16 Then<br />

ListBox1.Items.Add(strItem)<br />

Else<br />

ListBox2.Items.Add(strItem)<br />

End If<br />

strItem = Dir()<br />

Loop<br />

85


End Sub<br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br />

display()<br />

End Sub<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

TextBox1.Text = formatDir(TextBox1.Text)<br />

Try<br />

MkDir(TextBox1.Text)<br />

Catch ex As Exception<br />

MsgBox("資料夾已存在", 0 + 64, "")<br />

End Try<br />

display()<br />

End Sub<br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click<br />

TextBox1.Text = formatDir(TextBox1.Text)<br />

Try<br />

My.Computer.FileSystem.DeleteDirectory(TextBox1.Text & ListBox1.SelectedItem,<br />

FileIO.DeleteDirectoryOption.DeleteAllContents)<br />

Catch ex As Exception<br />

MsgBox("無法刪除此資料夾", 0 + 64, "")<br />

End Try<br />

display()<br />

End Sub<br />

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click<br />

TextBox1.Text = formatDir(TextBox1.Text)<br />

Try<br />

My.Computer.FileSystem.DeleteFile(TextBox1.Text & ListBox2.SelectedItem)<br />

Catch ex As Exception<br />

MsgBox("無法刪除檔案", 0 + 64, "")<br />

End Try<br />

display()<br />

End Sub<br />

Private Sub ListBox1_MouseDoubleClick(ByVal sender As Object, ByVal e As<br />

System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDoubleClick<br />

TextBox1.Text = formatDir(TextBox1.Text)<br />

TextBox1.Text &= ListBox1.SelectedItem<br />

display()<br />

End Sub<br />

Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles ListBox2.SelectedIndexChanged<br />

Dim s As String<br />

TextBox1.Text = formatDir(TextBox1.Text)<br />

If GetAttr(TextBox1.Text & ListBox2.SelectedItem) And 1 Then s += "+唯讀"<br />

If GetAttr(TextBox1.Text & ListBox2.SelectedItem) And 2 Then s += "+隱藏"<br />

If GetAttr(TextBox1.Text & ListBox2.SelectedItem) And 4 Then s += "+系統"<br />

If GetAttr(TextBox1.Text & ListBox2.SelectedItem) And 32 Then s += "+保存"<br />

If Microsoft.VisualBasic.Left(s, 1) = "+" Then s = Mid(s, 2)<br />

Label2.Text = "屬性:" & s<br />

ToolStripStatusLabel1.Text = "檔案大小:" & FileLen(TextBox1.Text & ListBox2.SelectedItem) & "bytes" _<br />

& " 修改日期:" & FileDateTime(TextBox1.Text & ListBox2.SelectedItem)<br />

End Sub<br />

End Class<br />

86


題目說明-便利貼<br />

檔案路徑:24/Exam5/form3<br />

表單畫面: 執行結果:<br />

程式碼:<br />

Public Class Form3<br />

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />

TextBox1.Text = My.Computer.FileSystem.ReadAllText("..\..\note.txt")<br />

TextBox1.SelectionStart = Len(TextBox1.Text)<br />

End Sub<br />

Private Sub Form3_FormClosing(ByVal sender As Object, ByVal e As<br />

System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing<br />

My.Computer.FileSystem.WriteAllText("..\..\note.txt", TextBox1.Text, False)<br />

End Sub<br />

Private Sub 字型ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 字型ToolStripMenuItem.Click<br />

If FontDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then<br />

TextBox1.Font = FontDialog1.Font<br />

End If<br />

End Sub<br />

Private Sub 背景顏色ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)<br />

Handles 背景顏色ToolStripMenuItem.Click<br />

If ColorDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then<br />

TextBox1.BackColor = ColorDialog1.Color<br />

End If<br />

End Sub<br />

End Class<br />

87


題目說明-求互質數、數字直角三角形、數字相加、身分證驗證<br />

檔案路徑:24/Exam6/form1<br />

表單畫面:<br />

執行結果:<br />

88


程式碼:<br />

Public Class Form1<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click<br />

Dim n As String<br />

Dim total As Integer<br />

For i = 1 To Len(TextBox3.Text)<br />

If Asc(Mid(TextBox3.Text, i, 1)) >= 48 And Asc(Mid(TextBox3.Text, i, 1))


n = 32<br />

Case 88 To 89<br />

n = Asc(Mid(TextBox4.Text, 1, 1)) - 58<br />

Case 90<br />

n = 33<br />

End Select<br />

s = Microsoft.VisualBasic.Trim(Str(n))<br />

For i = 2 To 9<br />

s = s & Mid(TextBox4.Text, i, 1)<br />

Next i<br />

m = Val(Mid(s, 1, 1)) + Val(Mid(s, 2, 1)) * 9<br />

For i = 8 To 1 Step -1<br />

m = m + Val(Mid(s, 11 - i, 1)) * i<br />

Next i<br />

If 10 - (m Mod 10) = Val(Mid(TextBox4.Text, 10, 1)) Then<br />

Label8.Text = "正確"<br />

Else<br />

Label8.Text = "錯誤"<br />

End If<br />

End Sub<br />

End Class<br />

90

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!