




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 8 章 模組化程式設計I副程式與自定函數第 8 章 模組化程式設計I副程式與自定函數一、模組化設計的概念模組通常是指一段具有某種特定功能、大小適中、容易閱讀及維護的程式將程式切割成許多個子功能後,便可分別撰寫成模組程式模組1模組2模組3模組n大型程式一、模組化設計的概念模組通常是指一段具有某種特定功能、大小二、模組設計的原則設計功能單純的模組程式,以便提供給更多程式使用儘量減少模組之間相互影響的程度,以使模組成為獨立的程式基本單元將模組控制在適當的大小(例如不超過50行敘述),以方便閱讀與維護二、模組設計的原則設計功能單純的模組程式,以便提供給更多程式三、使用模組的優點模組可重覆使用程式開
2、發易於分工程式易於測試與偵錯可簡化維護的工作呼叫模組A模組B模組F呼叫模組A模組B模組F呼叫呼叫模組A具有檢查產品編號功能產品編號的檢查規則改變時只要修改模組A即可三、使用模組的優點模組可重覆使用程式易於測試與偵錯呼叫模組A四、模組設計的方法在專案中加入空白模組檔,撰寫副程式或自定函數,以設計模組程式(如左下圖)在專案中匯入某個專案中的模組檔(如右下圖)表單檔模組檔程式專案P1表單檔模組檔程式專案P2匯入現有模組檔撰寫模組程式四、模組設計的方法在專案中加入空白模組檔,撰寫副程式或自定函五、副程式(1/6)副程式是一段具有特定功能的程式區塊;它通常必須透過主程式的呼叫才能被啟動起來執行Call
3、副程式A呼叫Sub 副程式AEnd Sub.執行返回主程式副程式五、副程式(1/6)副程式是一段具有特定功能的程式區塊;它通五、副程式(2/6)語法:定義副程式的語法 Sub 副程式名稱 (形式參數1 As 資料型別, 形式參數2 As 資料型別, ) 程式敘述區塊 End Sub 呼叫副程式的語法 Call 副程式名稱 (實際參數1, 實際參數2, )五、副程式(2/6)語法:定義副程式的語法 Private Sub Form1_Activated 讀取用電類型 讀取用電量 If 用電類型為家庭用電 Then 呼叫副程式F_Expense( ) ElseIf 用電類型為營業用電 Then 呼
4、叫副程式C_Expense( ) End IfEnd Sub五、副程式(3/6)範例:計算家庭用電費與營業用電費主程式副程式計算家庭用電費Sub F_ExpenseEnd Sub計算營業用電費Sub C_ExpenseEnd SubPrivate Sub Form1_Activated五五、副程式(4/6)副程式F_Expense( )Sub F_Expense(ByVal volume As Single) 計算家庭用電110: Dim fee As Integer120: If volume 500 Then 用電量超過500度130: fee = 110 * 2.1 + 390 * 2.
5、875 + (volume - 500) * 3.6140: ElseIf volume 110 Then 用電量超過110度150: fee = 110 * 2.1 + (volume - 110) * 2.875160: Else 用電量在110度以內170: fee = volume * 2.1180: End If190: MsgBox(電費為 & fee & 元, , 電費試算)End Sub五、副程式(4/6)副程式F_Expense( )Sub F五、副程式(5/6)副程式C_Expense( )Sub C_Expense(ByVal volume As Single) 計算營業
6、用電費200: Dim fee As Integer210: Const rate As Single = 3.1220: fee = rate * volume 計算電費230: MsgBox(電費為 & fee & 元, , 電費試算)End Sub五、副程式(5/6)副程式C_Expense( )Sub C五、副程式(6/6)主程式Private Sub Form1_Activated(ByVal sender ) Handles Me.Activated10: Dim ecase As Short20: Dim usage As Single30: ecase = InputBox(請
7、輸入用電類型:1)家庭用電 2)營業用電, _ 電費試算)40: usage = InputBox(請輸入用電量,單位:度, 電費試算)50: If ecase = 1 Then60: Call F_Expense(usage) 呼叫副程式計算家庭用電費70: Else80: Call C_Expense(usage) 呼叫副程式計算營業用電費90: End If100: EndEnd Sub五、副程式(6/6)主程式Private Sub Form1六、自定函數(1/3)自定函數的功能與副程式類似;差別在於自定函數在執行結束後會產生一個傳回值給呼叫它的程式1.呼叫主程式Public Clas
8、s Form1 X = 自定函數A( )End Class自定函數Function 自定函數A( ) As Short 自定函數A = 100End Function3.返回並將值100傳回給變數X2.執行4.執行下一行程式敘述 六、自定函數(1/3)自定函數的功能與副程式類似;差別在於自六、自定函數(2/3)語法:定義自定函數的語法Function 自定函數名稱(形式參數1As 資料型別, 形式參數2_As 資料型別, ) As 資料型別 程式敘述區塊 自定函數名稱 = 傳回值End Function呼叫自定函數的語法變數名稱 = 自定函數名稱(實際參數1, 實際參數2, )六、自定函數(2
9、/3)語法:定義自定函數的語法Fun六、自定函數(3/3)範例:華氏溫度換算為攝氏溫度Function Convert_temp(ByVal F As Short) As Short F為形式參數60: Convert_temp = (F - 32) * 5 / 9 攝氏溫度= (華氏溫度- 32 ) * 5 / 9End FunctionPrivate Sub Form1_Activated(ByVal sender ) Handles Me.Activated10: Dim F_temp, C_temp As Short20: F_temp = InputBox(請輸入華氏溫度:, 溫度換
10、算)30: C_temp = Convert_temp(F_temp) F_temp為實際參數40: MsgBox(華氏 & F_temp & 度= 攝氏 & C_temp & 度, , _ 溫度換算)50: EndEnd Sub六、自定函數(3/3)範例:華氏溫度換算為攝氏溫度Funct隨機不重覆 Dim rnd_n As Short Dim ck(4) As ShortFor i = 1 To 4 rnd_n = Int(Rnd() * 4) + 1 Do While ck(rnd_n) = 1 rnd_n = Int(Rnd() * 4) + 1 Loop N(i) = rnd_n ck
11、(rnd_n) = 1Next隨機不重覆 Dim rnd_n As Short副程式(版本一)Sub Generate_Random_Number()Dim rnd_n As ShortDim ck(4) As ShortFor i = 1 To 4 rnd_n = Int(Rnd() * 4) + 1 Do While ck(rnd_n) = 1 rnd_n = Int(Rnd() * 4) + 1 Loop N(i) = rnd_n ck(rnd_n) = 1NextEnd sub使用方法:Call Generate_Random_Number()副程式(版本一)Sub Generate_
12、Random副程式(版本二-加入模組)Sub Generate_Random_Number()Dim rnd_n As ShortDim ck(4) As ShortFor i = 1 To 4 rnd_n = Int(Rnd() * 4) + 1 Do While ck(rnd_n) = 1 rnd_n = Int(Rnd() * 4) + 1 Loop Form1.N(i) = rnd_n ck(rnd_n) = 1NextEnd sub使用方法:1. 在專案中加入空白模組檔”Module1.vb” 2. Public N(4) as short 3. Call Generate_Rand
13、om_Number()副程式(版本二-加入模組)Sub Generate_R副程式(版本三-加入參數)Sub Generate_Random_Number(ByVal num as short)Dim rnd_n As ShortDim ck(4) As ShortFor i = 1 To num rnd_n = Int(Rnd() * num) + 1 Do While ck(rnd_n) = 1 rnd_n = Int(Rnd() * num) + 1 Loop Form1.N(i) = rnd_n ck(rnd_n) = 1NextEnd sub使用方法:1. 在專案中加入空白模組檔”M
14、odule1.vb” 2. Public N(4) as short 3. Call Generate_Random_Number(4)副程式(版本三-加入參數)Sub Generate_R副程式(版本四-加入陣列參數)Sub Generate_Random_Number(ByVal k() as short, ByVal num as short)Dim rnd_n As ShortDim ck(4) As ShortFor i = 1 To num rnd_n = Int(Rnd() * num) + 1 Do While ck(rnd_n) = 1 rnd_n = Int(Rnd() *
15、 num) + 1 Loop K(i)= rnd_n ck(rnd_n) = 1NextEnd sub使用方法:1. 在專案中加入空白模組檔”Module1.vb” 2. Public N(4) as short 3. Call Generate_Random_Number(4)副程式(版本四-加入陣列參數)Sub Generate自定函數 Function money(ByVal all As Integer, ByVal ans As Boolean) As Integer Dim rate As Integer If RadioButton1.Checked = True Then rate = 1 ElseIf RadioButton2.Checked = True Then rate = 10 ElseIf RadioButton3.Checke
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司活动月策划方案
- 公司活动礼物策划方案
- 公司组织农家乐策划方案
- 公司端午节集体活动方案
- 公司聚会吃饭活动方案
- 公司撕名牌团建活动方案
- 公司职工团体活动方案
- 公司节日自助餐活动方案
- 公司组织养老院活动方案
- 公司日常乒乓球活动方案
- GB/T 3048.5-2007电线电缆电性能试验方法第5部分:绝缘电阻试验
- GB/T 24328.4-2009卫生纸及其制品第4部分:湿抗张强度的测定
- GB/T 10816-1989紫砂陶器
- 2023年淮河能源控股集团有限责任公司校园招聘笔试模拟试题及答案解析
- 《护士执业注册申请审核表》完整
- 2022年人教版四年级数学(下册)期末试卷及答案(必考题)
- 电梯安全隐患排查表完整版
- 房地产估价报告:商业房地产租赁价格估价
- kW壳管式干式蒸发器设计
- 新进员工三级教育卡(参考)范本
- 系列螺杆冷水机组操作培训
评论
0/150
提交评论