预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第 7 章理解通用过程和函数过程的工作原理和区别 熟练掌握参数传递的两种方式:按地址传递和按值传递 熟练掌握多窗体与SubMain过程 教学重点与难点: 对通用过程和函数过程的运用;理解掌握按地址传递和按值传递7.1.1案例实现过程 【案例说明】 1.利用Sub过程,要求程序运行后结果如图7.1所示。 图7.1运行结果 1.2.利用Sub过,在弹出的窗口中输入y确定后,则在相应的窗体中输入内容,当输入n的时候,程序停止运行。程序运行后如图7.2所示。 图7.2运行结果 7.1.1案例实现过程 【案例说明】 1.利用Sub过程,要求程序运行后结果如图7.1所示。 图7.1运行结果 1.2.利用Sub过,在弹出的窗口中输入y确定后,则在相应的窗体中输入内容,当输入n的时候,程序停止运行。程序运行后如图7.2所示。 图7.2运行结果3.输入三个数,求出它们的最大数,要求将求两个数中的大数编写成Function过程,过程名为Max。 4.从键盘上输入一个字符,判断它是不是英文字母。 分析:英语字母有大小写之分,只要将该字符转换为大写,再判断是不是处于“A”-“Z”范围内。若是,则是英文字母,否则不是。 【技术要点】 该应用程序设计步骤如下。 1.运用【案例说明】中的第一部份:利用Sub过程,要求程序运行后结果如图7.1所示。 (1)本例直接采用Print直接在窗体上输出结果。 程序代码如下: PrivateSubForm_Load() Show Callmysub1(30) Callmysub2 Callmysub2 Callmysub2 Callmysub1(30) EndSub PrivateSubmysub1(n) PrintString(n,"*") EndSub PrivateSubmysub2() Print"*";Tab(30);"*" EndSub 在上述事件过程Form_Load()中,通过Call语句分别调用两个Sub过程。在Sub过程Mysubl(n)中,n为参数(也称形参),当调用过程通过CallMysubl(30)(30称为实参)调用时,就把30传给n。这样,调用后输出30个“*’’号。过程Mysub2()不带参数,其功能是输出左右两边的“*”号。我们可以用图7.3来表示调用过程。 图7.3调用过程2.运用【案例说明】中的第二部份:利用Sub过,在弹出的窗口中输入y确定后,则在相应的窗体中输入内容,当输入n的时候,程序停止运行。程序运行后如图7.2所示。 (1)本例直接采用Print直接在窗体上输出结果。 程序代码如下: PrivateSubForm_load() Show Print"VB的基本特点是:" Callsub_cont Print"面向对象的可视化编程" Callsub_cont Print"事件驱动的编程机制" Callsub_cont Print"结构化的设计语言" EndSub PrivateSubsub_cont() DimrespAsString DoWhileTrue resp=InputBox("是否继续(y/n)?") IfUCase(resp)="N"ThenEnd IfUCase(resp)="Y"ThenExitDo Loop EndSub 在事件过程Form_Load中,有3处调用Sub过程Sub_Cont。每次调用Sub_Cont时,都会提问“是否继续(y/n)?”。若用户回答“n”,结束程序运行;若用户回答“y”,退出Do…Loop循环而返回调用语句(Call)的条件下一条哦语句继续执行。 Ucase是转换为大写的函数,不管用户回答的是大写(如“Y”)还是小写(“y”),经过Ucase处理后都变成大写(“Y”)。 3.运用【案例说明】中的第三部份: 输入三个数,求出它们的最大数,要求将求两个数中的大数编写成Function过程,过程名为Max。 本例采用InputBox函数输入三个数,判断出最大数后采用Print直接输出在窗体上程序代码如下: PrivateSubForm_load() DimaAsSingle,bAsSingle,cAsSingle DimsAsSingle Show a=Val(InputBox("输入第一个数")) b=Val(InputBox("输入第二个数")) c=Val(InputBox("输入第三个数")) s=max(a,b) Print"三个数中的最大数是:";max(s,c) EndSub Functionmax(m,n)AsSingle Ifm>nThen max=m Else max=