医学信息技术基础教程-第5章程序设计基础_统稿_校对_修改

上传人:奇*** 文档编号:210697784 上传时间:2023-05-17 格式:DOC 页数:61 大小:1.93MB
返回 下载 相关 举报
医学信息技术基础教程-第5章程序设计基础_统稿_校对_修改_第1页
第1页 / 共61页
医学信息技术基础教程-第5章程序设计基础_统稿_校对_修改_第2页
第2页 / 共61页
医学信息技术基础教程-第5章程序设计基础_统稿_校对_修改_第3页
第3页 / 共61页
点击查看更多>>
资源描述
第5章程序设计基础篇在物理世界与信息世界高度融合的信息化社会里,医疗卫生的传统业务流程在专业信息系统支撑业务运转的数字化平台上逐步形成医疗业务和卫生管理业务流程新的实施形式,给人们带来了高效率、方便和舒适。目前有许多的软件技术可开发支撑业务运转的应用系统,本章基于Visual Basic 2010软件开发环境,介绍程序设计的基础知识,并以医院的局部业务实施为案例,介绍运用程序设计方法架构业务应用的小系统。5.1程序设计基础知识Visual Basic是一种可视化的、面向对象的程序设计语言。用Visual Basic程序设计语言可方便地设计出应用程序的图形界面以及和界面上对象操作有关的程序。5.1.1面向对象程序设计概述在面向对象程序(Object-Oriented Programming,OOP)设计中,人们将对象看作是数据以及可以施加在这些数据之上的可执行操作所构成的统一体,而将整个程序看作是既相互协作而又相互独立的、具有各自工作能力的对象集合,OOP应该做的是创建所需的各种对象,并按整个应用系统的需求而建立各个对象之间协同工作的能力。面向对象程序设计的首要任务是从客观世界中抽象出为解决问题所需的对象,再为每个对象设置各种属性并制定其行为和方法,最后利用事件触发机制和消息传递机制使各个相关对象协同工作。因而对象、属性、事件和方法等是OOP中基本概念。1程序和程序设计程序是用计算机语言描述(编写)解决一个特定问题的算法(步骤)的有序集。程序设计是针对需要计算机求解的问题,进行分析问题、确定算法、编写程序和上机调试程序的过程。其中“确定算法”是程序设计的关键环节,如没有“确定算法”就不要“编写程序”。通常采用流程图描述算法的逻辑步骤。程序设计者一般使用的流程图符号见图5.1。图5.1 流程图常用符号学习程序设计时应严格遵循该过程中各个步骤的基本要求,才能培养严谨的逻辑思维和规范的工程设计能力。2面向过程和面向对象的程序设计计算机完成任何任务,都需要执行相应的程序。系统程序和通用程序等通常由专业的软件人员设计;一般用户编写自己所需的有特别要求的程序。程序设计语言多种多样,各有特色,基本可将它们归类为面向过程的程序设计语言和面向对象的程序设计语言。(1)面向过程的程序设计传统的程序设计方式是面向过程的,它通过一系列的命令代码来实现某种程序功能。20世纪80年代引入了结构化程序设计思想:即将一个规模较大、功能较复杂的程序系统,划分为若干个功能较为简单、相互关联又相对独立的程序模块,并根据需要对这些模块再作进一步的细分,然后将这些模块有机地组装起来构成一个大的、完整的程序系统。开发面向过程的应用程序大多数采用如Basic、Fortran、Pascal、C等的面向过程的程序设计语言。(2)面向对象的程序设计将系统中所有的资源都看成“对象”,使用对象来描述程序中的实体。程序设计主要针对对象可能发生的事件编写程序,即事件过程。程序的执行顺序取决于事件发生的先后。当某一事件发生了,就去执行处理该事件的相应程序;再等待下一个事件的发生。面向对象的程序设计方式是当前程序设计的主流方向,开发面向对象的应用程序可以采用如Visual Basic、Visual C+等程序设计语言。在面向对象的程序设计中,对象是将数据和功能封装为一体的编程结构,公开访问它的唯一方法是通过该编程结构的接口(属性、方法和事件)。而一个应用可以理解为是对所有对象的所有事件过程完成的功能的组合。因此,一个面向对象的程序设计的基础环节是为对象事件的响应操作设计程序代码。事件过程的程序设计依然是面向过程的程序设计。3面向对象程序设计的基本要素(1)对象(Object)、类(Class)对象是面向对象程序设计的核心,Visual Basic 2010中的对象是用类定义的。类是创建对象的模板,是同种对象的抽象。对象是类创建的实例。例如自然界中的树和桃树的关系就是类和对象的关系。树是类的概念,它代表了自然界所有的树。桃树是树中的一种,它不仅具有树的所有性质,而且还有桃树本身的特性。在Visual Basic 2010中,类通常是由系统设计好的,可供用户使用的模板。Visual Basic 2010工具箱上的各种工具代表类,当用户用某一个工具在窗体上“画”了一个控件,即创建了控件对象,简称控件。控件对象包含描述其特征的数据,即属性和代码。每个对象不仅有自己的名字、特征(属性),而且用同一个类创建的每一个对象都具有这个类定义的公共特征和功能(属性、事件和方法)。(2)对象的属性、事件、方法对象是代码和数据的集合,是计算机系统的基本运行实体,对象是一些属性、方法和事件的集成。属性是描述对象的数据;事件是对象的响应;方法是对象进行的操作。1)属性(Properties)。Visual Basic 2010中的对象有很多属性,用它们来描述对象的特征。这些属性决定对象的外观和功能。不同的对象有各自不同的属性(如外观、形态、颜色、可用性、可见性等)。在程序运行时,可设置也可获取的属性为可读写属性。运行时,只能读取的属性为只读属性。对象的有些属性可以在程序设计时通过“属性”窗口设置,也可在程序中通过代码设置,但有些属性在设计时不可用,只能在程序中通过代码设置。在程序中设置属性的语句格式为:.例如:设置表单Form的Text属性为“欢迎进入系统!”,使用的语句是:Me.Text = ” 欢迎进入系统!”上述语句代码中Me代表当前窗体。录入程序时,当输完Me,再输入点号时,将出现一个智能下拉列表框。Visual Basic 2010 自动识别Me代表当前窗体对象,在智能下拉列表框中显示包含该窗体的所有属性和方法,供用户选择录入。这种功能称为智能感知(IntelliSense)。当智能感知下拉框出现时,使用向上和向下箭头来导航列表,按Tab键来选择高亮显示的列表项。这样可以防止成员名拼写错误,从而减少编译错误。2)事件(Event)和事件过程。Visual Basic 2010采用事件驱动编程机制。所谓事件(Event)是发生在对象上的事情。例如:鼠标单击按钮。即在按钮(对象)上发生了鼠标单击(Click)事件。当系统响应用户的一些动作时,就触发了事件,并执行相应的过程代码。这些过程代码是处理事件的步骤,称为事件过程。Visual Basic 2010中的每一个事件都有一个固定的名称,如Click、Load、TextChanged等。这些事件的名称由系统统一预设,是Visual Basic 2010的保留字。不同类型的对象可识别的事件不一定相同,当某事件被触发时,系统会对该事件做出响应。如装载一个窗体时触发Load事件,单击按钮触发Click事件,双击按钮触发DoubleClick事件等。3)方法(Method)。为完成某一目标,将一些通用过程和函数编写后封装起来供用户直接调用的程序代码称为方法。简而言之,方法是对象可以执行的操作行为。用户调用时,用相应过程和函数的名即可。不同的对象有不同的方法。方法的调用与属性的引用类似:调用格式如下:.( )如设置一个按钮作为窗体的退出事件。设置的程序代码如下:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Close( )End Sub方法通常用于让对象来执行操作,属性用于获取和设置对象的特征。在代码中方法调用不同于属性引用之处是:方法名称后面有一对括号,如上面Me.Close()。5.1.2工作平台与工程设计简介Visual Studio 2010是一个包括了Visual Basic 2010、Visual C#、Visual C+、Visual F#等一系列语言模版的集成开发环境(Integrated Development Environment,IDE),是一套完整的开发工具,可供开发人员生成 ASP.NET Web 应用程序、XML Web services、桌面应用程序和移动应用程序。Visual Studio 2010简化了在各种平台(包括 SharePoint 和云)上创建、调试和开发应用程序的过程,其自带对测试驱动开发的集成支持以及调试工具,可以帮助确保提供高质量的解决方案。Visual Studio 2010的多种语言共同基于.NET框架、并集成在统一开发环境下的设计功能提供了简化 ASP Web 应用程序和 XML Web services 开发的关键技术,能够轻松地共享工具和创建混合语言解决方案。1集成开发环境简介单击“开始|所有程序|Microsoft Visual Studio 2010|Microsoft Visual Studio 2010”的菜单命令可以启动Visual Studio 2010,进入到Visual studio 2010的空环境。然后单击“文件|新建|项目”命令,打开“新建项目”对话框,在该对话框中选择Visual Basic模板下的“Windows窗体应用程序”,可以创建具有Windows用户界面的应用程序,然后进入到Visual studio 2010集成开发环境界面,并在设计窗格中打开一个默认名称为Form1.vb的空窗体,如图5.2所示。Visual Basic 2010工作环境不同于早期版本,它实际上已经融入Visual studio 2010的统一集成开发环境中,该环境是一个集中了许多不同开发工具和设计功能的开发平台,用户可在其中进行程序设计、编辑、生成、调试、测试等。图5.2 IDE集成开发环境界面(1)菜单栏图5.3工具箱Visual Studio 2010的菜单栏与其他应用程序菜单相似,它除了具有一般软件中的一些标准的菜单外,还提供了与编程和程序运行有关的菜单,例如:“项目”、“生成”、“调试”、“数据”、“测试”等菜单。(2)工具箱Visual Studio 2010的工具箱如图5.3所示。当需要使用“工具箱”的内容时,展开各项目节点下的相应内容即可使用。如使用公共控件,可以展开公共控件节点下的内容,从中选择“Button”、“Label”、“TextBox”等常用控件进行设计。在工具箱内的所有类别项目下都包含了一个指针控件。指针控件的功能是对已生成的控件进行选定、移动、改变大小等的操作。(3)设计窗格设计窗格(设计器)用于设计应用程序的界面。用户可以在设计窗格中打开窗体,在窗体上面设计各种控件、图形、图片等。每一个窗体必须有一个唯一的名字。建立窗体时的默认名称为:Form1、Form2.。一个应用程序由一个或一个以上的窗体组成。(4)代码窗格代码窗格(代码编辑器)用于输入程序、显示和编辑程序代码。每个窗体都有自己的代码窗格,如图5.4所示。打开代码窗格的方法有: 1)在设计窗格的窗体中,用鼠标双击一个控件或窗体,或按键。2)用“视图”菜单中的“代码”命令。图5.4 代码窗口图5.5属性窗口(5)属性窗格通过属性窗格,选择已设计的窗体或控件,可设置或修改它们的属性值。属性窗格的属性列表有两种排列方式:按字母排序(默认设置)和按分类排序。按分类排列其属性可分为七类,分别是:布局、行为、焦点、可访问性、设计、数据、外观、杂项。例如单击窗体任意地方,可以在“属性”窗格中浏览窗体的属性,窗体的名称Form1 System.Windows.Forms.Form将显示在“属性”窗格的下拉列表框中,如图5.5所示,其中Form1是对象的名称,System.Windows.Forms.Form是对象的类型。2一个简单的工程开发示例下面以一个简单的工程开发示例,介绍开发Visual Basic 2010程序的一般过程和方法。(1)Visual Basic 2010应用程序设计的主要步骤设计Visual Basic 2010的应用程序,不论应用程序是简单,还是复杂的,都可以归纳为下面四个主要步骤:1)建立应用程序的交互界面(在窗体上创建控件对象);图5.6 系统封面2)设置对象的属性;3)编写对象事件过程代码;4)调试、运行应用程序,保存。(2)简单设计实例例5.1制作一个系统封面,封面效果如图5.6所示。要求在窗体上设计二个标签,作为系统封面的说明。程序设计的过程:创建对象:启动Visual Studio 2010,创建一个“Windows窗体应用程序”项目。选定工具箱中的标签控件,在窗体上添加两个标签Label1、Label2,并调整其位置。右击选中的对象,打开该对象的属性窗格,设置相应对象的属性,属性设置内容见表5.1。表5.1例中对象属性的设置对象属性设置内容Form1Text系统登录封面Label1Text欢迎进入高校教学管理系统Label2Text版权所有:新时代公司调试、存盘:单击工具栏上启动调试按钮(或按键),运行程序。在运行过程中,若程序出错,则需进行调试;最后保存程序。5.1.3程序语句的组成基元程序是由一系列描述算法的语句代码组成,而每条程序语句是由命令代码、运算符号、数据、表达式、被操作对象等基本元素遵循Visual Basic语言规则编写所形成的。因此,学习程序设计,首先要求掌握Visual Basic 2010的语言的基本元素,包括数据类型、运算表达式以及代码编写规则。1数据类型的描述Visual Basic 2010提供了多种标准的数据类型,用户可根据自己程序设计中的需要,选用相应的数据类型,表5.2列出了Visual Basic 2010 常见的数据类型。表5.2 Visual Basic数据类型数据类型取值范围Byte0到255(无符号),存储二进制数String0到20亿个Unicode字符,字符型数据必须用双引号括起来Char单个Unicode字符Date0001年1月1日0:00:00(午夜)到9999年12月31日11:59:59 PM,Date文本括在数字符号 (# #) 内,必须以 M/d/yyyy 格式指定日期值Integer-2147483648到2147483647(有符号),这与数据类型Int32相同Single负值为-3.4028235e+38到-1.401298e-45;正值为1.401298e-45到3.4028235e+38Double负值为-1.79769313486231570有+308到-4.94065645841246544e-324正值为4.94065645841246544e-324到1.79769313486231570有+308BooleanTrue或FalseObject可以存储任何数据类型2常量与变量(1)常量常量就是在程序整个生命周期内都不变的量。引入常量的优点:一是消除或减少数据输入,例如输入p值时,首先定义常量c_pi=3.14159265358979,在以后的每次输入中,就可以用c_pi替代3.14159265358979;二是代码容易更新,只需更新定义的常量即可;三是代码容易阅读。在Visual Basic 中有三类常量:一类是直接常量;第二类是内部的和系统定义的常量,是应用程序和控件提供的;第三类是符号和用户用Const 语句声明的常量。常数声明语句的语法:Const As 类型=例如,要定义存储pi的常量,可使用如下语句:Const c_pi As single =3.14159265358979一行中有多个常量声明时,用逗号分隔。如:Public Const Price=3.21, Const pn=12345 ,Const cc=ABCD注意:常量声明后,在程序中只能在它的作用域内被引用,而不能改变其值。(2)变量在程序执行过程中,需要临时存储一些数据。Visual Basic 2010使用变量来存储数据。变量有名字、数据类型和作用域。变量名用于引用变量;变量的数据类型用于确定变量所能存储的数据种类。变量是内存中存放未知值的容器,也是程序中最基本的存储单元。程序每次运行时,产生的值均存放到变量中。1)变量的命名。变量名的命名规则:必须以字母开头;关键字不能作为变量名,例如Dim、Print和For等;变量名不区分大小写,变量名必须唯一。定义变量称为声明,通常用Dim关键字来完成。例如:Dim X As Integer不一定要为变量指定初始值,但也可以在Dim语句中包含该值,例如:Dim StrXm As String =”张小明”2)变量声明。早期版本的Visual Basic允许用户对变量不声明而直接使用(变量直接出现在各种语句中),称为隐式声明。在Visual Basic 2010中要求在变量使用前,必须先定义变量名、指定它的数据类型和作用域,让系统为变量分配存储单元。在变量使用前用Dim、Private、Public、Static语句声明变量,其语法结构:Dim | Private | Public | Static As 说明:可选子句As ,用于定义被声明变量的数据类型。为了规范命名,可以在名前加前缀,具体使用方法请参考有关文献说明。一行中有多个常量声明时,用逗号分隔。例如:Dim Int_X as Integer, Sin_Y as single。该语句声明了整型变量Int_X和单精度变量Sin_Y。字符型变量在声明时,根据存放在其中的字符长度是否固定,采用不同的声明方法。定长字符型变量的声明:Dim 字符型变量名 As String*字符个数在定长的字符变量声明后,若赋予字符变量的字符串长度超过变量声明中的长度,则将多余的部分截除;若字符串的长度少于变量声明中的长度,则在字符串的尾部用空格填充不足的部分。不定长字符型变量的声明:Dim 字符型变量名 As String变量的范围:变量的范围取决于变量声明时所用的方式。过程内使用的变量:在过程内声明的变量,只能被该过程识别、使用,别的过程不能访问,这类变量称为局部变量。当调用过程时,系统为局部变量分配存储单元,并进行初始化。一旦过程体结束,占用的存储单元释放。因此,在不同的过程中可以使用同名的变量,这些变量彼此无关系。模块内使用的变量:在模块顶部的通用声明段用Dim或Private 语句声明的变量为模块级变量,模块内所有的过程都可使用。所有模块使用的变量:在模块顶部的通用声明段用Public 声明的变量为公用变量,即全局变量。全局变量的值对应用程序中的所有过程均有效。必须注意的是:不能在过程中声明全局变量,只能在模块的通用声明段中声明全局变量。3数组数组是一种特殊的变量。数组有一个数组名,用数组名和下标(元素在数组中的序号)来引用数组中的每个元素。数组有上下界,数组的元素在上下界中是连续的,系统为每个元素分配存储空间。数组必须先声明后使用,数组声明中应包含数组名、类型、维数和数组的大小。数组的下标可以是整型常量、变量、表达式,或者是一个数组元素。数组的下标不能超出数组声明中的上下界,否则在程序运行中会产生“下标越界”的错误。数组类型可声明为Visual Basic 2010中的所有基本的数据类型。数组中所有的元素具有声明的数据类型,任何元素都可以使用Object类型来存储任意类型的数据,但不推荐这样做。数组分固定数组和动态数组两种。(1)固定大小数组及声明在程序设计时如能确定所用数组的大小,可用固定大小数组的声明方法。数组声明语句和变量声明语句一样,根据数组的有效范围选用Dim、Private或Public声明语句。Dim | Private | Public (下界1 to 上界 l,下界2 to 上界2)As类型数组名:命名规则同变量的命名规则。下界缺省时,默认值为0。下界的最小值为-32768,上界最大值为32767。数组的大小为每一维大小的乘积。每一维的大小为(上界-下界+1)。类型为Visual Basic 2010中的基本的数据类型。例如:Dim A(5 to 8) As String 声明一个有4个元素(8-5+1)的一维的字符串数组Dim B(4) As Integer 声明一个有5个元素(4-0+1)的一维的整型数组Dim C(1 to 3,0 to 4) As Single 声明一个有3*5个元素的二维的单精度数组(2)动态数组在程序设计时,当不能决定到底用多大的数组才合适时,可在声明阶段引入动态数组。动态数组可在任何时候改变大小,有助于内存的有效管理。可以在短时间内使用一个较大的数组,不使用时,将内存空间释放给系统。动态数组在声明时不给出数组的大小,当需使用该数组时,用ReDim语句指出数组的大小,当程序执行ReDim语句时分配存储空间。动态数组的声明与固定大小数组的声明语句相同。根据动态数组的有效范围选用Dim、Private、Public声明语句,在数组名后附一个空维数表,例如:Dim Darray( ) As Integer然后在需要使用该数组的过程中用ReDim指明数组的维数和大小。ReDim语句形式为:ReDim (下标1,下标2) As类型ReDim语句中的下标可以是常量或是已有确定值的变量。类型可省略,如不省略,一定要和原声明语句中的类型相同。下面声明的动态数组DArray在过程中用ReDim语句声明其大小,语句如下:ReDim Darray(9) 程序执行ReDim语句时,给数组DArray分配10个元素的存储空间。在过程中可多次使用ReDim语句改变数组的大小,也可以改变数组的维数。每次执行ReDim语句时,数组中存储的数据全部丢失,Visual Basic 2010将数组元素重新置初值。4常用函数Visual Basic 2010提供了大量的内部函数(标准函数)。这些函数都是系统已编好的程序,放入库中供用户程序调用。函数库中的函数分为数值型函数、字符型函数、日期和时间型函数、类型转换函数和交互函数。以下将介绍一些常用的函数,其他的函数用户可浏览“帮助”菜单。(1)数值型函数数值型函数主要应用在数值计算中,完成相应的数值型运算。Visual Basic 2010 中的数学函数已经由 .NET Framework 的 System .Math 类中的等效方法取代。表5.3列出了常用的数值型函数。表5.3 数值型函数函数名称说明应用示例结果Abs返回绝对值Math.Abs(-2.5)2.5ExpE(自然对数的底)的次方Math.Exp(3)20.0855369231877Round返回一个四舍五入函数Math.Round(123.45678,2)123.46Sqrt求平方根Math.Sqr(4)2Sin返回正弦值Math.Sin(26)0.762889450479603(2)字符型函数部分常用的字符型函数的定义与用例见表5.4字符型函数。表5.4字符型函数函数名称说明应用示例结果InStr在字符串中查找子字符串开始出现的位置InStr(“临床医学院”,”医学”)3Len返回字符串的长度Len(“广东教育”)4Ltrim去掉字符串左边的空格Ltrim(“ 广东教育”)“广东教育”Mid取字符串中指定数量的字符Mid(“广东教育”,3,1)“教”Space产生指定个数空格的字符串Space(3)“”Replace将指定的子字符串替换成另一子字符串,并且可指定替换次数Replace(“广东教育”,”广东”,”北京”)“北京教育”UCase转成大写的字符串Ucase(“AbcdEF”)“ABCDEF”(3)日期和时间函数通过使用日期和时间函数,可以在程序中获取当前系统时间等相关信息。常用的日期和时间函数如表5.5所列。表5.5 日期型函数函数名称说明应用示例结果Today返回系统年、月、日的日期Date.Today2012-10-1Now返回当前的系统的日期与时间Now2012-10-1 15:10:18Format格式化日期和时间Format(#9/23/2012#,”MM/dd/yyyy”)09-23-2012这里Format函数功能强大,可通过帮助文档获取更多的信息。(4)类型转换函数转换函数主要用于几种常见数据类型之间的转换,表5.6列出了类型转换函数。表5.6类型转换函数函数名称说明应用示例结果Asc将字符转换成ASCII码值Asc(“A”)65CBool字符型转换成逻辑型Cbool(“000”)FalseCdate字符型转换成日期型Cdate(“august 1,2012”)2012-8-1Chr将ASCII码值转换成字符Chr(65)“A”CStr将数值型转换成字符串Str(3.1415926)“3.1415926”Val数字字符串转换成数值Val(“123.456”)123.456(5)交互函数 InputBox和MessageBox.ShowVisual Basic 2010利用交互函数与用户进行交互。用户可用InputBox函数输入数据,用MessageBox.Show函数返回用户操作的信息。1)InputBox函数。函数InputBox()的功能是:打开一个对话框,等待用户输入内容;当单击对话框中的确定按钮或按回车键,函数返回输入类型为字符串的值。函数格式:InputBox(,x坐标位置,y坐标位置)函数中各参数的意义。:字符串表达式,作为提示信息显示,中西文均可,但不能省略。要多行显示时,在每行行末加回车Chr(13)和换行Chr(10)控制符。:字符串表达式。:在输入对话框中无输入时,将默认值作为输入内容。x坐标位置、y坐标位置:整型表达式。坐标确定对话框左上角在屏幕上的位置,屏幕的左上角为坐标原点,单位twip。以上的参数除外,其他参数均可省略;中间的默认部分用逗号占位符跳过。2)MsgBox函数。函数MsgBox()的功能是:打开一个信息对话框,在对话框中显示消息,等待用户单击按钮,然后返回用户所选按钮的整数值。除了显示文本外,该函数也可以用来显示图标。函数格式:变量%=MsgBox(提示,按钮,标题)函数中各参数意义。和的含义与InputBox函数相同。按钮:整型表达式。决定信息框中按钮的数目和类型,以及信息框上的图标类型。信息框中按钮的值、图标类型可用表5.7的“常量”表示。按钮值、图标类型值用“+”连接。表5.7MsgBox函数的按钮参数名 称常量说 明按钮数目MsgBoxStyle.OkOnly显示“确定”按钮MsgBoxStyle.OkCancel显示“确定”、“取消”按钮MsgBoxStyle.AboutRetryIgnore显示“终止”、“重试”、“忽略”按钮MsgBoxStyle.YesNoCancel显示“是”、“否”、“取消”按钮MsgBoxStyle.YesNo显示“是”、“否”按钮MsgBoxStyle.RetryCancel显示“重试”、“取消”按钮图标类型MsgBoxStyle.Critical关键信息图标 红色STOP标志MsgBoxStyle.Question询问信息图标 ?MsgBoxStyle.Exclamation警告信息图标 !MsgBoxStyle.Information信息图标默认按钮MsgBoxStyle.DefaultButton1第一个按钮为默认MsgBoxStyle.DefaultButton2第二个按钮为默认MsgBoxStyle.DefaultButton3第三个按钮为默认模式MsgBoxStyle.ApplicationModel应用模式MsgBoxStyle.SystemModel系统模式当用户从对话框中单击某一命令按钮后,MsgBox函数返回一个函数值,系统根据返回的函数值执行不同的程序段,进行不同的处理。MsgBox函数返回值的说明见表5.8。表5.8MsgBox函数返回值返回值含 义返回值含 义1选中OK命令按钮5选中Ignore命令按钮2选中Cancel命令按钮6选中Yes命令按钮3选中Abort命令按钮7选中No命令按钮4选中Retry命令按钮除了用MsgBox函数可以产生一个与用户交互的消息对话框外,在Visual Basic 2010中还可以通过MessageBox类引用Show()方法来产生一个与用户交互的消息对话框,有关详细介绍可参阅在线帮助信息。例5.2 编写结束程序运行的单击事件过程。设计:新建一个窗体,编写窗体单击事件程序如下:Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ClickDim s1 As String, s2 As String, x As Integers1 = 请结束程序运行前要先存盘!s2 = 警告!x = MsgBox (s1, msgBoxStyle.Exclamation+MsgBoxStyle.OKCancel, s2)图5.7例5.2 运行结果End Sub程序运行结果如图5.7所示。5运算符与表达式程序中运算的表达式是由运算符和运算对象所组成的。Visual Basic 2010中运算符和算式有自身的组成规则。(1)运算符运算符是对相同类型的数据进行运算操作的符号,在Visual Basic 2010中有四类运算符:算术运算符、字符串运算符、关系运算符和逻辑运算符。1)算术运算符用于执行常量、变量、表达式、函数、属性值等数据之间的算术运算。算术运算符包括:加(+)、减(-)、乘(*)、除(/)、整除()、乘方()、取模(Mod)。u 减号“-”有两个运算对象(双目运算)时,作减号;在单目运算时,作负号。u 除法分为一般的除法和整除两种,并用不同的除号加以区分。使用 运算符 执行整除。整除会返回商数,它是一个整数,例如:206结果为3。u 乘方的符号()加在底数和幂之间。例如:53表示53。u 取模(Mod)的结果是两个数相除的余数。例如:20 Mod 6=2。算术运算符的优先级(高低):乘方乘、除整除取模加、减注意:算术运算符两边的运算对象应是数值型。若是数字字符或逻辑型,则自动转换成数值型后再运算。若是非数字字符或其他类型,则产生“类型不匹配”的错误。例如:100+123=223100+ab 系统给出“类型不匹配”的信息2)字符运算符用于将多个字符串连接起来,所以也叫连接运算符。字符运算符包括:&和+。其中“&”连接运算用于强制将两个表达式作为字符串连接。而“+”连接运算符则与它不同,当两个表达式都为字符串时,将两个字符串连接;如果一个是字符串而另一个是数字,则进行相加,结果是两个数字的和。例如:a=2+3 a值为5a=2+3 a值为“23”a=广东省&广州市 a值为“广东省广州市”a=x2+3 出现“类型不匹配”的错误提示信息a=x2&3 a值为“x23”3)比较运算符用于对运算对象进行比较,当关系成立时,返回True;关系不成立时,返回False。在Visual Basic中,True用-1表示;False用0表示。运算对象可以是数值型、字符型。比较运算符包括:等于(=)、大于()、大于等于(=)、小于()、小于等于(=)、不等于()、字符串匹配Like。其中Like的功能是在运算符左边的字符串中查找运算符右边的字符串,有就返回“True”;没有就返回“False”。Like可与通配符“?”、“*”、“#”、字符列表、!字符列表结合使用,进行模糊查询。关系运算符的优先级相同。注意:比较运算符两边的运算对象是字符型时,按字符的ASCII码,字符串从左到右一一比较。汉字字符大于西文字符。4)逻辑运算符用于多个关系表达式的逻辑判断。逻辑运算符包括:And、Or、 Xor和 Not。其中Not 为单目运算。逻辑运算的结果返回逻辑值:True 或False。Not:只有一个运算对象(单目运算),对运算对象取反。And:所有运算对象为True时,结果为True;否则,结果为False。Or:仅当所有的运算对象为False,结果才会为False;其他为True。Xor:当且仅当表达式的一边为True时为True。例如:Not abcef 结果为:True。abcef And 1234123 结果为:False。abcef Or 1234123 结果为:True。(2)表达式1)表达式的定义:表达式是由常量、变量、运算符、函数和圆括号等组成。通过运算,表达式最终有一个结果,即表达式的值。表达式值的类型取决运算对象和运算符。2)表达式的表示:表达式的书写应根据Visual Basic 2010中的规定。还应注意:乘号不能省略;只能使用圆括号,在一个表达式中可以出现多对圆括号;左右括号要配对;表达式所有内容在同一行上。例如:表示成Visual Basic 2010中的表达式(x2+y2)/(2*x)+1/(x+y)3)表达式中不同数据类型的处理:在算术运行中,运算对象可能有不同精度的数据类型。Visual Basic 2010中规定运算结果的数据类型用运算对象中精度高的数据类型。数据类型的精度高低排列如下:CurrencyDoubleSingleLongInteger4)运算符的优先级:一个表达式中可能包含了多种类型的运算符。同一类运算符间的优先级前面已介绍过。不同类的运算符的优先级(在没有括号的情况下):算术运算符字符运算符关系运算符逻辑运算符(高低)在表达式中,加圆括号可改变原有的优先级,也可使表达式更明了。6语句书写的简单规则Visual Basic 2010 的语句由命令代码、运算符号、数据、表达式、被操作对象或注释文本等基本元素组成。在语句中通常由命令代码引导语句的其他元素成分,说明语句命令执行的目标与施于的对象。Visual Basic语句包括有:声明语句、赋值语句、输入/输出语句、条件语句、循环语句、注释语句等几种形式,在后续的章节将分别介绍这些语句的使用。Visual Basic 2010基本沿用了以前Visual Basic的语法规则。1)命令动词的第一个字母大写,其他字母小写;运算符前后加空格等。2)一条语句跨行续写,上一行末尾需加上一个空格和一个下划线“_”,下划线是续行符。在许多情况下,可以在下一行中继续一条语句,而无须使用下划线字符 ( _)。这称为隐式行继续。但必须注意,隐式续行只能用在语句中的一个组成部分结束后,另一个组成部分的起始位置前。 3)可以在一行中写多个语句,但各语句间要用冒号“:”分隔。5.1.4程序基本结构结构化程序设计是面向对象程序设计的基础。结构化程序设计是采用自顶向下、逐步求精,将复杂的问题分解成一系列的相对独立的简单问题,编写成模块。一个程序就是由若干个不同层次结构的模块组成。结构化程序设计的三种结构是:顺序结构、选择结构和循环结构。每种结构都与相应的命令语句对应,实现结构算法。1顺序结构顺序结构程序是程序运行时,按语句在程序中的先后次序执行。顺序结构中,主要语句是赋值语句、数据的输入/输出语句、声明语句和注释语句。(1)赋值语句1)赋值语句用于给变量和对象属性赋值。其语句格式: = 在上述语句格式中,“表达式”为任何类型的表达式。应与变量名所表示的变量类型一致。符号“=”为赋值号,它实现将表达式的计算结果值赋给变量名所指定的变量或对象属性。2)赋值语句使用说明:当赋值号两边的量的类型不完全匹配时,如果表达式为数值型,将强制将其转换成与左边变量相同的精度。如果表达式为数字字符串,左边变量是数值型,自动转换成数值型后再赋值;表达式为非数字字符串时,出错。如果表达式为逻辑型,左边变量是数值型,将表达式的逻辑值转换成数值,True转换成-1,False转换成0。如果表达式为数值型,左边变量是逻辑型,非0转换成True,0转换成False。赋值号与等号意义不同:例如赋值语句“x=y”表示将y的值赋给x;而表达式“NOT x = y”表示比较x的值是否等于y值。等号只能用于关系运算。不能用一个赋值语句给多个变量赋值:例如 x=123,y=123,z=123,用三个赋值语句给不同的变量赋相同的值,但语句不能写成x=y=z=123。系统将x=y=z=123语句理解为,先将y和z后的“=”当作关系运算符“等号”处理,再把关系运算结果赋值给x。(2)输出语句Visual Basic 2010与早期版本的Visual Basic不同,不能直接使用Print语句在窗体或图片控件中输出文本信息,但可以通过交互函数或使用文本框与标签控件来辅助实现计算结果等信息的输出显示。(3)注释语句注释语句用于辅助读者阅读程序。该语句以撇号 ()开头,引导注释内容,Visual Basic 在编译过程中忽略注释,并且注释不影响编译后的代码。注释内容可以添加在代码中的任意位置,但不能添加在字符串中。若要将注释追加到某语句,请在该语句后插入一个撇号,后面添加注释。Visual Basic 2010 代码窗口将注释的部分显示为绿色,这使程序更容易阅读和理解。例5.3 输入华氏温度,要求输出摄氏温度。公式为:。利用一个窗体的单击事件,进行输入与计算,并输出。输出要有文字说明,取2位小数。设计:创建一个窗体,并放置一个标签Label控件;在Form的Click事件中编写代码如下:Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Click Dim Sin_f As Single, Sin_c As Single Sin_f = InputBox(请输入华氏温度:, 输入窗口) Sin_c = 5 * (Sin_f - 32) / 9 Sin_c = Format(Sin_c, #.#) 设定输出为二位小数 Label1.Text = Sin_cEnd Sub2分支结构根据选择结构中的条件判断结果,选择要执行的语句。程序中的选择结构通常用条件(分支)语句实现。(1)单分支IfThen语句语句格式:If Then图5.8单分支流程图End If条件:逻辑表达式,或者其值可以转换为逻辑值的其他类型表达式。语句块:一个或多个语句。功能:当为True时,执行Then后的语句或语句块;否则跳过该If语句。在Visual Basic 2010中,为算术表达式时,非0为True,0为False。流程图见图5.8。例5.4一元二次方程:,若A=2,B=9,C=3,判断求解。设计:由单击窗体事件触发方程求解的过程代码,启动事件过程后,首先分别给系数A、B、C赋值,然后通过两标签输出解的结果。Private Sub Form1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _Handles MyBase.Click Dim A As Single, B As Single, C As Single, Delta As Single A = 2 : B = 9 : C = 3 Delta = B 2 - 4 * A * C If Delta = 0 Then 通过Delta来判断有解 Label1.Text = (-B + Math.Sqrt(Delta) / (2 * A) 函数Math.Sqrt()是开平方根 Label2.Text = (-B - Math.Sqrt(Delta) / (2 * A) End IfTrueFalse图5.9双分支流程图语句 (块) 2条 件语句 (块) 1End Sub(2)双分支If.Then.Else语句格式:If Then ElseEnd If语句功能:当为True时,执行Then后的,否则执行后Else的。流程图见图5.9。例5.5求任意一元二次方程:,判断是否有解,若有解并求解的结果。设计:创建一个窗体,添加二个标签用于结果输出;通过窗体的单击事件触发方程求解的程序;启动程序后,首先输入任意的系数A、B、C,然后判断根判别式是否大于等于零,有解则求解,无解给出无解说明。Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _Handles Me.Click Dim A As Single, B As Single, C As Single, Delta As Single A = InputBox(请输入系数A, 系数输入) B = InputBox(请输入系数B, 系数输入) C = InputBox(请输入系数C, 系数输入) Delta = B 2 - 4 * A * C If Delta = 0 Then Label1.Text = (-B + Math.Sqrt(Delta) / (2 * A) Label2.Text = (-B - Math.Sqrt(Delta) / (2 * A) Else Label1.Text = 一元二次方程无实解 Label2.Text = End If End Sub(3)条件嵌套可以在一个条件语句中包含另一个条件语句,称为条件语句嵌套。在使用条件语句嵌套时,应注意If与End If的配对。多个条件语句嵌套,End If与最近的If配对。Visual Basic 2010中没有限制嵌套层数。在含有多层嵌套的程序中,通常用层层缩进的形式书写,以增强程序的可读性。例如:例5.6求任意一元二次方程:,判断根判别式是否小于零,等于零,大于零三种情况,并显示求解的结果。设计:利用分支嵌套来求解的三种情况。创建一个窗体,添加两个标签作为结果输出。Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _Handles Me.ClickDim A As Single, B As Single, C As Single, Delta As SingleA = InputBox(请输入系数A, 系数输入)B = InputBox(请输入系数B, 系数输入)C = InputBox(请输入系数C, 系数输入)Delta = B 2 - 4 * A * CIf Delta = 0 Then If Delta = 0 Then Label1.Text = 只有一个根! Label2.Text = -B / (2 * A) Else Label1.Text = (-B + Math.Sqrt(Delta) / (2 * A) Label2.Text = (-B - Math.Sqrt(Delta) / (2 * A) End IfElse Label1.Text = 无实解! Label2.Text =End If图5.10Select Case语句End Sub(4)多分支Select Case语句语句格式:(流程见图5.10)Select Case Case Case Case ElseEnd Select说明:测试表达式必须是数值型或字符型表达式。表达式列表:与测试表达式类型必须相同。语句功能:Visual Basic 2010对只计算一次,然后将测试表达式的值逐个与 Case的表达式列表的值比较,如果相等,则执行该Case后的语句块。必须注意:尽管会有不止一个Case与其相等,但只执行第一个匹配的Case后的语句块。如果与语句中所有的Case的值都不相等,则执行Case Else后的语句块(若无
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!