VB顺序结构设计.ppt
- 文档编号:18727868
- 上传时间:2023-10-21
- 格式:PPT
- 页数:60
- 大小:712KB
VB顺序结构设计.ppt
《VB顺序结构设计.ppt》由会员分享,可在线阅读,更多相关《VB顺序结构设计.ppt(60页珍藏版)》请在冰点文库上搜索。
1,第四章顺序结构程序设计,VisualBasic程序设计,2,程序的概念,程序-可以被计算机处理的指令序列。
程序设计-根据所提出的任务,用某种程序设计语言编制一个能正确完成该任务的计算机程序。
3,一个程序应包括两个方面的内容:
沃思(NikiklausWirth)提出一个公式:
数据结构+算法=程序,数据结构算法程序设计方法语言工具,当今对以上公式的扩充:
程序的特性,4,算法的表示,可以用不同的方法表示算法,常用的有:
自然语言N-S图表示法传统流程图,以上3种描述各有特色初学者最好在编程之前,先画出算法流程建议用N-S盒图(禁用goto),5,结构化程序设计方法,思想:
模块化程序设计思想;原则:
从上往下,逐步求精;每个模块细化到可以直接编程;要求:
每个模块只有且必有一个入口和一个出口;,6,结构化程序设计方法,三种基本结构:
顺序选择循环,任何程序都可以用三种基本结构表示,优点:
结构清晰,易读,较高的质量和效率,7,
(1)顺序结构,B,A,B,流程图,N-S图,A执行完再执行B,箭头上方表示入口箭头下方表示出口,上面框表示入口下面框表示出口,8,事件驱动:
将代码划分成一些过程过程结构:
过程内部代码由三种基本结构组成即:
顺序结构、选择结构、循环结构顺序结构:
执行过程的次序从上到下,从左到右,例:
PrivateSubCommand1_Click()DimHAsSingle,RAsSingle变量的声明ConstPi=3.14H=Val(Text1.Text)R=Val(Text2.Text)Text3.Text=Pi*R2*HEndSub,9,顺序结构程序设计,主要内容赋值语句数据输入数据输出注释、暂停、程序结束语句,10,赋值语句是VB程序最常用、最基本的语句它能为变量提供数据。
若要在程序代码中设置对象的属性,也要使用赋值语句。
数据输入:
将要加工的数据输入到计算机中可使用赋值语句,输入函数,文本框控件,,11,赋值将给定数值赋给变量或对象(的属性),赋值语句,赋值语句格式=.=,语句中的变量名应符合VB变量命名约定,表达式可以是常量、变量、表达式,对象名缺省时为当前窗体变量未赋值时,数值型变量为0,字符串变量为空串赋值号“=”与数学中的等号意义不同,赋值号左边必须是变量或对象属性,R=3+A,Text1.Font=“黑体”,12,说明:
执行过程:
先求表达式的值,然后将值赋值给左边的变量不要将“”理解为数学上的等号A=A+1表示:
将A单元的值加后以放回到A单元,执行过程如右图,13,3赋值符号“=”左边只能是变量名或对象的属性引用,不能是常量、符号常量、表达式。
下面的赋值语句都是错的:
5=X左边是常量Abs(X)=20左边是函数调用,即是表达式,4.赋值符号“=”两边的数据类型相容,一般要求应一致,类型相容:
指变量名或对象属性名能够正确存取赋值号右边的表达式的值。
5.给可变类型的变量赋值后,变量的类型为赋值号右边表达式的类型,14,课堂练习1(数据类型相容):
判断A、B、C、S的值,DimAAsInteger,BAsSingle,CAsDouble,SAsString(或DimA%,B!
C#,S$)A=100将整型数100赋给整型变量AS=123.45将字符串123.45赋给变量SA=S将数字字符串变量赋值给整型变量,变量A中存放123,类型相容S=AS中存放字符串123B=12345.67A=B单精度变量赋值给整型变量,先四舍五入后取整,A中存放12346C=123456.789B=C双精度变量赋值给单精度变量。
有效数字7位先四舍五入,后取整。
变量B中存放123456.8S=abcA=S运行错误,类型不匹配,15,课堂练习2:
执行下列各赋值语句后,A的数据类型是什么?
(设A没有定义数据类型),A=6=5A=5+3A=5+3A=#03/20/2003#A=#3-20-03#A=Not58,可以用TypeName函数判断变量的数据类型。
如:
PrintTypeName(A),注:
将课堂练习2内容,上机实现。
使用立即窗口观察A的数据类型。
变量A在代码中可能造成逻辑错误或运行错误。
可使用本地或监视窗口观察A的数据类型。
16,数据输入:
将要加工的数据输入到计算机中可使用赋值语句,输入函数,文本框控件,,数据输入,输入函数(InputBox)InputBox(,)功能显示一个(输入)对话框,等待用户输入信息或按下按钮,返回包含文本框内容的字符串提示信息出现在对话框上的信息(字符串表达式)。
用Chr(13)、Chr(10)、Chr(13)&Chr(10)、vbCrLf可换行标题出现在对话框标题栏上的信息(字符串表达式),缺省则显示当前应用程序的名字默认值出现在对话框上文本框中的信息(字符串表达式),缺省为空函数返回值:
字符串(在对话框中单击取消则返回),17,InputBox(,),VB提供的InputBox函数可生成(输入)对话框。
(输入)对话框可以接受用户的输入,但是其风格和用法有别于文本框。
例:
有语句如下:
Dimx%AsIntegerx=Val(InputBox(“请输入一个数”,“输入框”,100)语句执行后打开如下对话框:
18,注意:
每执行一次InputBox函数,用户只能输入一个数据;输入框的样式是固定的,用户不能改变;用户只能改变“提示”和“标题”的内容,而“提示”和“标题”都是字符串表达式。
19,例:
设计一个从键盘输入数据的对话框,PrivateSubForm_Activate()DimRAsString,AreaAsSingleR=InputBox(请输入半径,计算面积,1)Area=3.14*Val(R)2PrintVal(R),AreaEndSub,20,文本框(TextBox):
可用于数据输入,接收用户输入的信息,用文本框输入数据时,也就是将文本框的Text属性的内容赋值给某个变量。
例:
将文本框Text1中输入的字符串赋给字符串变量MystrDimMyStrAsStringMyStr=Text1.Text,例:
将文本框Text1中输入的字符串作为数据赋给整型变量DimAAsIntegerA=Val(Text1.Text),21,焦点和Tab键序焦点:
当前可以接收用户输入的对象称为具有焦点对象的Enable和Visible属性为True时,才能接收焦点有些控件不能获得焦点,例如标签、定时器、菜单,(对象)如何获得焦点?
运行时用户选择对象(鼠标、Tab键、访问键)在代码中使用SetFocus方法(对象)失去焦点运行时用户选择其它对象(鼠标、Tab键、访问键)在代码中对另一个对象使用SetFocus方法,22,Tab键序所谓Tab键序,即光标在各个控件之间移动的顺序每个窗体都有自己的Tab键序默认的Tab键序与控件的建立顺序一致改变控件的TabIndex属性可以改变键序控件的TabStop属性(=True)决定它是否能够使用Tab键将焦点移动到当前对象,事件GotFocus发生在对象得到焦点时LostFocus发生在对象失去焦点时,23,【例4-2】设计如下图所示的界面,运行时,输入某学生三门课的成绩,计算平均成绩。
按要求编程。
单击“计算”按钮求平均成绩;当输入成绩的文本框获得焦点时,选中其中的文本;当输入成绩的文本框内容发生变化时,清除平均值;单击“清除”按钮清除所有内容,将焦点定位在Text1中;单击“退出”按钮结束程序的运行。
要求,24,PrivateSubCommand1_Click()A=Val(Text1.Text)B=Val(Text2.Text)C=Val(Text3.Text)Text4.Text=(A+B+C)/3EndSub,单击“计算”按钮求平均成绩,25,PrivateSubText1_GotFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)EndSub,当输入成绩的文本框获得焦点时,选中其中的文本,PrivateSubText2_GotFocus()Text2.SelStart=0Text2.SelLength=Len(Text2.Text)EndSub,PrivateSubText3_GotFocus()Text3.SelStart=0Text3.SelLength=Len(Text3.Text)EndSub,选中文本,思考:
文本框获得焦点是否一定要使用GotFocus事件?
26,PrivateSubText1_Change()Text4.Text=EndSub,当输入成绩的文本框内容发生变化时,清除平均值,PrivateSubText2_Change()Text4.Text=EndSubPrivateSubText3_Change()Text4.Text=EndSub,思考:
文本框获得焦点是否一定要使用GotFocus事件?
27,单击“清除”按钮清除所有文本框的内容,并将焦点定位在文本框Text1中。
PrivateSubCommand2_Click()Text1.Text=Text2.Text=Text3.Text=Text4.Text=Text1.SetFocusEndSub,单击“退出”按钮结束程序的运行。
PrivateSubCommand3_Click()EndEndSub,28,PrivateSubText1_Change()Text4.Text=Text1.SelStart=0选择Text1文本的起始位置为0Text1.SelLength=Len(Text1.Text)选择文本的长度为Text1中文本的总长度EndSub,思考:
文本框获得焦点是否一定要使用GotFocus事件?
答:
不一定。
可将、和为一,即:
当输入成绩的文本框内容发生变化时(即获得焦点),选中其中的文本并清除平均值。
29,数据输出,文本框标签消息框(MsgBox)Print方法,在程序设计中对输入的数据进行加工后,往往需要将处理结果、提示信息等呈现给用户,即输出,30,文本框(TextBox)控件:
文本框既可以输入数据,也可以输出数据,用文本框输出数据时,也就是将数据赋给文本框的Text属性例:
用文本框Text1输出一个字符串Text1.Text=hello例:
用文本框Text1输出一个数值型数据Text1.Text=Str(32)Str可以省略或用Format,例:
用文本框Text1输出多个数,分多行输出。
首先将文本框的MultiLine设置为True,必要时可以进一步设滚动条属性ScrollBars。
X=32:
Y=43Text1.Text=Str(X)&vbCrLf&Str(Y),31,【例4-3】在文本框Text1中输入任一英文字母,文本框1获得焦点时,选中其中的文本。
在Text2中显示该英文字母及其ASCII码值。
并要求在文本框Text2中显示出所有已输入的英文字母及其ASCII码值。
例46,32,Text2的属性设置Text空MultiLineTureScrollBars2-Vertical,Command1的代码设计PrivateSubCommand1_Click()DimCharAsString*1Char=Trim(Text1.Text)Text2.Text=Space(5)&Char&_Space(10)&Str(Asc(Char)&vbCrLfText1.SetFocusText1.SelStart=0Text1.SelLength=Len(Text1.Text)EndSub,Chr(13)&Chr(10),文本框1获得焦点时,选中其中的文本,例46,Text2.Text&,显示出所有已输入的字母及ASCII码值,33,标签(Label)控件:
用标签输出数据时,也就是将数据赋给标签的Caption属性。
也可以输出多个数据。
标签可以显示文本(但不能对文本进行编辑),标签的属性Caption:
标签的标题Alignment:
确定标签标题的对齐方式AutoSize:
确定标签是否随标题自动调整大小BorderStyle:
确定标签的边框BackStyle:
指定背景是透明或不透明WordWrap:
指示是否随标题沿垂直方向自动扩展,34,例:
用标签Label1输出一个字符串Label1.Caption=hello例:
用标签Label1输出一个数值型数据X=35Label1.Caption=Str(X),例:
用标签Label1输出多个数,分多行输出。
先设置标签的AutoSize属性和WordWrap属性为True。
X=35:
y=74Label1.Caption=x=&Str(X)&vbCrLf_&y=&Str(y),35,【例4-4】已知三角形的三条边a、b、c的长度,用海伦公式求三角形的面积S。
海伦公式:
将文本框Text1、Text2、Text3的内容清空;设置三个文本框的Alignment属性为1-RightJustify;设置标签Label2的Caption属性为空;设置标签Label2的BorderStyle属性为1FixedSingle。
例411,36,代码如下:
PrivateSubCommand1_Click()DimAAsSingle,BAsSingle,CAsSingleDimPAsSingle,SAsSingleA=Val(Text1.Text)B=Val(Text2.Text)C=Val(Text3.Text)P=(A+B+C)/2S=Sqr(P*(P-A)*(P-B)*(P-C)用Format显示时保留两位小数Label2.Caption=Format(S,0.00)EndSub,37,消息框(MsgBox)函数,消息框常用于在屏幕上显示一个对话框,给出一些提示或警告信息,并允许用户进行选择。
程序根据该选择确定进一步的操作。
38,消息框(MsgBox)函数(pp.58)格式=MsgBox(,)或:
MsgBox,功能在对话框中显示消息,等待用户单击按钮,并返回一个整数告诉用户单击了哪个按钮,39,提示信息字符串表达式,用Chr(13)、Chr(10)、Chr(13)&Chr(10)、vbCrLf可换行。
对话框标题字符串表达式,可选项。
同InputBox,按钮类型数值型数据,可选项。
它包含按钮类型+图标类型+默认按钮(P65)按钮类型:
0、1、2、3、4、5图标类型:
16、32、48、64默认按钮:
0、256、512,返回值(MsgBox)用户在对话框中按下了哪个按钮返回值可以是:
1、2、3、4、5、6、7(P65),40,按钮及图标值如下:
根据用户所选按钮,函数返回17的整数值,其含义如下表:
默认按钮0,256,512,41,例:
PrivateSubCommand1_Click()A=MsgBox(提示信息,标题内容)EndSub,例:
按钮类型0到5或符号常量见P65PrivateSubCommand1_Click()A=MsgBox(提示信息,1,标题内容)EndSub,无按钮类型,按钮类型1,默认按钮0,42,例:
图标类型16、32、48、64或符号常量见P65PrivateSubCommand1_Click()A=MsgBox(提示信息,16,标题内容)EndSub,例:
默认按钮0,256,512见P58PrivateSubCommand1_Click()a=MsgBox(提示信息,2+256,标题内容)PrintaEndSub,按回车(默认)打印4,按钮类型2,43,按钮及图标值如下:
根据用户所选按钮,函数返回17的整数值,其含义如下表:
默认按钮0,256,512,44,按钮类型数值型数据,可选项。
它包含按钮类型+图标类型+默认按钮(P65)按钮类型:
0、1、2、3、4、5图标类型:
16、32、48、64默认按钮:
0、256、512,返回值(MsgBox)用户在对话框中按下了哪个按钮返回值可以是:
1、2、3、4、5、6、7(P65),45,a=msgbox(“文件已存在,是否替换原有文件?
”,1+48+256)Printa,课堂练习3:
用msgbox函数生成以下窗口,并将用户的选择赋给变量a,例:
换行PrivateSubCommand1_Click()A=MsgBox(第一行&Chr(13)&第二行)EndSub,按回车打印数值2,按钮类型+图标类型+默认按钮,46,Print方法格式:
.Print;|,数据输出:
用Print方法输出数据,对象名窗体(Form)、图片框(Picture)、立即窗口(Debug)、打印机(Printer).缺省:
当前窗体显示格式多个表达式使用逗号“,”或分号“;”隔开,表示分区格式(以14个字符位置为单位),每区显示一个表达式的值;表示紧凑格式,即后一项紧跟前一项显示省略此项,则输出空行,功能:
在窗体、图片框、立即窗口、或打印机上输出数据,47,例:
Print23*2=;23*2在当前窗体上输出23*2=46Picture1.PrintGood在图片框Picture1上输出GoodPrinter.PrintMorning在打印机上输出MorningDebug.Print23*2=;23*2在立即窗口输出23*2=46,输出时,数值型数据前有一个符号位(正号不显),后面留一个空格位;字符串原样输出,前后无空格。
48,例:
Print“12345678901234567890123456789”Print1;2;3Print4,5,Print6Print7,8PrintPrint9,10,输出结果为:
1234567890123456789012345678912345678910,49,PrivateSubForm_Load()Form1.ShowPrint12345678901234567890?
2+4=;2+4?
2-4=,2-4EndSub,PrivateSubForm_Activate()Print12345678901234567890?
2+4=;2+4;2+5?
2-4=,2-4EndSub,课堂练习4:
指出下列程序的执行结果,输入Print时可用?
代替,VB将其自动转换成Print,50,与Print配合使用的函数:
Tab函数格式:
Tab(n)功能:
与Print方法一起对输出数据进行定位参数n指明输出数据的显示位置(列数)n省略,打印位置为下一个打印区的起点n输出行宽度,打印位置为nMod行宽,Spc函数格式:
Spc(n)功能:
跳过n个空格,51,PrivateSubForm_Activate()Print12345678901234567890PrintHello;Tab(10);WorldPrintHello;Tab;WorldPrintHello;Tab(4);WorldPrintTab(-5);HelloEndSub,课堂练习5:
指出下列程序的执行结果,52,与Print配合使用的函数:
Spc函数格式:
Spc(n)功能:
跳过n个空格,例:
PrintHOW;Spc(3);ABOUT结果:
HOWABOUT,注意:
Spc函数与Space函数、Tab函数的区别Space函数:
可以用在字符串允许出现的任何位置。
Spc函数:
只能用在打印语句中。
Tab函数指定绝对位置;Space函数或Spc函数指定相对位置。
53,注释语句格式:
|Rem功能:
给语句或程序段加上注释,以提高可读性说明:
1.指要包括的任何注释文本。
在Rem关键字和注释内容之间要加一个空格。
2.如果在其他语句行后面使用Rem关键字,必需用冒号(:
)与语句隔开。
注释、暂停、程序结束语句,例:
ConstPI=3.1415925符号常量PIS=PI*r*r:
Rem计算圆的面积,例:
Rem符号常量ConstPI=3.1415925,54,暂停语句格式:
Stop功能:
暂停程序的执行,一般用于程序调试。
类似于执行“运行”菜单中的“中断”命令结束语句格式:
End功能:
结束程序的执行,55,应用举例,P.70例4-6输出三个在任意指定范围的随机整数。
a)设计界面,b)运行界面,框架Frame1,Label4,例410,生成a,b范围内的随机整数Int(b-a+1)*Rnd+a),56,本部分内容要求自学P70例4-5P71例4-6P72例4-7P72例4-8,57,输入,计算、处理:
输出,赋值语句,文本框,InputBox函数,赋值语句,标签,文本框,Print语句,MsgBox函数,本章小结,注释、暂停、程序结束语句,顺序结构程序:
58,Print方法在Form_Load事件中不起作用,必须使用Show方法,或将AutoRedraw属性设置为Ture在Form_Load事件中,SetFocus方法不起作用原因同Print方法,因为系统在窗体装入内存时无法同步地用SetFocus方法定位控件的焦点。
解决的方法在属性窗口对要定位焦点的控件将其TabIndex值设置为0就可。
常见错误和难点,59,程序运行时对多个文本框间焦点移动的问题方法一:
按“Tab”键。
这时可不必编程,直接利用系统提供的功能方便地在各控件之间移动。
若要确定离开或进入了哪个控件,则利用“控件_LostFocus”或“控件_GotFocus”事件进行判断。
方法二:
按“回车”键。
这时必须通过KeyPress事件编程来实现,有关程序段如下:
PrivateSub某文本框_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then另一控件.SetFocusEndIfEndSub,常见错误和难点,60,本章习题,“习题集”第4章(写在“习题集”上)练习4-2;练习4-3;要求:
题目放在WEBCC个人帐户上,提交题目的.exe文件和源程序(以.doc文档或.txt文档存放)文件命名:
后8位学号-4-x.*;,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 顺序 结构设计