赖锦辉第八章vb.doc

上传人:大米 文档编号:542213275 上传时间:2023-06-22 格式:DOC 页数:14 大小:196.01KB
返回 下载 相关 举报
赖锦辉第八章vb.doc_第1页
第1页 / 共14页
赖锦辉第八章vb.doc_第2页
第2页 / 共14页
赖锦辉第八章vb.doc_第3页
第3页 / 共14页
赖锦辉第八章vb.doc_第4页
第4页 / 共14页
赖锦辉第八章vb.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《赖锦辉第八章vb.doc》由会员分享,可在线阅读,更多相关《赖锦辉第八章vb.doc(14页珍藏版)》请在金锄头文库上搜索。

1、第八章 VB程序设计实践教学目标:1.通过一系列的有代表性的典型题目来进一步学习巩固之前所学的VB的知识;2.通过引申思考深入理解掌握知识点。主要内容:8.1累加、连乘的问题【问题与任务】1100的5或7的倍数的和 分析:累加或者连乘都需要声明一个变量来存放中间结果。程序如下: Sum = 0 For i = 1 To 100 If i Mod 5 = 0 Or i Mod 7 = 0 Then Sum = Sum + i End If Next i Print Sum 【问题与任务】310的乘积 程序如下: t = 1 For i =3 To 10 t = t * i Next i Prin

2、t t思考:若把循环体前面置各变量初值的语句放在循环体内,程序运行时会产生什么情况?8.2多项选择的问题【问题与任务】编写一个简易学生成绩管理系统,要求输入姓名和成绩,点击“添加”按钮后,在文本框中追加并换行显示“姓名”、“成绩”和“合格”或“不合格”信息,如图8.1所示。图8.1 程序界面分析:换行追加并且显示时,可用Text1.Text = Text1.Text & vbCrLf & (待追加并显示的字符串),同时应该将Text1的MultiLine属性设置为True,ScrollBars属性设置为Both。程序如下:Private Sub Command1_Click()x = Val(

3、Text2.Text)Select Case x Case Is = 90 response = 优 Case Is = 80 response = 良 Case Is = 70 response = 中 Case Is = 60 response = 及格 Case Else response = 不及格 End SelectText3.Text = Text3.Text & vbCrLf & Text1.Text & Space(5) & Text2.Text & Space(10) & responseText1.SetFocusText1.SelStart = 0Text1.SelLe

4、ngth = Len(Text1.Text)End SubPrivate Sub Form_Load()Text3.Text = 姓名 & Space(5) & 成绩 & Space(10) & 等级End SubPrivate Sub Text1_LostFocus()Text2.SetFocusText2.SelStart = 0Text2.SelLength = Len(Text1.Text)End Sub进一步要求:按照90为“优”,80为“良”,70为“中”,60为“及格”, n; (2)被除数 m除以除数n 得余数 r ; (3)若r = 0,则 n 为最大公约数结束 ;否则执行(

5、4); (4)m n,n = r,再重复执行(2) 。最小公倍数为两个数的积除以它们的最大公约数。程序如下:Dim a As Integer, b%, m%, n%, r%Private Sub Command1_Click() m = Val(Tt1.Text) : N = Val(Tt2.Text) IF m n a = m : b= n r = m Mod n 被除数 m除以除数n 得余数 r Do While r 0 m = n n = r r = m Mod n Loop Lab3.Caption = N 最大公约数N End SubPrivate Sub Command2_Clic

6、k() Lab4.Caption = a * b / n 最小公倍数End Sub8.4判断素数的问题【问题与任务】给一个整数n(n=3),判断它是否是素数分析:将数n被2 SQR(n)间全部整数除,如果都除不尽,则n是素数;否则n不是素数。 设标志变量Flag,只要有一个被整除,就置为1。程序如下:Private Sub Command1_Click() N = Val(Text1.Text) : K = Int(Sqr(N) : I = 2 Flag = 0设标志变量Flag 只要有一个被整除就置为1 Do While I 【符号】中找到,再从Word中剪切或复制到VB代码中。(4)可以将

7、窗体的AutoRedraw属性设为True,以防初始大小的窗体显示不下全部内容。程序如下:Private Sub Command5_Click()For i = 1 To 9 For j = 1 To i Print j; *; i; =; i * j; Tab(j * 15); Next j PrintNext iEnd Sub思考:上三角程序如何改动?求杨辉三角如何求?8.6 “穷举”法“穷举法”也称为“枚举法”或“试凑法”,即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。【问题与任务】公鸡5个钱一只,母鸡三个钱一只、小鸡一个钱三只,要用100个钱买100只鸡,问公鸡

8、、母鸡、和小鸡各买几只?(“百鸡问题”)分析:设公鸡、母鸡、小鸡各为x、y、z只,列方程: x+y+z=100 5x+3y+z/3=100三个未知数,两个方程,有若干个解。解决此类问题采用“穷举法”。方法一:最简单三个未知数利用三重循环来实现。方法二:从三个未知数的关系,利用两重循环来实现。程序如下:方法一:Private Sub Form_Click() Dim I As Integer, J As Integer, K As Integer Print Tab(5); 公鸡; Tab(15); 母鸡; Tab(25); 小鸡 For I = 0 To 20 公鸡 For J = 0 To

9、33 母鸡 For K = 0 To 100 Step 3 小鸡 If I*5+J*3+K3=100 And I+J+K=100 Then Print Tab(5); I; Tab(15); J; Tab(25); K End If Next K, J, IEnd Sub方法二: I + J + K = 100 鸡数满足的方程Private Sub Form_Click() Dim I As Integer, J As Integer, K As Integer Print Tab(5); 公鸡; Tab(15); 母鸡; Tab(25); _ 小鸡 For I = 0 To 19 公鸡 Fo

10、r J = 0 To 33 母鸡 K=100 - I - J 小鸡的个数 If I*5+J*3+K3=100 =100 Then 钱数的方程 Print Tab(5); I; Tab(15); J; Tab(25); K End If Next J, IEnd Sub进一步思考:(1)如何显示所有的水仙花数。所谓水仙花数,就是指一个3位正整数,其各位数字的立方和等于该数本身。例如153即为水仙花数。(2)数字灯谜: A、B、C、D为非负一位数字,要求找出满足以上算式的A、B、C、D。8.7“递推法”“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都

11、从旧值的基础上递推出新值,并由新值代替旧值。【问题与任务】猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子?分析:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子。设第n天的桃子为xn,那么它是前一天的桃子数的xn-1 的一半减1,即xn = xn-1/2 -1 ,也即: xn-1 =( xn+1)2程序如下:For i=6 to 1 step-1 x=(x+1)*2 print“第”&i&”天的桃子数为:”;x;”只”Ne

12、xt i8.8 排序问题【问题与任务】输入n名同学的成绩,显示于文本框Text1中,按成绩从低到高的次序排序,并将结果显示于另一个文本框Text2中。图8.3 成绩排序界面分析:方法一、选择排序法: 对n个数进行递增排序(1) 将第1个数与第2个数到第n个数依次比较,从n个数中选出最小的数,记下其位置p;交换x(1)与x(p)的内容;(2) 将第2个数与第3个数到第n个数依次比较,找出第2个数到第n个数中最小的数,记下其位置p;交换x(2)与x(p)的内容;(3) 重复以上方法,将第i个数与第i+1个数到第n个数依次比较,找出第i个数到第n个数中最小的数,记下其位置p;交换x(i)与x(p)的内容;共重复n-1轮。图8.4 选择排序法示意图程序如下:Option Base 1Dim n As In

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号