1 / 85

陸、 樂透機率程式

陸、 樂透機率程式. 今年最 HOT 的新聞莫過於台北銀行的樂透彩,熱絡的程度可說是全民活動。為符合統計與資訊的結合,我們可以用模擬的樂透彩程式作為接近實務方面的練習。. 陸、 樂透機率程式. < 說明 >. 首先要求系統產生六個中獎號碼 ( 1~42 之間 ) ,號碼不能重複。並將號碼呈現在 Text 物件中 ( 變數需按規定設計 ) 。 要求系統產生 10000 筆隨機號碼中,能與中獎號碼相同 3 個數字以上的機率。

helena
Download Presentation

陸、 樂透機率程式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 陸、樂透機率程式 • 今年最HOT的新聞莫過於台北銀行的樂透彩,熱絡的程度可說是全民活動。為符合統計與資訊的結合,我們可以用模擬的樂透彩程式作為接近實務方面的練習。

  2. 陸、樂透機率程式 <說明> • 首先要求系統產生六個中獎號碼( 1~42之間 ),號碼不能重複。並將號碼呈現在Text物件中(變數需按規定設計)。 • 要求系統產生10000筆隨機號碼中,能與中獎號碼相同3個數字以上的機率。 • 顯示這10000筆中的中獎次數、未中獎次數、各獎項的中獎數 (頭獎、二獎、三獎、四獎) 及累積中獎金額 於Text物件。中獎金額定義為:四獎為200元(對中3個號碼)、三獎為4000元(對中4個號碼)、二獎為200000元(對中5個號碼)、頭獎為兩百萬元(對中6個號碼)。 • 要求系統評估要中獎金200000元以上(即對中5個號碼以上的機率)時,需要投注多少筆才可能獲獎。 • 離開系統。

  3. 陸、樂透機率程式 <系統功能要求> 功能一 (決定中獎號碼):將隨機的六個號碼出現在Text中。 功能二 (預測報酬): (1)若功能一未決定時,出現”尚未抽出中獎號碼” 警告訊息 (2)顯示10000筆中中獎次數、未中獎次數、各獎項的中獎數及累積中獎金額。 功能三 (二十萬元中獎投注數): (1)若功能一未決定時,出現”尚未抽出中獎號碼” 警告訊息 (2)使用迴圈判斷第幾筆投注恰巧對中五個號碼以上的機率。 功能四 (離開系統):將程式關閉。

  4. 陸、樂透機率程式 <變數設定(未按規定設計者將扣分) > • 號碼1至號碼6【變數為number(0)~number(5)】 • 中獎次數(變數為win)、未中獎次數(lose)、頭獎(prize1)、二獎(prize2)、三獎(prize3)、四獎(prize4) • 累積中獎金額(Total_money) • 預估投注筆數(Precount) • 迴圈變數或累計變數 盡量取名要有意義,勿取為a,b,c,i ,j….等變數 • 程式碼必須要有註解說明 • 產生六個亂數號碼的程式部分請使用副程式撰寫

  5. 陸、樂透機率程式 <主畫面>

  6. 陸、樂透機率程式 <決定中獎號碼>

  7. 陸、樂透機率程式 <預測報酬>

  8. 陸、樂透機率程式 <二十萬元中獎投注數>

  9. 柒、基本物件二 <Frame(框架)物件> Frame物件很相像Form表單,因為Frame本身也可以容納其他物件放置其內。所以不論是Frame還是Form,都可以看成是個容器(Container)。預設名稱為Frame1,Frame2…,常用屬性:

  10. 柒、基本物件二 <Frame(框架)物件>

  11. 柒、基本物件二 <Image(影像) 、PictureBox(照片盒)物件> • Image與Picture Box物件十分相近,都是放置圖檔所做的物件,不同之處為Image物件所載入影像在放大與縮小時都是等比例;而Picture Box則否。Image物件預設名稱為image1,image2…;Picture物件預設名稱為Picture1,Picture2…。常用屬性:

  12. 柒、基本物件二 <Check Box(核取方塊)物件> Box通常用於複選題選項,即多個Check Check Box都能一起被核取。預設名稱為Check1,Check2…,常用屬性:

  13. 柒、基本物件二 <Option Button(選取物件)物件> Option Button通常用於單選題選項,即多個Option也只能有一個Option被核取。預設名稱為Option1,Option2…,常用屬性:

  14. 柒、基本物件二 <Timer(計時器)物件> Timer物件式控制每隔一時段去執行某個程式程序,是程式本身更具動態性。預設名稱為Timer1,Timer2…,常用屬性:

  15. 柒、基本物件二 < Frame、Image、Checkbox、Option、Timer > Picture box Frame Check box Timer Image

  16. 柒、基本物件二 <練習題:利用亂數,使雲在天空中自由飄動>

  17. Private Sub Command1_Click() ‘註解:按下「開始」按鈕 Timer1.Interval = InputBox("請輸入雲飄之速度(毫秒)?", "速度?", 200) Timer1.Enabled = True End Sub Private Sub Command2_Click() ‘註解:按下「停止」按鈕 Timer1.Enabled = False ‘註解:使計時器不能使用 End Sub Private Sub Timer1_Timer() ‘註解:計時器每0.5毫秒所做的事 Randomize x = 50 a = Int(Rnd * 4 + 1) '1表示飛右, 2表飛左,3表示飛上,4表飛下。 Select Case a Case 1: Image1.Left = Image1.Left + x ‘註解:依方向移動 Case 2: Image1.Left = Image1.Left - x Case 3: Image1.Top = Image1.Top + x Case 4: Image1.Top = Image1.Top - x End Select End Sub step1 step2 step3

  18. 捌、打字遊戲程式 < 目的> 為讓初學電腦的使用者更快了解英文輸入,決定運用該程式來幫助初學者。 < 說明> • 要求系統產生3至10個亂數英文字母,亂數字串會不斷往下掉。 • 輸入文字方塊若與亂數字串相同時,亂數字串重設;分數加500分。 • 分數超過某些程度時(5000倍數),設定下掉的數度加快。 • 亂數字串若低於警戒縣則遊戲結束,顯示目前分數。

  19. 捌、打字遊戲程式 <系統功能要求> 功能一:將英文小寫字母產生於陣列當中。 提示:(使用ASCII) 功能二:亂數取出3至10個英文字串。 功能三:設定輸入文字方塊改變時,判斷是 否與亂數字串相符。 功能四:設定成績等級,判斷加快下掉速度。 功能五:判斷亂數字串是否到達底限,顯示 Game over與否。

  20. 捌、打字遊戲程式 <畫面(介面)要求> 設定標題 成績為累加

  21. 捌、打字遊戲程式 <變數設定(未按規定設計者將扣分) > • 存放英文字母陣列【word(26)】 • 決定亂數字串的長度(length)、決定為何字母變數(wordnum) • 迴圈變數或累計變數,盡量取名要有意義,勿取為a、b、c…等變數 • 程式碼必須有註解說明 • 重新產生亂數字串與初始值設定的部分程式,請使用副程式撰寫

  22. 玖、功能編輯器 <功能表 > 為應用程式中常見的控制項。 在VB環境中,我們可以利用功能編輯器建立程式視窗上的功能表。 如:

  23. 玖、功能編輯器 <如何在VB的環境中建立功能表? > 步驟一 在表單範圍按下滑鼠的右鍵 步驟二 選擇【功能表編輯器】 步驟三 進入編輯畫面,開始編輯

  24. 玖、功能編輯器 表單 在表單中,按下滑鼠的右鍵

  25. 玖、功能編輯器 功能表選單中的中文名稱(&符號為快速鍵號,即 Alt + ?) <功能表編輯器畫面 > 此功能欄的變數名稱 為功能欄的階層,代表是否為子選項。以上圖為例,【接龍】與【踩地雷】兩個功能欄就為【遊戲台】的子選單。 【-】符號:代表功能表分隔線

  26. 玖、功能編輯器 <執行程式畫面 > 使用階層設計

  27. 拾、多重表單設計 <建立方式 > 在主選單建立後,如要新增子表單在右上方的專案群組視窗中的「表單」中,按下滑鼠右鍵選擇[新增]─[表單]

  28. 拾、多重表單設計 <新增表單的畫面 >

  29. 拾、多重表單設計 <新增完成後畫面 >

  30. 拾、多重表單設計 <表單呼叫程式 > 如果是主畫面呼叫子畫面,請記得把主畫面的作用(Enable)取消,因為這樣才不會使得主畫面可以持續作用,如果主畫面與子畫面分別對同一物件或資料做處理時,容易造成錯誤。 Main.enable=False

  31. 拾、多重表單設計 <建議撰寫程式的方式 > #主畫面呼叫子畫面的程序 Private Sub Command1_Click() Form1.Enabled = False ‘將主畫面的作用取消 Form2.Show ‘呼叫子畫面的語法 End Sub

  32. 拾、多重表單設計 <建議撰寫程式的方式 > Form1.enable=False Form2.enable=True

  33. 拾、多重表單設計 <建議撰寫程式的方式 > #子畫面關閉的程序使用 Private Sub Command1_Click() Unload Form2 ‘將子畫面的視窗關閉語法 Form1.Enabled = True ‘使得主畫面的作用恢復 End Sub

  34. 拾、多重表單設計 <建議撰寫程式的方式 > Unload.form2 Form1.enable=True Unload.form2 Form1.Setfocus

  35. 拾、多重表單設計 <練習題:使用VB介面連結外部應用程式與遊戲> Hint:使用Shell()函數呼叫

  36. 又到了一年一度系學會交接的日子,為了招募會員,已經學會Visual Basic的你(妳),希望用程式來幫忙紀錄學會會員名單。 拾壹、統資系系學會會員資料系統 <目的 >

  37. 拾壹、統資系系學會會員資料系統 <系統功能要求 >

  38. 拾壹、統資系系學會會員資料系統 <介面要求 > 請使用Print指令以外的方式顯現答案,畫面需簡單易懂(友善性) <變數設定(未依設定者將扣分) > 一、迴圈變數或累計變數 盡量取名要有意義,勿取為a,b,c,i ,j….等變數 二、程式碼必須要有註解說明

  39. 拾壹、統資系系學會會員資料系統 <主畫面 >

  40. 拾壹、統資系系學會會員資料系統 <主畫面:程式碼 > Private Sub cmdEnd_Click() ‘註解:離開系統 Unload main End Sub Private Sub cmdNew_Click() ‘註解:新增會員資料 main.Enabled = False ‘註解:讓主選單不能再操作(因為目前要操作子選單) newform.Show ‘註解:讓子選單(newform)顯示 End Sub Private Sub cmdSearch_Click() ‘註解:搜尋會員資料 main.Enabled = False ‘註解:讓主選單不能再操作 searchform.Show ‘註解:讓子選單(searchform)顯示 searchform.Text1.SetFocus End Sub

  41. 拾壹、統資系系學會會員資料系統 <新增會員資料 > 跳出另一個視窗(取名newform)提供輸入會員資料 下拉式選單

  42. 拾壹、統資系系學會會員資料系統 <新增會員資料:程式碼 > Private Sub Command1_Click() ‘註解:按下新增 If Text1.Text = "" Or Text2.Text = "" Or Text4.Text = "" Or Combo1.Text = "" Or Combo2.Text = "" Then MsgBox ("有欄位未填寫") ‘註解:判斷有無欄位未填寫 Exit Sub Else file_num = FreeFile ‘註解:給予檔案號碼 (1-51) Open "d:\people.txt" For Append As #file_num ‘註解:開啟檔案路徑 Write #file_num, Text2, Text1, Combo2, Combo1, Text4 ‘註解:將資料寫進檔案 End If

  43. 拾壹、統資系系學會會員資料系統 <新增會員資料:程式碼 > Close #file_num ‘註解:關檔 Unload newform ‘註解:關閉子表單(newform) main.Enabled = True ‘註解:讓主選單設定可以操作 main.SetFocus ‘註解:讓主表單設為目前作用 End Sub Private Sub Command2_Click() ‘註解:按下取消 Unload newform main.Enabled = True main.SetFocus End Sub

  44. 拾壹、統資系系學會會員資料系統 <查詢會員資料 > • 出現frame視窗(取名searchframe) • 以下舉例為輸入會員姓名當中有【王】的會員

  45. 拾壹、統資系系學會會員資料系統 <查詢會員資料 > 輸入搜尋字串後,必須跳出另一視窗(取名searchform)表示搜尋結果,畫面如下:

  46. 拾壹、統資系系學會會員資料系統 <查詢會員資料:程式碼 > Private Sub Command1_Click() ‘註解:按下搜尋視窗(frame2)後的「確定」鈕 file_num = FreeFile ReDim friends(99, 5) ‘註解:設定二維陣列可存人數為99人 Open "d:\people.txt" For Input As #file_num ‘註解:開啟檔案做輸入用,檔案路徑 i = 1 While Not EOF(file_num) Input #file_num, sname, id, sex, Class, phone

  47. 拾壹、統資系系學會會員資料系統 <查詢會員資料:程式碼 > friends(i, 1) = sname friends(i, 2) = id friends(i, 3) = sex friends(i, 4) = Class friends(i, 5) = phone i = i + 1 ‘註解:累計會員人數 'ReDim friends(i, 5) Wend num = i - 1 Close #file_num

  48. 拾壹、統資系系學會會員資料系統 If Text1.Text = "" Then MsgBox "未輸入任何名稱" ‘註解:判斷沒有輸入搜尋字串 Exit Sub Else For i = 1 To num If InStr(1, friends(i, 1), Text1.Text) <> 0 Then ‘註解:比較搜尋字串 searchform.Label1.Caption = searchform.Label1.Caption & vbCr + vbLf & "姓名:" & friends(i, 1) & " 學號:" & friends(i, 2) & " 性別:" & friends(i, 3) & " 班級:" & friends(i, 4) & " 電話:" & friends(i, 5) + Chr(13) + Chr(10) ‘註解:如果有搜尋到,將其資料存到label1的標籤內容當中 End If Next

  49. 拾壹、統資系系學會會員資料系統 <查詢會員資料 > If searchform.Label1.Caption = "" Then searchform.Label1.Caption = "搜尋不到此人!" searchform.Frame1.Caption = "搜尋" & Text1.Text & "的結果" End If Frame2.Visible = False ‘註解:將搜尋frame2 關閉 End Sub Private Sub Command2_Click() ‘註解:回主選單 Unload searchform ‘註解:將子選單關閉 main.Enabled = True ‘註解:將主選單設成可以操作 main.SetFocus End Sub

  50. 拾壹、統資系系學會會員資料系統 <查詢會員資料:程式碼 > Private Sub Command3_Click() ‘註解:搜尋視窗(frame2)下的取消按鈕 Frame2.Visible = False ‘註解:將frame2關閉 End Sub

More Related