張庭甄
張庭甄
張庭甄
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