VisualBasic程序设计课件_第1页
VisualBasic程序设计课件_第2页
VisualBasic程序设计课件_第3页
VisualBasic程序设计课件_第4页
VisualBasic程序设计课件_第5页
已阅读5页,还剩179页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程

:计算机技术基础——VisualBasic

程序设计学时:56/18上课:38学时,共19次,一周2次实验:18学时,共9次上机,一周1次教师:邮箱:QQ

:学习内容:第1章——第8章学习方法:用功记住理论知识真正理解、勤思考自己动手编程、做题上课专心听讲、上机认真完成实验题目上机考试:选择题、填空题、编程题里仁学院司亚利第1章VisualBasic程序设计概述VisualBasic程序设计1、什么是VisualBasic?Basic:BeginnersAll-PurposeSymbolicInstructionCode,

初学者通用指令代码语言。Visual:原意是指“可视的”或“看得见的”,是为用户开发图形用户界面(GUI)提供的一种方法。2、VB是微软公司开发,于1991年推出第一个版本VB1.0。本课程使用VisualBasic6.0

:标准版;专业版;企业版。1.1VB简介3、VB的特点

VisualBasic是

Microsoft公司开发的,一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。(P1下)4、VB的功能强大1.1VB简介1、VisualBasic6.0的运行环境2、VisualBasic6.0的安装3、VisualBasic6.0的启动4、VisualBasic6.0的退出1.2VB6.0的启动

VB应用程序设计是在一个集成开发环境(IDE,IntegratedDevelopingEnvironment)中完成的。集成开发环境是指将程序的设计、编辑、修改、运行、调试查错等各种功能一体化的开发环境。(P2下)

1、主窗口

2、其他窗口窗体设计器窗口属性窗口工程资源管理器窗口代码窗口(P4第一段和图1-2-3)1.2VB6.0的基本界面窗体布局窗口立即窗口工具箱窗口菜单栏工具栏标题栏工具箱工程管理窗口属性窗口布局窗口立即窗口窗体设计窗口1.2VB6.0的基本界面各窗口知识要点:1、标题栏中显示的VB工作模式,3种:设计模式:design可以设计界面,可以编写代码。运行模式:run不可设计界面,不可编写代码。中断模式:break程序运行暂时中断。不可设计界面,可编写代码。按F5/单击“继续”、单击“结束”。2、窗体窗口:最多255个;网格点;窗体名(name)、窗体文件名(保存时)、窗体标题栏名(caption)3者的区别

1.2VB6.0的基本界面3、工具箱:(P5)

包含用来构造应用程序界面的各种控件。含有20个标准控件;增添新控件:右击工具箱→“部件”→选择控件→“确定”4、立即窗口:(P25-26)2个作用

运行命令或函数;10*26+10mod4*2+1

调试程序,输出中间运行结果。1.2VB6.0的基本界面5、工程资源管理器窗口:以树型结构列出应用程序所包含的文件。

工程管理功能:右击添加文件、删除文件等;

双击查看相应对象;1.2VB6.0的基本界面工程资源管理器窗口的文件分为6类:(P25)文件类型扩展名缩写由来窗体文件.frmform标准模块文件.basbasic类模块文件.clsclass资源文件.resresource工程文件.vbpVBproject工程组文件.vbgVBprojectgroup1.2VB6.0的基本界面一个VB应用程序中各主要文件的结构关系如下图:1.2VB6.0的基本界面1.3VB应用程序设计初步步骤:1、分析程序问题。已知条件、要实现什么,在草纸上画出你设计的界面,简单写写代码。2、创建工程。3、在窗体上放置、调整控件,设置窗体和控件属性。(P8-9)4、编写程序代码,调试程序。(P10)5、保存窗体、工程等文件。(P10)6、VB应用程序的执行,2种方式:(P11)

解释方式:“启动”;F5

编译方式:生成可执行(.exe)文件,文件→生成工程.exe

举例演示:例1-3-1(P7)1.4

面向对象的程序设计面向对象的程序设计(objectorientedprogramming):

是一种以对象为基础、以事件驱动对象对事件进行处理的程序设计技术。(P13第二段)1.4VB中的对象和类(P13)1、对象:具有属性和行为的实体。

是数据和代码的集合。例:世上存在的任何事物每个窗体和控件2、类:是具有相同性质的对象的集合,也是创建对象实例的模板,而对象则是类的一个实例。属于同一类的所有对象具有同一组属性、方法与事件,只是其属性值不同,对事件的响应不同。例:球按钮控件

1.4VB中的事件同一事件,对不同的对象,会引发不同的反应:教师_铃声()

讲课EndSub学生_铃声()

听讲EndSub其他人员_铃声()

可不予响应EndSub1.4

对象的三要素(P13下)

对象由3方面组成:属性、方法、事件每个对象有自己的特征(属性)、行为(方法)和发生在该对象上的活动(事件)。例:人具有身高等特征,具有行走、说话等行为,外界作用在人对象上的各种活动,如下雨等。1.4VB中对象的三要素1、属性:对象的特征,描述对象的数据。设置:属性窗口,在代码窗口进行语句设置。(P18)

对象名.属性名称=属性值Label1.Caption="123"2、方法:特定对象能执行的动作或功能,已设计好的特殊程序,要会用。(P21)

格式:对象名.方法名[参数]Form2.ShowForm1.Print"VB"

Form1.Cls

Form1.Circle(2300,1600),8003、事件:能被对象识别和响应的动作。(P20)

事件在代码窗口中列出,选择。格式:对象名_事件名(参数) Label1_Click()1.4VB中的事件事件过程:响应事件后执行的操作通过一段程序来实现,这样的程序叫事件过程。

Sub对象名_事件名(参数)… →

事件过程代码

EndSub事件驱动机制:(P20)

在没有事件发生时,VB应用程序处于等待状态。当一个事件发生时,程序会执行相应的事件过程代码。处理完后,又等待下一个事件的发生。事件发生的顺序基本上决定了程序代码的实行顺序。

1.4

例题对编程步骤、属性、方法、事件的应用练习:例1-4-1P231.4

学习界面设计的4个控件对象(P14-18)1、窗体2、命令按钮3、标签4、文本框里仁学院司亚利

第2章VB语言基础VisualBasic程序设计基础写代码部分:sub代码段的开头

dim…定义变量(2.1、2.2)

…功能代码语句(2.3、2.4、第3、5、6章)endsub代码段的结尾

编程时使用的VB字符集(必须是英文输入法下输入的),3类,共89个字符:字母:A-Za-z数字:0-9专用字符:27个

%&!#$@+-*/\^><=()'",;:.?_空格符回车键2.1VB语言字符集2.1VB的数据类型(P29)在实际编程时,要会恰当选择应用truefalse真假2.2

常量1、直接常量:代码中直接给出的数据。(P30)数值常量:s=3.1415926*r*r

前加&O&H表示进制;后加&表示长整型字符串常量:textbox1.text="VB程序设计2010。"逻辑常量:Label1.Visible=tureCommand.Enabled=false

(P32)日期常量:Label1.Caption=#2/23/2010#2、符号常量:用标识符代表常量值。(P38)

定义格式:const常量名[As类型]=表达式

constpi=3.1415926s=pi*r*r:c=2*pi*rVB内部定义的符号常量:对象浏览器2.2

变量(P32)1、变量:值可改变的量,在内存中存储,通过变量名标识。2、变量的2种形式:内存变量、属性变量。3、变量的命名规则:(P32)要求会辨别合法/非法变量名例:以下合法的VB变量名是()A)ForNextB)ConstC)9abcD)a#x2.2

定义变量1、显式声明变量,即先定义再使用。

2种定义形式:<public|private|dim|static>变量名[As数据类型](P33)

[dim]变量名类型声明符(P36下)

给变量赋值(使用):[Let]<变量名>=<表达式>例:dimaasinteger[dim]a%声明

a=10a=7使用说明:4点(P33)2、隐式声明变量:没有声明,直接使用。例:a="

12"

这种方法是不好的习惯,要求变量要用显式声明。3、强制显式声明:加入语句optionexplicit选项→编辑器2.2

变量1、字符串型变量:(P34下)

变长字符串变量:dim变量名asstring

或

dim变量名$

定长字符串变量:dim变量名asstring*字符串长度

字符串长度表示的是字符的个数,空格填充,截去超出部分。例:dimaasstringdimaasstring*10a=textbox1.texta="hello北京"2、自定义数据类型

定义:(P35下)

使用:(P36)2.2

变量3、变量的作用域(P33)

名称作用域声明位置使用关键字局部变量过程过程中Dim或Static模块变量窗体模块或标准模块模块的声明部分Dim或Private全局变量整个应用程序标准模块的声明部分Public2.3

运算符1、算术运算符:(P39表2-3-1)2、字符串运算符:(P40)&:把两边看作字符型,连接

+:分情况3、关系运算符:(P41表)结果:真true-1假false0

都是数值型,按数值大小比较。都是字符型,按ASCII码从左到右逐个比较。ASCII码值大小关系:空格<数字<大写字母<小写字母<汉字4、逻辑运算符:(P42表)

与、或、非例:print10and62.3

表达式常用的内部函数1、表达式:用运算符连接常量、变量、函数、括号等的式子。2、要正确地把数学式子写成VB的表达式:(P43例子)

写成一行;乘号不能省;适当加括号保证优先级。3、运算符的优先级别:表2-3-4P434、常用的内部函数:P46-53,尽量多掌握函数。2.3

表达式常用的内部函数注意:1、三角函数:弧度和角度的转换求30度的正弦值:sin(30*3.14/180)2、取整函数:int(x)fix(x)round(x)、round(x,y):可以四舍五入int(-11.4)fix(-11.4)round(1.512)round(1.512,2)3、随机数函数:(P46)

rnd(x)产生[0,1)内的Single类型数据如生成[m,n]区间的随机整数,使用表达式

Int(m+Rnd*(n-m+1))随机产生28~66之间的整数内容简单,自己细看每一个运算,优先级,常用函数。选择题,要能正确运算出表达式的结果。

学习要求2.4VB的编码规则(P52)1、不区分大小写。2、续行:行尾加下划线_3、多条语句写在一行:用冒号隔开4、注释代码后:用’开头单独行:用’或rem开头

“设置注释块”按钮1、分析问题:

(1)给出的条件(已知)(2)输出内容(求)(3)问题中用到的变量或常量等内容

(4)如何解题(思考用什么VB代码实现)2、把上面每一部分都写成相应的代码块3、把代码块放到到一起4、检查,启动运行

写代码部分----编程思想顺序结构选择结构循环结构

第3章程序流程控制VisualBasic程序设计基础1、在顺序结构中,语句将按照出现的顺序逐条执行,从上到下。2、包含3类语句:数据输入赋值语句数据输出

3.1

顺序结构程序设计定义变量输出计算输入/赋值1、TextBox文本框控件(P64):返回字符串型字符型转换成数值型:val(string)函数数值型转换成字符型:str(x)函数函数名(参数1,参数2,……)→得到一个结果dimaasinteger,basinteger,casinteger,dasstringa=sqr(9):b=val("vb6good"):c=val("35yes42")d=str(-36.8):printa,b,c,d

书上例3-1-7、3-1-83.1

数据输入2、InputBox()输入框函数(P66)

可产生一个对话框,作为输入数据的界面,等待用户输入数据,并返回所输入的内容,返回字符串型。变量名=InputBox(提示信息[,标题][,默认值][,xpos,ypos])

显示位置3.1

数据输入1、提示内容换行:加入回车符chr(13)、换行符chr(10)2、点击“确定”,返回输入的内容,字符串型。点击“取消”,返回空字符串。或chr(10)3、a=inputbox("您好!"&chr(13)&_"请输入系统口令:",_"口令输入","*",1000,500)3.1

InputBox()函数说明例:单击窗体时,使用inputbox()函数/文本框输入名字和年龄,在窗体上输出显示。privatesubform_click()dimnameasstring,ageasintegername=inputbox("请输入您的名字")age=val(inputbox("请输入您的年龄","输入"))printname,ageendsub

name=text1.text:age=val(text2.text)3.1

数据输入

当一个对象具有焦点时,它可以接收用户的输入。1、接收焦点前提:Enabled和Visible属性为True2、设置焦点

·在运行时单击对象·运行时用快捷键选择对象

·在程序代码中使用SetFocus方法:例3-1-8中,激活窗体时,焦点位于文本框中。3、涉及到焦点的2个事件:当对象得到焦点时,产生GotFocus事件;而当对象失去焦点时,将产生LostFocus事件。4、Tab顺序:是按Tab时焦点在各个控件间移动的顺序。

用TabIndex属性设置不参与的,TabStop属性设为False5、卸载对象语句:unload对象名结束语句:end

3.1

焦点和Tab顺序(P67)1、格式:

[let]变量名=表达式

赋值号

[let]对象名.属性名=表达式2、含义:(1)计算赋值号右边表达式的值;(2)将此值赋给赋值号左边的标识符代表的变量或控件属性,作为它的当前值;x=y(3)该值一直保存到下一次再对它赋值为止。(4)分清赋值号、关系运算符的等号。A=5=6(5)赋值号两边的数据类型通常要一致,或转换成左侧的类型。例3-1-1(P56)

。例3-1-2:学会实现交换的方法。3.1

赋值语句let(P55)类型转换例子:单击窗体,代码执行结果是什么?privatesubform_click()dimxasboolean,aasintegerx=-2a=trueprintx,aendsub逻辑数值型:true-1false0数值型逻辑:非0true0falsetrue-13.1

赋值语句交换例:书上是交换两个内容,如何交换两个数值?privatesubcommand1_click()dimmasdouble,nasdouble,tasdoublem=val(text1.text)n=val(text2.text)t=mm=nn=ttext1.text=mtext2.text=nendsub3.1

赋值语句1、Label标签控件显示文本(P58)

例3-1-3、3-1-42、TextBox控件显示文本3、Print方法输出(P60)

4、format()函数设置输出格式5、msgbox函数和过程显示提示信息(P62)3.1

数据输出作用:在对象上输出信息格式:[对象.]Print[表达式列表][;|,]对象:窗体、图片框、立即窗口或打印机(Pinter),

省略对象在窗体上输出。

print"VB"form1.print"VB"picture.print"VB"debug.print"VB"printer.print"VB"print表示输出一个空行。3.1

Print方法(P60)输出多个表达式,各项之间可以用;,隔开:;(分号):紧凑格式,光标定位上一个显示的字符后。,(逗号):标准格式,光标定位在下一个打印区的开始位置处。每个打印区占14列。例3-1-5(P61)Spc(n)函数:插入n个空格,跳过n列。Tab(n)函数:指定输出的起始列号,第n列。printtab(5);"计算机";tab(15);"世界"print"计算机";spc(5);"世界"3.1

Print方法2个作用:1、在对话框中显示信息:过程使用形式:msgbox"提示信息",对话框样式,标题2、等待用户单击按钮,返回一个整数:函数使用形式:变量=msgbox("提示信息",对话框样式,标题)

可使用3组VB常量:按钮+图标+默认按钮例:msgbox"密码不正确"

,,"登录"a=msgbox("确定要删除信息么?"

,3,"确认信息")3.1

msgbox函数和过程显示提示信息(P62)3.1

顺序结构程序设计例:msgbox的使用举例privatesubcommand1_click()dimrasintegermsgbox"最简单的msgbox"r=msgbox("复杂的msgbox",vbYesNo+vbCritical+vbDefaultButton2,_"你看到了什么?")

print"你按的值为:";rendsub4+16+2563.1

msgbox函数和过程显示提示信息例1:在银行存款,计算本利和的公式为:其中p为存款数,n为年数,r为年利率,s为n年后本金和利息之和。设p=1000,n=3,r=0.02,编程计算本利和,输出结果要求保留小数点后两位,四舍五入。例2:用户输入三角形的三边,计算输出三角形的面积。a,b,c为三边之长。3.1

顺序结构程序设计例题

选择结构的作用是使程序依照条件而走不同的支路。程序往往根据需要而选择合适的语句结构。VB支持的选择结构有:

If...ThenIf...Then...ElseIf...Then...ElseifSelectCaseiif函数3.2

选择结构程序设计用If...Then结构可以有条件地执行其结构内的语句块。格式一:

If条件表达式Then语句块格式二:

If条件表达式Then

语句块

EndIf说明:x>yxory表达式:关系表达式、逻辑表达式,算术表达式。表达式值按非零为True,零为False进行判断。格式一只能是一句语句或语句间用冒号分隔,而且必须在一行上书写。3.2

选择结构if...then

单分支结构3.2

选择结构If...Then

例3-2-1(P69):输出a,b,c三者之中最大数。例:已知两个数x和y,比较它们的大小,使得x大于y。

Ifx<yThent=xx=yy=tEndIf或Ifx<yThent=x:x=y:y=t3.2

选择结构If...Then

学会交换两个数可以使用If...Then...Else语句建立两个分支流程,并根据条件选择其中一个分支。语法结构:If条件Then语句块1Else语句块2

If条件Then

语句块1Else

语句块2EndIf

例:用户输入一个整数,判断并输出是奇数/偶数。3.2

选择结构If...Then...Else双分支结构3.2

选择结构If...Then...Else3.2

选择结构If...Then...Else例:计算分段函数Ifx<>0Then

双分支y=sin(x)+sqr(x*x+1)结构实现Elsey=cos(x)-x^3+3*xEndIf单分支

y=cos(x)-x^3+3*x结构实现Ifx<>0Theny=sin(x)+sqrt(x*x+1)例3-2-2(P69)例3-2-3(P72)建立多个分支流程,并根据条件选择其中一个分支。语法结构:

If条件1Then

语句块1ElseIf条件2Then

语句块2...[Else

语句块n]EndIf

3.2

选择结构If...Then...Elseif多分支结构不管有几个分支,依次判断,当某条件满足,执行相应的语句,其余分支不再执行;若条件都不满足,且有Else子句,则执行该语句块,否则什么也不执行。ElseIf不能写成ElseIf例:已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。

IfUCase(ch)>="A"AndUCase(ch)<="Z"ThenMsgBoxch+"是字母字符"'考虑大小写字母

ElseIfch>="0"Andch<="9"Then'数字字符

MsgBoxch+"是数字字符"Else'除上述字符以外的字符

MsgBoxch+"是其他字符"EndIf3.2

选择结构If...Then...Elseif例:求多段函数值3.2

选择结构If...Then...Elseif

x2-1x<0x0≤x<10y=x2+110≤x≤20x3+x+120<xdimxassingle,yassinglex=val(inputbox("输入x的值:"))ifx<0theny=x^2-1elseifx<10theny=xelseifx<=20theny=x^2+1elsey=x^3+x+1endifprint"y=";y例3-2-4(P74)例3-2-5(P75)

SelectCase是用于实现多重选择,其作用与If...Then...Else语句类似,但主要用于只有一个条件,并且条件值为离散值的分支选择。SelectCase测试表达式

Case表达式1

语句块1Case表达式2

语句块2……CaseElse

语句块nEndSelect3.2

选择结构SelectCase

情况语句表达式与测试表达式的类型必须相同,是下面4种形式之一:一组用逗号分隔的枚举值:case2,4,6,11表达式1To表达式2:case60To100Is比较运算符表达式:caseIs<60混合形式:case2,1,4to6,is>323.2

选择结构SelectCase

例:已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。改用SelectCase语句实现:SelectCasech Case"a"To"z","A"To"Z" MsgBoxch+"是字母字符" Case"0"To"9" MsgBoxch+"是数字字符" CaseElse MsgBoxch+"是其他字符"EndSelect3.2

选择结构SelectCase

例:判断坐标点(x,y),落在哪个象限。3.2

选择结构SelectCase

代码一 Ifx>0Andy>0ThenMsgBox("在第一象限")ElseIfx<0Andy>0ThenMsgBox("在第二象限") ElseIfx<0Andy<0ThenMsgBox("在第三象限") ElseIfx>0Andy<0ThenMsgBox("在第四象限") EndIf

代码二SelectCasex,yCasex>0Andy>0MsgBox(“在第一象限”)Casex<0Andy>0MsgBox(“在第二象限”)Casex<0Andy<0MsgBox(“在第三象限”)Casex>0Andy<0MsgBox(“在第四象限”)EndSelect代码二错误:1.SelectCase后不能出现多个变量2.Case后不能出现变量及有关运算符IIf(表达式,表达式为真时的函数值,表达式为假时的函数值)IIf函数是If…Then…Else结构的简洁表示例:将x,y中大的数,放入Tmax变量中:

Tmax=IIf(x>y,x,y)该语句与如下语句等价:

Ifx>yThenTmax=xElseTmax=y

3.2

选择结构IIf函数If表达式1Then

…

If表达式2Then…EndIf

…EndIf注意:每个结构块的清楚划分,首尾对应;每个结构块不能交叉。3.2

条件语句的嵌套例:输入三个数,按从大到小的顺序输出Ifx<yThent=x:x=y:y=tIfy<zThent=y:y=z:z=tIfx<yThent=x:x=y:y=tEndIfEndIfprintx,y,z3.2

条件语句的嵌套解题思想:先保证x>y,再拿z和y比较,保证y>z,至此z最小,最后比较x和y,保证x>y。

例:不断单击窗体,会有什么结果?privatesubform_click()

dimaasintegera=a+1ifa=1thenform1.caption="第一次单击窗体"

elseifa=2thenform1.caption="第二次单击窗体"

elseifa=3thenform1.caption="第三次单击窗体"

a=0endifendsub3.2

选择结构staticaasinteger

静态变量考虑用selectcase编写本程序例:根据输入的百分制成绩Score,转换成优、良、中、及格、不及格5个等级,并在窗体上显示出来。等级划分标准如下:优Score>=90

良80<=Score<90等级=中70<=Score<80

及格60<=Score<70

不及格Score<603.2

选择结构作业5种方法

引例:输出1~100的整数计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。循环结构有:

Do…Loop语句:控制循环次数未知的情况

For…Next语句:控制循环次数预知的情况3.3

循环结构(P82)

用于控制循环次数未知的循环结构。While当型循环/Until直到循环形式1:Do[While|Until<条件>

]

语句块

[ExitDo]Loop形式1为先判断后执行,有可能一次也不执行;形式2为先执行后判断,至少执行一次。P81例3-3-1到例3-3-4形式2:Do

语句块

[ExitDo]Loop[While|Until<条件>]3.3

Do…Loop循环语句【例3-3-1】计算1+2+3+…+100。当型循环PrivateSubForm_Load()DimsAsInteger,nAsIntegerShows=0:n=1DoWhile

n<=100s=s+nn=n+1LoopPrint"1+2+3+…100=";sEndSub

3.3

Do…Loop循环语句赋初值循环条件循环体条件修改【例3-3-1】计算1+2+3+…+100。当型循环PrivateSubForm_Load()DimsAsInteger,nAsIntegerShows=0:n=1DoWhile

n<=100s=s+nn=n+1LoopPrint"1+2+3+…100=";sEndSub

3.3

Do…Loop循环语句直到循环DoUntiln>100s=s+nn=n+1LoopDos=s+nn=n+1

Ifn>100ThenExitDoLoop3.3

Do…Loop循环语句【例3-3-4】输入两个正整数,求它们的最大公约数。“辗转相除法”:(1)以大数x作被除数,小数y作除数,相除后的余数为r。(2)若r≠0,则将x←y,y←r,继续x与y相除得到新的r,若仍有r≠0,则重复此过程,直到r=0为止。最后的除数y就是最大公约数。最小公倍数=两个数相乘/最大公约数3.3

Do…Loop循环语句PrivateSubCommand1_Click()x=Val(Text1.Text)y=Val(Text2.Text)Ifx*y=0ThenMsgBox"两个数都不能为0!",,"错误!"ExitSubEndIfIfx<yThent=x:x=y:y=tDo r=xMody Ifr=0ThenExitDo x=y:y=rLoopLabel3.Caption="两数的最大公约数是:"&Trim(Str(y))EndSubDo r=xMody x=y:y=rLoopwhiler<>03.3

Do…Loop循环语句For循环语句用于控制循环次数预知的循环结构。For循环变量=初值To终值

[Step步长]

循环体Next循环变量注意:(P85)>0初值<终值=1时,可省略<0初值>终值=0死循环步长3.3

For…Next循环语句循环次数=int((终值-初值)/步长+1)3.3

For…Next循环语句3.3

For…Next循环P85例3-3-5到例3-3-7【例3-3-5】求n!(n为自然数)PrivateSubForm_Activate()DimnAsInteger,iAsIntegerDimkAsLong'防止乘积结果溢出,将k定义为长整型或实型

n=InputBox("请输入n","求n!")

k=1赋初值

Fori=1Ton循环条件

k=k*i循环体

Nexti条件修改

Printn;"!=";kEndSub其中For循环语句也可以写成:k=1Fori=nTo1Step–1k=k*iNexti

【例3-3-5】求,直到第50项PrivateSubForm_Click()DimiAsInteger,tAsDouble,sAsSinglet=1:s=0Fori=1To50t=t*is=s+1/tNextPrint"s=";sEndSub3.3

For…Next循环P85例3-3-5到例3-3-7求自然对数e的近似值:Do

循环体没有条件的改变,这种为死循环Loop注意:要防止死循环,一般在循环体外设置循环变量,在循环体内用语句不断更改循环变量的值,从而有机会使循环条件成为真或假,退出循环。若出现死循环,可以使用Ctrl+Break键结束程序的执行。有时根据需要,要人为设置死循环。

3.3

死循环

1.Exit语句VB中有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下:

ExitFor、ExitDo、

ExitSub、ExitFunction2.End语句独立的End语句用于结束一个程序的运行,它可以放在任何事件过程中。循环的强制退出3.3

退出和结束语句

过程的强制退出在一个循环体内又包含了一个完整的循环结构称为循环的嵌套。循环嵌套对For循环语句和Do…Loop语句均适用。

fori=1to5…

forj=1toi…fork=1to7…nextk…nextj…nexti3.3

循环的嵌套P88例3-3-9到例3-3-11【例3-3-9】双重循环举例编写窗体的激活事件,程序如下:PrivateSubForm_Activate()DimiAsInteger,jAsIntegerFori=1To3

Forj=4To5Printi,jNextjNextiEndSub3.3

循环的嵌套【例3-3-10】设计一个窗体打印乘法九九表。PrivateSubForm_Click()FontSize=10PrintTab(31);"乘法九九表"PrintTab(30);"------------"Fori=1To9Forj=1ToiPrintTab((j-1)*8);i&"*"&j&"="&i*j;NextjPrint'每行之后产生一个换行NextiEndSub3.3

循环的嵌套【例3-3-11】在窗体上输出如图3-3-7的图形。PrivateSubForm_Click()ClsPrint:Print:PrintFori=1To8'输出8行

PrintTab(20-i);'控制每行的起始位置

Forj=1To2*i-1'每行输出2*i-1个“*”

Print"*";NextPrint'换行NextEndSub3.3

循环的嵌套例:输出1~20的整数。用5种方法实现。2个do…while2个直到循环do…until1个for…next3.3

循环的例子dimiasintegeri=1dowhilei<=20printii=i+1loopdoprintii=i+1loopwhilei<=20doprintii=i+1loopuntili>20dimiasintegeri=1dountili>20printii=i+1loopdimiasintegerfori=1to20printinext例:百元买百鸡。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。分析:(1)设母鸡、公鸡、小鸡各为x、y、z,列出方程为:

x+y+z=100 3x+2y+0.5z=100三个未知数,两个方程,此题求若干个整数解。(2)计算机求解此类问题,采用试凑法(也称穷举法)来实现,即将可能出现的各种情况一一罗列测试,判断是否满足条件,采用循环结构来实现。3.3

循环的综合应用-试凑法例:求自然对数e的近似值,其误差小于0.00001。近似公式

分析:本例涉及到程序设计中两个重要运算:累加和连乘i!。累加是在原有和的基础上再加一个数;连乘则是在原有积的基础上再乘以一个数。该题先求i!,再将1/i!进行累加,循环次数未知,可先设置一个次数很大的值,然后在循环体内判断是否到达精度,也可用DoWhile来实现。3.3

循环的综合应用-级数求和递推(迭代)法基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次都从旧值的基础上递推出新值,并由新值代替旧值。例:小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?分析:用后一天的数推出前一天的桃子数。设第n天的桃子为xn,是前一天的桃子的二分之一减去1。迭代法类似的应用求高次方程的近似根。

3.3

循环的综合应用-递推法里仁学院司亚利第4章窗体和常用内部控件VisualBasic程序设计基础1、窗体2、常用内部控件(标准控件)·按钮·标签·文本框·框架·计时器·滚动条·单选按钮·复选框·列表框·组合框·图片·图像·形状·直线

第4章窗体和常用内部控件1、窗体是放置VB提供的各种控件的一个容器,在窗体上设计和编辑应用程序的界面。2、窗体的添加修改删除工程→添加窗体窗体设计器工程资源管理器3、窗体文件:.frm4、组成:标题栏、边框、窗口区(P14图1-4-1)5、网格:工具→选项→通用4.1

窗体1、窗体常用的属性(P15表1-4-1)name、caption、height、width、left、top2、窗体的事件(P22表1-4-7)

Load、Activate、Click、DblClick、Unload3、窗体的方法

Show、Hide、Move、Print、Cls、Refresh4.1

窗体的属性、事件和方法Screen.HeightForm1.TopForm1.HeightOk.HeightOk.TopOk.LeftOk.WidthForm1.WidthForm1.LeftScreen.Width位置:top和left属性大小:width和height属性1twip=1/20点=1/1440英寸=1/567cm4.1

窗体、控件的位置、大小

应用程序有单窗体、多窗体情况,多窗体时:1、设置启动窗体工程属性→通用→启动对象2、不使用启动窗体以一个过程开始,选择SubMain4.1

设置启动窗体(P184)4.1SubMain

如果一应用程序只包含1个窗体,则程序从执行窗体Form的load过程开始。如果有多个窗体,则从设计阶段建立的第1个窗体开始执行。有时,希望在运行窗体程序之前先执行一些操作,此时可以将这些操作写在SubMain过程中。

Sub

Main是在模块中定义的,如果1个程序中包含有多个模块,只能允许有1个Sub

Main过程。Sub

Main过程中可以包含若干语句。但它与其他语言中的主程序不同,程序启动时不会自动执行。

可以指定程序从哪一个窗体或是SubMain开始执行。

P135例4-7-2一个窗体对象从程序启动到正常关闭必然触发事件的顺序:4.1

窗体的生命周期initalize(初始化)load(加载)resizeshow(改变窗体大小、可见状态)activate(窗体激活,此时处于等待其他事件发生的状态)执行程序queryunload(查询卸载)unload(卸载)例:单击Form1的命令按钮,使Form2显示,Form1隐藏;

Form2加载时,大小为屏幕大小的一半,居中显示;单击Form2,用Move方法,使Form2移动并定位在屏幕的左上角,同时Form2的长宽也缩小一倍。Form2.Width=Screen.Width/2Form2.Top=(Screen.Height-Form2.Height)/2Form2.Move0,0,Form2.Width/2,Form2.Height/24.1

窗体的实例按钮控件:命令按钮1、按钮的属性(P16表1-4-2)name、caption、height、width、left、top、enabled、visible2、按钮的事件(P22表1-4-7)Click例:设置一个按钮,要求:名称为“sell”,距离窗体左边500,上3000,按钮宽3000,高2000,提示文本为

“销售管理”,单击按钮窗体上显示“按钮例子!”,

而且按钮可见但不可用。4.2按钮Command1、标签:显示文本(P17表1-4-3)2、文本框:输入输出文本(P18表1-4-4)例:设置一个标签,要求:名称默认,可以根据里面的内容自动调整大小。(autosize)

设置一个文本框,要求:有水平和垂直滚动条(前提是允许多行),但不允许用户编辑。设置用户输入密码文本框,要求显示都是e。4.3文本控件:标签Label

文本框TextBox例:用户输入原始字符串,从中选取一些字符串,显示在另一个文本框中,并指明起始位置和长度。Text2.text=text1.seltextlabel1.caption=text1.selstartlabel2.caption=text1.sellength4.3按钮标签文本框综合练习容器型的控件:框架、窗体、图片框。添加框架主要属性P93例4-1-14-1-24.4框架frame

(P93)1、单选按钮optionbutton

属性captionvalue→选中true;没选中false;Click事件2、复选框checkbox

属性:captionvalue→没选中0;选中1;选中灰色2Click事件

上机实验1、2,P99例4-2-24.5选择控件:单选按钮、复选框1、列表框(P106)属性:list列表框中列出的各个选项ctrl+回车

listindex索引号,从0开始列表框中的第一项是:list2.list(0)="北京"listcount列表框中所有选项的个数

selected是否被选中truefalselist2.selected(3)=truetext当前选中项目的文本内容list2.textmultiselect:nonesimpleextendedstyle:标准样式0;复选框样式1sorted是否按字母顺序排列truefalseColumns:0列表中显示垂直滚动条

1~n列表中显示水平滚动条,同时在列表的宽度范围内显示1~n列数据4.6列表框listbox和组合框combobox

1、列表框Click事件AddItem方法list2.additem"abcd",2RemoveItem方法list2.removeitem3Clear方法list2.clearP108例4-3-14-3-24.6列表框listbox和组合框combobox

2、组合框(P113)

style、text属性;AddItem、RemoveItem、Clear方法上机实验44.6列表框listbox和组合框combobox

1、图片框PictureBox(P116)

显示图形,又可作为其它控件的容器。

Picture、AutoSize、image属性;loadpicture("");2、图像框image(P119)

显示静态图形Picture、stretch属性上机实验43、形状控件shapeBackStyle:0—透明的1—不透明的

Shape:4、直线line4.7图片框、图像框、形状、直线

没有width和height属性

interval属性:时间间隔,单位毫秒

Timer事件例:综合运用图形和时钟控件,实现运动的小红球。P121例4-5-14-5-24.8计时器控件timer(P121)

水平滚动条、垂直滚动条(P126)属性:max和min、smallchange和largechange、value事件:拖动滑块触发Scroll、改变value属性触发ChangeP127例4-6-14-6-24.9滚动条scrollbar

第5章数组VisualBasic程序设计基础里仁学院司亚利输入10个数,输出它们的平均值及大于平均值的那些数?

引例

输入A当N<=10N=N+1打印AveS=0:N=1S=S+AAve=S/10DimN%,S!,A!,Ave!ForN=1to10A=Val(InputBox(“EnterANumber”))S=S+ANextNAve=S/10PrintAve

引例

如果使用:A1,A2,A3,A4,A5,A6,A7,A11,A9,A10DimN%,S!,Ave!,A1!,A2!….,A10!‘实际程序是不能这样写

A1=Val(InputBox(“EnterA1Number”))A2=Val(InputBox(“EnterA2Number”))……S=A1+A2+A3+A4+A5+A6+A7+A11+A9+A10Ave=S/10IFA1>AveThenPrintA1IFA2>AveThenPrintA2……

思考换一种方法,用本章的数组实现。5.1

数组的概念1、一组类型相同数据的有序集合,用于保存大量的、逻辑上有联系的数据。2、表现形式:a(i)a(i,j)a是变量名,数组名i,j是下标

A(10)‘一维数组,对应数学中的数列

X(2,10)‘二维数组,对应数学中的矩阵

Y(1,2,5)‘三维数组3、数组的特点:数组中的元素类型一致。数组元素在内存空间上是连续存放。数组元素的引用可通过下标进行,每个元素用下标变量来区分;下标变量代表元素在数组中的位置。数组在使用前必须要定义(声明)。A(0)A(1)A(2)A(n)….

5.1

数组的概念4、VB中的数组分类:按数组的大小(元素个数)是否可以改变来分为:

固定数组、动态(可变长)数组。按元素的数据类型可分为:数值型数组、字符串数组、逻辑数组、日期型数组、变体数组等、对象数组。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论