2010年计算机二级考试VB课件.ppt_第1页
2010年计算机二级考试VB课件.ppt_第2页
2010年计算机二级考试VB课件.ppt_第3页
2010年计算机二级考试VB课件.ppt_第4页
2010年计算机二级考试VB课件.ppt_第5页
已阅读5页,还剩316页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/8/22,大学Visual Basic程序设计基础,第1章Visual Basic程序设计概述 第2章顺序结构程序设计 第3章选择结构程序设计 第4章循环结构程序设计 第5章过程 第6章菜单 第7章文件 第8章 VBA程序设计 第9章 综合应用程序设计,2020/8/22,第1章Visual Basic 程序设计概述,内容提要,Visual Basic集成开发环境 对象的概念属性、方法、事件 Visual Basic可视化程序设计的基本步骤,2020/8/22,第1章 Visual Basic 程序设计概述,1.1 Visual Basic 语言简介,1.2 Visual Basic

2、 集成开发环境,1.3 Visual Basic 程序设计 的基本概念和步骤,2020/8/22,1.1Visual Basic 语言简介,什么是 Visual Basic,Visual Basic 的发展,Visual Basic 的特点,运行环境,启动,退出,2020/8/22,1.1Visual Basic语言简介,Visual Basic(VB)是通用程序设计语言 VB 是具有图形用户界面的开发应用程序的工具 可视化:便于界面设计 IDE:Integrated Development Environment 集成开发环境 OLE:Object Linking and Embedding

3、对象的链接和嵌入(交换数据) OOP:Object oriented Programming面向对象的程序设计,什么是Visual Basic,2020/8/22,Visual Basic 的发展,Visual Basic已逐渐成为简单易学、功能强大的编程工具。它不但在一般程序设计方面比传统的程序设计语言具有明显的优势,而且可作为多媒体创作工具,支持程序的跳转,即从静态目标跳转到音乐、声音、动画、图形等目标;同时具有脱机播放动画的能力,能较好地控制动画的清晰度、运动速度和方向,并采用了动画过渡技术(如淡入淡出、渐隐渐现)等。它的软件费用支出低、易学习性及功能的突出特点,使其易于被许多非专业人员

4、掌握使用。,2020/8/22,Visual Basic 的特点,可视化程序设计 VB提供了可视化的设计工具,把Windows下的界面设计的复杂性“封装”起来。开发人员只需根据界面的设计要求,在Windows下建立一个“窗体”,并直接在窗体上画出各种“图形对象”,通过设置这些“图形对象”的“属性”来调整其在窗体界面中的位置、大小和样式,从而避免了为界面编写大量的程序代码工作,大大提高了程序设计的效率。 面向对象程序设计 在VB中,用来构成用户图形界面的可视化窗体及控件(如按钮、文本框、标签等)都是一个个对象。编程时用户可直接引用这些对象,并可以直接使用系统和为对象封装好的各种功能,用户不必重新

5、编写建立和描述每个对象的程序代码,只需根据实际需要及每个对象所提供的功能编写程序即可。,2020/8/22,Visual Basic 的特点,事件驱动的程序设计 与Windows下的其他开发工具一样,VB也采用事件驱动的编程机制,应用程序的执行是通过事件来完成的。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个常用的对象,当用户用鼠标在它上面单击一下时,便会在该对象上产生一个鼠标单击事件(Click),VB会自动调用执行命令按钮上的Click事件过程,实现指定的操作。 在用VB设计应用程序时,没有明显的主程序概念,程序员所要做的工作是针对不同的对象分别填写它们

6、相关的事件过程代码。因此,整个应用程序是由若干个这样的过程程序组成的,从而降低了编程的难度和工作量,提高了程序的开发效率。,2020/8/22,强大的数据库编程能力 利用VB的数据控件和数据库管理器等工具,可直接建立或处理Microsoft Access格式的数据库,还能直接编辑和访问其他外部数据库,如Dbase、Foxpro、Paradox等。同时VB还提供开放式数据库访问(ODBC)功能,可通过直接访问或者建立连接的方式使用并操作远程服务器上的关系型数据库,如SQL Server、Oracle等。使用结构化查询语言SQL,轻松访问并操纵远程服务器上的关系型数据库,运用应用程序向导,迅速创建

7、标准的数据库应用程序。,Visual Basic 的特点,2020/8/22,其他特性 (1)支持动态链接库(DLL)。VB是一种高级程序设计语言,不具备低级语言对机器硬件进行操作的功能,为此,VB提供了访问动态链接库(Dynamic Linking Library)的功能,可以利用其他语言(如C/C+等),将需要实现的功能编译成动态链接库,然后提供给VB调用。此外,通过动态链接库,还可以调用功能强大的Windows应用程序接口(API)函数。API是Windows环境中可以提供任何Windows应用程序访问和调用的一组函数集合。在Windows操作系统中,包含了1000多个功能强大、经过严格

8、测试的API函数,供程序员编程时直接调用。充分利用这些API函数,可大大增强VB的编程能力。,Visual Basic 的特点 *,2020/8/22,(2)支持动态数据交换(DDE)。动态数据交换(Dynamic Data Exchange),就是把一种应用程序中的数据动态地链接到另一种应用程序中,当原始数据变化时,可以自动更新链接的数据。VB提供了动态数据交换技术,可在应用程序中建立与其他Windows应用程序之间的动态数据交换的通道,使得应用程序在运行过程中可以相互交换信息。,2020/8/22,(3)支持对象的链接与嵌入(OLE)。对象的链接与嵌入(Object Linking and

9、 Embedding),就是将每个应用程序都看作是一个对象,将多个不同的对象链接或嵌入到某个应用程序(它本身也是对象)中,如WORD文档中通过“插入/对象”可得到具有声音、图像、动画、文字、表格等各种形式的复合式文件,文件中每个对象都与创建它的应用程序相联系,双击这些对象即可在应用程序中执行与创建这些对象的应用程序完全相同的操作。,Visual Basic 的特点 *,2020/8/22,(4)支持Internet应用程序的开发。在VB中还可以轻松的开发基于客户端的DHTML应用程序、基于服务器端的IIS应用程序、创建自己的ActiveX控件和在Internet浏览器上使用的ActiveX文档

10、,这大大拓展了VB的Internet功能。,2020/8/22,运行环境,操作系统:NT Server 4.0、 NT Workstation 4.0、 Windows 95,或更高版本。 CPU:486DX/66 MHz 或更高的处理器。 内存:Windows 9598下要求24MB以上的内存,Windows NT下要求32MB以上。 磁盘空间:对于标准版或专业版,典型安装 48MB,完全安装 80MB。 其他设备:CD-ROM 驱动器,鼠标或其他光标控制设备。,2020/8/22,启动,方法一:开始菜单/程序/Microsoft Visual Basic6.0中文版/Microsoft V

11、isual Basic6.0中文版 方法二:找到安装有VB软件的文件夹,鼠标双击vb6.exe文件的图标。 方法三:开始菜单/运行中,找出vb6.exe文件运行。 方法四:建立快捷方式。鼠标双击快捷方式图标。 进入到 Visual Basic 6.0 集成开发环境。,2020/8/22,退出,当需要退出VB时,可以关闭VB集成环境窗口。 方法一:VB菜单中:文件/退出。 方法二:单击VB主窗体的右上角的关闭按钮。,2020/8/22,1.2 Visual Basic 6.0 集成开发环境,窗体设计器,标准工具箱,属性窗口,工程窗口,窗体布局窗口,第一个VB程序,2020/8/22,1.2 Vi

12、sual Basic 6.0 集成开发环境,VB的集成开发环境秉承Windows的一贯风格,由第一行的主菜单栏、第二行的快捷按钮和几个可以动态布局的窗口组成,它们分别是:窗体设计器窗口、标准工具箱、属性窗口、工程窗口和窗体布局窗口。,2020/8/22,窗体设计器,2020/8/22,标准工具箱,工具箱是VB用于为开发提供控件的面板,通过它可以往设计中的窗体设置各种控件。 除了VB内置控件之外,用户还可以通过菜单工程部件打开部件对话框,从中能添加控件、设计器或可插入对象到工具箱中,也可以引用已加载的控件工程。,按钮说明,2020/8/22,指针按钮,标签,框架,复选框,组合框,水平滚动条,垂直

13、滚动条,定时器,目录列表框,文件列表框,图像,数据控件,形状,直线,驱动器列表框,列表框,单选按钮,命令按钮,文本框,图片框,2020/8/22,属性窗口,窗体和控件都是VB程序设计的基本对象,它们具有许多可以设置的属性。属性窗口就是用来直观地设置各窗体、控件属性值的场所。,属性名称,属性值,2020/8/22,工程文件(.vbp)中保存着构成应用程序的5类文件,它们是:窗体文件(.frm)、程序模块文件(.bas)、类模块文件(.cls)、工程组文件(.vbg)和资源文件(.res)。,工程窗口,2020/8/22,窗体布局窗口,主要用来可视化定位程序运行时窗体的位置,用鼠标拖动其中的窗体小

14、图标可调整窗体运行时在桌面的位置。,2020/8/22,1.改变一个窗体的Caption属性为“新手上路我的第一个VB程序”。 2.保存窗体(.frm文件)和工程文件(.vbp文件)。 3.运行程序 “启动”或“全编译执行”。,第一个Visual Basic程序,2020/8/22,1.3 Visual Basic 程序设计的基 本概念和步骤,启动窗体 的设置,Visual Basic 可视化程序设计 的基本步骤,事件,对象和类,2020/8/22,Visual Basic的概念,传统的程序设计是面向过程的,这种程序设计是模拟用户要解决问题的过程,围绕着函数或过程来进行,程序的执行也是顺序的;

15、而VB程序设计则是面向对象的,应用程序是由对象事件驱动的,每个对象都具有自己的状态和行为,即属性和方法。本节主要介绍VB中的对象、属性、事件、方法等概念。,2020/8/22,对象和类,所谓“对象”,即现实生活中每个可见的实体,如每个人、每本书、每张桌子等,均可视为一个对象,整个世界就是由各式各样不断运动着的对象组成的。 用VB开发应用程序,首先就要学会从“对象”的角度来看整个程序设计过程。在VB中,可视化对象分为两大类,即窗体和控件。窗体就是窗口本身,控件则是在窗体上构成用户图形界面的一些基本组成部件,如命令按钮、文本框等。VB运用面向对象的程序设计方法,把程序和数据封装起来作为一个对象,并

16、为每个对象赋予应有的属性。在设计对象时,单击工具箱中工具按钮即可在界面上画出所需要的控件对象,此时VB自动生成建立对象的程序代码和该对象的初始化属性,并且将它们封装起来。每个对象以可视化图形方式显示在界面上。如图在下一页所示。 类:类是同类对象的抽象描述。类定义了由它所生成的对象具有的公共属性和方法。,2020/8/22,一个窗体对象和若干个控件对象所组成的可视化对象如下图:,2020/8/22,属性,属性用于描述对象的状态或特征。 例如,对于一个人,可以使用姓名、性别、年龄、职业等特征来描述;对于一台电脑,可以用CPU的型号、内存容量、硬盘容量、显示器尺寸等特征来描述,所有这些特征称其为属性

17、。在VB中,窗体和控件等对象也具有各自的属性。 以窗体对象为例,它具有标题(Caption)、名称(Name)、背景颜色(BackColor)、前景颜色(ForeColor)、字体(Font)以及是否可见(Visible)等属性。,2020/8/22,设置属性,在VB中可以通过两种方式来设置对象的属性:一种是通过属性窗口进行属性设置 ;另一种是编程方式。 设置属性的语句格式如下: 对象名.属性名属性值 其中,对象名即对象的名称,由其Name属性决定。 例如,假定一个窗体的名称为Form1,它的Caption属性表明其标题栏上显示的内容,则语句: Form1.Caption=“我的窗体” 将使窗

18、体Form1的标题栏上显示“我的窗体”字样。注:设置属性时一定要明确操作的是哪一个对象,不要写错对象名。 如上语句也可写成:Me. Caption=“我的窗体”,2020/8/22,方法:是指各种可在对象上进行的操作,控制对象动作行为的方式。方法的操作类似于过程或函数,其调用格式为: 对象名. 方法名 参数表 其中,“参数表”不是每个方法都具有的。有些方法必须带参数,如Zorder、Move等;有些方法参数可选,如Print、Show等;而有些方法则不需要参数,如Cls、Hide等。 如语句 : Form1.Print“Hello,您好!” 其功能是在名为“Form1”的窗体对象上显示“Hel

19、lo,您好!”字样。 在调用方法时,可省略对象名。如果省略对象名,那么默认为当前窗体对象。例如: Print“Hello,您好!” 表示在当前窗体对象上输出字符串。,方法,2020/8/22,事件,所谓事件,是指由VB预先设置的、能够被对象识别的动作。 例如,鼠标在窗体上单击一下,就会在该窗体上产生一次单击事件;若鼠标在窗体上移动时,则会在窗体上产生一个鼠标移动事件等。在VB中,控件对象常用事件有Click(单击)、DblClick(双击)、KeyPress(键盘按键)、MouseMove(鼠标移动)、LostFocus(失去焦点)、Change(改变)等。 当事件由用户触发(如Click)或

20、由系统触发(如Load)时,对象就会对该事件做出响应。响应某个事件后所执行的操作是通过一段程序代码实现的,这段程序代码称为“事件过程”。事件过程的一般格式为: Sub 对象名_事件名( ) (事件过程的内容) End Sub,2020/8/22,Visual Basic的窗体,窗体是设计用户界面的基本平台,是用户与应用程序进行交互的实际窗口。窗体是Visual Basic中的对象,具有自己的属性、事件和方法。 窗体:窗口、子窗口 窗体是一种最重要的对象 窗体是用于创建应用程序的用户界面或对话框 窗体是一种包容各种控件的容器 控件:放在窗体上的用于和用户交互的各种部件(文本框、标签、命令按钮、选

21、项按钮、列表框),2020/8/22,系统菜单、标题栏、最小化、最大化按钮可以通过窗体属性设置,分别为ControlBox、Caption、MinButton、MaxButton。,2020/8/22,窗体对象的属性,1.名称(name):窗体名称(第一个窗体名:Form1),在程序代码中被用作对象的标识名 命名规则:以字母开头,包含字母、数字和下划线 2. BorderStyle: 该属性用于在设计阶段通过属性窗口设置窗体边框的样式,运行时不能设置或更改。其取值有六种(0-5)。 3.Caption:标题(不同于名称),设置或读取标题栏中显示的文本内容。 4. Enabled:值为True或

22、False,用于决定窗体对用户所产生的事件做出反应。 5. Visible:值为True或False,返回或设置窗体可见或隐藏。 6. BackColor:背景色, ForeColor:前景色,2020/8/22,7.Icon:设置代表窗体控件菜单及最小化时的图标。VB可以识别的图标文件类型有“*.ico”和“*.cur”两种。 8. WindowState:返回或设置窗体运行时的状态。其值为0、1、2三种,分别表示窗体运行时正常化、最小化和最大化。 9.与位置有关的属性:Font、FontName、FontSize、FontBold、FontItalic、FontStrikethru、Fon

23、tUnderLine 10.描述位置和尺寸的属性:Left、Top、Height和Width。 默认单位:缇,窗体对象的属性,2020/8/22,窗体对象的方法,1. Show方法 窗体名ShowStyle 2Hide方法 Hide方法用于将窗体隐藏起来,但不从内存中清除。 格式为:窗体名. Hide 3. Cls方法 Cls方法用于清除运行时窗体上所生成的文本和图形,而设计时使用Picture属性设置的背景图和放置的控件不受影响。 4. Print方法 Print方法用于在窗体上显示文本字符串和表达式的值。一般格式为:object.Print outputlist ;|,| object:可

24、以是窗体、图片框、打印机,缺省为当前窗体。 5. Move:移动;printForm:打印窗体;Refresh:刷新,2020/8/22,窗体对象的事件,事件驱动方式:程序的运行没有固定的顺序。 事件:使某个对象进入活动状态的一种操作或动作。,1Load事件 装入窗体是将窗体的可视部件(窗体及其上面的控件)由磁盘装入到内存,此时将由系统触发Load事件。 2Unload事件 当从内存中清除一个窗体,将由系统触发Unload事件。该事件常用于窗体被关闭或应用程序结束时。 3. Activate事件与Deactivate事件 Activate事件与Deactivate事件是窗体在可见状态下两个事件

25、。该窗体变成活动窗体时,就会触发Activate事件;当另一个窗体或应用程序被激活时,该窗体就会触发Deactivate事件。,2020/8/22,4Resize事件 程序运行时,如果窗体初次显示在屏幕上或窗体大小被改变(例如,一个窗体被最大化、最小化或被还原时),那么将自动触发。 5. Click:单击; Dblclick:双击,窗体对象的事件,2020/8/22,多窗体,1. 多窗体 Visual Basic允许在一个工程中存在多个窗体。多窗体程序一般具有单文档界面和多文档界面两种。 2. 多重窗体操作 如果在一个程序内需要多个界面,则需要在里面插入多个窗体,这就需要进行多重窗体操作。,2

26、020/8/22,启动窗体的设置,在一个Visual Basic工程中可用添加窗体功能添加多个窗体。,启动窗体的设置2,2020/8/22,如果需要启动后建立的窗体,必需利用工程菜单栏中的工程属性设置功能进行启动窗体设置,将后面建立的窗体选择为启动窗体。,启动窗体的设置,2020/8/22,VB可视化程序设计的基本步骤,通过前面的介绍,我们可以把Visual Basic可视化程序设计的基本步骤归纳如下: (1)选择要创建的应用程序类型(如:EXE文件),并打开一个工程。 (2)使用可视化工具(窗体、控件等)设计程序界面。 (3)编写事件过程与模块代码。 (4)命名保存工程文件。 (5)调试、生

27、成应用程序。,2020/8/22,1.4 实例简介,计算器,2020/8/22,我的通讯簿,2020/8/22,文本编辑器,2020/8/22,MyQQ网络聊天程序,2020/8/22,教材练习1(P21一),课后练习,2020/8/22,预习内容,教材第2章,2020/8/22,第2章顺序结构 程序设计,内容提要,基本数据类型 常量与变量 运算符与表达式 基本语句 数据输入与输出,2020/8/22,2.1基本数据类型,数据是计算机的处理对象,包括数值数据(整数、小数)和非数值数据(字符、声音、图像等)。 在计算机语言中,对各种数据进行特定的分类,给于不同的表示方式、存储单元。 数据是以二进

28、制形式存储的。,数据类型,2020/8/22,2.1基本数据类型,字符串(String)数据 数值型数据 日期(Date)型数据 布尔型(Boolean)数据 变体(Variant)型数据 货币型(Currency)数据 字节型(Byte)数据,2020/8/22,字符串是由ASCII字符组成的字符序列,在Visual Basic中使用字符串时有以下几点内容: (1) 以作定界符:如asd、 中国; (2) ASCII字符长度为1;中文符号及汉字长度为1; (3) :空串; :空格字符串; (4) 两种字符串: 变长字符串(231-1)(存储空间:字符长度+10) 定长字符串(217-1)(存

29、储空间:字符长度),字符串(String)数据,2020/8/22,数值数据类型是指可进行数值运算(加、减、乘、除)的数据类型。在Visual Basic中对数值数据进行以下分类: 整型(Integer 2):保存正负整数和0;范围:-3276832767 长整型(Long 4):保存更大范围内的整数; 单精度型(Single 4):保存小数,最多7位有效数字,表示为aEc或aec,如1.234E+4; 双精度型(Double 8):保存小数,最多15位有效数字,表示为aEc或aec,如314.15926E-2;,数值型数据,注:尽量避免空间浪费,避免数据溢出,如果是小数定义为整型,系统自动舍

30、弃小数位。,2020/8/22,日期型数据类型用于存储各种格式的日期,为计算机中的日期设定一定的格式。 各种日期数据表示时都要加上定界符:# #,如#03/10/2004#,#2004-03-10#,#March 1,2004#,#2004-2-5 13:12:45#等。 日期型数据存储时占用8字节的存储空间。,日期(Date)型数据,2020/8/22,布尔型(Boolean)数据,若数据的值只是True/False、Yes/No、On/Off信息,则可将它声明为 Boolean 类型。 Boolean的缺省值为 False。Boolean型数据的值为真(True)、假(False)两种。

31、布尔型数据存储时占用2字节的存储空间。,2020/8/22,变体型数据可以根据各种运算随时改变数据类型,可以表示任何值。包括数值、字符串、日期等。系统默认的数据类型。 例: Dim SomeValue As Variant SomeValue= 17 SomeValue=15,变体(Variant)型数据,2020/8/22,为表示钱款而设置,精确到小数点后4位,在小数点后4位以后的数字将被舍去,即保留小数点右边4位和小数点左边15位;货币类型数据的小数点是固定的。 货币型数据存储时占用8字节的存储空间。 这种数据类型用得很少。,货币型(Currency)数据,2020/8/22,字节型数据类

32、型主要用来描述和处理字节大小的信息,常用于访问二进制文件、图形、声音文件等。 字节型数据存储时占用1字节的存储空间。,字节型(Byte)数据,2020/8/22,2.2 常量与变量,常量 变量,2020/8/22,在程序中设置的常量,即是用标识符表示永远不变的数值、字符串、日期等数据。通过采用有意义的标识符表示常量值,由此可以提高源代码的可读性和可维护性。 值得注意的是:常量不能像对变量那样在程序运行过程中给常量标识符赋以新值。 在VB中可以使用两种形式的常量。即直接常量和符号常量。 直接常量 符号常量,2.2 常量与变量,常量,2020/8/22,直接常量是各种类型的数据。如: 数值常量(1

33、23,3.1415926)(科学记数法) 字符串常量( abc ,中国 ) 布尔常量(True、False) 日期常量(#2005/2/28#),直接常量,2020/8/22,符号常量是用一符号名来代替数值或字符串。有两种来源:内部的或系统定义的,其由VB系统或引用的对象提供。格式如下: Const 符号常量名 As 类型=直接常量 例: Const NUMBER As Integer=50 Const PI as Single=3.141592 Const SW_SHOW=5 系统用于打开文件的常量参数值 Const WM_PASTE=y;z print x y z 注:在最后输出的变量后如

34、果有,和;,那么其下一个print输出结果紧接着其后输出。,数据输出,2020/8/22,例:看如下程序段 A=4 B=5 C=54 S=a*b*c print s,同样,如输出a*b*c=s,该如何修改程序?,2020/8/22,第3章选择结构 程序设计,内容提要,条件表达式 条件语句 多分支条件选择语句 选择性控件,2020/8/22,3.1条件表达式,在选择控制语句中,作为判断依据的是条件表达式,根据它的取值真、假来决定执行的流程,条件表达式有两大类:关系表达式和逻辑表达式。 关系表达式用于表示简单的表达式,而逻辑表达式表示更为复杂或复合的表达式。,关系表达式 逻辑表达式,2020/8/

35、22,关系表达式是指由一个关系运算符把两个表达式连接起来的式子。Visual Basic 提供的关系运算符有: (等于)、(大于)、(不等于)、(大于或等于)、(小于或等于) 关系表达式的结果为逻辑值:真(True)、假(False)。,关系表达式,2020/8/22,设定关系表达式时需注意以下规则: 1)运算符两边的表达式数据类型一般须一致; 2)字符串是按ASCII码表的顺序(空串=4 and x=7,不能书写成4x7。,关系表达式,2020/8/22,逻辑表达式是用逻辑运算符将关系表达式连接起来的式子。 Visual Basic 提供的逻辑运算符有: Not 、 And 、 Or 、 X

36、or(异或)、 Eqv(逻辑相等)、 Imp(隐含),逻辑表达式,2020/8/22,逻辑表达式,逻辑非(Not):取反 逻辑与(And):全真取真 逻辑或(Or):全假取假 逻辑异或(Xor):操作数相反时,结果为真 逻辑相等(Eqv):操作数相同时,结果为真 逻辑隐含(Imp):当第一个操作数为真,第二个操作数为假时,结果才为假,其余结果均为真。,2020/8/22,运算符优先顺序,在表达式中,当运算符不止一种时,要先处理算术/字符运算符,接着处理关系运算符,然后再处理逻辑运算符。 算术/字符运算符优先级由高到低是:指数运算()、负数(-)、乘法和浮点除法 (*、/)、整数除法()、求模运

37、算(MOD)、加法和减法(+、-)、字符串连接( If x Max Then Max = x Next i Print Print 最大值=; Max End Sub,求最小、最大值,2020/8/22,常用的排序算法,1. 比较交换法 基本过程(以降序为例):将第一个元素顺序与其后面的元素比较,比第一个大则进行交换,第一轮完毕后,最大的元素被挪到了第一个位置,第二轮从第二个元素开始重复上面的过程,结束后得到第二个最大的元素,如此下去经过 N-1 轮的比较,可将 N 个数排好。,举例 原始数据: 1,2,3,5,4 要求:降序,2020/8/22,第 一 轮 比 较 :,第一轮结束,找到最大值

38、 5,2020/8/22,第 二 轮 比 较 :,第二轮结束,找到第二最大值 4,2020/8/22,第三轮结果:5 4 3 1 2,第四轮结果:5 4 3 2 1,公式表示:(N为排序的维数, OP为操作,降序为 ) for (i=1 to N-1)外层循环N-1次 for (j=i+1 to N)内层依赖外层 if (S(j) OP S(i))then t=S(i):S(i)=S(j):S(j)=t交换End if Next j Next I,2020/8/22,2. 选择法排序,特点:比较后不立即互换元素,而是记下其位置并在每一轮比较完毕后和()互换 首先,比较的元素不同,以降序为例,是

39、当前元素与上次比较后的最大元素进行比较,因此,在进行比较之前,要有一个初始化最大元素的过程 其次,确定完毕的元素的互换是在每一轮完成后进行的,而不是在比较后进行的 再次,交换元素的不同,为(i)和(iMax) 举例 原始数据: 1,2,3,5,4 要求:降序,2020/8/22,2020/8/22,如此下去,第二轮找到,第三轮, 选择法的公式表示:,For i=1 to N-1 iMax=I初始化iMax,在每轮比较开始处 for j=I+1 to N if(S(j) OP S(iMax) then iMax=j next j 注意比较对象的转变 t=S(i):S(i)=S(iMax):S(i

40、Max)=t 注意互换的时间 Next I,2020/8/22,. 冒泡法排序 如果按升序排序,则方法为: 将相邻两个数比较,把小数对调到前边,如此进行一轮后,就会把最大的数互换到最后,再进行一次,则会把第二大数排在倒数第二的位置上,进行次后,整个数列即可排好 在这种排序过程中,小数如同气泡一样逐层上伏,而大数逐个下沉,因此,被形象的喻为“冒泡”。 特征: 当数据的大小顺序与要求不符时(逆序),才进行互换操作。,2020/8/22,第一轮比较 :,第一轮结束,最大值 9沉到最底,2020/8/22,第二轮比较 :,第二轮结束,次大值7沉到倒数第二,2020/8/22,冒泡法的公式表示:,For

41、 i=1 to N-1 for j=1 to N-i比较次数逐次减少 if(S(j) OP S(j+1) then t=S(j):S(j)=S(j+1):S(j)=t立即互换 end if next j next i,例:从键盘上输入10个整数,将它们按由小到大的顺序显示出来。,2020/8/22,最大公约数,问题描述: 输入正整数m、n,利用辗转相除法求它们的最大公约数。 任务分析: 辗转相除法求m、n两个数的最大公约数的具体方法是:以m作为被除数,n作为除数,两数相除,设余数为y。若余数y0,则以上一次的除数作为新的被除数,余数y为新的除数,继续相除,如此重复,直至余数y=0时止。此时的除

42、数即为m、n两数的最大公约数。,2020/8/22,1.前100个自然数中编号为奇数的质数的和。 2.已知AB,且A,B为正整数, AB=716699(1)求A+B最小的A值。(2)求A+B最小的B值。 3.设某国今年的国民生产总值为45600亿元,若今后每年以8%(或9%)的增长率增长,计算多少年后能实现国民生产总值翻两番? 4.某些分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子个位数和分母十位数同时去掉,所得结果正好等于原分数约分后的结果,例如16/64=1/4,求满足上述条件的所有真分数个数。 5.一个14*14方阵A(i,j),其每个元素的值为该元素下标的立方和,求出

43、该矩阵所有元素的累加和(注:i,j从1到14)。,思考题,2020/8/22,6.勾股弦数是满足公式: A2+B2=C2 (假定ABC)的一组正整数(A,B,C),例如,(156,65,60)是倒勾股数,因为:1/1562+1/652=1/602。(1)求A,B,C均小于或等于100,满足倒勾股数公式的A,B,C之和的最大值 ;(2)求A,B,C均小于或等于100,满足倒勾股数公式的各组正整数(A,B,C)中A的和值。,2020/8/22,8.所谓回文数是从左至右与从右至左读起来都是一样的数字,如:121是一个回文数。编写程序, (1)求出100900之间的所有回文数的个数及和。 (2)求在1

44、00900的范围内所有能被3整除的回文数的个数及和。 9.编写程序,求共有几组i、j、k符合算式ijk+kji=1333,其中i、j、k是09之间的一位整数。 10.求方程X3-2X-5=0在区间1.5,2.5上的一个实根。 要求:按四舍五入的方式精确到小数点后第二位。 11.已知一个数列的前3个数为0,0,1,以后每个数为前3个数的和。编程序求此数列的第36个数。,2020/8/22,12.设等比数列:1,3,9,27,。求使得此数列的前n项之和小于567834569的最大的自然数n。 13.编写程序,计算1000以内有多少个这样的数,其十位数为6且能被8整除。 14.有一个分数序列:2/1

45、,3/2,5/3,8/5,13/8, 21/13 (注:该数列从第二项开始,其分子是前一项的分子与分母的和,而其分母是前一项的分子),求出这个序列前24项的和。要求:精确到小数点后第二位。 15.已知:f(1)=1,f(2)=1/(1+f(1),f(3)=1/(1+f(2),,f(n)=1/(1+f(n-1),求f(50)。(按四舍五入的方式精确到小数点后第三位)。,2020/8/22,16.已知:f(0)=f(1)=1,f(2)=0 f(n)=f(n-1)-2f(n-2)+f(n-3), (n2) 求f(0)到f(50)中的最大值或最小值598325 -288959 17.数列:e(1)=e

46、(2)=1;e(n)=(n-1)e(n-1)+(n-2)e(n-2), (n2)称为e数列,每一个e(n),(n=1,2,)称为e数。 求1,30000之内最大的e数或个数。 16687 8 18.已知f(n)=f(n-1)+2f(n-2)-5f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+f(30)。-750874 19.设某四位数的千位数字平方与十位数字的平方之和等于百位数字的立方与个位数字的立方之和,例如,对于四位数:3201, 32+02=23+13,试问所有这样的四位数之和是多少? 64584,2020/8/22,20.求出100以内最大的自然数n,使得

47、从1开始的连续n个自然数的立方之和小于99999。 24 21.求前5,600内能被5或9整除的所有自然数的平方根的和(将第1位小数四舍五入,结果只保留整数)。 2826 22.在200,900范围内同时满足以下两个条件的十进制数: 其个位数字与十位数字之和除以10所得的余数是百位数字;该数是素数;问有多少个这样的数? 14 23.编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是18的倍数,且D=6 ,A+B=B+C,即第1位数加上第2位数等于第2位数加上第3位数。 10,2020/8/22,24.求所有符合算式ab*ba=4032的最小的两位数ab。其中a,b是19之间的一位整

48、数。 25.设某四位数的各位数字的平方和等于100,问共有多少个这种四位数? 26.水仙花数是指这样的数,其各位数字的立方和等于该数本身,如: 153=13+53+33。编写程序:求100至400的范围内有多少个水仙花数。,2020/8/22,27.一个数出现在该数的平方数的右边,称这个数为同构数。例如,5出现在平方数25的右边,25出现在平方数625的右边,则5、25都是同构数。找出1到1000之间的所有同构数的个数。 28.一个数如果刚好与它所有的因子之和相等,则称该数为一个完数,如:6=1+2+3,则6就是一个完数。求出200到500之间所有的完数之和。,2020/8/22,29.若某整

49、数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是多因子完备数。 (1)求1,500之间最大的多因子完备数。496 30.自然数对是指两个自然数的和与差都是平方数,如8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。假定(A,B)与(B,A)是同一个自然数对且假定A=B,求所有小于或等于100(即:A=100,B=100)的自然数对中B之和。1160,2020/8/22,4.5列表框、组合框与计时器,列表框(ListBox) 组合框(ComboBox) 计时器,在有限空间范围内,

50、给用户提供多项选择的目的。,2020/8/22,列表框(ListBox),列表框用于列出多个可供选择的选项,由用户从中选择一个或多个项目。除了控件的公共属性(如Name等)之外,列表框还有一些自己特有的属性和方法。,2020/8/22,列表框的重要属性,2020/8/22,列表框的重要方法,1. 添加项目:列表框.AddItem item,index,如果省略index,文本被放在最后。 例如:List1.AddItem “王平” 2. 删除项目:列表框. RemoveItem index 例如:List1. RemoveIItem 0 3. 获得列表项目内容:列表框.list(index)

51、例如:Text1.text=List1.list(2) 4. 清除列表中的所有内容:列表框名.clear,2020/8/22,例 用列表框设计一个商场购物模拟程序。,2020/8/22,2020/8/22,组合框( ComboBox ),组合框是文本框和列表框的组合,其上端是一个文本框,下端是一个列表框。有了这个控件,用户可通过在组合框中输入文本来选定项目,也可从列表中选定项目。组合框有3种类型,分别对应于Style属性的3种取值。 下拉组合框(DropDown Combo) 简单组合框(Simple Combo) 下拉列表框(DropDown List),2020/8/22,下拉组合框(Dr

52、opDown Combo),下拉组合框(DropDown Combo),Style属性值为0。用户可以单击其下拉箭头,从打开的列表框中选择项目;也可以直接在文本框中输入数据。下拉组合框最常用的事件是DropDown和Change。,2020/8/22,简单组合框(Simple Combo),简单组合框(Simple Combo),Style属性为1。可以直接输入数据也可以选择列表项,但是列表不是下拉式的,最重要的事件是DblClick。注意:简单组合框下部的下拉框的大小必须在组合框添加到窗体时设置或用鼠标画出,否则不能在程序执行时显示下拉框。,2020/8/22,下拉列表框(DropDown

53、List),下拉列表框(DropDown List),Style属性值为2。不能直接输入,只能选择列表项,最常用的事件是DropDown。,2020/8/22,例:组合框应用设计一个高考志愿填报模拟程序。 两个组合框cboCollegeSelect和cboSubjectSelect,cboCollegeSelect的Style属性为0,缺省Text属性为“学校选择”,cboSubjectSelect的Style属性为2。,2020/8/22,2020/8/22,计时器控件又称为定时器或时钟,是按一定时间间隔自动触发事件的控件,使用计时可器可定时重复执行时钟中断过程。在程序运行时,计时器是不可见

54、的。,计时器,2020/8/22,1.计时器的属性 (1)Interval属性 设定计时器触发Timer事件的时间间隔,即两个计时器事件之间的时间间隔,其值以毫秒为单位,允许范围是065535。该控件会自动检查系统时间是否又到Interval属性值,到了便产生Timer事件,执行时钟中断过程。当Interval属性值为0时屏蔽计时器,使计时器不再产生Timer事件。 (2)名称和其他属性 系统的隐含名称为Timer1、Timer2等。和行为有关的主要属性有Enabled,当Enabled为False时,计时器同样不再产生Timer事件。,2020/8/22,2.计时器的事件 计时器控件的常用事

55、件是Timer事件,是计时器在间隔一个Interval时间后所触发的事件。,2020/8/22,例4.18 倒计数。设计一个窗体,在窗体上添加两个标签和一个计时器。运行程序时,自动开始倒计数,从10到0每隔一秒倒计数一次,计数时在两个标签中分别显示系统当前时间和倒计数的值。 (1)任务分析:运行程序时,要求每隔一秒倒计数一次,要使用计时器控制,并设置计时器时间间隔Interval为1000。计数器变量要设置为窗体级变量,初值为0,以后每次计时器Timer事件过程中减1。,2020/8/22,第五章 过程,5.1过程与模块 5.2函数过程的定义与调用 5.3子过程的定义与调用 5.4参数传递 5

56、.5变量、过程的作用域 5.6重点和难点,2020/8/22,5.1 过程与模块,过程 模块,2020/8/22,过程和模块的概念,一、过程与模块 (一)过程,事件过程(控件)、内部函数过程 通用过程:,子程序过程(Sub过程) 函数过程(Function过程,有返回值),(二)模块 窗体模块Form:.frm 标准模块Module:通用过程 .bas 类模块Class:新的类 .cls,2020/8/22,过程,过程是完成某种功能的独立程序段。在VB中主要有两类过程,一类是系统提供的内部函数过程和事件过程,在前面几章已经介绍过了;另一类是可以被其它过程调用的过程,称之为通用过程。 事件过程是

57、当某个事件发生时,对该事件做出响应的程序段,它依附于特定窗体、控件等对象,是VB应用程序的主体。通用过程与事件过程不同,它不与任何特定的事件相联系,也不依附于某一对象,只能由别的过程来调用。 建立通用过程的主要目的是通过代码的重用减少重复的编码工作,以提高程序的开发效率。根据其是否有返回值,可以将通用过程划分为子程序过程(Sub过程)和函数过程(Function过程)两类。,2020/8/22,模块,模块是VB用于容纳对象和代码的容器。一个VB应用程序可以由3种模块组成,它们是窗体模块(Form)、标准模块(Module)和类模块(Class),分别保存相应类型的文件中。,2020/8/22,

58、VB应用程序的组成,2020/8/22,模块应用说明,每个窗体对应一个窗体模块。窗体模块包含窗体变量声明、事件过程和通用过程等,它们连同窗体一起保存在扩展名为.frm的窗体文件中。简单应用程序通常只有一个窗体,所有的代码都存放在其窗体模块中。 当构造一个庞大而复杂的系统时,我们常常需要使用多个窗体。在这种多窗体结构的应用程序中,有时一个通用过程需要在多个不同的窗体中重复使用,此时就需要创建标准模块。标准模块内的代码通常都是公有的,任何窗体或模块中的事件过程或通用过程都可以调用它。值得注意的是,标准模块中只能存储通用过程不能存储事件过程。 在创建一个VB应用程序时,系统会在工程中包含一个窗体模块

59、,但是系统不会自动在工程中包含标准模块。标准模块是由程序员根据需要使用工程菜单中的添加模块命令来添加的。,2020/8/22,除了系统提供的内部函数过程和事件过程外,用户可自定义过程: Sub保留字开始的为子过程 Function保留字开始的为函数过程 1函数过程的定义 自定义函数过程有两种方法: (1)利用工具菜单下的添加过程命令定义,生成一个函数的框架 (2)利用代码窗口直接定义 函数过程形式: Function 函数过程名(参数列表) As 类型 局部变量或常数定义 语句块 函数名 = 返回值 函数过程体 Exit Function 语句块 函数名 = 返回值 End Function,2020/8/22,函数过程名:命名规则同变量名 参数列表形式: ByVal变量名()As 类型 称为形参或哑元,仅表示参数的个数、类型,无值

温馨提示

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

评论

0/150

提交评论