vb程序设计实验部分(6)

2020-04-03 11:38

3.想想Max参数的作用和传递方式。 4.学习掌握数组作为参数的传递方法。 【实验步骤】

1.在代码窗口中编写ProMax(a() As Integer,Max As Integer)过程。 2.用窗体的Click事件过程作为主调程序,调用ProMax(a(),Max)过程。

提示:产生300~400之间(包括300和400)随机整数的算法为:Int(Rnd*101+300) 实验5.4 编一函数过程,对已知数m判断其是否为“完数”。并求1000以内的所有“完数”。所谓“完数”即该数等于所有能够整除它的因子之和。如:6=1+2+3,6就是“完数”。

【实验要求】

1.“完数”作为一个单独的函数进行编写,其函数形式为: Function WS(m As Integer) as Boolean

2.当用户按下“完数”命令按钮后,在窗体上显示1~1000之间的“完数”。 3. 掌握函数的调用,考虑参数m是用值传递还是地址传递。运行界面如图5-4所示。

图5-4 实验5.4的运行界面

【实验步骤】

1.按图5-4设计用户界面,包括一个标签、一个命令按钮和一个图形框。 2. 在代码窗口中编写函数WS(m)。

3.用命令按钮的Click事件过程作为主调程序调用该函数,并在窗体上显示1~1000之间的“完数”。

提示:

1.判断一个数m是否为“完数”的算法步骤为:

(1)将m与I=1,2,…,int(m/2)依次取余数,余数为0,I为因子,累加求和,算得所有的因子之和sum。

(2)将sum与m比较,如果相等,m为“完数”。 2.在调用WS函数时用循环语句逐次调用。

实验5.5 编一个选择法排序子过程,对已知的若干个整数按递增次序排序。 【实验要求】

1.子过程形式为:sub Sort1(a%()),学习掌握数组作为参数的传递方法。

2.在键盘上任意的输入若干个数,调用选择排序子过程Sort后,这些整数按递增次序

- 21 -

排序,并将排好序的整数依次显示在窗体中。

【实验步骤】

1. 在代码窗口中编写子过程sub Sort1(a%())。

2.在窗体的Click事件过程中定义一个数组,并用Inputbox函数依次从键盘中输入整数存放在数组中,然后以该数组作参数调用Sort1子过程。

提示:

选择排序法原理:用两个循环嵌套语句实现,在每一轮排序都是找出当前最小数的下标,出了内循环,再将最小数交换到正确的位置。

选择排序法算法的实现步骤(假定为n个数的序列):

(1)从n个数中选出最小数的下标,然后将最小数与第1个数交换位置。

(2)除第1个数外,其余n-1个数再按步骤(1)的方法选出次小的数,与第2个数交换位置。

(3)重复步骤(1)n-1遍,最后构成递增序列。

实验5.6 在实验5.5的基础上,编一个二分查找子过程。 【实验要求】

利用二分查找算法查找某数,找到返回该数在数组中的下标位置,找不到返回值为-1。 【实验步骤】

1. 在代码窗口中分别编写排序子过程和二分查找子过程。

2.在窗体的Click事件过程中定义一个数组,并用Inputbox函数依次从键盘中输入整数存放在数组中,然后以该数组作参数依次调用排序子过程和二分查找子过程。 提示:

二分查找算法思想:在一个按升序排列好的数组中,设low和high分别为查找范围的上界与下界,将要查找的关键值key同查找范围的中间mid项元素比较,如果:

Key

Key>a(mid) low=mid+1 查找区域缩小一半,继续查找,直到找到或查找区域

中 无元素(-1)。

算法步骤:

(1)将low和high的初值分别设置为数组下标的下界与上界。

(2)mid=(low+high)/2,如果key=a(mid),查找结束,如果low>high,数组中没该查找数,查找结束。

(3)如果key>a(mid),low = mid-1,否则high = mid+1。 (4)重复步骤(2)、(3),直到找到或查找数组中无该元素。

实验5.7 定义一个同标准函数Replace一样的MyReplace(S,OldS,NewS)函数过程。 【实验要求】

1.用NewS新子串替换S字符串中的所有与OldS相同的旧子串,返回一个包含替换结果的字符串。

2.想一想,MyReplace函数的各参数传递是用值传递还是地址传递?

- 22 -

图5-5 实验5.7的运行界面

【实验步骤】

1. 设计用户界面如图5-5所示,包括4个标签、4个文本框和一个命令按钮。 2.在代码窗口中编写MyReplace(S, Olds,NewS)函数过程。

3.在命令按钮的Click事件过程中定义三个字符串变量S(存放替换前的内容)、OldS(存放被替换的子字符串)和NewS(存放用来替换前的子字符串),并依次用三个文本框给它们赋值,然后以它们作参数调用MyReplace(S, Olds,NewS)函数过程,最后将该函数过程的返回结果显示在一个文本框中。

提示:MyReplace(S, Olds,NewS)函数过程的算法为: (1)分别取字符串S与子串OldS的长度。

(2)使用函数InStr(S,OldS),在字符串S中查找首个OldS子串出现的位置,如果函数返回值非0表示找到,运行下一步。

(3)在S字符串中,用NewS字符子串替换OldS字符子串。设S字符串长度为Len1,OldS子串长度为len2, OldS子串在S字符串的位置为n,则该替换可使用以下语句实现:

S = Left(S, n - 1) + Trim(NewS) + Right(S, len1 - n - len2 + 1)

(4)重复步骤(2)和(3),直到所有旧子串OldS都被新子串NewS代替(函数InStr返回值为0)。

实验5.8 求自然对数e的近似值。其近似公式为:

?m111111e?1????...?? ... ???1??1!2!3!i!i?0i!i?1i!【实验要求】

1.在计算e的过程中,最后一个累加项为小于或等于10。

2.分别用子过程和函数过程编写,并分别调用。区分子过程和函数过程的异同,掌握它们的调用方法和转换方式。

【实验步骤】

1. 在代码窗口中分别编写计算e的子过程和函数过程。

- 23 -

-7

2.在窗体的Click事件过程中分别调用计算e的子过程和函数过程。 提示:

1.该题先求连乘I!,再对1/I!进行累加。循环次数预先未知,根据累加项1/I!的值是否达到精度决定循环与否。算法流程图如图5-6所示。

图5-6 实验5.8的流程图

2.在对同一问题定义两种过程时,只要抓住函数过程和子过程的区别,即函数名有一个值、子过程名无值的特点。这样当定义好函数过程后,要改为子过程,只要将函数过程名改为子过程的形参,另外再增加一个子过程名即可。反之,将子过程改为函数过程时,只要将有返回值的一个形参改为对函数过程名赋值。

实验5.9 定义一个用递归方法求组合数Cnm的函数过程。 【实验要求】

掌握递归过程的编写,理解构成递归的两个重要条件: 1.递归结束条件及结束时的值。

2.待求结果能用递归形式表示,并且递归向结束条件发展。 【实验步骤】

1.在代码窗口中编写用递归方法求组合数的函数过程。

2.在窗体的Click事件过程中使用Inputbox函数依次从键盘中输入求组合数的两个参数,然后调用求组合数的函数过程。

【提示】

nnn-11.对于Cnm有如下递归形式:Cm=Cm-1+Cm-1

2.递归条件:

?C0m=1, n=0?1?Cm?m, n=1 ?nm?n?Cm?Cm, n>m/2 - 24 -

实验六 常用控件

一、实验目的

1.掌握窗体及常用标准控件的常用属性、方法与事件。

2.掌握构建具有指定功能界面的方法,即运用窗体及常用控件的属性、方法、事件构建所需界面。

3.掌握鼠标、键盘与对象拖放等高级事件过程。

二、 实验内容

控件实验的一般设计方法:在Visual Basic 的应用程序设计中,首先根据要求规划好界面的元素和布局,然后对将要使用的窗体与控件,决定应更改哪些属性,调用哪些方法,对哪些事件作出响应,从而得到希望的外观和行为,使得窗口及控件能正确响应用户的交互操作。

实验6.1 密码处理,如图6-1所示。

图6-1 密码处理 【实验要求】

1.窗口上部的文本框名称为InputPassword,下部的文本框名称为DisplayPassword。 2.初始时,在InputPassword文本框中输入的字符都显示为“*”。

3.单击“显示密码”按钮,则InputPassword文本框改为显示实际输入的字符。 4.单击“隐藏密码”按钮,则InputPassword中的字符都还原为显示“*”。

5. 单击“复制密码”按钮,则把InputPassword文本框的实际内容复制到DisplayPassword文本框中。

【实验步骤】

1.按照图6-1在窗体上生成需要的控件。部分控件的部分属性初始值按表6.1进行设置。

- 25 -


vb程序设计实验部分(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《请给我结果》读后感

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: