38.doc

Similar documents
2010年3月计算机等级考试四级网络工程师笔试

Microsoft Word - 小心翼翼的二十一點N.doc

TC35短信发送程序设计

Microsoft PowerPoint - VB3

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

全国计算机技术与软件专业技术资格(水平)考试

Visual Basic D 3D

投稿類別:電子工程類

untitled

四川省普通高等学校

Microsoft Word - 專題製作研究報告書.doc


Excel VBA Excel Visual Basic for Application

VB程序设计教程

CHAPTER VC#

PowerPoint Presentation

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

Microsoft PowerPoint - VB5

穨文件1

Microsoft PowerPoint - VB14.ppt

MVB-1001.DOC

untitled

2009年3月二级VB语言笔试真题

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

國立北斗家商 107 學年度第 2 學期第二次期中考科目 : 計算機應用 計算機概論 IV 班級 : 商二 1 2 貿二 資二 綜二 1 作答方式 : 答案卡 選擇題共 33 題, 除第 1 題 4 分, 其餘每題 3 分, 注意作答時間 1. ( ) 使用 Visual Basic 程式語言 (

2

p-2

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

ThreeDtunnel.doc

untitled

投影片 1

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

Microsoft PowerPoint - OPVB1基本VB.ppt

VB控件教程大全

2009年3月二级VB语言笔试真题

CC213

投影片 1

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

Visual C# 2005程式設計

ACI pdf

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

一 家 庭 成 员 与 收 支 情 况 100 您 本 人 配 偶 和 子 女 ( 包 括 在 本 地 老 家 和 其 他 地 方 的, 但 不 包 括 已 婚 分 家 的 子 女 ) 以 及 与 您 在 本 户 同 住 的 家 庭 其 他 成 员 共 有 几 口 人? 口 人 表 101: 请 谈

Microsoft PowerPoint - C_Structure.ppt

吳元康

3.1 num = 3 ch = 'C' 2

Visual Basic AD/DA Visual Basic 2

instructions.PDF

C/C++ - 字符输入输出和字符确认

Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice

untitled

2007年4月全国计算机二级考试VB语言笔试真题

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

SMM667.mps

C/C++ - 文件IO

科学计算的语言-FORTRAN95

CC213

Microsoft Word - 扉页

穨ac3-3.PDF

Microsoft Word - 第3章.doc

指 點 迷 經 論 述 金 門 青 少 年 對 生 理 期 的 認 知 摘 要 生 理 期 開 始 到 年 期 結 束 之 中, 有 很 多 女 性 會 面 對 自 己 不 同 的 困 擾, 而 男 性 們 對 於 女 性 的 生 理 期 更 是 充 滿 了 許 多 的 疑 惑 與 誤 解 本 實

封面-12

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

05 CHAPTER Information.IsNumeric ( ) Information.IsDate ( ) True False Date Date True False Y Y Information.IsArray ( ) True False Y Information.IsErr

通用可视化开发语言实习指导书.doc

(Microsoft Word - \253\312\255\261)

Microsoft Word - 实验3.doc

VHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

<4D F736F F D20B3CCD0F2D4B12DC9CFCEE7CCE2A3AD3037C9CF>

PowerPoint Presentation

Microsoft Word - (103-2高中部)體育常識測驗題庫.docx

IsPostBack 2

C/C++ - 函数

The golden pins of the PCI card can be oxidized after months or years

untitled

untitled

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

新・解きながら学ぶJava

数据结构与算法 - Python基础

Microsoft Word - ACL chapter02-5ed.docx

Microsoft PowerPoint - Lecture7II.ppt

untitled

WinMDI 28

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

Microsoft PowerPoint - Class2.pptx

提示 : (1) 程序运行时单击两次鼠标, 观察输出结果 ; (2) 将输出内容修改为 我的第一个 VB 程序 ; (3) 尝试改变输出文本的颜色 上机要求 : (1) 每题创建一个 VB 工程, 并在窗体 (Form1) 上设计界面, 在相关事件过程中编写程序 ; (2) 保存并运行应用程序 ;

CHAPTER 1

PowerPoint 簡報

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

概述

p-1

Chapter 16 集合

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

<4D F736F F D20AFB4A7C7A555B2D5C2B4A657B3E62E646F63>

YS1.mps

Transcription:

Visual Basic 學習檔案 ~~ 學生 : 羅家宜 指導老師 : 劉玉敏

CH1...1 表單...1 計算 BMI 值...1 CH2...2 計算三角形面積...2 歡迎使用者登入系統...3 CH3...4 FORM( 表單 )...4 表單常用事件 CLICK DBLCLICK...5 COMMANDBUTTON( 按鈕 )...6 LABEL( 標籤 )...7 文字方塊常用方法 -SETFOCUS 事件-LOSTFOCUS...8 文字方塊...9 聊天室...10 大家來找碴...11 CH4...12 循序結構...12 條件結構...13 CH5...14 IF THEN 判斷敘述 - 成績判斷...14 IF THEN 判斷敘述 - 購票...15 IF THEN ELSE 判斷敘述 - 判斷成績...16 IF THEN ELSE 判斷敘述 - 判斷視力...17 IF THEN ELSE 判斷敘述 - 判斷月份...18 巢狀 IF 判斷敘述 - 判斷可觀賞影片等級...19 巢狀 IF 判斷敘述 - 判斷參賽級別...20 巢狀 IF 判斷敘述 - 肥胖指數 (BMI) 計算...21 巢狀 IF 判斷敘述 - 判斷所屬年齡層...22 SELECT CASE 判斷敘述 - 判斷所屬世代族群...23 SELECT CASE 判斷敘述 - 判斷可觀賞影片等級...24 SELECT CASE 判斷敘述 - 判斷球隊的吉祥物...25 SELECT CASE 判斷敘述 - 判斷智力等級等級...26 SELECT CASE 判斷敘述 - 星座查詢...27 SELECT CASE 判斷敘述 - 運勢占卜...28 CH6...29 FOR-NEXT 迴圈敘述 - 輸出星號...29 FOR-NEXT 迴圈敘述 -1~10 加總...30 FOR-NEXT 迴圈敘述 -2~100 加總...31 1

FOR-NEXT 迴圈敘述 -1~300 3 的倍數加總...32 FOR-NEXT 迴圈敘述 -1+2-3+4+5-6..+97+98-99 的和...33 FOR-NEXT 迴圈敘述 - 簡易成績統計...34 WHILE-WEND 迴圈敘述 - 記憶力大考驗...35 WHILE-WEND 迴圈敘述 - 判斷是否猜中預設數字...36 DO-LOOP 迴圈敘述 - 反向輸出字串中的字元...37 DO-LOOP 後測試迴圈敘述 - 模擬四星彩開獎...38 CH7...39 一維陣列 - 統計手機費用...39 一維陣列 - 電腦術語大考驗...40 一維陣列 - 查詢程式語言成績...41 一維陣列 - 找出最大值及最小值...42 多維陣列 - 存放北 中 南三區降雨量...43 多維陣列 - 通訊資料建檔...44 CH8...45 氣泡排序法 - 由小到大排序...45 循序搜尋法 - 搜尋資料 15...46 二元搜尋法 - 搜尋資料 30...47 上機考...48 計算 A~B 之間間隔為 5 的各數之和...48 1 加到 91 7 倍數不加反減...49 DO LOOP 敘述 - 計算 N!...50 LIST BOX 中產生連續學號...51 產生隨機混雜的密碼...52 數入字串重新組合...53 隨機產生 7 個 1~15 不重複數字...54 二維陣列 - 儲存 5 期的四星彩...56 輸入 X Y 軸和往上下左右走幾步最後輸出座標...58 CH9...59 副程式 -1 加到 N 總和...59 副程式 - 計算標準體重...60 副程式 - 簡易售票系統...61 自訂函數 - 試算手機通話費...63 自訂函數 - 計算加油公升數...65 CH12...67 循序檔 -PRINT# WRITE#...67 循序檔 -LIME INPUT #...68 循序檔 -INPUT # 敘述...69 2

隨機檔 - 自訂記錄格式...70 隨機檔 -INPUT #...71 隨機檔 -GET # 敘述...72 檔案管理 - 文字瀏覽器...74 檔案管理 - 圖片瀏覽器...75 上機考 2...76 存取循序檔...76 存取隨機檔...79 3

Ch1 表單 題目說明 : 計算圓面積 檔案路徑名稱 :01 \ ch1 \ P.30 Private Sub Command1_Click() ' 圓面積的計算 Const pi = 3.14159 Dim r As Single Dim area As Single r = Val(Text1.Text) area = pi * r ^ 2 Text2.Text = area Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Private Sub 結束 _Click() End 1

計算 BMI 值 檔案路徑名稱 :01 \ ch1 \ P.35 Private Sub Command1_Click() Dim h, w, bmi As Single h = Val(Text1.Text) / 100 w = Val(Text2.Text) bmi = w / h ^ 2 Label3.Caption = Label3.Caption & bmi Private Sub Command2_Click() End Private Sub Text1_Change() 1

Ch2 計算三角形面積 檔案路徑名稱 :01 \ ch2 \ P.75 Private Sub Form_Load() g = InputBox(" 請輸入三角形底邊長 ", " 計算三角形面積 ") j = InputBox(" 請輸入三角形的高度 ", " 計算三角形面積 ") M = g * j / 2 MsgBox " 三角形面積為 " & M, vbokonly, " 計算三角形面積 " 2

歡迎使用者登入系統 檔案路徑名稱 :01 \ ch2 \ P.76 Private Sub Form_Activate() Form1.Hide ID = InputBox(" 請輸入大名 ", " 歡迎光臨 ") MsgBox ID & " 同學您好, 歡迎光臨 ",, "Welcome" End 3

Ch3 Form( 表單 ) 題目說明 : 利用屬性視窗, 設定表單的屬性 檔案路徑名稱 :01 \ ch3 \ P.91 Private Sub Form_Click() Form1.BackColor = &HFF0000 Private Sub Form_DblClick() Form1.BackColor = &HFFFF& 4

表單常用事件 Click DblClick 題目說明 : 輸出星星符號 檔案路徑名稱 :01 \ ch3 \ P.93 Private Sub Form_Click() Print Print " " Private Sub Form_DblClick() Print Print " " 5

CommandButton( 按鈕 ) 題目說明 : 字體縮放 檔案路徑名稱 :01 \ ch3 \ P.98 Private Sub Command1_Click() Form1.FontSize = Form1.FontSize + 3 Print "BASIC" Private Sub Command2_Click() Form1.FontSize = Form1.FontSize - 3 Print "BASIC" 6

Label( 標籤 ) 題目說明 : 腦筋急轉彎 檔案路徑名稱 :01 \ ch3 \ P.102 Private Sub Command1_Click() Label2.Visible = True Private Sub Label2_Click() Label2.Visible = False 7

文字方塊常用方法 -SetFocus 事件 -LostFocus 題目說明 : 登入帳密 檔案路徑名稱 :01 \ ch3 \ P.105 Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Text1.SetFocus Private Sub Text1_LostFocus() If Len(Text1.Text) <> 4 Then MsgBox " 帳號應為四字 " Text1.SetFocus 8

文字方塊 題目說明 : 字數統計 檔案路徑名稱 :01 \ ch3 \ P.107 Private Sub Command1_Click() Dim length As Integer length = Len(text1.text) Label2.Caption = " 共輸入了 " & length & " 字 " 9

聊天室 檔案路徑名稱 :01 \ ch3 \ P.111 Private Sub Command1_Click() Text2.Text = Text2.Text & Label1.Caption & Text1.Text & vbcrlf Text1.Text = "" Private Sub Command2_Click() Text2.Text = "" Private Sub Command3_Click() Text2.Text = Text2.Text & Label2.Caption & Text3.Text & vbcrlf Text3.Text = "" 10

大家來找碴 檔案路徑名稱 :01 \ ch3 \ P.112 Private Sub Image2_Click() MsgBox " 不對哦 ",, " 沒找到 " Private Sub Label2_Click() 以此類推以下六個 MsgBox " 好棒哦 ",, " 找到了 " Label2.Enabled = False 11

Ch4 循序結構 題目說明 : 西元算出年齡 檔案路徑名稱 :01 \ ch4 \ P.128 Private Sub Form_Activate() Dim age As Integer age = InputBox(" 請輸入西元的出生年份 ", " 計算年齡 ") age = 2009 - age MsgBox " 您的年齡為 " & age & " 歲 ",, " 年齡 " 12

條件結構 題目說明 : 購物促銷方案 檔案路徑名稱 :01 \ ch4 \ P.129 Private Sub Form_Activate() Dim amout As Integer amout = InputBox(" 請輸入購物金額 :", " 購物金額 ") If amout >= 3000 Then amout = amout * 0.85 MsgBox " 您的購物金額滿 3000 元, 可打 85 折, 金額為 " & amout,, " 購物金額 " MsgBox " 您的購物金額未滿 3000 元, 沒有打折, 金額為 " & amout,, " 購物金額 13

Ch5 If Then 判斷敘述 - 成績判斷 題目說明 : 判斷成績 (score) 是否大於等於 60? 若是, 便顯示 成績及格 的訊息 檔案路徑名稱 :01 \ ch5 \ P.135 Private Sub Form_Activate() Dim score As Integer score = InputBox(" 請輸入成績 :", " 成績輸入 ") If score >= 60 Then MsgBox " 成績及格 ", 64 + 0, " 成績判斷 " 14

If Then 判斷敘述 - 購票 題目說明 : 判斷購票者是否為學生身分? 若是, 則以 7 折來計算電影 票價 檔案路徑名稱 :01 \ ch5 \ P.136 Private Sub Form_Activate() Dim price As Integer, Ans As String price = 250 Ans = InputBox(" 若為學生請輸入 Y, 不是請輸入 N", " 身分確認 ") If Ans = "Y" Or Ans = "y" Then price = price * 0.7 MsgBox " 學生票票價 :" & price,, " 顯示票價 " If Ans = "N" Or Ans = "n" Then MsgBox " 全票票價 :" & price,, " 顯示票價 " 15

If Then 判斷敘述 - 判斷成績 題目說明 : 判斷成績 (score) 是否大於等於 60? 若是, 便顯示 成績及格 的訊息 檔案路徑名稱 :01 \ ch5 \ P.138 Private Sub Form_Activate() Dim score As Integer score = InputBox(" 請輸入成績 : ", " 成績輸入 ") If score >= 60 Then MsgBox " 成績及格 ", 64 + 0, " 成績判斷 " MsgBox " 成績不及格 ", 16 + 0, " 成績判斷 " 16

If Then 判斷敘述 - 判斷視力 題目說明 : 判斷視力檢測值是否介於 0.8( 不含 )~1.2 之間? 若是, 則顯 示 視力正常 的訊息, 否則, 就顯示 視力可能需矯正 的訊息 檔案路徑名稱 :01 \ ch5 \ P.139-1 Private Sub Form_Activate() Dim x As Integer x = InputBox(" 請輸入視力檢測值 :", 視力輸入 ) If x > 0.8 And x <= 1.2 Then MsgBox " 視力正常 ",, " 視力檢查 " MsgBox " 視力可能需要矯正 ",, " 視力檢查 " 17

If Then 判斷敘述 - 判斷月份 題目說明 : 判斷月份為大月或小月 檔案路徑名稱 :01 \ ch5 \ P.139-2 Private Sub Form_Activate() Dim m As Integer m = InputBox(" 請輸入本月月份 ", " 月份輸入 ") If m = 1 Or m = 3 Or m = 5 Or m = 7 Or m = 8 Or m = 10 Or m = 12 Then MsgBox m & " 月是大月 ",, " 月份判斷 " MsgBox m & " 月是小月 ",, " 月份判斷 " 18

巢狀 If 判斷敘述 - 判斷可觀賞影片等級 題目說明 : 依據年齡層來判斷可觀賞的影片等級 檔案路徑名稱 :01 \ ch5 \ P.144 Private Sub Form_Activate() Dim age As Integer age = InputBox(" 請輸入年齡 :", " 年齡輸入 ") If age < 6 Then MsgBox " 可看普遍級 ",, " 可觀賞的等級 " If age < 12 Then MsgBox " 可看普遍級保護級 ",, " 可觀賞的等級 " If age < 18 Then MsgBox " 可看非限制級影片 ",, " 可觀賞的等級 " MsgBox " 可看各級影片 ",, " 可觀賞的影片 " 19

巢狀 If 判斷敘述 - 判斷參賽級別 題目說明 : 依據體重來判斷男子跆拳道選手的參賽級別 檔案路徑名稱 :01 \ ch5 \ P.145 Private Sub Form_Activate() Dim kg As Integer kg = InputBox(" 請輸入體重 :", " 體重輸入 ") If kg < 59 Then MsgBox " 不符合參賽資格 ",, " 參賽級別 " If kg >= 59 And kg < 63 Then MsgBox " 輕量級 ",, " 參賽級別 " If kg >= 63 And kg < 73 Then MsgBox " 中量級 ",, " 參賽級別 " If kg >= 73 Then MsgBox " 重量級 ",, " 參賽級別 " 20

巢狀 If 判斷敘述 - 肥胖指數 (BMI) 計算 題目說明 : 依據使用者輸入個人的身高 體重 及性別, 來計算肥胖 指數, 以判斷使用者是否肥胖 檔案路徑名稱 :01 \ ch5 \ P.148 Private Sub Command1_Click() Dim h As Single, w As Single, bmi As Single h = Val(Text1.Text) / 100 w = Val(Text2.Text) bmi = Format(w / (h ^ 2), "##.#") If Option1.Value = True Then If bmi <= 27.8 Then MsgBox " 您的 BMI 值為 " & bmi & ", 屬於一般身材," MsgBox " 您的 BMI 值為 " & bmi & ", 屬於肥胖身材," If bmi <= 27.3 Then MsgBox " 您的 BMI 值為 " & bmi & ", 屬於一般身材," MsgBox " 您的 BMI 值為 " & bmi & ", 屬於肥胖身材," 21

巢狀 If 判斷敘述 - 判斷所屬年齡層 題目說明 : 依據輸入之年齡來判斷及顯示所屬年齡層代稱程式 檔案路徑名稱 :01 \ ch5 \ P.153 Private Sub Form_Activate() Dim age As Integer age = InputBox(" 請輸入年齡 :", " 年齡輸入 ") If age >= 14 And age <= 19 Then MsgBox " 少年 ",, " 所屬年齡層 " If age >= 20 And age <= 30 Then MsgBox " 青年 ",, " 所屬年齡層 " If age >= 31 And age <= 55 Then MsgBox " 壯年 ",, " 所屬年齡層 " If age >= 56 Then MsgBox " 老年 ",, " 所屬年齡層 " 22

Select Case 判斷敘述 - 判斷所屬世代族群 題目說明 : 依據出生年次來判斷所屬的世代族群 檔案路徑名稱 :01 \ ch5 \ P.156 Private Sub Form_Activate() Dim y As Integer y = InputBox(" 請輸入出生年次 ", " 輸入年次 ") Select Case y Case Is >= 70 MsgBox " 水蜜桃族 ",, " 世代族群 " Case Is >= 60 MsgBox " 草莓族 ",, " 世代族群 " Case MsgBox " 芭樂族 ",, " 世代族群 " End Select 23

Select Case 判斷敘述 - 判斷可觀賞影片等級 題目說明 : 依據年齡層來判斷可觀賞的影片等級 檔案路徑名稱 :01 \ ch5 \ P.157 Private Sub Form_Activate() Dim age As Integer age = InputBox(" 請輸入年齡 :", " 年齡輸入 ") Select Case age Case Is < 6 MsgBox " 可看普遍級 ",, " 可觀賞的等級 " Case Is < 12 MsgBox " 可看普遍級保護級 ",, " 可觀賞的等級 " Case Is < 18 MsgBox " 可看非限制級影片 ",, " 可觀賞的等級 " Case MsgBox " 可看各級影片 ",, " 可觀賞的影片 " End Select 24

Select Case 判斷敘述 - 判斷球隊的吉祥物 題目說明 : 依據使用者輸入的職棒球隊名稱, 判斷球隊的吉祥物 檔案路徑名稱 :01 \ ch5 \ P.159 Private Sub Command1_Click() Dim name As String name = Text1.Text Select Case name Case Is = " 興農 " Option1.Value = True Case Is = " 中信 " Option2.Value = True Case Is = "LaNew" Option3.Value = True Case Is = " 兄弟 " Option4.Value = True Case Is = " 統一 " Option5.Value = True Case Is = " 誠泰 " Option6.Value = True Case MsgBox " 無此球隊, 請重新輸入 ",, " 輸入有誤 " Text1.Text = "" Text1.SetFocus End Select 25

Select Case 判斷敘述 - 判斷智力等級等級 題目說明 : 依據輸入之智力測驗成績來判斷及顯示智力等級的程式 檔案路徑名稱 :01 \ ch5 \ P.165 Private Sub Form_Activate() Dim s As Integer s = InputBox(" 請輸入智力測驗成績 :", " 測驗成績判斷 ") Select Case s Case 80 To 110 MsgBox " 正常智力 ",, " 測驗成果 " Case 111 To 120 MsgBox " 高智力 ",, " 測驗結果 " Case 121 To 140 MsgBox " 極高智力 ",, " 測驗結果 " Case Is >= 141 MsgBox " 天才 ",, " 測驗結果 " End Select 26

Select Case 判斷敘述 - 星座查詢 題目說明 : 判斷使用者輸入之日期, 並顯示所屬的星座 檔案路徑名稱 :01 \ ch5 \ P.167 Private Sub Command1_Click() Dim m As Single, d As Single m = Int(Text1.Text) d = Int(Text2.Text) Select Case m Case 1 If d < 20 Then Option6.Value = True Option9.Value = True Case 2 If d < 20 Then Option9.Value = True Option12.Value = True Case 3 If d < 21 Then Option12.Value = True Option1.Value = True Case 4 If d < 21 Then Option1.Value = True Option4.Value = True Case 5 If d < 21 Then Option4.Value = True Option7.Value = True Case 6 If d < 22 Then Option7.Value = True Option10.Value = True Case 7 If d < 23 Then Option10.Value = True : Option2.Value = True Case 8 If d < 23 Then Option2.Value = True Option5.Value = True Case 9 If d < 23 Then Option7.Value = True Option1.Value = True Case 10 If d < 23 Then Option8.Value = True Option11.Value = True Case 11 If d < 22 Then Option11Value = True Option3.Value = True Case 12 If d < 22 Then Option3.Value = True Option6.Value = True Case MsgBox " 輸入錯誤, 請重新輸入 ",, " 輸入有誤 " End Select 27

Select Case 判斷敘述 - 運勢占卜 題目說明 : 設計一個運勢占卜的程式 檔案路徑名稱 :01 \ ch5 \ P.168 Private Sub Command1_Click() Dim a As Integer a = Int(Rnd() * 6) + 1 Select Case a Case 1 Text1.Text = " 下下籤 : 諸事不宜 " Case 2 Text1.Text = " 中上籤 : 會有貴人相助 " Case 3 Text1.Text = " 中下籤 : 口舌之爭 " Case 4 Text1.Text = " 平籤 : 保持平常心 " Case 5 Text1.Text = " 平籤 : 沒事就是好事 " Case 6 Text1.Text = " 上上籤 : 意外之財降臨 " End Select Private Sub Command2_Click() Form1.Hide 28

Ch6 For-Next 迴圈敘述 - 輸出星號 題目說明 : 輸出由 * 所組成的 10 層直角三角形圖案 檔案路徑名稱 :01 \ ch6 \ P.171 Private Sub Form_Activate() Dim i As Integer For i = 1 To 10 Print String(i, "*") Next i 29

For-Next 迴圈敘述 -1~10 加總 題目說明 : 計算 1 加到 10 的總和 檔案路徑名稱 :01 \ ch6 \ P.172 Private Sub Form_Activate() Dim i As Integer, sum As Integer sum = 0 For i = 1 To 10 sum = sum + i Next i MsgBox "1+2+3+..+10=" & sum,, " 計算 1 加到 10 的總合 " 30

For-Next 迴圈敘述 -2~100 加總 題目說明 : 計算 2 加到 100 的總和 檔案路徑名稱 :01 \ ch6 \ P.172- 延伸 1 Private Sub Form_Activate() Dim i As Integer, sum As Integer sum = 0 For i = 2 To 100 Step 2 sum = sum + i Next i MsgBox "2+4+6+...+100=" & sum,, " 計算 2 加到 100 的總合 " 31

For-Next 迴圈敘述 -1~300 3 的倍數加總 題目說明 : 計算 1 到 300 3 的倍數加總 檔案路徑名稱 :01 \ ch6 \ P.172- 延伸 2 Private Sub Form_Activate() Dim i, sum, n As Integer For i = 1 To 300 If i Mod 3 = 0 Then sum = sum + i n = n + i List1.AddItem i Next i MsgBox "3+6+9+12+...+300=" & sum,, " 計算 1 到 300 3 的倍數加總 " 32

For-Next 迴圈敘述 -1+2-3+4+5-6..+97+98-99 的和 題目說明 : 計算 1+2-3+4+5-6+97+98-99 的和 檔案路徑名稱 :01 \ ch6 \ P.172- 延伸 3 Private Sub Form_Activate() Dim i As Integer, sum As Integer For i = 1 To 99 If i Mod 3 = 0 Then sum = sum - i sum = sum + i Next i MsgBox "1+2-3+4+5-6+...+97+98-99 的總和 :" & sum,, " 計算總和 " 33

For-Next 迴圈敘述 - 簡易成績統計 題目說明 : 依據使用者連續輸入的 5 科段考成績, 來計算段考總分 最高成績 與及格的科目數 檔案路徑名稱 :01 \ ch6 \ P.175 Private Sub Command1_Click() Dim i, score, sum, max, n As Integer sum = 0: max = 0: n = 0 Text1.Text = " 成績資料 :" For i = 1 To 5 score = Val(InputBox(" 請輸入段考成績 :", " 簡易成績統計 ")) sum = sum + score Text1.Text = Text1.Text & score & Space(2) If score > max Then max = score If score >= 60 Then n = n + 1 Next i If Check1.Value = 1 Then Text1.Text = Text1.Text & vbcrlf + " 總分為 " & sum & " 分 " If Check2.Value = 1 Then Text1.Text = Text1.Text & vbcrlf + " 最高分為 " & max & " 分 " If Check3.Value = 1 Then Text1.Text = Text1.Text & vbcrlf + " 及格科數為 " & n & " 科 " 34

While-Wend 迴圈敘述 - 記憶力大考驗 題目說明 : 記憶力大考驗 ( 表單上顯示 5 個隨機產生的數字, 並於 3 秒後自動隱藏數字, 讓使用者考驗自己記憶能力的程式 ) 檔案路徑名稱 :01 \ ch6 \ P.186 Private Sub Command1_Click() Dim i As Integer, n As Integer Randomize i = 1 While i <= 5 n = Int(Rnd() * 99) + 1 Text1.Text = Text1.Text & n & Space(2) i = i + 1 Wend Timer1.Enabled = True Private Sub Command2_Click() Text2.Text = Text1.Text Private Sub Timer1_Timer() Text1.Visible = False Command1.Enabled = False Command2.Enabled = True Timer1.Enabled = False 35

While-Wend 迴圈敘述 - 判斷是否猜中預設數字 題目說明 : 猜數字遊戲 ( 預設數字為 176) 檔案路徑名稱 :01 \ ch6 \ P.192 作業 Private Sub Form_Activate() Dim pwd As Integer, cpwd As Integer cpwd = 176 pwd = InputBox(" 請輸入一個 3 位的整數資料 ", " 猜數字遊戲 ") While pwd <> cpwd Wend If pwd > cpwd Then pwd = InputBox(" 輸入的整數太大, 請再輸入一次 ", 猜數字遊戲 ) pwd = InputBox(" 輸入的整數太小, 請再輸入一次 ", 猜數字遊戲 ) MsgBox " 恭喜, 猜對了 ",, " 猜數字遊戲 " 36

Do-Loop 迴圈敘述 - 反向輸出字串中的字元 題目說明 : 反向輸出字串中的字元 檔案路徑名稱 :01 \ ch6 \ P.194 Private Sub Form_Activate() Dim i As Integer, word As String, reword As String word = InputBox(" 請輸入任意字串 :", " 字串反轉 ") i = Len(word) Do While i >= 1 reword = reword + Mid(word, i, 1) i = i - 1 Loop MsgBox word & " 反轉後為 " & reword,, " 字串反轉 " 37

Do-Loop 後測試迴圈敘述 - 模擬四星彩開獎 題目說明 : 四星彩開獎 ( 設計一個可隨機產生 4 個介於 0~9 之間的整 數, 以模擬四星彩公益彩券開獎的程式 ) 檔案路徑名稱 :01 \ ch6 \ P.201 Private Sub command1_click() Dim i As Integer, n As Integer Randomize i = 1 Do While i <= 4 n = Int(Rnd * 10) Select Case i Case 1: Image1.Picture = LoadPicture(App.Path & "\ 樂透球 " & n & ".jpg") Case 2: Image2.Picture = LoadPicture(App.Path & "\ 樂透球 " & n & ".jpg") Case 3: Image3.Picture = LoadPicture(App.Path & "\ 樂透球 " & n & ".jpg") Case 4: Image4.Picture = LoadPicture(App.Path & "\ 樂透球 " & n & ".jpg") End Select i = i + 1 Loop 38

Ch7 一維陣列 - 統計手機費用 題目說明 : 使用一維陣列來儲存某年度 1~12 月的手機費用 檔案路徑名稱 :01 \ ch7 \ P.222 Private Sub Form_Activate() Dim bill(1 To 12) As Integer, i As Integer, sum As Integer For i = 1 To 12 bill(i) = InputBox(" 請輸入 " & i & " 月的手機費 :", " 手機費輸入 ") sum = sum + bill(i) Next i MsgBox " 今年度的手機費共繳了 " & sum & " 元 ",, " 統計手機費用 " 39

一維陣列 - 電腦術語大考驗 題目說明 : 電腦術語大考驗 ( 在清單中點選相對應的英文電腦術語 ) 檔案路徑名稱 :01 \ ch7 \ P.223 Private Sub Command1_Click() If List1.ListIndex + 1 = n Then Label3.Caption = " 答對了!" Label3.Caption = " 答錯了!" Private Sub Form_Load() Dim i As Integer Dim chi(1 To 5) As String Dim eng(1 To 5) As String chi(1) = " 電腦輔助教學軟體 ": eng(1) = "CAI" chi(2) = " 中央處理單元 ": eng(2) = "CPU" chi(3) = " 隨機存取記憶體 ": eng(3) = "RAM" chi(4) = " 全球資訊網 ": eng(4) = "WWW" chi(5) = " 區域網路 ": eng(5) = "LAN" Randomize n = Int(Rnd() * 5) + 1 Label2.Caption = Label2.Caption + chi(n) + " =>" For i = 1 To 5 List1.AddItem eng(i) Next i 40

一維陣列 - 查詢程式語言成績 題目說明 : 利用一維陣列設計一個可用來輸入及查詢程式語言成績 的程式 檔案路徑名稱 :01 \ ch7 \ P.228 Private Sub Command1_Click() Dim i As Integer i = Int(Text1.Text) If i >= 1 And i <= 50 Then score(i) = Int(Text2.Text) MsgBox " 輸入介於 1~50 之間 ",, " 數字輸入錯誤 " Text1.Text = "" Text2.Text = "" Text1.SetFocus Private Sub Command2_Click() Dim j As Integer j = Int(Text1.Text) If j < 0 And j > 50 Then score(j) = Int(Text2.Text) Text2.Text = score(j) 41

一維陣列 - 找出最大值及最小值 題目說明 : 利用一維陣列來儲存使用者輸入的 5 個資料, 並找出陣 列資料中最大值及最小值 檔案路徑名稱 :01 \ ch7 \ P.229 Dim max, min, n, a(1 To 5) As Integer Private Sub Command1_Click() For i = 1 To 5 a(i) = InputBox(" 請輸入成績 ", " 比較數值大小 ") n = n + 1 If Val(a(i)) > max Then max = a(i) If Val(a(i)) < min Then min = a(i) Text1 = Text1 & " 第 " & n & " 個數值是 " & a(i) & vbcrlf Next i Private Sub Command2_Click() Text1 = Text1 & " 最大值為 " & max & vbcrlf Private Sub Command3_Click() Text1 = Text1 & " 最小值為 " & min & vbcrlf Private Sub Form_Load() min = 10000: n = 0 42

多維陣列 - 存放北 中 南三區降雨量 題目說明 : 輸入並儲存北 中 南三區某年 1~12 月的雨量資料 檔案路徑名稱 :01 \ ch7 \ P.232 Private Sub Form_Activate() Dim rain(1 To 3, 1 To 12) As Single For i = 1 To 3 For j = 1 To 12 Select Case i Case 1: rain(i, j) = Val(InputBox(" 請輸入北區 " & j & " 月的雨量 :", " 雨量輸入 ")) Case 2: rain(i, j) = Val(InputBox(" 請輸入中區 " & j & " 月的雨量 :", " 雨量輸入 ")) Case 3: rain(i, j) = Val(InputBox(" 請輸入南區 " & j & " 月的雨量 :", " 雨量輸入 ")) End Select Next j Next i 43

多維陣列 - 通訊資料建檔 題目說明 : 設計一個可供使用者將個人好友通訊資料建檔的程式 檔案路徑名稱 :01 \ ch7 \ P.234 Dim data(1 To 38, 1 To 4) As String Dim n As Integer Private Sub Command1_Click() n = n + 1 data(n, 1) = Text1.Text data(n, 1) = Combo1.Text + "/" + Combo2.Text + "/" + Combo3.Text data(n, 1) = Text2.Text data(n, 1) = Text3.Text MsgBox " 第 " & n & " 筆資料輸入完成 ",, " 儲存聯絡人資料 " ' 姓名 ' 日期 ' 電郵 ' 電話 Private Sub Command2_Click() Private Sub Form_Activate() Dim i, j, k As Integer For i = 80 To 84 Combo1.AddItem Str(i) Next i For j = 1 To 12 Combo2.AddItem Str(j) Next j For k = 1 To 31 Combo3.AddItem Str(k) Next k 'Combo1 年 'Combo2 月 'Combo3 日 44

Ch8 氣泡排序法 - 由小到大排序 題目說明 : 利用氣泡排序法將五個大小不等的資料, 由小到大排序 的程式碼 檔案路徑名稱 :01 \ ch8 \ P.255 Private Sub Command1_Click() Dim a(4) a(0) = 20: a(1) = 5: a(2) = 30: a(3) = 40: a(4) = 15 Print " 排序前資料為 " For i = 0 To 4 Print a(i) & Space(3); Next i For i = 1 To (5-1) For j = 0 To (4 - i) If a(j) > a(j + 1) Then temp = a(j) a(j) = a(j + 1) a(j + 1) = temp Next j Next i Print: Print: Print " 排序後資料為 " For i = 0 To 4 Print a(i) & Space(3); Next i 45

循序搜尋法 - 搜尋資料 15 題目說明 : 利用循序搜尋法搜尋資料 30 的程式碼 檔案路徑名稱 :01 \ ch8 \ P.264 Private Sub Form_Activate() Dim a(1 To 5) As Integer a(1) = 5: a(2) = 30: a(3) = 40: a(4) = 15: a(5) = 10 i = 1 Target = 30 Do If Target = a(i) Then Print " 找到數值 30" Exit Do i = i + 1 If i > 5 Then Print " 找不到數值 30" Exit Do Loop 46

二元搜尋法 - 搜尋資料 30 題目說明 : 利用二元搜尋法搜尋資料 30 的程式碼 檔案路徑名稱 :01 \ ch8 \ P.267 Private Sub Form_Activate() Dim a(1 To 6) As Integer a(1) = 5: a(2) = 10: a(3) = 15: a(4) = 20: a(5) = 30: a(6) = 40 Target = 30 L = 1: R = 6: Result = " 找不到 " While L <= R And Result = " 找不到 " M = (L + R) \ 2 If a(m) = Target Then Result = " 找到目標資料 " If a(m) > Target Then R = M - 1 L = M + 1 Wend MsgBox Result & Target 47

上機考計算 A~B 之間間隔為 5 的各數之和 題目說明 : 讓使用者輸入兩個整數 A B, 並計算 A 到 B 之間, 間 隔為 5 的各數之和 檔案路徑名稱 :01 \ 上機考 \ 98 1 第一次段考 -1 Private Sub Command1_Click() Dim i, a, b As Integer a = Text1.Text b = Text2.Text For i = a To b Step 5 Sum = Sum + i Next i MsgBox "a " & 到 & "b" & " 之間間隔為 5 之和 =" & Sum,, " 計算總合 " 48

1 加到 91 7 倍數不加反減 題目說明 : 計算 1 連續加至 91, 增量值為 2, 但若為 7 的倍數則不加反減, 最後將和輸出 檔案路徑名稱 :01 \ 上機考 \98 1 第一次段考 -2 Private Sub Form_Activate() Dim p As Integer, s As Integer Sum = 0 For p = 1 To 91 Step 2 If p Mod 7 = 0 Then s = s - p s = s + p Next p MsgBox "1+3+5-7+...-91=" & s,, " 總合結果 " 49

Do Loop 敘述 - 計算 N! 題目說明 : 利用 Do-Loop 敘述, 撰寫計算 N! 的程式 檔案路徑名稱 :01 \ 上機考 \98 1 第一次段考 -3 Private Sub Form_Activate() Dim i As Integer, sum As Integer n = InputBox(" 輸入任一個數字 ", " 計算 N!") sum = 1 i = 1 Do While i <= n sum = sum * i i = i + 1 Loop MsgBox n & "! = " & sum,, " 計算 N!" 50

List box 中產生連續學號 題目說明 : 請撰寫一個能於 list box 中產生連續學號之程式 檔案路徑名稱 :01 \ 上機考 \98 1 第一次段考 -4 Private Sub Form_Activate() For i = 65 To 90 For j = 0 To 9 List1.AddItem Chr(i) & "8912" & j Next j Next i 51

產生隨機混雜的密碼 題目說明 : 請撰寫一個能於隨機產生一組長度為 6, 並為數字 大寫英文字母 小寫英文字母三者隨機混雜的密碼程式 ( 如 : 為 G60D5s) 檔案路徑名稱 :01 \ 上機考 \98 1 第一次段考 -5 Private Sub Command1_Click() Dim str1 As String, x, i, n As Integer Randomize: str1 = "" For i = 1 To 6 n = Int(Rnd() * 3) + 1 Select Case n Case 1: x = Int(Rnd() * 10): str1 = str1 & x Case 2: x = Int(Rnd() * 26) + 65: str1 = str1 & Chr(x) Case 3: x = Int(Rnd() * 26) + 97: str1 = str1 & Chr(x) End Select Next i Text1 = str1 52

數入字串重新組合 題目說明 : 請撰寫一個能將使用者輸入的字串, 採先取出偶數位字元, 再取 出奇數位字元之順序, 將之重新組合的程式 檔案路徑名稱 :01 \ 上機考 \98 1 第一次段考 -6 Private Sub Form_Activate() Dim a, b As String a = InputBox(" 請輸入字串 ", " 字串輸入 ") For i = 2 To Len(a) Step 2 b = b & Mid(a, i, 1) Next For i = 1 To Len(a) Step 2 b = b & Mid(a, i, 1) Next MsgBox " 組合後為 :" & b,, " 重新組合 " 53

隨機產生 7 個 1~15 不重複數字 題目說明 : 請撰寫一個能隨機產生 7 個介於 1 到 15 之間不重複的數字陣列, 並加至左邊 list box 中 檔案路徑名稱 :01 \ 上機考 \98 2 第二次段考 -1 Dim A(1 To 7) As Integer Private Sub Command1_Click() Max = A(1) For i = 2 To 7 If A(i) > Max Then Max = A(i) Next i MsgBox " 最大值 " & Max,, "The Result" Private Sub Command2_Click() Min = A(1) For i = 2 To 7 If A(i) < Min Then Min = A(i) Next i MsgBox " 最小值 " & Min,, "The Result" Private Sub Command3_Click() List2.Clear For i = 1 To 6 For j = 1 To 7 - i If A(j) > A(j + 1) Then temp = A(j): A(j) = A(j + 1): A(j + 1) = temp Next j Next i For i = 1 To 7 List2.AddItem A(i) Next i Private Sub Command4_Click() List2.Clear For i = 1 To 6 For j = 1 To 7 - i If A(j) < A(j + 1) Then temp = A(j): A(j) = A(j + 1): A(j + 1) = temp Next j Next i For i = 1 To 7 List2.AddItem A(i) Next i Private Sub Command5_Click() Dim M As Integer cho = MsgBox(" 是否已遞增排序?", 48 + vbokcancel, " 提醒 ") If cho = 1 Then tre = Val(InputBox(" 請輸入欲尋找的數值 ", " 搜尋 ")): L = 1: R = 7: n = 0 Do M = (L + R) / 2: n = n + 1 If A(M) = tre Then MsgBox " 在第 " & n & " 次, 找到目標 " & tre: Exit Do If tre > A(M) Then L = M + 1 R = M - 1 Loop If L > R Then MsgBox " 找不到 " & tre: Exit Do 54

Private Sub Form_Load() Randomize str1 = "": n = 0 Do x = Int(Rnd() * 15) + 1 If InStr(str1, "*-" & x) = 0 Then n = n + 1: str1 = str1 + "*-" & x: List1.AddItem x: A(n) = x If n = 7 Then Exit Do Loop 55

二維陣列 - 儲存 5 期的四星彩 題目說明 : 利用二維陣列來儲存近 5 期的 4 星彩開獎號碼 ( 範圍 0~9), 並計 算每個號碼出現的次數 檔案路徑名稱 :01 \ 上機考 \98 2 第二次段考 -2 Private Sub Command1_Click() Dim lucky(5, 4) As Integer Dim no(9) As Integer Dim all As String For i = 1 To 5 all = "" all = all & " 第 " & i & " 期 :" For j = 1 To 4 lucky(i, j) = InputBox(" 請輸入第 " & i & " 期, 第 " & j & " 個開獎數字 ( 共 4 個 )") all = all & lucky(i, j) & Space(3) Select Case lucky(i, j) Case 0: no(0) = no(0) + 1 Case 1: no(1) = no(1) + 1 Case 2: no(2) = no(2) + 1 Case 3: no(3) = no(3) + 1 Case 4: no(4) = no(4) + 1 Case 5: no(5) = no(5) + 1 Case 6: no(6) = no(6) + 1 Case 7: no(7) = no(7) + 1 Case 8: no(8) = no(8) + 1 Case 9: no(9) = no(9) + 1 Case 0: no(0) = no(0) + 1 End Select Next List1.AddItem all 56

Next For i = 0 To 9 List2.AddItem i & " 出現 :" & no(i) & " 次 " Next 57

輸入 X Y 軸和往上下左右走幾步最後輸出座標 題目說明 : 設計一個讓使用者輸入 X Y 軸和往上下左右走幾步, 最後輸出 座標 檔案路徑名稱 :01 \ 上機考 \ 程式設計 -1 Private Sub Command1_Click() X = Val(Text1): Y = Val(Text2): n = Val(Text3) If Option1(0).Value = True Then Y = Y + n If Option1(1).Value = True Then Y = Y - n If Option1(2).Value = True Then X = X - n If Option1(3).Value = True Then X = X + n MsgBox X & " " & Y,, "X 跟 Y 座標 " 58

Ch9 副程式 -1 加到 N 總和 題目說明 : 計算 1 加到 N 的總和 檔案路徑名稱 :02 \ ch9\p.11 Sub n_sum(a As Integer) Dim sum As Integer, i As Integer sum = 0 For i = 1 To a sum = sum + i Next i MsgBox "1+2+3+...+" & a & "=" & sum,, " 計算 1 加到 N 的總和 " Private Sub Form_Activate() Dim N As Integer N = InputBox(" 請輸入 N 值 ", " 數值累加 ") Call n_sum(n) 59

副程式 - 計算標準體重 題目說明 : 計算標準體重 檔案路徑名稱 :02 \ ch9\p.12 Sub Cal_sw(S_sex As String, S_ht As Single) Dim sw As Single If S_sex = "N" Then sw = (S_ht - 80) * 0.7 sw = (S_ht - 70) * 0.6 MsgBox " 您的標準體重為 " & sw,, " 計算標準體重 " swt = InputBox(" 請輸入體重 (kg)", " 判斷是否過重 ") If swt > sw Then MsgBox " 您的體重超出標準體重 ",, " 判斷是否過重 " MsgBox " 您的體重未超出標準體重 ",, " 判斷是否過重 " Private Sub Form_Activate() Dim ht As Single, sex As String * 1 sex = InputBox(" 請輸入性別, 男性輸入 M, 女性輸入 F", " 計算標準體重 ") ht = InputBox(" 請輸入身高 (cm):", " 計算標準體重 ") Call Cal_sw(sex, ht) 60

副程式 - 簡易售票系統 題目說明 : 依據使用者所點選的座位區及輸入的購票張數, 來計算票價 檔案路徑名稱 :02 \ ch9\p.15 Sub cal_price(i As Integer, j As Integer) Dim price As Integer, sum As Integer Dim area As String price = 600 Select Case i Case 0, 2 area = " 搖滾 A/C 區 " price = price * 2.5 Case 1 area = " 搖滾 B 區 " price = price * 3 Case 3, 5 area = " 看台 A/C 區 " price = price * 1.5 Case 4 area = " 看台 B 區 " price = price * 2 End Select If j >= 10 Then sum = sum * 0.9 sum = j * price Label3.Caption = j & " 張 " & area & " 票, 總計 " & sum & " 元 " Private Sub Command1_Click() Dim count As Integer, Index As Integer count = InputBox(" 請輸入所要購買的票數 ", " 購買票數 ") Call cal_price(index, count) Private Sub Command2_Click() Dim count As Integer, Index As Integer 61

count = InputBox(" 請輸入所要購買的票數 ", " 購買票數 ") Call cal_price(index, count) Private Sub Command3_Click() Dim count As Integer, Index As Integer count = InputBox(" 請輸入所要購買的票數 ", " 購買票數 ") Call cal_price(index, count) Private Sub Command4_Click() Dim count As Integer, Index As Integer count = InputBox(" 請輸入所要購買的票數 ", " 購買票數 ") Call cal_price(index, count) Private Sub Command5_Click() Dim count As Integer, Index As Integer count = InputBox(" 請輸入所要購買的票數 ", " 購買票數 ") Call cal_price(index, count) Private Sub Command6_Click() Dim count As Integer, Index As Integer count = InputBox(" 請輸入所要購買的票數 ", " 購買票數 ") Call cal_price(index, count) 62

自訂函數 - 試算手機通話費 題目說明 : 依據使用者輸入的月租費及通話時間, 來試算手機通話費 檔案路徑名稱 :02 \ ch9\p.29 Function mbill(f_case As Integer, f_sec As Integer) As Integer Dim rate As Single, fee As Integer Dim total As Integer Select Case f_case Case 0 rate = 0.13 fee = 88 Case 1 rate = 0.12 fee = 188 Case 2 rate = 0.11 fee = 288 Case 3 rate = 0.09 fee = 588 End Select total = rate * f_sec If total < free Then mbill = free mbill = total End Function Private Sub Command1_Click() Dim bcase As Integer, sec As Integer Dim bill As Integer 63

bcase = Combo1.ListIndex sec = Int(Text1.Text) * 60 bill = mbill(bcase, sec) Label4.Caption = " 通話費為 :" & bill & " 元 " Private Sub Form_Load() Combo1.AddItem "88 元 " Combo1.AddItem "188 元 " Combo1.AddItem "288 元 " Combo1.AddItem "588 元 " 64

自訂函數 - 計算加油公升數 題目說明 : 可依據輸入之油品 (92 95 或 98 無鉛汽油 ) 及加油金額, 來計算 可加油公升數的自訂函數 檔案路徑名稱 :02 \ ch9\p.35 Private Sub Command1_Click() Dim oil As Single, m As Single Dim l As Single oil = Combo1.ListIndex m = Int(Text1.Text) l = a(oil, m) Label4.Caption = " 可加 " & l & " 公升 " Private Sub Form_Load() Combo1.AddItem " 柴油 " Combo1.AddItem "92 無鉛汽油 " Combo1.AddItem "95 無鉛汽油 " Combo1.AddItem "98 無鉛汽油 " Function a(f_oil As Single, f_m As Single) As Single Dim n As Single Dim total As Single Select Case f_oil Case 0 n = 18.5 Case 1 n = 23.2 Case 2 n = 23.9 Case 3 n = 25.4 End Select total = Format(f_m / n, "0.00") a = total 65

End Function 66

Ch12 循序檔 -Print# Write# 題目說明 :Print# 敘述 Write# 敘述 檔案路徑名稱 :02 \ ch12\p.149~150 Private Sub Form_Activate() Open "C:\38\corn.txt" For Output As #1 Print #1, " 蔡壹零的生日是 "; #2/24/1978# Print #1, Print #1, " 電話是 ", 1246758 Close ' 用 write# 的方式寫入檔案 Open "C:\38\corn.txt" For Append As #1 Write #1, " 蔡壹零的生日是 "; #2/24/1978# Write #1, Write #1, " 電話是 ", 1246758 Close 67

循序檔 -Lime Input # 題目說明 :Line Input # 敘述 檔案路徑名稱 :02 \ ch12\p.153 Private Sub Form_Activate() Open "c:\38\corn.txt" For Input As #1 Do While Not EOF(1) x = Input(1, #1) Print x; Loop Close 68

循序檔 -Input # 敘述 題目說明 :Input # 敘述 檔案路徑名稱 :02 \ ch12\p.154 Private Sub Form_Activate() Dim x As String Open "c:\38\corn.txt" For Input As #1 Do While Not EOF(1) Input #1, x Print x Loop Close 69

隨機檔 - 自訂記錄格式 題目說明 :Put # 敘述用來將資料寫入隨機檔中 檔案路徑名稱 :02 \ ch12\p.164 Private Type record no As String * 6 name As String * 8 score As Integer End Type Dim student As record Dim file_no As Integer Private Sub Command1_Click() Static i As Integer i = i + 1 student.no = Text1(0).Text student.name = Text1(1).Text student.score = Val(Text1(2).Text) Put #file_no, i, student Private Sub Form_Load() file_no = FreeFile Open App.Path & "\random" For Random As #file_no Len = 16 Print Len(student) 70

隨機檔 -Input # 題目說明 :Input # 敘述用來將資料寫入隨機檔中 檔案路徑名稱 :02 \ ch12\p.164- 延伸 Private Sub Command1_Click() Dim x As String Open "C:\38\data1.txt" For Input As #1 Do While Not EOF(1) Line Input #1, x Text1.Text = Text1 & x & vbcrlf Loop Close Private Sub Command2_Click() Text1.Text = "" 71

隨機檔 -Get # 敘述 題目說明 :Get # 敘述是用來讀取隨機檔內的資料 檔案路徑名稱 :02 \ ch12\p.166 Private Type record no As String * 6 name As String * 8 score As Integer End Type Dim student As record Dim file_no As Integer Private Sub Command1_Click() Static i As Integer i = LOF(file_no) / Len(student) i = i + 1 student.no = Text1(0).Text student.name = Text1(1).Text student.score = Val(Text1(2).Text) Put #file_no, i, student Text1(0).Text = "" Text1(1).Text = "" Text1(2).Text = "" Text1(0).SetFocus Private Sub Command2_Click() Dim j As Integer Do While j <> LOF(file_no) / Len(student) 72

j = j + 1 Get file_no, j, student Text1(0).Text = student.no Text1(1).Text = student.name Text1(2).Text = student.score MsgBox " 第 " & j & " 筆資料 " Loop Private Sub Form_Load() file_no = FreeFile Open App.Path & "\random" For Random As #file_no Len = 16 Print Len(student) 73

檔案管理 - 文字瀏覽器 題目說明 : 文字瀏覽器 檔案路徑名稱 :02 \ ch12\p.185 Private Sub Dir1_Change() File1.path = Dir1.path Private Sub Drive1_Change() Dir1.path = Drive1.Drive Private Sub File1_Click() Dim path As String Dim aline As String Dim alldata As String If Right(File1.path, 1) <> "\" Then path = File1.path & "\" & File1.FileName path = File1.path & File1.FileName Open path For Input As #1 Do While Not EOF(1) Line Input #1, aline alldata = alldata & aline & vbcrlf Loop Text1.Text = alldata Close #1 74

檔案管理 - 圖片瀏覽器 題目說明 : 圖片瀏覽器 檔案路徑名稱 :02 \ ch12\p.186 Private Sub Dir1_Change() File1.path = Dir1.path Private Sub Drive1_Change() Dir1.path = Drive1.Drive Private Sub File1_Click() Dim file_no As Integer Dim aline As String Dim alldata As String Dim path As String If Right(File1.path, 1) <> "\" Then path = File1.path & "\" & File1.FileName path = File1.path & File1.FileName file_no = FreeFile Image1.Picture = LoadPicture(path) 75

上機考 2 存取循序檔 題目說明 : 設計一個能存取循序檔的程式 檔案路徑名稱 :02 \ 上機考 -1 Dim file_no As Integer Dim append_sw As Boolean Private Sub Command1_Click() ' 第一筆 Close #file_no file_no = FreeFile Open App.Path & "\salary.txt" For Input As #file_no If EOF(file_no) Then MsgBox " 請輸入資料!" Command2.Enabled = True If Not EOF(file_no) Then Input #file_no, e_no, e_name, e_sex, e_salary, e_over Text1.Text = e_no Text2.Text = e_name If e_sex = " 男 " Then Option1.Value = True Option2.Value = True Text3.Text = e_salary Text4.Text = e_over Private Sub Command2_Click() ' 下一筆 If Not EOF(file_no) Then Input #file_no, e_no, e_name, e_sex, e_salary, e_over Text1.Text = e_no Text2.Text = e_name If e_sex = " 男 " Then Option1.Value = True Option2.Value = True Text3.Text = e_salary Text4.Text = e_over 76

Close #file_no Command2.Enabled = False MsgBox " 已無資料!" Private Sub Command3_Click() ' 結束 Close #file_no End Private Sub Command5_Click() ' 統計 i = 0: Sum = 0: sum2 = 0 Close #file_no file_no = FreeFile Open App.Path & "\salary.txt" For Input As #file_no Do While Not EOF(file_no) Input #file_no, e_no, e_name, e_sex, e_salary, e_over i = i + 1 Sum = Sum + e_salary sum2 = sum2 + e_over Loop Label5.Caption = " 共 " & i & " 名員工, 薪資計 " & Sum & " 元整, 加班費計 " & sum2 & " 元整 " Private Sub Command6_Click() ' 寫入 If Text1.Text = "" Then MsgBox " 請輸入資料!" Close #file_no file_no = FreeFile Open App.Path & "\salary.txt" For Append As #file_no e_no = Text1.Text e_name = Text2.Text If Option1.Value = True Then e_sex = " 男 " e_sex = " 女 " e_salary = Text3.Text e_over = Text4.Text Write #file_no, e_no, e_name, e_sex, e_salary, e_over Text1.Text = "" Text2.Text = "" Option1.Value = False Option2.Value = False Text3.Text = "" Text4.Text = "" Private Sub Command7_Click() ' 查詢 Command1.Enabled = True Command1_Click 77

78

存取隨機檔 題目說明 : 設計一個能存取隨機檔的程式 檔案路徑名稱 :02 \ 上機考 -2 Private Type record no As String * 5 name As String * 8 sex As String * 1 salary As Long over As Long End Type Dim employee As record Dim file_no As Integer Dim append_sw As Boolean Dim counter As Integer Sub getdata(rno As Integer) Get #file_no, rno, employee Text1.Text = employee.no Text2.Text = employee.name If employee.sex = " 男 " Then Option1.Value = True Option2.Value = True Text3.Text = employee.salary Text4.Text = employee.over Private Sub Combo1_Click() Call getdata(combo1.listindex + 1) Private Sub Command1_Click() Call getdata(1) Command2.Enabled = True ' 第一筆 79

counter = 1 Private Sub Command2_Click() ' 下一筆 counter = counter + 1 If counter <= LOF(file_no) / Len(employee) Then Call getdata(counter) Command2.Enabled = False MsgBox " 已無資料!" Private Sub Command3_Click() ' 結束 Close #file_no End Private Sub Command5_Click() ' 統計 i = 0: Sum = 0: sum2 = 0 Do While i <> LOF(file_no) / Len(employee) i = i + 1 Get #file_no, i, employee Sum = Sum + employee.salary sum2 = sum2 + employee.over Loop Label5.Caption = " 共 " & i & " 名員工, 薪資計 " & Sum & " 元整, 加班費計 " & sum2 & " 元整 " Private Sub Command6_Click() ' 寫入 If Text1.Text = "" Then MsgBox " 請輸入資料!" Static now_num As Integer now_num = LOF(file_no) / Len(employee) now_num = now_num + 1 employee.no = Text1.Text employee.name = Text2.Text If Option1.Value = True Then employee.sex = " 男 " employee.sex = " 女 " employee.salary = Text3.Text employee.over = Text4.Text Put #file_no, now_num, employee Text1.Text = "" Text2.Text = "" Option1.Value = False Option2.Value = False Text3.Text = "" Text4.Text = "" 80

Private Sub Command7_Click() ' 查詢 If LOF(file_no) = 0 Then MsgBox " 檔案為空, 請新增資料 " Command1.Enabled = True Command2.Enabled = True Combo1.Visible = True Combo1.Clear For i = 1 To LOF(file_no) / Len(employee) Combo1.AddItem " 第 " & i & " 筆 " Next Combo1.ListIndex = 0 counter = 1 Private Sub Form_Load() file_no = FreeFile Open App.Path & "\salary" For Random As #file_no Len = Len(employee) Private Sub Form_Unload(Cancel As Integer) Close #file_no 81