第8章模组化程式设计I-副程式与自定函数课件

上传人:仙*** 文档编号:244177298 上传时间:2024-10-03 格式:PPT 页数:20 大小:328.86KB
返回 下载 相关 举报
第8章模组化程式设计I-副程式与自定函数课件_第1页
第1页 / 共20页
第8章模组化程式设计I-副程式与自定函数课件_第2页
第2页 / 共20页
第8章模组化程式设计I-副程式与自定函数课件_第3页
第3页 / 共20页
点击查看更多>>
资源描述
,按一下以編輯母片,第二層,第三層,第四層,第五層,*,*,按一下以編輯母片標題樣式,第,8,章,模組化程式設計,I,副程式與自定函數,第 8 章 模組化程式設計I副程式與自定函數,一、模組化設計的概念,模組,通常是指一段具有某種特定功能、大小適中、容易閱讀及維護的程式,將程式切割成許多個子功能後,便可分別撰寫成模組程式,模組1,模組2,模組3,模組n,大型程式,一、模組化設計的概念模組通常是指一段具有某種特定功能、大小,二、模組設計的原則,設計功能單純的模組程式,以便提供給更多程式使用,儘量減少模組之間相互影響的程度,以使模組成為獨立的程式基本單元,將模組控制在適當的大小,(,例如不超過,50,行敘述,),,以方便閱讀與維護,二、模組設計的原則設計功能單純的模組程式,以便提供給更多程式,三、使用模組的優點,模組可重覆使用,程式開發易於分工,程式易於測試與偵錯,可簡化維護的工作,呼叫,模組A,模組B,模組F,呼叫,模組A,模組B,模組F,呼叫,呼叫,模組,A,具有檢查產品編號功能,產品編號的檢查規則改變時,只要修改模組,A,即可,三、使用模組的優點模組可重覆使用程式易於測試與偵錯呼叫模組A,四、模組設計的方法,在專案中加入空白模組檔,撰寫副程式或自定函數,以設計模組程式,(,如左下圖,),在專案中匯入某個專案中的模組檔,(,如右下圖,),表單檔,模組檔,程式專案P1,表單檔,模組檔,程式專案P2,匯入現有模組檔,撰寫模組程式,四、模組設計的方法在專案中加入空白模組檔,撰寫副程式或自定函,五、副程式,(,1/6,),副程式,是一段具有特定功能的程式區塊;它通常必須透過主程式的呼叫才能被啟動起來執行,Call,副程式A,呼叫,Sub,副程式A,End 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,呼叫副程式C_Expense( ),End If,End Sub,五、副程式,(,3/6,),範例:計算家庭用電費與營業用電費,主程式,副程式,計算家庭用電費,Sub,F_Expense,End Sub,計算營業用電費,Sub,C_Expense,End Sub,Private Sub Form1_Activated五,五、副程式,(,4/6,),副程式,F_Expense( ),Sub,F_Expense(,ByVal,volume,As Single,),計算家庭用電,110:,Dim,fee,As Integer,120:,If,volume 500,Then,用電量超過,500,度,130: fee = 110 * 2.1 + 390 * 2.875 + (volume - 500) * 3.6,140:,ElseIf,volume 110,Then,用電量超過,110,度,150: fee = 110 * 2.1 + (volume - 110) * 2.875,160:,Else,用電量在,110,度以內,170: fee = volume * 2.1,180:,End If,190: MsgBox(,電費為, & fee & ,元, , ,電費試算,),End Sub,五、副程式(4/6)副程式F_Expense( )Sub F,五、副程式,(,5/6,),副程式,C_Expense( ),Sub,C_Expense(,ByVal,volume,As Single,),計算營業用電費,200:,Dim,fee,As Integer,210:,Const,rate,As Single,= 3.1,220: fee = rate * volume,計算電費,230: MsgBox(,電費為, & fee & ,元, , ,電費試算,),End Sub,五、副程式(5/6)副程式C_Expense( )Sub C,五、副程式,(,6/6,),主程式,Private Sub,Form1_Activated(,ByVal,sender,),Handles Me,.Activated,10:,Dim,ecase,As Short,20:,Dim,usage,As Single,30: ecase = InputBox(,請輸入用電類型:,1),家庭用電,2),營業用電, _ ,電費試算,),40: usage = InputBox(,請輸入用電量,單位:度, ,電費試算,),50:,If,ecase = 1,Then,60:,Call,F_Expense(usage),呼叫副程式計算家庭用電費,70:,Else,80:,Call,C_Expense(usage),呼叫副程式計算營業用電費,90:,End If,100:,End,End Sub,五、副程式(6/6)主程式Private Sub Form1,六、自定函數,(,1/3,),自定函數,的功能與副程式類似;差別在於自定函數在執行結束後會產生一個傳回值給呼叫它的程式,1.,呼叫,主程式,Public Class,Form1,X =,自定函數,A( ),End Class,自定函數,Function,自定函數,A( ),As,Short,自定函數,A = 100,End Function,3.,返回並將值,100,傳回給變數,X,2.,執行,4.,執行下一行程式敘述, , ,六、自定函數(1/3)自定函數的功能與副程式類似;差別在於自,六、自定函數,(,2/3,),語法:,定義自定函數的語法,Function,自定函數名稱(形式參數1As 資料型別, 形式參數2_As 資料型別, ) As 資料型別,程式敘述區塊,自定,函數名稱,=,傳回值,End Function,呼叫自定函數的語法,變數名稱 = 自定函數名稱(實際參數1, 實際參數2, ),六、自定函數(2/3)語法:定義自定函數的語法Fun,六、自定函數,(,3/3,),範例:華氏溫度換算為攝氏溫度,Function,Convert_temp(,ByVal,F,As Short,),As Short,F,為形式參數,60: Convert_temp = (F - 32) * 5 / 9,攝氏溫度,= (,華氏溫度,- 32 ) * 5 / 9,End Function,Private Sub,Form1_Activated(,ByVal,sender,),Handles Me,.Activated,10:,Dim,F_temp, C_temp,As Short,20: F_temp = InputBox(,請輸入華氏溫度:, ,溫度換算,),30: C_temp = Convert_temp(F_temp),F_temp,為實際參數,40: MsgBox(,華氏, & F_temp & ,度,=,攝氏, & C_temp & ,度, , _ ,溫度換算,),50:,End,End Sub,六、自定函數(3/3)範例:華氏溫度換算為攝氏溫度Funct,隨機不重覆,Dim rnd_n As Short,Dim ck(4) As Short,For 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) = 1,Next,隨機不重覆 Dim rnd_n As Short,副程式(版本一),Sub Generate_Random_Number(),Dim rnd_n As Short,Dim ck(4) As Short,For 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) = 1,Next,End sub,使用方法:Call,Generate_Random_Number(),副程式(版本一)Sub Generate_Random,副程式(版本二-加入模組),Sub Generate_Random_Number(),Dim rnd_n As Short,Dim ck(4) As Short,For 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) = 1,Next,End sub,使用方法:1. 在專案中加入空白模組檔”,Module1.vb,”,2.,Public,N(4) as short,3. Call,Generate_Random_Number(),副程式(版本二-加入模組)Sub Generate_R,副程式(版本三-加入參數),Sub Generate_Random_Number(ByVal,num,as short),Dim rnd_n As Short,Dim ck(4) As Short,For 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) = 1,Next,End sub,使用方法:1. 在專案中加入空白模組檔”,Module1.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 Short,Dim ck(4) As Short,For i = 1 To,num,rnd_n = Int(Rnd() *,num,) + 1,Do While ck(rnd_n) = 1,rnd_n = Int(Rnd() *,num,) + 1,Loop,K(i),= rnd_n,ck(rnd_n) = 1,Next,End 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.Checked = True Then,rate = 100,ElseIf RadioButton4.Checked = True Then,rate = 1000,End If,If ans = True Then,all = all + rate,Else,all = all - rate,End If,money = all,End Function,使用方法:,all_money = money(all_money, ans),自定函數 Function money(ByVal all,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!