推荐VB批量数据的处理

上传人:鲁** 文档编号:570145986 上传时间:2024-08-02 格式:PPT 页数:97 大小:692KB
返回 下载 相关 举报
推荐VB批量数据的处理_第1页
第1页 / 共97页
推荐VB批量数据的处理_第2页
第2页 / 共97页
推荐VB批量数据的处理_第3页
第3页 / 共97页
推荐VB批量数据的处理_第4页
第4页 / 共97页
推荐VB批量数据的处理_第5页
第5页 / 共97页
点击查看更多>>
资源描述

《推荐VB批量数据的处理》由会员分享,可在线阅读,更多相关《推荐VB批量数据的处理(97页珍藏版)》请在金锄头文库上搜索。

1、第四章 批量数据的处理主讲:聂振钢石家庄铁路职业技术学院 测绘工程系1批量数据的处理4.1 循环结构4.2 数组4.3 过程4.4 高级界面设计4.5 批量数据的输入和输出 *4.6 应用举例2循环结构利用循环结构可以实习语句的重复执行VB提供了计数型循环和条件型循环For循环语句属于计数型循环Do循环和While循环属于条件型循环3For循环语句(计数型循环语句)For循环用于实现循环次数已知的循环结构For循环的格式如下:For 循环变量 = 初始值 To 终值 Step 步长 循环体 Exit For 循环体 Next 循环变量关键词:循环变量、初始值、终值、步长、循环体、Exit Fo

2、r、Next 循环变量4For循环语句应用举例例4.1:求1100的所有整数之和。例4.1的进一步深入:求1100的所有奇数之和。例4.1的变化:求1100的所有整数之积。例4.3:求Pi的近似值,其计算公式为:练习:用写出求下式的前一百项结果的VB代码5For循环语句应用举例(续一)例4.4:房屋贷款的年利率是4.81%,如果一次性贷款15万元,15年后归还,则归还时,应偿还的本息总额是多少?例4.4的深入:若贷款分15年归还,每年归还本金相同,那么累计还款金额是多少?6For循环应用:打印ASCII码表ASCII码是计算机常用的字符编码例4.2:打印ASCII码表的程序码表中:32以前的是

3、非打印字符32对应的是空格09对应的ASCII码范围是4857大写字母对应的ASCII码范围是6590小写字母对应的ASCII码范围是971227For循环应用:猴子吃桃小猴子在一天摘了若干个桃子,当天吃掉了一半多一个;第二天接着吃了剩下的桃子的一半多一个;以后每天都吃掉剩余桃子的一半多一个,到第8天早上要吃的时候,只剩下一个桃子了,问:小猴子那天共摘了多少个桃子?分析:设第n天的桃子数为 ,那么它是前一天桃子数的二分之一减一,即: 或8For循环应用:素数判断素数,也称质数,指一个大于1且只能被1和自身整除的正整数。 判别某数m是否为素数的方法很多,最简单的方法是根据素数的定义来求解,其算法

4、思路是: 用 分别去除m,判断m能否被i整除,只要有一个能整除,m就不是素数,否则m是素数。 9作业(思考题,下次课提问)用For循环语句实现如下计算:(1)求11000的所有偶数之和;(2)求11000的所有被3除余1的数之积;(3)求(4)求菲波那乞数列的第100项。菲波那乞数列:1,1,2,3,5,8,1310While循环(条件型循环)While 条件 循环体 Wend条件:一般为条件表达式,值为True或False条件在循环体内应有所变动,否则造成不循环或“死循环”;没有循环体的循环称“空循环”11While循环举例使用While循环语句实现没有重复的学号抽取使用While循环语句改

5、写连加的例子使用While循环语句改写连乘的例子使用While循环语句改写素数判断程序12Do循环(条件型循环)先判断型Do循环语句:Do While或Until 条件 语句体 Exit 满足某条件时 语句体Loop后判断型Do循环语句: Do 语句体 Exit 满足某条件时 语句体Loop While或Until 条件13Do循环举例使用Do循环语句改写连加的例子使用Do循环语句改写连乘的例子没有条件的Do语句(使用Exit语句结束)使用Do循环语句实现没有重复的学号抽取14循环的嵌套在一个循环体内又包含了一个完整循环的循环结构称为循环的嵌套。注意:内外循环变量不能重名;内外循环不能交叉。允

6、许:两个并列的循环;正确的嵌套15循环嵌套的举例例4.5:打印九九乘法表例4.6:百元找零(穷举法举例)应用举例4.5.1:打印五角星16打印五角星应用举例4.5.1:打印如下列各图所示的五角星17打印九九乘法表例4.5:在窗体上打印出如下图所示的九九乘法表18百元找零(穷举法举例)把一张一百元的人民币,兑换成40张1元、2元或5元的零钱,编程计算可以有多少种兑换方法。 分析:设1元、2元、5元的零币分别为x、y、z张,根据题目要求,列出方程为 三个未知数,只有两个个方程,因此解不确定,可以有如下两种方法求解: 三重循环,都是从0到40; 三重循环,内循环利用外循环的条件。19作业1. For

7、循环语句的循环次数应如何计算?2. For循环与Do循环有何区别?哪种循环至少循环一次?什么叫“死循环”?什么叫“空循环”? 3. 简述For循环语句执行的过程。4. 简述While循环语句执行的过程。5. 简述Do循环语句执行的过程。20第六次上机总结1. 求sinx的值:递推的使用以及防止溢出;2. 打印九九乘法表:重点。3. 百元买百鸡问题:两个条件;循环次数4. 打印五角星:分号的使用;打印起始位置的控制;打印行数的控制;五角星个数的控制。21数组数组可以用来处理同一性质的成批数据固定数组动态数组控件数组22引例:求15个观测值的均值方差例4.8:求15个观测值 的均值和方差。均值:中

8、误差:23求15个观测值的均值方差:代码不用数组的写法 算术平均值和中误差(不用数组)使用数组的写法 算术平均值和中误差(用数组)24固定数组数组的声明:数组的基本操作:(1)给数组元素赋初值;(2)数组的输入和赋值;(3)数组的输出;(4)求数组最大元素所在的下标;(5)交换数组中各元素;(6)数组元素排序;(7)求数组各元素之和;(8)求二维数组行和、列和、对角线和25固定数组的声明一维数组:Dim 数组名(下标) As 类型其中:数组名的命名规则与变量命名规则相同;下标必须为常数(要使用变量或者表达式,需用动态数组);下标的形式为下界 to 上界,省略下界时,默认为0;类型为任何一种VB

9、的数据类型。一维数组举例:Dim A(6) As Integer 数组元素下标从0开始,共7个Dim a(1 to 7) As Interger 下标从1开始,共7个Dim x(15) As Double 下表从0开始,共16个26固定数组的声明(续)多维数组:Dim 数组名(下标1, 下标2, 下标3, ) As 类型其中:下标个数决定了数组的维数;数组每一维的大小与一维数组的计算方法相同;数组总的大小维每一维大小的乘积。多维数组举例:Dim Matrix(3, 4) As DoubleDim a(1 to 3, 1 to 4) As IntegerDim b(5, 1 to 9, 1 to

10、 6) As LongDim c(1 to 4, 7, 3 to 9) as Single27数组的输入给数组赋初值For i = 1 to 15 v(i) = 0Next i数组的输入For i =1 to 15 v(i) = InputBox(“请输入第” & i & “个观测值”)Next i数组的赋值For i = 1 to 15b(i) = a(i) 或者 b = a (Vb6.0以后) Next i28数组的输出一维数组的输出:For i = 1 to 15Print v(i);” ”Next i二维数组的输出:For i = 1 to 15For j = 1 to 15Print

11、 Q(i, j);” ”Next jPrint Next i29求数组中最大元素及其下标Dim Max As Integer, iMax As Integer, sum As Integer数组V赋初值Max = V(1):iMax =1For i=2 to 15If V(i) Max ThenMax = V(i)iMax = iEnd IfNext i2315630交换数组中各元素将数组第1个元素与最后一个交换,第2个元素与倒数第2个元素交换,依此类推,结果如图所示:For i = 1 to 10 2Temp = v(i)v(i) = v(15 i + 1)v(15 i + 1) = Tem

12、pNext i31思考题1. 如何求一维数组最小元素及其下标?如何求二维数组的最小元素及其下标?2. 进行数组元素交换操作时,为什么循环的终值是15 2,而不是15?如果要将数组的前一半元素与后一半元素交换,即第1个与第9个交换,第2个与第10个交换,上述代码应如何修改?32数组应用举例:40抽12的实现从40个学号中直接抽出12个互不相同的学号点名:(1) 完全不使用数组的写法;(2) 使用数组进行重复判断的写法;(3) 完全使用数组的写法;33控件数组类型相同且功能相近的控件可以组成控件数组,它们使用相同的名称(Name),通过索引值(下标)来互相区别。创建控件数组:(1)设计时创建;(2

13、)运行时动态加载;34控件数组应用举例应用举例4.5.7:考试成绩分析统计应用举例4.5.5:矩阵运算程序*35动态数组事先不知道数组大小时,可以声明该数组为动态数组,在需要时再用ReDim语句指定数组的大小。创建动态数组的步骤:(1)声明数组为动态数组;(2)在需要时指定数组大小。36动态数组应用举例应用举例4.5.2:观测值均值和中误差的计算应用举例4.5.3:学号抽点程序的完善37求数组各元素之和一维求和:For i = 1 to 15sum =sum + v(i)Next i二维求和:For i = 1 to 15For j = 1 to 15sum = sum + Q(i, j)Ne

14、xt jNext i38数组元素排序选择法排序:从n个数中选出最小数,将其与第1个数交换位置;除第1个数外,其余n-1个数再按步骤选出次小数,与第2个数交换位置;重复步骤 n-1次,构成递增序列。39数组元素排序(续一)DimiA%(1to10),Min%,n%,i%,j%,temp%iA(1)=8:iA(2)=6:iA(3)=9:iA(4)=3:iA(5)=2:iA(6)=7n=6Fori=1Ton-1iMin=iForj=i+1TonIfiA(j)iA(iMin)TheniMin=jNextjt=iA(i):iA(i)=iA(iMin):iA(iMin)=tNexti40数组元素排序(续二

15、)冒泡法排序:用第1个数开始,比较相邻两个数,若前一个数比后一个数大,则交换位置,经过一轮比较后,最小一个数已经冒出;从第2个数起,仿照步骤 ,则比较后,次小的数冒出到第2个位置;重复步骤n-1次,最后工构成递增序列。41数组元素排序(续三)冒泡法排序代码:Fori=1Ton-1进行n-1轮比较Forj=i+1Ton从ni个元素进行两两比较IfiA(j)iA(i)Then若次序不对,则交换位置t=iA(j):iA(j)=iA(i):iA(i)=tEndIfNextj出内循环,一轮排序结束,最小数已冒到最上面Nexti42作业1. 如何声明一个一维固定数组?如何声明一个二维固定数组?如何声明相应

16、的动态数组?2. 如何根据数组的声明语句计算数组的大小?如何通过LBound()函数和UBound()函数获得数组的大小?3. 什么是控件数组?如何创建控件数组(分别说明两种方法)?43第七次上机总结(一)均值和中误差的计算程序 , 算例算例:对某个边长使用钢尺观测了12次,观测得到的结果分别为:23.106,23.107,23.114,23.099,23.100,23.112,23.095,23.102,23.109,23.110,23.102,23.097使用编写的程序计算上述观测结果的均值和中误差。44第七次上机总结(二)彩票抽奖程序(1)抽出特等奖1个,要求由8位数字组成,并用适当的方

17、式显示出来。(2)用同样的方法抽出一等奖3个,并用适当的方式显示出来。(3)抽出二等奖5个和三等奖10个,分别使用数组来存放这些号码。45第七次上机总结(三)成绩分析统计程序(1)使用InputBox输入若干成绩,计算平均分并显示出来;(2)统计上述成绩中的优秀人数和不及格人数;(3)统计上述成绩的优秀率和不及格率。46过程过程:程序中较小的逻辑部件)子过程(Sub过程):响应事件时执行的代码函数过程:使用Function语句自行编写的函数。使用过程:(1)创建过程;(2)调用过程;(3)调用其他模块中的过程。向过程传递参数*几个常用的过程47子过程子过程:相应事件时执行的代码块。作用:使查找

18、和修改、以及重复使用代码更容易。事件过程:Form_Load()事件过程;Command1_Click()事件过程;Form_Click()事件过程;Form_DblClick()事件过程;通用过程:清空各文本框;(没有参数)交换两个数的过程;(两个参数)三个数排序的过程;(三个参数)48函数过程函数过程与子过程的区别在于函数过程具有返回值。函数过程举例:计算某个函数表达式的值的函数;(一个参数)计算正弦值的函数;(一个参数)由三角形边长计算面积的函数;(三个参数)角度化算为弧度的函数;(一个参数)弧度化算为角度的函数;(一个参数)判断一个数是不是素数的函数;(一个参数)49使用过程创建过程将

19、已有代码修改成过程调用Sub过程调用函数过程调用其它模块中的过程50参数的传递形参和实参传址和传值*可选参数和可变参数*51过程应用举例:迭代法(附加题)例4.10:用两分法解非线性方程在(0,1)内的根,要求精确到0.0001。 (1)取a与b的中点 c = ( a + b ) / 2, 将求根区间两分; (2)判断根的三 种情况 :5253几个常用的过程(教材P133、134)角度化为弧度弧度化为角度求两点间的距离求两点间的坐标方位角54作业1. 子过程分为哪两类?如何定义一个子过程?2. 如何定义一个函数过程?3. 子过程与函数过程有何区别?4. 如何将例4.9的函数过程改写成一个子过程

20、?改写后,程序在调用时应如何做相应的修改?55高级界面设计键盘鼠标事件多窗体菜单通用对话框56键盘鼠标事件鼠标事件(1)MouseMove(2)MouseDown(3)MouseUp键盘事件(1)KeyPress(2)KeyDown(3)KeyUp57鼠标事件Private Sub Object_MouseMove(Button As Integer,ShiftAsInteger,XAsSingle,YAsSingle)EndSubPrivate Sub Object _MouseUp(Button As Integer,ShiftAsInteger,XAsSingle,YAsSingle)E

21、ndSubPrivateSubObject_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)EndSub 58鼠标事件应用举例点不中的命令按钮Private Sub Command1_MouseMove(Button As Integer, Shift As _ Integer, X As Single, Y As Single) Command1.Left = Command1.Left + Command1.Width Command1.Top = Command1.Top + Command1.HeightEnd

22、Sub思考:要让命令按钮随机地上下左右躲避鼠标,应如何实现?随鼠标移动的标签Private Sub Form_MouseMove(Button As Integer, Shift As _ Integer, X As Single, Y As Single) Command1.Left = X Command1.Top = YEnd Sub思考:要让命令按钮的中心对准鼠标,应如何实现?59Button参数的取值60Shift参数的取值61鼠标事件应用:从天而降的小猫小猫随鼠标移动小猫从天而降两种状态的切换62键盘事件PrivateSubTextl_KeyPress(KeyAsciiAsInte

23、ger)EndSubPrivate Sub object_KeyDown(keycode AsInteger,shiftAsInteger)EndSubPrivateSubobject_KeyUp(keycodeAsInteger,shiftAsInteger)EndSub63键盘事件应用举例按下按下Enter键时进行数据检查并执行某些操作键时进行数据检查并执行某些操作 在KeyPress事件里检查输入数据的有效性;检查通过后,自动把焦点转到下一个控件;若检查不通过,则提示用户,清空文本框,等待重新输入。(三角形面积程序)让输入的字符都变成大写字母让输入的字符都变成大写字母 对KeyPress

24、事件编程,截获用户输入的信息,并修改它们。KeyAscii = Asc(Ucase(KeyAscii)64KeyPress事件用于输入检查Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Not IsNumeric(Text1.Text) Then MsgBox 输入的不是数字,请重新输入! Text1.Text = Text1.SetFocus ElseIf Val(Text1.Text) 0 Then MsgBox 输入的边长小于0,请重新输入! Text1.Text = Text1.SetFo

25、cus Else Text2.SetFocus End If End IfEnd Sub65KeyPress事件用于截获输入PrivateSubTextl_KeyPress(KeyAsciiAsInteger)KeyAscii=Asc(UCase(Chr(KeyAscii)End Sub 66多窗体多窗体指一个应用程序中有多个并列的普通窗体,每个窗体可以有自己的界面和程序代码,完成不同的功能。添加窗体和移除窗体设置启动对象有关的语句、方法不同窗体间数据的存取67添加窗体单击“工程”菜单的“添加窗体”命令,弹出“添加窗体”对话框“现存”:添加一个已有窗体到本工程中。“新建”:新建一个窗体并添加到

26、本工程中。68设置启动窗体一个工程中有多个窗体时,默认第一个创建的窗体是启动窗体。可以单击“工程”菜单的“工程1 属性”命令,弹出工程属性设置对话框。在启动对象一栏,选择要设置为启动窗体的窗体。69多窗体有关语句、方法(1)Load语句:将窗体装入内存。(2)UnLoad语句:从内存中删除指定窗体。(3)Show方法:加载并显示窗体。(4)Hide方法:暂时隐藏窗体。70多窗体应用举例:测绘程序集 封面窗体 主窗体71不同窗体间的数据传递控件的属性:另一个窗体名.控件名.属性 变量的值: (变量的作用域)在标准模块(.BAS)中声明成全局变量例子:不同窗体件数据传递的例子72变量的作用域局部变

27、量局部变量在过程中声明,作用域是该过程内部。模块变量模块变量在窗体的通用声明段中声明,作用域是该窗体内部。全局变量全局变量在标准模块中用Public声明,作用域是整个工程。73高级界面设计键盘鼠标事件多窗体菜单菜单通用对话框通用对话框74菜单菜单是应用程序的组成部分之一,由菜单栏和下拉菜单组成。建立菜单把代码连接到菜单上动态修改菜单状态弹出式菜单75菜单应用举例一:记事本76把代码连接到菜单上每个菜单项都是一个对象,都具有一些特定的事件过程。在某菜单项的Click事件过程中编写代码,就可以使菜单在单击时实现相应的功能。77动态修改菜单的状态菜单编辑器中的“有效”、“可见”选项对应菜单项的Ena

28、bled和Visible属性。在程序运行当中修改这些属性,就可以动态地修改菜单的状态。例如:在设计状态把某些菜单项隐藏,等到执行某种操作(如打开文件)后,再显示。78弹出式菜单先在菜单编辑器中编辑该菜单。使用PopupMenu方法实现弹出式菜单。说明:(1)弹出式菜单在编辑时一般将可见选项设为不可见;(2)一般弹出式菜单都是在鼠标右键单击时弹出。弹出式菜单举例79菜单应用举例二:控制网平差程序80通用对话框通用对话框控件(CommonDialog Control):一组基于Windows的标准对话框界面。六种样式的通用对话框:文件打开、文件另存为、颜色、字体、打印和帮助。通用对话框只用于显示,

29、不能真正实现各项功能:需要用户通过编程解决。81文件打开对话框82文件另存为对话框83颜色对话框84字体对话框85打印对话框86通用对话框的使用调用通用对话框: 给Action属性赋值 使用Show方法共同属性:Action、DialogTitle设置文件对话框:FileName、FileTitle、Filter、FilterIndex、InitDir87例4.17:菜单和通用对话框举例设计一个程序,单击“打开”菜单,弹出打开文件对话框,选择文本文件,并调用记事本打开;单击“退出程序”菜单项,退出程序。88菜单设计89代码编写Private Sub mnuOpen_Click() 打开文件 C

30、ommonDialog1.Filter=文本文件(*.txt)| _ *.txt | 所有文件(*.*)|*.* CommonDialog1.Action = 1 Shell c:windowsnotepad.exe & _ CommonDialog1.FileName, vbNormalFocusEnd Sub90应用举例单导线计算程序的界面设计应用举例4.5.4:水平角计算程序91单导线计算程序的界面92单导线程序中菜单功能的实现“打开数据”功能:显示“打开”对话框“保存数据”功能:显示“另存为”对话框“退出”功能:退出程序“关于”功能:显示关于窗体93水平角计算程序94水平角计算程序的完善95作业1. MouseMove事件和MouseDown事件有何区别?2. KeyPress事件与KeyUp事件有何区别?3. 如何实现不同窗体间的数据存取?4. 如何把代码连接到菜单上?如何实现弹出式菜单?5. 如何设置文件对话框的过滤文件类型?如何设置文件对话框的标题?如何设置文件对话框的默认路径?如何显示文件另存为对话框?96第四章小结4.1 循环结构4.2 数组4.3 过程4.4 高级界面设计4.5 批量数据的输入和输出 *4.6 应用举例97

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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