Visual-Basic程序设计综合教程第7章-过程.ppt
《Visual-Basic程序设计综合教程第7章-过程.ppt》由会员分享,可在线阅读,更多相关《Visual-Basic程序设计综合教程第7章-过程.ppt(121页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 过程过程 在一个程序中,如果需要在多处执行完成同一在一个程序中,如果需要在多处执行完成同一功能的程序段,那么,重复书写一相同的程序段,功能的程序段,那么,重复书写一相同的程序段,是一项相当繁琐且容易出错的工作。能否对这样的是一项相当繁琐且容易出错的工作。能否对这样的程序段只书写一次而又多次调用呢?程序段只书写一次而又多次调用呢?Visual Basic Visual Basic提供了设计过程和自定义函数的功提供了设计过程和自定义函数的功能,利用过程和自定义函数就能满足以上的需要。能,利用过程和自定义函数就能满足以上的需要。把需要在多处重复使用的程序段编写成一个相对独把需要在多处重复
2、使用的程序段编写成一个相对独立的程序模块,这个程序模块就称为过程或自定义立的程序模块,这个程序模块就称为过程或自定义函数。这样,在一个程序中,需要完成这个程序模函数。这样,在一个程序中,需要完成这个程序模块功能的地方就不用再重复编制程序了,而是通过块功能的地方就不用再重复编制程序了,而是通过调用该过程或用户自定义函数来完成,这就是调用该过程或用户自定义函数来完成,这就是“结结构化构化”程序设计的思想。程序设计的思想。结构化程序设计思想的重点之一就是对一个结构化程序设计思想的重点之一就是对一个复杂的问题采用复杂的问题采用“分而治之分而治之”的策略的策略模块化,模块化,把一个较大的程序划分为若干个
3、模块,每个模块把一个较大的程序划分为若干个模块,每个模块只完成一个或若干个功能。使用只完成一个或若干个功能。使用“过程过程”是实现是实现结构化程序设计思想的重要方法。结构化程序设计思想的重要方法。【主要内容主要内容】本章要求用户重点掌握以下内容。本章要求用户重点掌握以下内容。l lSub过程和过程和Function过程的定义格式。过程的定义格式。l lSub过程和过程和Function过程的调用。过程的调用。l l重点掌握重点掌握Sub过程和过程和Function过程中参数过程中参数的传递方式,掌握值传递和地址传递的区的传递方式,掌握值传递和地址传递的区别,并能灵活应用。别,并能灵活应用。l
4、l了解了解Shell函数的使用。函数的使用。7.1 引例引例 【引例引例】在名称为在名称为Form1的窗体画两个名的窗体画两个名称分别为称分别为Command1和和Command2,外观,外观属性分别为属性分别为“输入成绩输入成绩”和和“成绩处理成绩处理”的命令按钮,四个标签分别作提示性的说的命令按钮,四个标签分别作提示性的说明,通过四个文本框分别用来输出数据,明,通过四个文本框分别用来输出数据,从键盘输入从键盘输入10个学生的成绩,求他们的平个学生的成绩,求他们的平均成绩,最高分,最低分,并从高到低排均成绩,最高分,最低分,并从高到低排名。程序的运行界面如图名。程序的运行界面如图7.1所示。
5、所示。图7.1 【引例】运行界面分析分析:在在【引例引例】中,要求用户完成五项功能:中,要求用户完成五项功能:输入输入10个学生的成绩,求平均成绩,最高个学生的成绩,求平均成绩,最高分,最低分,排名。当然,这五项功能可分,最低分,排名。当然,这五项功能可以编写在一个事件过程中完成,但程序显以编写在一个事件过程中完成,但程序显得很复杂,如果把程序分成几个独立功能得很复杂,如果把程序分成几个独立功能模块来完成,而由主程序调用,程序结构模块来完成,而由主程序调用,程序结构就显得比较清晰,容易调试和修改。就显得比较清晰,容易调试和修改。程序设计步骤程序设计步骤(1)设计用户界面图设计用户界面图7.2【
6、引例引例】设计界面设计界面根据题目的分析,设计如图根据题目的分析,设计如图7.2所示用户界面。所示用户界面。图7.2【引例】设计界面(2)属性设置)属性设置各相关控件的属性设置见表各相关控件的属性设置见表7.1。表7.1【引例】属性设置控件名称属性属性值Label1Caption最高成绩Label2Caption最低成绩Label3Caption平均成绩Label4Caption从高到底排序Text1TextText1Text2TextText2Text3TextText3Text4TextText4Command1Caption输入成绩Command2Caption成绩处理完成属性设置的用户
7、界面如图完成属性设置的用户界面如图7.3所示。所示。图7.3 【引例】设计界面(3)编写程序代码编写程序代码 在窗体模块中定义数组在窗体模块中定义数组在窗体模块中定义数组在窗体模块中定义数组stscore(1 To 10)stscore(1 To 10),全局变,全局变,全局变,全局变量的定义量的定义量的定义量的定义Dim stscore(1 To 10)As SingleDim stscore(1 To 10)As Single 初始化输出控件初始化输出控件初始化输出控件初始化输出控件Private Sub Private Sub Form_LoadForm_Load()()Text1=Te
8、xt1=初始化输出控件初始化输出控件初始化输出控件初始化输出控件,使文本框的初始内容使文本框的初始内容使文本框的初始内容使文本框的初始内容为空为空为空为空 Text2=Text2=Text3=Text3=Text4=Text4=End SubEnd Sub 输入输入输入输入1010个学生的成绩个学生的成绩个学生的成绩个学生的成绩Private Sub Command1_Click()Private Sub Command1_Click()For i=1 To 10 For i=1 To 10 stscore(istscore(i)=)=InputBoxInputBox(请输入学生的成绩请输入学
9、生的成绩请输入学生的成绩请输入学生的成绩)Next i Next iEnd SubEnd Sub 对成绩进行处理对成绩进行处理对成绩进行处理对成绩进行处理Private Sub Command2_Click()Private Sub Command2_Click()st_sumst_sum 调用调用调用调用st_sumst_sum过程过程过程过程 Max_minMax_min 调用调用调用调用Max_minMax_min过程过程过程过程 sort sort 调用调用调用调用sortsort过程过程过程过程End SubEnd Sub 编写求平均成绩过程编写求平均成绩过程编写求平均成绩过程编写求
10、平均成绩过程st_sumst_sumPublic Sub Public Sub st_sumst_sum()()For i=1 To 10 For i=1 To 10 Sum=Sum=SumSum+stscore(istscore(i)Next i Next iText3=Sum/10 Text3=Sum/10 在文本框中输出在文本框中输出在文本框中输出在文本框中输出End SubEnd Sub 编写求最高,最低成绩过程编写求最高,最低成绩过程编写求最高,最低成绩过程编写求最高,最低成绩过程Max_minMax_minPublic Sub Public Sub Max_minMax_min()
11、()Max=stscore(1)Max=stscore(1)Min=stscore(1)Min=stscore(1)For i=1 To 10 For i=1 To 10 If Max If Max If Min stscore(istscore(i)Then Min=)Then Min=stscore(istscore(i)Next i Next i Text1=Max Text1=Max 在文本框中输出在文本框中输出在文本框中输出在文本框中输出 Text2=Min Text2=Min 在文本框中输出在文本框中输出在文本框中输出在文本框中输出End SubEnd Sub 编写排名过程编写排名
12、过程编写排名过程编写排名过程sortsortPublic Sub sort()Public Sub sort()For i=1 To 9 For i=1 To 9 For j=i+1 To 10 For j=i+1 To 10 If If stscore(istscore(i)stscore(jstscore(j)Then)Then t=t=stscore(istscore(i):):stscore(istscore(i)=)=stscore(jstscore(j):):stscore(jstscore(j)=t)=t End If End If Next j Next j Next i Ne
13、xt i For i=1 To 10 For i=1 To 10 Text4=Text4=Text4Text4&stscore(istscore(i)&Space(1)&Space(1)在文本框中输在文本框中输在文本框中输在文本框中输出出出出Next i Next i End SubEnd Sub(4)运行程序运行程序 程序运行时,单击程序运行时,单击程序运行时,单击程序运行时,单击“输入成绩输入成绩输入成绩输入成绩”命令按钮,弹出命令按钮,弹出命令按钮,弹出命令按钮,弹出输入成绩对话框,如图输入成绩对话框,如图输入成绩对话框,如图输入成绩对话框,如图7.47.4所示,依次输入所示,依次输入所
14、示,依次输入所示,依次输入1010个学个学个学个学生的成绩,单击生的成绩,单击生的成绩,单击生的成绩,单击“确定确定确定确定”按钮,把输入的按钮,把输入的按钮,把输入的按钮,把输入的1010个学个学个学个学生的成绩保存在全局数组生的成绩保存在全局数组生的成绩保存在全局数组生的成绩保存在全局数组stscore(1 To 10)stscore(1 To 10)中,单中,单中,单中,单击击击击“成绩处理成绩处理成绩处理成绩处理”命令按钮,在文本框中显示程序命令按钮,在文本框中显示程序命令按钮,在文本框中显示程序命令按钮,在文本框中显示程序对成绩处理的结果。如图对成绩处理的结果。如图对成绩处理的结果。
15、如图对成绩处理的结果。如图7.17.1所示。所示。所示。所示。图7.4 【引例】运行界面说明说明说明说明:在程序在程序在程序在程序【引例引例引例引例】中,通过命令按钮中,通过命令按钮中,通过命令按钮中,通过命令按钮Command1_ClickCommand1_Click()()事件过程,完成了数据的输入,同时编写了求平均成绩事件过程,完成了数据的输入,同时编写了求平均成绩事件过程,完成了数据的输入,同时编写了求平均成绩事件过程,完成了数据的输入,同时编写了求平均成绩过程过程过程过程st_sumst_sum,求最高和最低成绩过程,求最高和最低成绩过程,求最高和最低成绩过程,求最高和最低成绩过程M
16、ax_minMax_min,排名过,排名过,排名过,排名过程程程程sort,sort,并通过命令按钮并通过命令按钮并通过命令按钮并通过命令按钮Command2_Click()Command2_Click()事件过程调用事件过程调用事件过程调用事件过程调用通用过程通用过程通用过程通用过程st_sumst_sum,Max_minMax_min,sort,sort,从而完成了对数据的处从而完成了对数据的处从而完成了对数据的处从而完成了对数据的处理。理。理。理。在程序在程序在程序在程序【引例引例引例引例】中,实际上把一个复杂的问题分成几中,实际上把一个复杂的问题分成几中,实际上把一个复杂的问题分成几中
17、,实际上把一个复杂的问题分成几个独立的功能模块来实现。如果某个模块没有实现预定的个独立的功能模块来实现。如果某个模块没有实现预定的个独立的功能模块来实现。如果某个模块没有实现预定的个独立的功能模块来实现。如果某个模块没有实现预定的功能,便可有针对性的去修改,而不必检查整个程序,从功能,便可有针对性的去修改,而不必检查整个程序,从功能,便可有针对性的去修改,而不必检查整个程序,从功能,便可有针对性的去修改,而不必检查整个程序,从而简化了程序设计的任务,避免重复的工作,便于设计和而简化了程序设计的任务,避免重复的工作,便于设计和而简化了程序设计的任务,避免重复的工作,便于设计和而简化了程序设计的任
18、务,避免重复的工作,便于设计和修改。这是处理问题的一个重要方法,同时,过程也可以修改。这是处理问题的一个重要方法,同时,过程也可以修改。这是处理问题的一个重要方法,同时,过程也可以修改。这是处理问题的一个重要方法,同时,过程也可以被其它程序所共享。下面就过程的定义和使用作详细说明。被其它程序所共享。下面就过程的定义和使用作详细说明。被其它程序所共享。下面就过程的定义和使用作详细说明。被其它程序所共享。下面就过程的定义和使用作详细说明。7.2 过程过程7.2.1 过程的概念过程的概念1 过程过程过程是构成程序的一个模块,往往用来完成过程是构成程序的一个模块,往往用来完成一个相对独立的功能。过程可
19、以使程序更一个相对独立的功能。过程可以使程序更清晰,更具有结构性,所以把程序分割成清晰,更具有结构性,所以把程序分割成较小的逻辑部件就可以简化程序设计的任较小的逻辑部件就可以简化程序设计的任务务,这些部件称为过程。这些部件称为过程。2 用过程编程有两大好处用过程编程有两大好处(1)(1)过程可以把程序划分成离散的,较小的逻辑单过程可以把程序划分成离散的,较小的逻辑单过程可以把程序划分成离散的,较小的逻辑单过程可以把程序划分成离散的,较小的逻辑单元,每个单元都比无过程的整个程序容易调试,元,每个单元都比无过程的整个程序容易调试,元,每个单元都比无过程的整个程序容易调试,元,每个单元都比无过程的整
20、个程序容易调试,而且过程可用于压缩重复任务或共享任务。而且过程可用于压缩重复任务或共享任务。而且过程可用于压缩重复任务或共享任务。而且过程可用于压缩重复任务或共享任务。(2)(2)一个程序中的过程,往往不必修改或只需稍作一个程序中的过程,往往不必修改或只需稍作一个程序中的过程,往往不必修改或只需稍作一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件。改动,便可以成为另一个程序的构件。改动,便可以成为另一个程序的构件。改动,便可以成为另一个程序的构件。3 Visual Basic3 Visual Basic中过程的分类中过程的分类中过程的分类中过程的分类 (1)(1)通用过
21、程通用过程通用过程通用过程通用过程包括子程序过程(或称作通用过程包括子程序过程(或称作通用过程包括子程序过程(或称作通用过程包括子程序过程(或称作SubSub过程)和函过程)和函过程)和函过程)和函数过程(或称作数过程(或称作数过程(或称作数过程(或称作Function Function 过程)。过程)。过程)。过程)。(2)(2)事件过程事件过程事件过程事件过程7.2.2 7.2.2 过程的建立过程的建立过程的建立过程的建立定义子过程和函数过程有以下两种方法。定义子过程和函数过程有以下两种方法。定义子过程和函数过程有以下两种方法。定义子过程和函数过程有以下两种方法。1 1 利用利用利用利用“
22、工具工具工具工具”菜单下的菜单下的菜单下的菜单下的“添加过程添加过程添加过程添加过程”命令定义过程。命令定义过程。命令定义过程。命令定义过程。(1)(1)为想要编写函数和子程序过程的为想要编写函数和子程序过程的为想要编写函数和子程序过程的为想要编写函数和子程序过程的“窗体窗体窗体窗体”或或或或“标准模块标准模块标准模块标准模块”打打打打开代码窗口,如图开代码窗口,如图开代码窗口,如图开代码窗口,如图7.5 7.5。(2)(2)单击单击单击单击“工具工具工具工具”菜单下的菜单下的菜单下的菜单下的“添加过程添加过程添加过程添加过程”命令,显示命令,显示命令,显示命令,显示“添加过程添加过程添加过程
23、添加过程”对话框,如图对话框,如图对话框,如图对话框,如图7.6 7.6。(3)(3)在图在图在图在图7.6 7.6 中的中的中的中的“名称名称名称名称”框中输入过程名框中输入过程名框中输入过程名框中输入过程名mypromypro(过程名中不允(过程名中不允(过程名中不允(过程名中不允许有空格)。许有空格)。许有空格)。许有空格)。(4)(4)在类型组中选取在类型组中选取在类型组中选取在类型组中选取“子程序子程序子程序子程序”定义子过程,选取定义子过程,选取定义子过程,选取定义子过程,选取“函数函数函数函数”定义定义定义定义函数过程。函数过程。函数过程。函数过程。(5)(5)在范围组中选取在范
24、围组中选取在范围组中选取在范围组中选取“公有的公有的公有的公有的”定义一个公共级的全局过程,选定义一个公共级的全局过程,选定义一个公共级的全局过程,选定义一个公共级的全局过程,选取取取取“私有的私有的私有的私有的”定义一个标准模块级或窗体级的局部过程。定义一个标准模块级或窗体级的局部过程。定义一个标准模块级或窗体级的局部过程。定义一个标准模块级或窗体级的局部过程。(6)(6)单击单击单击单击“确定确定确定确定”按钮,这时按钮,这时按钮,这时按钮,这时Visual BasicVisual Basic会自动在会自动在会自动在会自动在“代码代码代码代码”窗窗窗窗口中创建一个子过程或函数过程的框架,即
25、过程的开始和结束口中创建一个子过程或函数过程的框架,即过程的开始和结束口中创建一个子过程或函数过程的框架,即过程的开始和结束口中创建一个子过程或函数过程的框架,即过程的开始和结束语句,如图语句,如图语句,如图语句,如图7.57.5所示。用户就可以在该过程中编写所需要的代码。所示。用户就可以在该过程中编写所需要的代码。所示。用户就可以在该过程中编写所需要的代码。所示。用户就可以在该过程中编写所需要的代码。图7.6 添加过程对话框图7.5 向mypro过程添加代码2 利用代码窗口直接定义过程利用代码窗口直接定义过程 为想要编写函数或子程序过程的窗体为想要编写函数或子程序过程的窗体/标准模块打开代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Visual Basic 程序设计 综合 教程 过程
限制150内