版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022年7月24日1计算机程序设计基础教程(第三版)第1章 程序设计与算法 2022年7月24日2 主要内容1.1程序设计的基本概念1.2算法及算法的描述工具1.3算法设计举例习题 12022年7月24日31.1程序设计的基本概念1.1.1程序与程序设计1.1.2程序设计的过程和特性1.1.3程序设计语言1.1.4程序设计方法1.1.5程序的质量标准2022年7月24日41.1.1程序与程序设计为了解决某个实际问题而编排的指令序列称之为程序。程序是由多条指令按照一定的顺序组合而成的。在程序中使用哪些指令?这些指令出现和执行应该按怎样的顺序?程序是基于某种指令系统来实现的。对于计算机程序设计而
2、言,就是要基于某种具体的计算机程序设计语言来编写程序。 2022年7月24日51.1.2程序设计的过程和特性程序设计过程问题分析、确定算法、编码实现算法问题输入指令(computer )输出2022年7月24日6程序设计的特性构造性构造性决定了不能用统一的标准来衡量程序的质量。构造性决定了难以用形式化的方法来证明程序的正确性。严谨性编制程序所使用的程序设计语言是上下文无关的形式语言,需要程序员具有认真的工作作风和缜密的逻辑思维能力等基本素质。 抽象性要让计算机来求解现实世界中的某一实际问题,程序员必须将该问题的求解方法和步骤进行归纳和抽象,用计算机能够理解和执行的操作指令来实现每一个解题步骤,
3、将这些指令合理地进行编排和控制,从而形成计算机程序。这就需要程序员具有较强的概括和抽象能力。2022年7月24日71.1.3程序设计语言汇编语言高级语言通用语言比如,BASIC/Visual BASIC,C/C+/Visual C+,PASCAL等等 专用语言APL是为数组和向量运算设计的简洁而又功能很强的语言;BLISS是为开发编译程序和操作系统而设计的语言;FORTH是为开发微处理机软件而设计的语言;LISP语言和PROLOG语言特别适合于编写人工智能领域的应用程序。 数据库管理系统目前常用的数据库管理系统有,SQL Server,Oracle,Visual FoxPro等等。 2022年
4、7月24日8图1.1 解释型语言源程序的执行过程这种翻译方式执行速度较慢,因为它不产生可执行文件,每次运行都要重新解释一次。 源程序和数据计算机解释程序目标程序运行结果2022年7月24日9图1.2 编译型语言源程序的编译和执行过程编译生成了可执行文件之后,就不再需要源程序了,而且执行速度较快。 源程序计算机编译程序目标程序(文件)运行结果计算机目标程序(文件)数据2022年7月24日10程序设计语言的发展 (1) 机器语言(2) 汇编语言(3) 高级语言(4) 第四代程序设计语言2022年7月24日111.1.4程序设计方法结构化分析与设计的方法 主要采用功能分解的方法,利用模块分解和功能抽
5、象,自顶向下、分而治之。 面向对象程序设计技术 可以将解决某个问题的全套解决方案作为一个对象来进行分析,也可以将问题中涉及到的具体事物作为对象。对象是一个容器,其中包括数据和处理该数据的代码,其内部的具体工作过程常常是与外部隔离的。模块仅包含代码,数据是游离在外的。对象的操作是由向对象发消息引起。2022年7月24日12面向对象程序设计技术中的基本概念 1、对象对象可以表现为一个窗口、窗口中的一个按钮、一个图画框、一个表格等可视的程序组件,还可以表现为变量、文件等不可视的程序元素。2、类类是对象的原型,它描述该类任一对象的共同行为特征,是对一组性质相同对象的计算机语言描述,概括了对象的共同的数
6、据结构和操作。 例如,在程序实现时的一个窗口对象,就是窗口类的一个实例。 2022年7月24日13图1.3对象、实体、与类之间的关系对象类实体抽象数据类人脑计算机现实世界映射计算机逻辑的实现2022年7月24日14面向对象程序设计技术中的基本概念 3、属性对象中描述实体静态特性的数据称为(对象的)属性。 4、方法对象中用以模拟实体动态行为的“对数据施加的操作”称为(对象的)方法。例如,对于对象“学生成绩表”,增加一条记录、删除一条记录、求最大值、求平均值、求前十名等等都是方法。 方法是封装在对象之中的特定的程序段,叫做方法过程。在程序中,使某个方法执行称为调用该方法。2022年7月24日15面
7、向对象程序设计技术中的基本概念 5、事件导致某个对象的“操作”被执行的过程称为事件。某个事件发生时,对象所执行的操作称为事件响应。面向对象的程序设计语言为每一个对象都预先定义了许多事件,一个事件发生时系统要作何响应,需要由程序员根据具体功能来编写相应的响应代码,该代码称做事件过程。 2022年7月24日161.1.5程序的质量标准正确性易读性有效性可维护性适应性此外,程序设计必须尽力达到的四个目标是:可检验的、可修正的、可重复使用的、可移植的。2022年7月24日171.2算法及算法的描述工具1.2.1算法和算法设计1.2.2算法描述工具1.2.3算法的基本特性2022年7月24日181.2.
8、1算法和算法设计什么是算法? 算法是一组(有限个)规则,它提供了解决某个特定问题的运算序列。 程序和算法是怎样的一种关系呢? 程序是算法用计算机语言实现的形式。程序数据结构算法 2022年7月24日191.2.3 算法的基本特性和性质算法的基本特性有穷性确定性能行性有输入和输出 评价算法根据其: 正确性 可读性 健壮性 较高的时空效率2022年7月24日20*基本数据结构和经典算法简介基本数据结构线性数据结构、图、树、集合与字典重要的经典算法排序查找串处理图问题:图的遍历、拓扑排序、旅行商问题、图填色问题组合问题:旅行商问题(最短路径问题)、图填色问题几何问题:凸包问题数值问题:解方程和方程组
9、、算法定积分、求函数的解 2022年7月24日21*算法的设计和分析过程决定:计算方法;精确和近似的解法;数据结构;算法设计技术理解问题设计算法正确性证明分析算法根据算法写代码2022年7月24日221.2.2 算法描述工具目前广泛使用的算法描述工具有:程序流程图、N-S图、PAD图、伪码、自然语言等等。 图1.4 求一元二次方程根的算法输入: a,b,c开始计算: d=b*b-4*a*c计算根:x1,x2输出:”无解”输出: x1,x2结束d=0?是否2022年7月24日23程序流程图的基本符号2022年7月24日24三种基本结构 S1S2C是否S1C是否图1.6 分支(选择)结构(a)(b
10、)S1S2S3图1.5 顺序结构2022年7月24日25三种基本结构(续)图1.8 循环结构(a)(b)SC是否SC是否2022年7月24日26图1.7 使用多次判断的部分流程图计算:y=xX=1?是否X10?是否计算:y=x3-17计算:y=x2-1If x=1 then y=xElse if x2)。例1.4 求n!。2022年7月24日28例1.1 统计10个数中,有多少个数为3的整数倍数。 T=0; I=1; 如果I10则转到;-1 输入X;-2 如果X不是3 的整数倍数,则转;-3 T加1; I加1,然后转; 输出T; 结束。图1.9 例1.1的流程图开始T=0,I=1T=T+1I1
11、0是是3的倍数I=I+1结束否否输入:X输出:T2022年7月24日29例1.2 找出2100间的素数。算法框架: n=2; 如果n100则转到; 判断n是否为素数; n加1,然后转; 结束。开始n=2IsPrime=0n100是否I=nI=I+1结束否是图1.10 例1.2的流程图IsPrime=1输出:不是素数I=2否除不尽是IsPrime=1输出:是素数否是2022年7月24日30详细算法 n=2; 如果n100则转到,否则执行下一步;-1 IsPrime=1;-2-1 I=2;-2-2 如果I=n,则转-3,否则执行下一步;-2-3 如果 n MOD I0,则转-2-5,否则执行下一步
12、;-2-4 IsPrime=0,转-3;-2-5 I加1,转-2-2;-3 如果IsPrime=1,则输出“n是素数”, 否则输出“n不是素数”; n加1,然后转; 结束。2022年7月24日31例1.3 求Fibonacci数列的第n项值(n2)。 输入n; fa=0; fb=1; I=3; fc=fa+fb; 如果I=n 则转到;开始fa=0, fb=1否I=nI=I+1结束图1.11 例1.3的流程图I=3fc=fa+fb是输出:fcfa=fbfb=fc输入:n I=I+1; fa=fb; fb=fc; 转; 输出fc; 结束。2022年7月24日32例1.4 求n!。最容易理解的递推算
13、法如下: 输入n; f=1; I=1; 如果In 则转到; f=fI; I=I+1; 转; 输出f; 结束。2022年7月24日33递归递归算法一般具有如下形式: 若问题的规模满足边界条件,则计算并返回结果; 否则,递归求解。计算m的阶乘的fact函数可定义如下: 接受参数m; 如果m=0,fact=1, 转; 否则,fact=m*fact(m-1),注意:自己调用自己; 返回函数值fact。2022年7月24日34求n!的算法如下: 输入n; f=fact(n);注意:在此调用了前面定义的递归函数fact(m); 输出f; 结束。2022年7月24日35以上通过四个例子简单介绍了几类常用的算
14、法穷举递推递归其它:迭代法、回溯法、贪心算法、动态规划2022年7月24日36习题 11.1 什么是程序?什么是程序设计?1.2 程序设计过程主要包括哪些步骤?各步骤的主要任务是什么?1.3 程序设计工作具有哪些特性?1.4 怎样评价一个程序质量的好坏?1.5 什么是解释型程序设计语言?什么是编译型程序设计语言?1.6 解释下列概念:对象,属性,方法,事件。1.7 什么是算法?1.8 简述算法与程序有什么关系?2022年7月24日37习题 1-续1.9 算法有哪些基本特性?1.10 设计计算s=1+2+3+100的算法。1.11 设计计算s=1+(1+2)+(1+2+3)+(1+2+100)的
15、算法。1.12 设计求n个数的平均值的算法。1.13 设计求n个数中最小值的算法。1.14 一个n位数,如果其各位数字的n次方之和等于该数,则称之为Armstrong数。例如,3位数153是Armstrong数(153=13+53+33)。试用枚举的思想设计找出3位数中所有Armstrong数的算法。2022年7月24日38习题 1-续1.15 观察下列数列Pn(n=1,2,3,),找出递推关系式,并设计计算其第20项的算法: 1,2,4,7,11,16,。 0,1,3,7,15,31,。 1,1,3,7,13,21,。 1/2,2/3,3/5,5/8,8/13,。1.16设计计算 近似值的算
16、法(计算到末项的绝对值小于10-5为止)。2022年7月24日39习题 1-续1.17已知 。设计根据此式计算值的算法(计算到末项的绝对值小于10-5为止)。1.18 Hermite多项式定义为:设计求Hermite多项式第n项值的算法。2022年7月24日40下课第1章 完2022年7月24日41第 2 章程序设计工具与界面设计开发环境界面及其基本设计语句及语法基本控件2022年7月24日42本章主要内容2.1程序设计工具2.2界面及其基本设计习题 22022年7月24日432.1程序设计工具2.1.1Visual Basic简介2.1.2Visual Basic的特点2.1.3Visual
17、 Basic的开发环境2.1.4Visual Basic工程2.1.5Visual Basic应用程序设计过程2.1.6Visual Basic的语句及语法2022年7月24日442.1.1Visual Basic简介Basic 的原意Beginners All-purpose Symbolic Instruction Code初学者通用的符号指令代码Visual Basic中的“Visual”意味着直观的编程方法面向对象的程序设计语言。即开发图形用户界面(GUI,Graphical User Interface)的方法。Visual Basic 6.0包括三种版本,分别是学习版、专业版和企业
18、版。 2022年7月24日452.1.2Visual Basic的特点1) 可视化的设计平台2) 面向对象的设计方法3) 结构化的设计语言4) 事件驱动的编程机制5) 充分利用Windows资源6) 开放的数据库功能与网络支持2022年7月24日462.1.3Visual Basic的开发环境菜单栏工具栏工具箱代码编辑器窗体编辑器工程资源管理器属性窗口窗体布局窗口图 2.1 界面2022年7月24日47菜单栏文件(File)文件管理和打印,生成EXE文件等。编辑(Edit)标准编辑操作,有撤消、查找等功能。视图(View)显示或隐藏窗口和工具栏。工程(Project)设置工程属性,添加/删除窗
19、体和模块,添加 /删除附注和组件。格式(Format)对齐或调整控件尺寸。调试(Debug)启动/中止整个程序的调试和单步调试。运行(Run)启动一个程序或全编译执行。工具(Tools)添加过程,启动菜单编辑器,设置IDE选项。外接程序(Add-Ins)外接程序管理器,列举和管理多个外接程序。窗口(Window)排列或选择打开的窗口。帮助(Help)管理所有“帮助”以及“关于”对话框。2022年7月24日48工具栏图 2.2 Visual Basic的标准工具栏添加项添加窗体模块等菜单编辑器打开工程保存工程剪切复制粘贴查找撤消重复开始暂停停止工程资源管理器属性窗口窗体布局窗口对象浏览器工具箱数
20、据视图窗口VisualComponentManager屏幕位置窗体尺寸2022年7月24日49工程资源管理器 通过工程资源管理器,可以对整个工程有一个整体性的概览,可以在工程资源管理器中选择要处理的某个资源对象,也可以添加、删除各类项目。尤其是在管理那些庞大的、包含许多组成部分的工程时,工程资源管理器的作用更明显。图 2.3 工程资源管理器2022年7月24日50属性窗口当选中某个对象时,在属性窗口中就会显示该对象的各种属性设置,通过选中属性窗口中相应的属性项,可以改变或检查该对象的某个属性的设置。 图 2.4 属性窗口2022年7月24日51窗体布局窗口 可以将窗体定位在希望它出现的地方。在
21、窗体布局窗口中,将相应窗体拖动到新的位置上,即可实现该窗体的初始定位。窗体位置在工具栏的右侧有相应的坐标显示。图 2.5 窗体布局窗口2022年7月24日52工具箱单击工具箱中的某一个工具,然后在窗体上放置即可完成一个对象的定义。 图 2.7 添加新控件后的工具箱图 2.6 工具箱2022年7月24日53窗体编辑器窗体是Visual Basic工程中用于表现数据、进行人机交互的界面。工程中的每个窗体都将有一个窗体编辑器。窗体编辑器显示出正在进行编辑的窗体形状,以及添加到窗体上的控件布局情况。窗体编辑器也叫对象窗口,参见图2.8。 2022年7月24日54可以使用“工程”菜单中的“添加窗体”选项
22、向工程中添加新窗体。或者利用工程资源管理器来添加或移除窗体。窗体的位置可以在窗体布局窗口中进行调整。窗体的大小可以在窗体编辑器中通过拖动窗体边框外的调整点来改变。利用窗体编辑器进行的工作,就是窗体设计,即运行时的界面设计。 2022年7月24日55代码编辑器 就是用来编辑代码的工具,代码编辑器也叫代码窗口。参见图2.9 作用:需要通过编写代码来响应对象所发生的相关事件,通过代码描述对具体问题的处理方法和步骤,实现相应算法。切换方法:在窗体编辑器中双击某个对象,可以切换到代码窗口中的相应位置。 2022年7月24日56立即窗口 定义:所谓立即窗口,是指在这个窗口中输入的Visual Basic语
23、句会立即被执行。 打开方法:点击“视图”菜单中的“立即窗口”选项使之出现作用:在该窗口输入一个语句后,光标位于语句行上时,按回车键即可使该语句立即执行。通常,可以在该窗口中进行简单计算、效果测试操作等。 2022年7月24日572.1.4 Visual Basic工程以Visual Basic6.0 企业版为例,使用Visual Basic可以创建以下类型工程:标准Windows EXE程序ActiveX EXE文件ActiveX DLLActiveX 控件Visual Basic向导管理器Visual Basic应用程序向导ActiveX 文档DLLActiveX 文档EXEDHTML应用程
24、序IIS应用程序Visual Basic企业版控件外接程序数据工程2022年7月24日58工程Visual Basic引用工程的概念来管理构成应用程序的所有不同的文件,有时工程也指所有与某应用程序相关的文件的集合。 程序设计员只负责设计窗体、编写代码,这些文件的管理和组织工作大部分由IDE做了。 2022年7月24日59根据不同的类型,一个工程所包含的各类文件不完全相同,主要文件类型如下:工程文件(.vbp) 。工程文件就是用来把所有文件整合在一起用的文件,由与该工程有关的所有文件和对象的清单所组成。窗体文件(.frm)。包含窗体及其控件的正文描述,包括它们的属性设置。标准模块文件(.bas)
25、。可以包含类型、常数、变量、外部过程和公共过程的公共的或模块级的声明。类模块文件(.cls)。与窗体模块类似,只是没有可见的用户界面。可以使用类模块创建含有方法和属性代码的自己的对象。2022年7月24日60资源文件(.res)。包含着无需重新编辑代码便可以改变的位图、字符串和其它数据。一个工程最多包含一个资源文件。ActiveX 控件的文件(.dob)。 类似于窗体,但是在互联网资源管理器之类的互联网浏览器中是可以显示的。Visual Basic 的专业版和企业版能够创建 ActiveX文档。用户控件(.ctl)和属性页模块(.pag)。也类似于窗体,但它们被用于创建ActiveX 控件及与
26、其关联的用来显示设计时属性的属性页。Visual Basic 的专业版和企业版能够创建 ActiveX 控件。2022年7月24日61当工程启动时,这些文件和对象自动链接到工程文件上。每次保存时,其相关文件信息随之更新。某个工程下的对象和文件也可供其他工程共享使用。在工程的所有对象和文件被汇集在一起并完成编码后,就可以编译工程,生成可执行文件。工程2022年7月24日622.1.5 Visual Basic应用程序设计过程1)创建新的Visual Basic工程2) 创建应用程序的用户界面3) 设置对象的属性4)编写程序代码5)调试和运行程序6) 保存程序7) 编译、生成可执行的应用程序202
27、2年7月24日63在VB6.0中演示实现阶乘计算的算法 Private Sub Command1_Click() Dim i, n As Integer Dim t As Long n = Val(Text1.Text) t = 1 For i = 1 To n Step 1 t = t * i Next Text2.Text = Str(t)End Sub2022年7月24日642.1.6Visual Basic的语句及语法基本语法在编辑命令时除字符串(由双引号括起来的部分)中的字符外语句不区分大小写,系统能对语句自动进行格式调整。 语句中的标点均为英文标点。 在每一对方括号中出现的内容是可
28、选的,如果有多项可以选择,那么这些项之间就用竖线分隔。 在一对尖括号的用文字描述的是可以自己确定的项目,当然必须符合项目的要求。语句中关键字是不能变动的。 2022年7月24日65省略号用以表示前面的部分可以多次出现。 在编写代码时,一句一行。如果一行写不完,也可用续行符 ( _) 在第二个物理行上继续一个逻辑行上的内容。 如果想使一行多句,可用冒号(:)来分隔各语句。例如:Private | Public | Friend Static Sub () Exit SubEnd Sub例如:Dim WithEvents varname(subscripts) As New type , With
29、Events varname(subscripts) As New type . . . 2022年7月24日66几个基本语句 1 赋值语句语法:=例子:Total = 101A = 36 + Total/2 ReadOut = GoodMornig!Command1.Caption = 取消操作Text2.Text = Text1.TextA=10 : B=15 : A=A+B : B=A+B2022年7月24日672 注释语句(不被执行,用于增强程序可读性)Rem 或 例如:i=i+1 计数器加1Rem 下面的程序用于判断N是否为素数3 End语句End作用:用来结束正在运行着的程序。 例
30、如:if x0 then end 2022年7月24日682.2界面及其基本设计2.2.1界面的作用2.2.2界面设计准备2.2.3窗体2.2.4常用基本控件2.2.5对话框2022年7月24日692.2.1界面的作用数据显示数据输入与编辑程序流程控制显示提示和帮助信息2022年7月24日702.2.2界面设计准备利用窗体设计器来实现。考虑:明确界面的表现主题 考虑要完成的功能的使用情况,以及使用该程序的用户情况程序界面的设计目的是显示信息还是收集数据? 2022年7月24日71界面设计的基本过程界面设计在具体设计前确定一个粗略的界面设计草图,对将表现的内容进行初步地规划、布局。然后考虑采用何
31、种元素(各种控件)来表现界面的内容。最后,还必须经过多次观察、审视、调整,以获取最佳效果。在完成布局后,就应该考虑如何通过事件驱动的方式来进行“看不见”的处理的设计,即编写解决具体问题的代码。 2022年7月24日722.2.3窗体控制菜单标题栏最小化按钮最大化/还原按钮关闭按钮图2.20 窗体的结构窗体对象2022年7月24日73窗体属性1 窗体名称name:一般默认为:Form1 2 设置标题栏文本:Caption属性 Form1.Caption = 计算器3 设置窗体风格BorderStyle属性 0无边框1固定单边框2可调尺寸边框3固定对话框4固定工具窗口5可变大小工具窗口其中2是新窗
32、体的默认值。4 最小化、最大化和关闭按钮等标准窗口成分可以通过窗体属性ContrlBox设置/取消2022年7月24日74窗体属性5 设置窗体大小和启动位置窗体的Left和Top属性是用来确定其位置的窗体的大小由两个属性来控制,Higeh高度,Width宽度6 窗体的ScaleMode中选其他的单位,例如:0用户自定义1缇(每英寸为1440缇)2磅(每英寸为72磅)3像素4字符5英寸6毫米7厘米2022年7月24日75使用多窗体如果需要添加新窗体可以点击“工程”菜单选择“添加窗体”来实现也可以直接在工程资源管理器的窗体文件夹下按鼠标右键,在快捷菜单中选择“添加”、“添加窗体”实现。 2022年
33、7月24日76主控窗体通常第一个创建的窗体在运行时将首先出现(称为启动窗体),此时,其他窗体并没有出现在屏幕上。为了分别控制Form2和Form3的出现,在Form1上放置了两个按钮,Command1和Command2,希望点击按钮时,分别使对应的窗体显示。这样Form1就成为控制其他窗体出现的主控窗体。2022年7月24日77窗体显示使某个窗体显示或隐藏,可以通过调用该窗体的Show和Hide方法来实现。Form1的Command1的Click事件过程如下:Private Sub Command1_Click() Form2.ShowEnd Sub Form1的Command2的Click事
34、件过程如下:Private Sub Command2_Click() Form3.ShowEnd Sub2022年7月24日78窗体隐藏在Form2上放一个按钮Command1,编写点击事件代码如下:Private Sub Command1_Click() me.HideEnd Sub这里的me被认为是Form2,执行me.Hide后使Form2窗体隐藏起来。2022年7月24日79调用规则通常,调用某个对象的方法、属性或事件过程,必须在方法、属性或事件过程名前加上其所属的对象名,以使系统正确地区分和识别调用的内容属于哪个对象。 2022年7月24日80设置启动窗体在仅有一个窗体的情况下,这个
35、窗体就默认为启动时首先显示的窗体,即启动窗体。在使用多个窗体时,其中的一个窗体为启动窗体。一般情况下,最先创建的窗体被默认为启动窗体.如果希望另一个窗体(例如:欢迎窗体)首先出现时,就需要选择设置启动窗体。2022年7月24日81设置的步骤如下:选择“工程”菜单中的“工程属性”,出现如图2.22所示对话框。选择“通用”选项卡。在“启动对象”项目的对象列表中,选择指定的窗体即可。图2.22 设置启动窗体2022年7月24日82窗体的运行方式在Visual Basic中,把窗体的运行方式分为两种,一种称为模式的,另一种称为非模式的。 使窗体采用不同方式运行的是窗体的Show方法。如果在调用Show
36、时不加参数,则默认窗体以非模式方式运行;如果加参数1,则以模式方式运行。2022年7月24日83窗体的模式和非模式运行方式的区别非模式方式不限制将焦点锁定在自己窗体之内,允许用户转去对其他窗体进行操作。模式方式只允许对最后打开的模式窗体进行操作,不允许用户转去对其他窗体进行操作,就是说模式窗体将焦点锁定在自己窗体之内,以保证用户优先进行本窗体内的操作。只有关闭了模式窗体,才允许对其他窗体进行操作。2022年7月24日84窗体的Print和Cls方法窗体对象的Print方法可以用来直接在窗体上显示文本字符串和表达式的值。 窗体的Cls方法则可以用来清除由Print方法显示在窗体上的内容。 示例:
37、Print Text1.Text; 2, Text1.Text * Text1.TextMe.cls2022年7月24日85窗体的主要事件窗体有多种事件,这些事件在窗体进行某种动作时发生。例如,装载、单击、双击、鼠标移动、获得焦点、改变尺寸、卸载等等。 1 Load 事件Load 事件即为装载事件,在一个窗体被装载时发生。 2022年7月24日86例如,在以下的Load 事件过程代码中将完成对几个标签标题的设置,以及给几个文本框设置初始值:Private Sub Form_Load() Label1.Caption = 学号 Label1.Caption = 姓名 Label1.Caption
38、 = 成绩 Text1.Text = 2006043023 Text1.Text = 李天宇 Text1.Text = 86End Sub2022年7月24日87Click事件窗体的Click事件发生在用户使用鼠标点击窗体的时候。需要注意的是,如果使用鼠标点击的是放在窗体上的其他对象,引发的是那个对象的Click事件,而不是窗体的Click事件。示例2022年7月24日88Unload事件当窗体从屏幕上删除时发生。当使用在 Control 菜单中的 Close 命令或 Unload 语句关闭该窗体时,此事件被触发。可以编写相关的事件过程代码,在此事件发生时完成一些在结束对当前窗体操作后所需的善
39、后工作。 2022年7月24日89窗体设计要点根据元素的重要性级别布局将元素按不同主题分组外观风格的一致性很重要合理调整窗体及其控件的大小和位置使之整齐划一2022年7月24日902.2.4常用基本控件标签框架复选框组合框水平滚动条 计时器目录列表框形状图象OLE容器图片框文本框命令按钮选择按钮列表框垂直滚动条标签驱动器列表框文件列表框线数据图 2.24 工具箱中的基本控件2022年7月24日91标签( Label)作用:标签主要用来显示一个静态的文字说明信息;通常用来为其他控件对象添加描述性说明;运行时,标签是不能通过交互方式动态地改变的,不能接受用户的输入操作。使用:可以在设计时修改属性值
40、也可以在程序中编写代码来改变标签的显示文本 2022年7月24日92标签的主要属性 (1) Caption属性设置标签将显示文本内容。该值可以在属性值框内直接输入。(2)Alignment属性设置在标签区域内文本的对齐方式。其值为0表示左对齐;为1表示右对齐;为2表示居中。该值可以在点击属性值框后出现的下拉列表中选择。默认值为0。(3)AutoSize属性设置控件是否能够自动调整大小以显示所有的内容。如果AutoSize属性被设置为True,则标签能够根据文本的长短来调整自身的大小,以适应文本的长度。2022年7月24日93标签的主要属性 (4)BackStyle属性设置标签的背景样式。其值以
41、为1表示是不透明的;为0表示是透明的。默认值为1。(5)BorderStyle属性设置标签的边框样式。其值为0 表示无边框;为1表示单线边框。默认值为0。(6)Backcolor属性设置标签的背景色。需要改变颜色时,选中该项,点击属性值框右的小箭头,在随后出现在其下方的颜色选项卡中选择适当的颜色即可。(7)Forecolor属性设置标签上显示的文本颜色。改变其颜色的方法同上。2022年7月24日94标签的主要属性 (8)WordWrap属性设置标签的文本在显示时是否具有自动换行功能。当该属性为True时该标签具有自动换行的功能,就是当文本内容较多一行显示不完时,可以自动分行显示。需注意的是只有
42、在AutoSize属性设置为True的时候WordWrap属性才有效。当AutoSize为True且WordWrap也为True时,标签能够根据文本的多少调整自身的高度来显示所有文本;当AutoSize为True且WordWrap为False时,标签则调整自身的宽度来显示所有文本。2022年7月24日95标签的主要事件和方法 标签的主要事件 单击Click和双击DblClick 标签的主要方法 Move :该方法的功能是移动标签到一个新的位置,并可以改变标签控件的大小。 调用Move方法的语法如下:.Move ,其中,是需要移动的某对象,为必要参数,其他三个为可选参数。例如:Label1.Mo
43、ve Label1.Left+10, Label1.Top-102022年7月24日96文本框( Text)文本框可以供用户输入数据,是Visual Basic中显示和输入文本的主要机制,也是Windows用户界面中最常用的控件。 文本框提供了所有基本文字处理功能,在Windows环境中几乎所有的数据输入都可以利用文本框来完成。 2022年7月24日97文本框的常用属性 (1)Text属性用户在程序运行时输入的文本数据就存放在其中。该属性值在设计和运行时都可以更改。(2) MaxLength属性设置文本框中输入的字符串长度是否有限制。默认值为0,表示该单行文本框中字符串的长度只受操作系统内存的
44、限制;若设置为大于0的数,则表示能够输入的最大字符数目。2022年7月24日98文本框的常用属性 (3)PasswordChar属性设置是否使控件只显示特定的字符。如将属性设置为“*”,那么无论Text属性值是什么,在文本框中都只显示若干个“*”,可以起到隐藏真正字符的作用,用来支持密码输入。(4) MultiLine属性设置文本框是否以多行方式显示文本。设置为True时以多行文本方式显示;设置为False(默认)时以单行方式显示。(5) ScrollBars属性设置以多行方式显示文本时文本框是否有垂直或水平滚动条。2022年7月24日99文本框常用事件(1) Change事件当文本框的内容被
45、修改时,该事件被触发。如果事先编写了与该事件相应的事件过程,则该事件过程被自动调用执行。如果没有编写与该事件相应的事件过程,则事件发生时什么也不做。该事件主要用于检查被改变后的内容是否满足一定的要求。2022年7月24日100文本框常用事件(2) KeyPress事件当光标位于文本框中时,按任一具有ASCII码值的键时触发该事件。例,希望文本框Text1只接受09数字输入,其他字符输入一律忽略。编写Text1的KeyPress事件过程如下:Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii Asc(9) Then KeyAsc
46、ii = 0 End IfEnd SubKeyAscii为0,表示放弃本次输入的按键。2022年7月24日101文本框常用事件(3)GotFocus事件该事件在文本框获得焦点时被触发。(4)LostFocus事件该事件在文本框失去焦点时被触发。所谓失去焦点,是指当使用鼠标或其他方式选择了其它对象,不再对当前对象继续处理的情况。通常,窗体中总是有且仅有一个对象取得焦点,当一个对象失去焦点后,就由另一个对象获得焦点。一个对象失去焦点的事件发生在另一个对象获得焦点之前。2022年7月24日102文本框的常用方法:SetFocus作用使程序将焦点移动到指定的对象,其效果就象用鼠标点击某对象,使之处于当
47、前操作状态。其语法为:.SetFocus例子:如果利用文本框Text1让用户输入密码,要求密码长度必须为6位。如果不是6位,就显示提示信息,并阻止焦点离开,否则允许离开。至于密码是否正确的检查任务,交由命令按钮来处理。2022年7月24日103输入密码的例子的窗体设计窗体中文本框的PasswordChar属性设置为“*”按钮下方是一个BorderStyle属性为1的标签,用以显示提示信息。 图2.25 检查密码的窗体2022年7月24日104输入密码的例子的事件过程代码分析:输入了密码后,点击“确定”按钮时,文本框的LostFocus事件发生,执行LostFocus事件过程。该过程代码如下:P
48、rivate Sub Text1_LostFocus() Label1.Caption = If Len(Text1.Text) 6 Then Label1.Caption = 密码长度不对,请重新输入! Text1.SetFocus End IfEnd Sub2022年7月24日105命令按钮( CommandButton)主要作用 用以开始、中断或结束一个处理过程。 最主要的事件Click事件,是鼠标单击按钮时,该事件发生。2022年7月24日106前例提到的检查密码是否正确的任务,也可交由命令按钮来处理。命令按钮的单击事件过程代码如下:Private Sub Command1_Click
49、() Label1.Caption = If Text1.Text 123456 Then Label1.Caption = 密码错误,请重新输入! Text1.SetFocus Else Label1.Caption = 密码正确! End IfEnd Sub创建事件过程Command2_Click(),其内容如下:Private Sub Command2_Click() End 结束程序End SubEnd Sub2022年7月24日107按钮的主要属性 (1)Caption属性设置命令按钮的标题,即命令按钮上显示的文字。该属性值可以在设计时设置,也可以利用命令在运行时修改。 (2)Ena
50、bled属性设置命令按钮是否可用。其值为True(默认值)时表示该命令按钮可用,为False表示该命令按钮不可用。当按钮不可用时,看起来是灰色的,点击它时没有任何反应。2022年7月24日108例如,希望用户在文本框Text1里至少输入4个字符,否则不允许点击命令按钮Command1。可以在文本框的Change事件里对命令按钮是否可用进行及时的设置,Text1的Change事件过程如下:Private Sub Text1_Change() If Len(Text1.Text) = 4 Then Command1.Enabled = True Else Command1.Enabled = Fa
51、lse End IfEnd Sub2022年7月24日109按钮的主要属性 (3)Visible属性设置命令按钮是否可见。其值为True(默认值)时表示该命令按钮可见,否则该按钮不可见,相当于隐藏起来。2022年7月24日1102.2.5对话框对话框被用来向用户显示提示信息,或者提示用户提供程序继续运行所需的数据。 预定义对话框 使用窗体设计对话框2022年7月24日111 预定义对话框在Visual Basic应用程序中,对话框的最简单使用方法就是使用系统预定义的对话框。这里介绍消息对话框和输入对话框。2022年7月24日112消息对话框(MsgBox)消息对话框的主要由一条文字消息和若干按
52、钮组成,参见图2.26。消息对话框主要用来向用户传达信息,不需要用户输入数据。图2.26 消息对话框12022年7月24日113消息对话框实现方式1MsgBox函数图2.26所示消息对话框是由以下赋值语句实现的:X = MsgBox(你完成了本章作业吗?, 4, 请回答)MsgBox函数的格式为:MsgBox(,)其中,信息内容:是一个字符串,长度不超过1024个字符。2022年7月24日114消息对话框的类型对话框类型:是一个整数值或常量,用来控制在对话框内显示的按钮、图标的种类及数量。其参数值如表2.1所示:2022年7月24日115类 型常 量值作 用按钮类型vbOKOnly0只显示“确
53、定”按钮vbOKCance1显示“确定”及“取消”按钮vbAbortRetryIgonre2显示“终止”、“重试”及“忽略”按钮vbYesNoCancel3显示“是”、“否”及“取消”按钮vbYesNo4显示“是”及“否”按钮vbRetryCancel5显示“重试”及“取消”按图标按钮vbCritical16显示停止图标vbQuestion32显示问号(?)图标vbExclamation48显示感叹号(!)图标vbInformation64显示信息图标默认按钮vbDefaultButton1vbDefaultButton2vbDefaultButton30256512指定默认按钮为第1个按钮指
54、定默认按钮为第2个按钮指定默认按钮为第3个按钮表2.1 对话框类型参数2022年7月24日116例如:35=3+32+0,则显示“是”、“否”、“取消”三个命令按钮(3)及“?”图标(32),默认活动按钮为Yes(0)。例如,在立即窗口中输入代码为:msg=MsgBox(请确定此数据是否正确!,3+48+0,数据检查)则显示结果如图2.27所示。图2.27消息对话框22022年7月24日117参数缺省情况MsgBox函数的几个中,只有第一个参数“信息内容”是必需的,其他参数均可以省略。若省略“对话框类型”,则对话框内只显示一个“确定”按钮,并把该按钮设置为活动按钮。省略“对话框标题”,对话框的
55、标题就为当前工程的名称。2022年7月24日118MsgBox函数的返回值MsgBox函数的返回值是一个整数,这个整数与所选择的命令按钮有关。返回值情况如下:1确定2取消3终止4重试5忽略6是7否2022年7月24日119消息对话框实现方式2MsgBox语句MsgBox语句格式为:MsgBox , ,例如,当执行完保存任务时,告诉用户工作完成了:MsgBox 保存成功!,0,Hi显示效果如图2.28所示。图2.28消息对话框32022年7月24日120输入对话框(InputBox)当应用程序需要从用户那里取得数据,以便进行下一步的处理时,则需要用到输入对话框。输入对话框是由InputBox函数
56、实现的。其格式如下:InputBox(,)其中函数的第一个参数是必须的,其他参数是可选的。2022年7月24日121InputBox函数参数说明信息内容是一个字符串,基本长度不超过255个字符。它是在对话框内显示的信息,用来提示用户。对话框标题是一个字符串,作为对话框的标题显示在对话框顶部的标题区。默认内容是一个字符串,可用此缺省字符串作为输入值。 2022年7月24日122例如,下面的语句代码将显示如图2.29所示的输入对话框:Msg=InputBox(请输入你的名字,Hi,Name)图2.29 输入对话框2022年7月24日123 使用窗体设计对话框作用使用预定义对话框方法简单,但同时也带
57、来另外一个问题,就是格式和内容相对单调了一点。例如,输入对话框一次只能输入一个数据,当程序需要一次输入2、3个或更多数据时,就不方便了。此时,可以使用窗体来设计对话框。2022年7月24日124创建新窗体模板其实,Visual Basic也为创建新窗体准备了若干可选用的模板,如图2.30所示。 图2.30不同的窗体模板2022年7月24日125对话框特点对话框实际就是由窗体来实现的。对话框通常不含有菜单、滚动条、最大化、最小化按钮,其边框也是不可调整的。 当用户不完成对话框的操作,并明确退出对话框时,是不能对其他窗体进行操作的。也就是说,所有对话框都是以模式方式运行的。所以,如果采用自己设计的
58、窗体作为对话框时,也应按照模式方式来打开相应窗体。 2022年7月24日126五种Windows标准对话框此外,Visual Basic还可以使用五种Windows标准对话框,它们分别是:保存对话框打开对话框设置颜色对话框设置字体对话框打印对话框相关内容在以后的章节中介绍。 2022年7月24日127习题 22.1 Visual Basic有哪些主要特点?2.2 简述IDE及其用途。2.3 简述Visual Basic应用程序设计过程的各阶段及其任务。2.4 界面在应用程序中有哪些作用?2.5 在界面设计准备时,应考虑哪些主要因素?2.6 总结窗体设计的要点。2022年7月24日1282.7
59、消息对话框与输入对话框各自的用途及主要区别是什么?2.8 设计一个可以输入:班级、学号、姓名,及其他项目数据的窗体。2.9 设计三个窗体,在窗体1中控制显示窗体2,在窗体2中控制显示窗体3。分别采用非模式和模式方式进行控制,观察其效果的区别。2.10 使用窗体的Print方法显示任意输入的两数之和。2.11 设计一个窗体,在该窗体中分别用按钮控制显示不同的消息对话框和输入对话框。2.12 使用输入对话框输入数据,再用消息对话框显示该数据。2022年7月24日129第二章 完数据表示及基本运算第 3 章2022/7/24131本章主要内容3.1数据定义3.2函数3.3运算符和表达式3.4综合练习
60、习题 3 2022/7/241323.1数据定义3.1.1数据类型3.1.2变量3.1.3常量2022/7/241333.1.1数据类型Visual Basic所支持的数据类型,以及存储空间大小与范围 数据类型存储空间范围1Byte(字节)1 个字节0 到 2552Boolean(布尔型)2 个字节True 或 False3Integer(整型)2 个字节-32,768 到 32,7674Long(长整型)4 个字节-2,147,483,648 到 2,147,483,6475Single(单精度浮点型)4 个字节负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水质监控系统运行方案计划
- 岭南师范学院《虚拟仪器技术及应用》2021-2022学年第一学期期末试卷
- 奥迪配件销售合同范例
- 员工合同范例购买
- 智能制造设备能耗分析与管理服务合同
- 智能制造设备维修保养人员培训合同
- 佣金分账合同范例
- 兼职关于版权合同范例
- 初中英语教学改革资源配置与保障措施
- 产权式酒店合同范例
- 新人教版八年级物理上册期中考试及答案【可打印】
- 绿色钢铁产业链构建
- 2024年企业股东退股补偿协议版
- 河南省商丘市2023-2024学年高一上学期期中考试化学试题(含答案)
- V带传动设计说明书
- 墓地长期租用合同模板
- 2024年心理咨询师基础知识考试题库(浓缩500题)
- 物 理第四章 第1节光沿直线传播课件-2024-2025学年八年级物理(人教版2024)
- 2024年银行考试-反洗钱考试近5年真题集锦(频考类试题)带答案
- 职校开学第一课课件:谁说职业没前途
- 行政复议法-形考作业4-国开(ZJ)-参考资料
评论
0/150
提交评论