投稿類別 : 工程技術類 篇名 : 統測登記分發落點分析系統 運用 Visual Basic 程式語言建立程式 作者 : 洪源宏 私立達德商工 資訊科三年丁班 指導老師 : 尤俊雄老師
壹 前言 一 研究動機 每年都有多位學生面臨升學考, 而統一入學測驗是高職生的升學途徑之ㄧ 當考完試時, 如何確切的知道自己所要分發的學校是相當重要的! 在使用過四技二專登記分發落點分析網站後, 體會到原來可以運用落點分析的方式幫助諸位考生, 故而啟發我撰寫這程式, 讓考生可以清楚明瞭將來所要就讀的學校與該科系的錄取分數 二 研究目的 本研究藉由 Visual Basic 程式語言建立一個快速且簡易操作方式, 降低考生上網查詢分發志願仍一無所獲的可能性, 站在使用者的角度設計出使用者所能接受且簡單使用的程式 三 研究架構 首先與老師討論程式介面與所要達到的功能, 再來設計程式外觀與撰寫其程式碼, 當程式完成後測試功能, 最後探討程式的優缺點 本研究依循下列研究架構圖執行, 如圖一示之 圖一 : 研究架構圖 ( 資料來源 : 以 Microsoft Office PowerPoint 製作 ) 1
貳 正文 一 相關資訊與研究初步 ( 一 ) Visual Basic 程式語言 Visual Basic 是美國微軟公司以 BASIC 語言為基礎, 於 1991 年所開發出來的程式語言 ( 註一 ),Visual Basic 提供圖形化的操作介面, 讓使用者可以在這些介面上, 以點選按鈕或圖示的方式來進行程式設計的工作, 是個操作簡易且易學的物件導向程式 ( 二 ) 初始步驟 1 程式介面的構想 一個程式雖然核心在於程式碼, 但若是使用介面太過複雜且難懂, 不僅會讓使用者在使用上感到困難, 而且也可能讓使用者直接否認你的程式 所以程式若要倍受肯定 讓更多使用者使用, 就必須站在使用者的立場, 設計大眾所能接受的介面才是設計者的最初理想! 2 詢問所要達到的功能 冀望程式的最終狀態符合使用者的需求, 站在考生的立場, 撰寫程式需要的功能, 並詢問考生相關問題, 整合多方面的需要, 呈現理想的功能性 二 研究方法 ( 一 ) 擬定設計程序 程式設計是透過程式語言, 讓電腦幫我們解決特定的問題, 其程序包括 : 分析問題 擬定解題計畫 撰寫程式 測試與除錯 安裝程式並說明 ( 註二 ) ( 二 ) 訂定演算法 演算法 (Algorithm): 指一組用來解決特定問題的有限指令或步驟, 常使用於數學或電腦科學領域中 ( 註三 ) 在設計程式之前, 我們通常會先使用演算法來訂定設計步驟, 在按照演算法來撰寫程式 1 敘述表示法 如圖二示之 2
圖二 : 敘述表示法 ( 資料來源 : 以 Ulead PhotoImpact 12 製作 ) 2 流程圖表示法 如圖三示之 圖三 : 流程圖表示法 ( 資料來源 : 以 Microsoft Office PowerPoint 製作 ) ( 三 ) 程式的外觀設計 在結合自己的構想與考生的需求後, 設計出簡單且輕鬆就能掌握的介面, 如圖四示之 3
圖四 : 程式介面 ( 四 ) 程式碼的撰寫 Dim a, b Private Sub cmd_clean_click() ' 重新輸入按鈕 For c = 0 To 2 ' 共同科目成績 Text1(c) = "" ' 使用者輸入處清除為空白 Lab_c(c) = "" ' 程式執行處清除為空白 Next c ' 重複動作 For d = 0 To 1 ' 專業科目成績 Text2(d) = "" ' 使用者輸入處清除為空白 Lab_p(d) = "" ' 程式執行處清除為空白 Next d ' 重複動作 lab_sum = "" ' 總分成績清除為空白 lab_h = "" ' 最高分清除為空白 lab_l = "" ' 最低分清除為空白 Combo1.Text = " 請選擇考試類群 ( 組 )" ' 考試類群 ( 組 ) 還原成預設值 Private Sub cmd_enter_click() ' 確認送出按鈕 For f = 0 To 2 ' 共同科目成績 Lab_c(f) = Val(Text1(f)) Next f If Text1(0) = "" Or Text1(1) = "" Or Text1(2) = "" Then ' 若尚未輸入, 顯示提示視窗 MsgBox " 請輸入共同科目成績 ", vbexclamation + vbokonly, " 錯誤 " End If For g = 0 To 1 Lab_p(g) = Val(Text2(g)) * 2 Next g ' 專業科目成績 4
If Text2(0) = "" Or Text2(1) = "" Then ' 若尚未輸入, 顯示提示視窗 MsgBox " 請輸入專業科目成績 ", vbexclamation + vbokonly, " 錯誤 " End If lab_sum.caption = Val(Text1(0)) + Val(Text1(1)) + Val(Text1(2)) + _ Val(Text2(0)) * 2 + Val(Text2(1)) * 2 ' 專科自動乘以 2, 並成績進行總和 e = Combo1.ListIndex Select Case e Case 0: lab_h = 668: lab_l = 490 Case 1: lab_h = 646: lab_l = 463 Case 2: lab_h = 679: lab_l = 526 Case 3: lab_h = 680: lab_l = 556 Case 4: lab_h = 662: lab_l = 383 Case 5: lab_h = 671: lab_l = 479 Case 6: lab_h = 625: lab_l = 500 Case 7: lab_h = 636: lab_l = 468 Case 8: lab_h = 682: lab_l = 496 Case 9: lab_h = 620: lab_l = 516 Case 10: lab_h = 632: lab_l = 482 Case 11: lab_h = 628: lab_l = 578 Case 12: lab_h = 626: lab_l = 582 Case 13: lab_h = 664: lab_l = 484 Case 14: lab_h = 673: lab_l = 533 Case 15: lab_h = 662: lab_l = 538 Case 16: lab_h = 639: lab_l = 540 Case 17: lab_h = 490: lab_l = 394 Case 18: lab_h = 560: lab_l = 328 End Select Private Sub cmd_other_click() Form2.Show ' 機械群最高分與最低分 ' 動力機械群最高分與最低分 ' 電機與電子群電機類最高分與最低分 ' 電機與電子群電子類最高分與最低分 ' 化工群最高分與最低分 ' 土木與建築群最高分與最低分 ' 設計群最高分與最低分 ' 工程與管理類最高分與最低分 ' 商管群最高分與最低分 ' 衛生與護理類最高分與最低分 ' 食品群最高分與最低分 ' 家政群幼保類最高分與最低分 ' 家政群生活應用類最高分與最低分 ' 農業群最高分與最低分 ' 外語群英語類最高分與最低分 ' 外語群日語類最高分與最低分 ' 餐旅類最高分與最低分 ' 海事群最高分與最低分 ' 水產群最高分與最低分 ' 查看其他落點鈕 ' 呼叫第二視窗 Private Sub Combo1_Change() ' 選擇考試類群 ( 組 ) 方塊 Combo1.Text = " 請選擇考試類群 ( 組 )" ' 最初顯示狀態 Private Sub Form_Load() ' 令選擇考試類群 ( 組 ) 方塊有多組選擇 Combo1.AddItem "01. 機械群 " Combo1.AddItem "02. 動力機械群 " Combo1.AddItem "03. 電機與電子群電機類 " 5
Combo1.AddItem "04. 電機與電子群電子類 " Combo1.AddItem "05. 化工群 " Combo1.AddItem "06. 土木與建築群 " Combo1.AddItem "07. 設計群 " Combo1.AddItem "08. 工程與管理類 " Combo1.AddItem "09. 商管群 " Combo1.AddItem "10. 衛生與護理類 " Combo1.AddItem "11. 食品群 " Combo1.AddItem "12. 家政群幼保類 " Combo1.AddItem "13. 家政群生活應用類 " Combo1.AddItem "14. 農業群 " Combo1.AddItem "15. 外語群英語類 " Combo1.AddItem "16. 外語群日語類 " Combo1.AddItem "17. 餐旅類 " Combo1.AddItem "18. 海事群 " Combo1.AddItem "19. 水產群 " Private Sub Text1_Change(Index As Integer) ' 共同科目之輸入方塊 a = Index Select Case a ' 若格式有誤, 顯示提示視窗, 並呼叫程序 X Case 0 If Val(Text1(a)) < 0 Or Val(Text1(a)) > 100 _ Then MsgBox " 格式有誤, 請重新輸入 ", vbexclamation + vbokonly, " 錯誤 ": Call X Case 1 If Val(Text1(a)) < 0 Or Val(Text1(a)) > 100 _ Then MsgBox " 格式有誤, 請重新輸入 ", vbexclamation + vbokonly, " 錯誤 ": Call X Case 2 If Val(Text1(a)) < 0 Or Val(Text1(a)) > 100 _ Then MsgBox " 格式有誤, 請重新輸入 ", vbexclamation + vbokonly, " 錯誤 ": Call X End Select Private Sub Text2_Change(Index As Integer) ' 專業科目之輸入方塊 b = Index Select Case b ' 若格式有誤, 顯示提示視窗, 並呼叫程序 Y Case 0 If Val(Text2(b)) < 0 Or Val(Text2(b)) > 100 _ Then MsgBox " 格式有誤, 請重新輸入 ", vbexclamation + vbokonly, " 錯誤 ": Call Y Case 1 If Val(Text2(b)) < 0 Or Val(Text2(b)) > 100 _ Then MsgBox " 格式有誤, 請重新輸入 ", vbexclamation + vbokonly, " 錯誤 ": Call Y End Select 6
Private Sub X() Text1(a) = "" Private Sub Y() Text2(b) = "" ' 程序 X ' 清除格式有誤的共同科目成績 ' 程序 Y ' 清除格式有誤的專業科目成績 三 研究成果 ( 一 ) 程式的執行狀況 1 開啟程式, 選擇考試類群 ( 組 ) 並輸入各科成績, 如圖五示之 圖五 : 使用者輸入狀態 2 若輸入格式有誤, 則顯示提示視窗, 如圖六示之 圖六 : 輸入格式錯誤狀態 3 若尚未輸入, 則顯示提示視窗, 如圖七示之 7
圖七 : 尚未輸入狀態 4 確認後送出並顯示每科成績 總分與選擇類群 ( 組 ) 的最高 最低分, 如圖八示之 圖八 : 確認送出顯示狀態 5 重新輸入, 則使用者所輸入處與顯示處皆清除, 如圖九示之 圖九 : 點選重新輸入狀態 6 欲查看其他落點, 點選其他落點並顯示第二視窗, 如圖十示之 8
圖十 : 點選查看其他落點狀態 7 第二視窗放大, 可供使用者參閱每校錄取分數, 如圖十一示之 圖十一 : 第二視窗點選放大狀態 ( 二 ) 探討其優缺點 1 優點 程式的使用取決在整齊簡潔的外觀 簡單易懂的操作方式, 特別著重這兩方面進行研究, 設計考生需要的功能, 將其缺點降到最低, 達到盡善盡美的狀況, 供给使用者下載 2 缺點 雖然多以客觀方面進行設計, 但仍有幾項不足, 欠缺使用者查看其他落點填選自願學校的儲存功能與成績的列印 並不像大眾軟體華麗, 期望能在短期將其新增與改進, 獲得使用者最大的滿意 9
參 結論 透過這次論文, 我將學校所學的知識實際運用在程式上面, 因為自己亦是今年度統一入學測驗的考生, 自己不僅充當設計者, 也是扮演著使用者的角色 多方面的假設與構想, 使得起初成果有些不同, 使我必須不斷的自我要求, 才能跟進原先的計畫與符合原先所要達到的功能, 深刻的體會到程式的製作過程並不是件容易事 經由程式外觀製作 撰寫 測試並與老師研討後, 對於這個程式提出二項結論, 如下所述 : ( 一 ) 站在客觀的立場, 針對此程式詢問諸位考生需求, 使程式擁有 簡易 清楚 方便 的效果 ( 二 ) 使用此程式, 可以快速得知九十八學年度不同類群之錄取分數 希望在未來能夠將其更新並增設新功能, 滿足更多的需求, 使每年的考生能夠擁有更多的升學資訊, 使其達到 一程式, 知遍升學識! 的程度 肆 引註資料 註一 旗立電腦研究室 (2008) 程式語言 Visual Basic 6.0 程式設計 臺北市 : 旗立資訊股份有限公司 註二 余忠潔 (2006) 計算機概論升學通-- 重點複習篇 台北市 : 廖文良 註三 旗立電腦研究室 (2006) 職校計算機概論(II) 臺北市: 旗立資訊股份有限公司 參考資料 一 鄭立鴻 ( 主編 ) (2007) 計算機概論 臺北縣: 台科大圖書股份有限公司 二 張炳雄 黃慧容 ( 主編 ) (2006) 程式語言 I 臺北縣: 台科大圖書股份有限公司 10