公共基础部分 一. 数据结构与算法 ◆算法的基本概念 1. 算法:是对问题处理方案的正确而完整的描述,是求解问题的方法,是指令的有效序列。 2. 具有5个特性: (1) 有穷性(在有穷步后完成)算法程序的运行时间是有限的 (2) 确定性(每一步都有确定的含义) (3) 可行性 (4) 输入(一个算法有零个或多个输入) (5) 输出(一个算法有一个或多个输出) 3. 算法的复杂度 包括:时间复杂度和空间复杂度。 二者没有必然的联系。 时间复杂度:执行算法所需要的计算工作量或基本运算次数。 空间复杂度:算法所需要的空间的度量。 ◆数据结构的定义 1. 数据结构包括数据的逻辑结构、数据的存储结构、数据的操作 数据的逻辑结构:数据的外部结构,指各数据元素之间的逻辑关系,反映人们对数据含义的解释。 包括:线性结构(线性表、栈、队列)和非线性结构(树和图) 数据的存储结构:数据的物理结构,指数据的逻辑结构在计算机中的表示。 一个逻辑结构可以有多种存储结构。 ◆ 线性表:线性表中元素的个数n(n>=0)定义为线性表的长度。 顺序存储是线性表的一种最常用的存储方式。 线性表的顺序存储结构和线性表的链式存储结构分别是随机存取的存储结构和顺序存取的存储结构。 1.栈:是限定在表尾进行插入和删除操作的线性表。 具有记忆功能 只能顺序存储(错) 允许插入和删除的一端叫栈顶。另一端叫栈底。 后进先出的线性表 2队列:是限定在一端插入而在另一端删除,插入端叫队尾,删除端叫对头。 先进先出的线性表 3栈和队列的顺序存储结构 循环队列属于线性表存储结构中顺序存储结构和链式存储结构的前者。 ◆ 树 1.定义:树的结点、度(结点的度)、叶子(终端结点)、数的度、深度、有序树和无序数 2.二叉树:结点至多有两棵子树,并且二叉树的子树有之分,次序不能颠倒。 性质:★在二叉树的第i层上至多有2i-1个结点 ★ 深度为k的二叉树至多有2k-1个结点。 ★ 对任一个二叉树T,如果其叶子(终端结点数)为n,度为二的结点数为m,则n=m ★ 具有n个结点的完全二叉树的深度为k+1,其中k是㏒2n的整数部分。 2. 二叉树的遍历 ▼先序遍历(根—左—右) ▼中序遍历(左—根—右) ▼后序遍历(左—右—根) ◆查找算法 (1)顺序查找 顺序查找的平均查找长度为(n+1)/2,最坏的情况下比较的次数为n (2) 二分查找 限定于顺序存储的有序线性表 ◆排序算法 (1)插入类排序 ▲直接插入排序 ▲折半插入排序 ▲希尔排序 (2)交换类排序 ▲冒泡排序 最坏情况下的比较次数n(n-1)/2 ▲快速排序 最坏情况下的比较次数n(n-1)/2 (3)选择类排序 例题精选: 1. 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为:350 2. 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列为:cedba 3. 要求内存量最大的是:归并排序 4. 在数据结构中,与所使用的计算机无关的是数据的是:逻辑结构 5. 栈底至栈顶依次存放元素A.B.C.D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是:DCBEA 6. 已知数据表A 中每个元素距其最终位置不远,为节省时间,应采取的算法是:直接插入排序 7. 用链式表示线性表的优点是:便于插入和删除操作。 二. 程序设计基础 1.程序设计风格 好的程序设计风格有利于提高程序的正确性、可读性、可维护性和可用性。要是程序有良好的风格概括起来可以分为4部分:源程序文档化、数据说明、语句结构、输入输出方法。 用户所定义的标示符必须以字母或下划线开头。大、小写字母代表不同标识。 2.结构化程序设计 (1)结构化程序设计的基本特征: ▼程序有3中基本结构组成:顺序结构、选择结构、循环结构 ▼整个程序采用模块化结构。模块划分的原则:模块内具有高内聚度、模块间具有低耦合度。 ▼有限的使用转移语句,只限定在一个结构的内部跳转,不允许从一个结构跳到另一结构。 ▼程序设计时采用“至顶向下、逐步详细”的实施方法。 (2)结构化程序设计的3种基本结构:顺序结构、选择结构、循环结构 3种基本结构组成的算法只能完成符合结构化的任务 (3)结构化程序设计的方法:逐步求精和模块化程序设计方法。 结构化设计的总体思想是采用模块化结构,自上而下,逐步求精。 3. 面向对象程序设计 ● 基本概念 对象:系统中运行的实体,是有特殊属性(数据)和方法的实体 类:由属性和方法构成。 一组具有相同的数据结构和相同的行为特征的对象的集合称为类 在面对对象的方法中,类的实例称为对象 面向对象程序设计特征的是:继承性、多态性、封装性 在面向对象的方法中,实现信息隐蔽是依靠对象的封装 任何对象都必须有继承性(错) 例题精选: 1. 在面对对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送:信息 2. 面对对象的设计方法与传统的面向过程的方法有本质的区别,它的基本原理是:使用现实世界的概念抽象的思考问题从而自然地解决问题. 3. 结构化方法中,软件功能分解属于软件开发阶段中的总体设计 4. 结构化程序设计主要强调的是:程序的易读性 5. 面向对象的设计程序主要考虑的是:提高软件的可重用性 6. 类通过接口与外界发生关系. 三.软件工程基础 1.软件工程的基本概念 (1)定义:软件是程序、数据与相关文档的集合。软件包括系统软件和应用软件 (2)软件工程的基本思想是软件开发中,应用工程化原则进行软件开发,并将这个思想贯穿在软件开发的整个过程中。 软件工程的3要素:方法、工具和过程 (3)软件的生命周期:从软件定义、开发、使用、维护到报废为止的整个过程。 分三阶段:设计阶段、开发阶段、维护阶段 包括:问题定义、可行性分析、需求分析、总体设计、详细设计、编码、测试和维护 问题定义:确定开发的任务 可行性分析:确定问题的可行性 需求分析:对用户要求进行分析,明确目标系统要做什么 总体设计:把软件功能转化为所需要的体系结构,即如何解决问题。 详细设计:怎样具体的解决问题 2.结构化分析方法 (1)结构化分析(SA)是面向数据流进行需求分析的方法 SA方法的基本思想正是运用了分解和抽象两个基本手段,采用:自顶向下,逐步分解的分析思路。 (2)数据流图 基本图形符号: 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是:需求分析 (3)数据字典 在结构化分析的数据流图中,利用数据字典对其中的图形元素进行确切解释. 3.软件设计 (1)概要设计(总体设计) ◆包括两个主要阶段:系统设计(确定具体的实现方案)和结构设计(确定每个系统的模块组成及模块间的关系) ◆模块之间联系越紧密,其耦合性就越强,模块的独立性就越差; 一个模块内个要素联系越紧密,则它的内聚性就越高。 模块划分原则:高内聚低耦合 (2)详细设计 ◆结构化程序设计的要点:采用自顶向下、逐步求精的程序设计方法,一个程序只有一个入口和一个出口。 ◆详细设计的常用工具:程序流程图、盒图、PAD和PDL (3)软件测试目的 ◆软件测试的目的是尽可能多的发现程序中的错误。 ◆软件测试方法:静态测试和动态测试(黑盒测试法和白盒测试法) 黑盒测试包括:等价分析法、边值分析法、因果图法和错误推测法 白盒测试法测试的原则之一就是保证所测模块中的每一个独立的路径至少执行一次。 (4)程序调试 分为静态调试和动态调试 调试的目的:改正错误 经调试后还必须进行再测试 (5)软件维护 软件维护就是在软件已经交付使用以后,为改正错误或满足新的需求而修改软件的过程。 例题精选: 1. 分析的结果是产生需求规格说明书。 2. 软件详细设计的主要任务是确定每一个模块的算法和使用的数据结构。 3. 进行单元测试时,常用的方法时采用白盒测试,辅以黑盒测试。 4. 软件工程的出现是由于软件危机的出现,人们提出了软件工程学的原理设计软件。 5. 数据字典是各类数据描述的集合,通常包括4个部分:数据项、数据流、数据存储和数据加工。 四. 数据库设计基础 1. 数据库 (1) 数据库设计的根本目的是要解决数据共享的问题。 (2) 数据库的特点: ▼数据按一定的数据模型组织和存储。 ▼ 冗余度较小 ▼ 数据的独立性较高。数据独立性:数据的组织结构和存储方法与应用程序互不依赖、彼此独立。 ▼易扩展 ▼可为多种用户共享 2. 数据库管理系统(DBMS) 位于用户与操作系统之间的完成数据管理的系统软件。 3. 数据库系统 由数据库、数据库管理系统、应用系统、数据库管理员和用户组成。 最核心的部分是数据库管理系统。 4. 数据模型 (1) 实体联系模型及E-R图 3部分:实体、联系和属性 实体 属性 联系 实体集间的联系:一对一联系、一对多联系和多对多联系 (2) 层次、网状、关系模型 层次模型:有且只有一个结点无双亲,其他结点只有一个双亲。 用树形结构来表示各实体与实体之间的联系。 在关系数据库中,把数据表示成二维表,每个二维表称为关系。一个关系对应一张二维表。 关系的属性名称为关系模式。 5. 关系运算 (1)并 (2)差 (3)交 (4)笛卡尔积(×) 6.专门关系运算:选择、连接和投影 (1)从关系中找到满足条件的所有元组称为选择 (2)从关系中挑选若干属性组成新的关系称为投影 7.数据库设计步骤: (1)需求分析阶段 (2)概念设计阶段 (3)逻辑结构设计阶段 将E-R图转化数据模型 (4)数据库物理设计阶段 数据库内模式,给出数据库物理存储结构和物理存取方法。 例题精选: 1. 数据库管理系统的主要功能是:定义数据库 2. 关系表中每一横行称为一个元组,每一列称为属性。 3. 设计数据库的存储结构属于物理设计. 二级VB语言部分 五.VB程序设计的初步知识 1.VB的概述 VB是一种可视化、面向对象和采用事件驱动方式的结构化高级程序设计语言。 特点:▲ 可视化编程 ▲ 面向对象程序设计 ▲ 结构化的程序设计语言 ▲ 事件驱动编程机制 ▲ 访问数据库 2.VB的程序开发环境 (1)窗口设计器窗口。简称,窗体 (2)工程资源管理器窗口 ▲ 工程文件和工程文件组 工程文件的扩展名是vbp,每个工程对应一个工程文件。 ▲ 窗体文件 扩展名是frm,每一个窗体对应一个窗体文件,一个应用程序可以有多个窗体。 ▲ 标准模块文件 扩展名bas,不属于任何一个窗体。 ▲ 类模块文件 (3)属性窗口和工具箱窗口 3.VB常用对象及操作 (1)对象事件的名称Name是由VB预定的,不可以由编程者设定。 可以在运行期间改变窗体的Name属性的值。(?) (2)控件 4.VB应用程序通常有3类模块组成,即窗体模块、标准模块和类模块。 VB应用程序以解释和编译方式执行。 5.VB中的变量和常量 (1)常量 ▲ 文字常量:字符串和数值常量 ▲ 符号常量 格式:Const 变量名=表达式 (2)变量 ▲ 命名规则:名字只能由字母、数字和下划线组成。 第一个字符必须是英文字母,最后一个字符可以是类型说明符。 ▲变量的类型和定义 ①类型说明符放在变量名的尾部。 A#b(错) %:整型 &:长整型 !:单精度型 #:双精度型 $:字符串型 ②在定义变量时指定类型。 格式:Declare 变量名 as 类型 Declare 可以是 Dim、Static、Public或Private (3)变量的作用域 变量分为:局部变量、模块变量和全局变量 ① 局部变量 在事件过程或通用过程内定义的变量叫局部变量。 ② 模块变量 窗体变量可用于窗体内的所有过程. 当同一个窗体内的不同过程使用相同的变量时,必须定义窗体层变量,在使用窗体层变量前,必须先声明。 ③ 全局变量 全局变量只能在标准模块中声明,不能在过程或窗体模块中声明。用Public 声明。 6. VB常用内部函数 ⑴ 转换函数 ★ 取整函数Int和fix ★ 数值转换函数 ★ 类型转换函数 ★ 格式转换函数 ⑵数学函数 ★ 三角函数 ★ 绝对值函数(Abs) ★ 符号函数(Sgn) ★ 平方根函数(Sqr) ★ 指数和对数函数(Exp和Log) ⑶随机数函数 ★ 随机数函数(Rnd) ★ Randomize语句 ⑷ 时间函数 7. VB字符串处理 ★左、中、右部截取 Left(字符串,n)\Mid(字符串,n)\Right(字符串,n) ★字符串长度测量函数 Len(字符串) ★Strings函数 Strings(n,ASCII码) Strings(n,字符串) ★查找某个字符串函数 InStr(首字符位置,字符串1,字符串2[,n] ★字母大小转换函数 Ucase(字符串) Lcase(字符串) ★插入字符串语句 Mid(字符串,位置)=字符串 ★SetFocus语句 8.VB运算符与表达式 (1)算术运算符 ★求模运算 Mod求余. ★算术运算符优先级 ^> - > * >/ > \ > Mod > + > - >& 如:7^2 Mod 5^2\3=1 (3) 关系运算符和逻辑运算符 (4) 表达式的执行顺序 ◆ 关系运算(=,>,<,<>,≦,≧) ◆ 最后进行逻辑运算,顺序为: Not→And→Or→Xor→Eqv 如:表达式: Not a<=c Or 4*c=b^2 And b<>a+c的值是(Flase)a=2,b=3,c=4 9.VB常用标准控件 (1).标签 ●Alignment 确认标签中标题放置的位置,可设置0、1、2,作用分别为标题设置在左、右、中。 ●AutoSize 标题自动调整标签的大小,可设置为True和False. ●Borderstyle 设置标签的边框,可设置为0和1,0表示为无边框。 ●Enabled 用于确定一个窗体或控件能否对用户产生的事件作出反应。 ●BackStyle 设置标签是否覆盖背景,0表示为透明,1表示标签覆盖背景。 ●WordWrap 决定标签的标题文本能否自动换行。 ●其他:Height、Left、Top、Visible、Width等等。 (2) 文本框 属性: ●MaxLength 设置文本框中输入的最大字符数。 ●MultiLine 设置是否允许多行显示。 ●Passwordchar 用于口令输入。 ●Scrollbars 用来设置文本框中的滚动条。 事件: ◎ Change 事件 当用户输入新信息或把Text属性设置为新值从而改变文本框的属性时,将可触发此事件。 ◎ GotFocus事件 当文本框有输入焦点时,键盘上输入的字符都将在文本框中显示出来,只有当一个文本框被激活并且可见性为TRUE是才能收到焦点。 ◎ Setfocus 事件 该方法可以把输入的光标(焦点)移到指定的文本框中。 格式: [对象.] Setfocus (3) 图形控件 图片框和图像框: ▲ CurrentX和CurrentY属性 ▲ Picture属性 ▲ Stretch属性 用于自动调整图像框中图形内容的大小。 ▲ 区别:① 图片框是“容器”控件,可作为父控件,而图像框不能。 ③ 图片框可接受文本和图片,图像框不能。 ④ 图像框占用内存少,显示速度快。 ⑤ 图片框更灵活,且适用于动态环境。 ▲ 运行期间装入图片 格式:[对象.] Picture=LoadPicture(”文件名”) 直线和形状: △ BorderColor属性 △ Borderstyle 1—实线 2—虚线 3—点线 4—点划线 △ BackStyle 设置标签是否覆盖背景,0表示为透明,1表示标签覆盖背景。 △ Shape 属性 0—矩形 1—正方形 2—椭圆形 3—圆形 4—四角圆化的矩形 △ BorderWidth 指定线宽或界宽 (5) 复选框和单选按钮 Enabled、FontBold、FontItalic、FontName、FontSize、FontUnderline Value、Alignment、Height、Left、Top、Visible、Width 单选按钮:Value=True,表示选择了该单选按钮. Value=False, 表示没有选择该单选按钮. 复选框:Value=0,表示没有选择该复选框。 Value=1,表示选择该复选框。 Value=2,表示该复选框被禁用。 (6) 列表框和组合框 列表框方法:AddItem 添加文本内容到列表框中。 Clear 清除列表框中所有内容。 RemoveItem 删除列表框中指定的项目。 组合框(ComboBox):AddItem、Clear、RemoveItem同样适用。 Style是组合框的一个重要属性,其值可取0、1、2,决定组合框的3个类型。 注意: 属性ListIndex和 ListCout的区别 108(7) 滚动条 属性: 除Enabled、FontBold、FontItalic、FontName、FontSize、FontUnderline Value、Alignment、Height、Left、Top、Visible、Width外,还有以下属性: ◆ Max和Min ◆ LargeChange和SmallChange ◆ Value 表示滚动框在滚动条的位置。 事件:主要有Scroll和Change.当在滚动条内拖动滚动框时会触发Scroll事件,而改变滚动框的位置时会触发Change事件。 (8) 计时器 可以用Enabled和Name属性,其最重要的是Interval属性,取值范围0~65535. (9) 框架 (10) 焦点与Tab顺序 ★设置焦点 格式: [对象.] Setfocus ★ Tab顺序 Tab顺序是在按Tab键时焦点在控件间移动的顺序。影响Tab顺序的属性是TabIndex。 六.数据输入输出 1.数据的输出方法: ⑴ print方法 与print方法有关的函数:tab(n)函数 【print tab(24); 800】 spc(n)函数 【print “china”; spc(4); ”中国” 】用于跳出n个空格输出 tab函数从第一列开始计数,n是绝对偏移量。spc(n)函数则是从前面的输出内容开始计数,n是相对偏移量。 ⑵ 格式输出( ) #:表示数字,不补零 0:表示数字,在数字的前或后补零 .:指定小数点的位置 ,:指定千分分隔符的位置 如:print format$ (12345.6,”####,#.##”)12,345.(3)msgbox函数 信息框→ 返回值→标题 2.数据输出方法 (1)inputbox方法 Inputbox函数的返回值默认为字符串。如:a=inputbox(“Enter an integer”) b= inputbox(“Enter an integer”) text1.text=b+a 如果在输入对话框中输入8和10,则文本框中显示的内容为108 七.VB的控制结构 1.循环控制结构 (1)For循环控制结构 使用Exit for 语句,可以在循环变量到达终值前就退出循环。 (2)当循环结构 While 条件 [语句块] Wend (3)Do循环结构 Do While……Loop Do ……loop While (4)多分支控制结构 测试表达式=????→Select case 测试表达式 (5)IIf函数 A=IIf(条件,true部分,false部分) 八.数组与过程 1.默认数组 默认数组就是数据类型为Variant的数组。 Static A(4)即为定义了四个默认数组。 2.动态数组 ◆ 用变量作为下标定位的数组时动态数组 ◆ 用数值常量或符号常量作为下标定维的数组是静态数组。 动态数组定义分两步:首先在窗体层、标准模块或过程中用DIM或Public声明一个没有下标的数组,然后再过程中在用ReDimd定义。 3. 数组的清除和重定义 Erase 数组名 Erase用于动态数组中,将删除整个数组结构并释放数组所占用的内存,即动态数组以后就不复存在。用于静态数组中只是内容清空,数组依然存在。 4. 数组元素的输入及输出 输入:一般通过For循环和Inputbox函数输出 如: Option base 1 Dim s() as string Sub Form_Click() Redim s(4) as string For i= 1 to 4 Temp$=Inputbox(“Enter Name”) S(i)= Temp$ Next i End Sub 输出:用Print方法结合For循环实现 Option base 1 Dim s(4,4) as Integer For i= 1 to 4 For j= 1 to 4 Print s(i,j); “ ” ; Next j Next i 5.控件数组 控件数组是一组相同类型的控件组成,这些控件有一个相同的控件名称,具有相同的属性设置,所有元素的Name属性相同,但Index属性不同。 6.Sub过程 ● 通用过程:多个事件过程需要使用同一个程序代码,他可以单独建立,供事件过程或其他过程调用。 ● 事件过程:当发生某个事件时,对事件作出响应的程序段。 函数过程的返回值只能有一个。 调用Sub过程:① Call语句调用过程。 如:Call Tryout(a,b) ② 把过程名作为一个语句使用。 如:Try out a,b 去掉call关键字,去掉“实际参数”括号。 7.通用sub过程和事件过程 ★重点★难点★ 事件过程是一种特殊的sub过程,他附加在窗体和控件上。窗体的事件过程不能由用户任意定义,而是由系统指定。通常是在事件过程中调用通用过程,同时事件过程也可以被其他过程调用。 通用过程可以放在标准模块中,也可以放在窗体模块中,而事件过程只能放在窗体模块中,不同模块中的过程可以互相调用。 8.Function过程 ★重点★难点★ Sub过程不直接返回值,可以作为单独的基本语句使用,而Function过程要返回一个值,通常出现在表达式中。 9.过程中的参数 ⑴ 形参与实参 形参:在Sub过程、Function过程的定义中出现的变量名。 实参:在调用Sub过程、Function过程中传送给Sub过程、Function过程的常数、变量、表达式或数组。 ⑵传送方式:按位置传送和指名传送 ▼ 按位置传送(常考) 实际参数的次序必须和形式参数的次序相匹配 例如: Private sub proc1 (a as integer, b as string, optional x as boolean) ……… End sub 正确调用此过程的语句是:proc1 5,”asd” 或 call proc1 (5,”asd”,FALSE) ▼ 指名传送 (3) 引用 参数通过地址和传值两种方式传送,其中传送地址称为引用。通过关键字ByRef实现。默认情况下,变量都是通过引用传送给Sub过程、Function过程的。 例如: Sub tryout(x as integer, y as integer) X=x+100 Y=y*6 Print “x=”; x, ”y=”; y End sub Sub form_click() Dim a as integer,b as integer A=10; b=20 Tryout a,b Print “a=”; a, ”b=”; b End sub 运行后输出结果为: x=110 y=120 A=110 b=120 (4) 传值 由于通用过程没有访问实参的原始地址,因而不会改变原来变量的值,所用的变化都是在变量的副本上进行的。传值方式通过关键字ByVal实现。 例如: Sub tryout(ByVal x as integer, ByVal y as integer) X=x+100 Y=y*6 Print “x=”; x, ”y=”; y End sub Sub form_click() Dim a as integer,b as integer A=10; b=20 Tryout a,b Print “a=”; a, ”b=”; b End sub 运行后输出结果为: x=110 y=120 A=10 b=20 函数过程形参的类型与函数返回值的类型没有关系。 九.键盘与鼠标事件 1.键盘事件 ⑴KeyPress事件 当压下键盘上的某个键时,将发生KeyPress事件。该事件可以用于各控件。比如用在文本框上的格式:Private Sub Text- KeyPress(KeyAscii as integer) KeyPress事件带有一个参数,参数有两种形式,第一种形式:Index As Integer,只用在控件数组。第二种形式是:KeyAscii As integer,用于单个控件。 KeyPress事件用于识别按键的Ascii码,捕捉击键动作,KeyAscii参数不能省略。 控件的键盘事件优先于窗体的键盘事件 ⑵KeyDown和KeyUP事件 KeyDown和KeyUP事件返回的是键盘的直接状态。 KeyPress事件返回的是Ascii码。当按键“A”时,KeyDown事件所得到的Keycode码与键“a”的相同。 2.鼠标事件 十.可视化程序设计 1.当窗体为活动窗体时,可以使用“工具”菜单中的“菜单编辑器”打开菜单编辑器。 2.弹出式菜单:建立弹出式菜单首先用菜单编辑器建立菜单,然后用PopupMenu方法弹出显示。 各级菜单中的所有菜单项的名称必须唯一。 3.通用对话框: 对话框的类型可以通过Action属性设置,也可以用相应的方法设置。可以通过DialogTitle属性设置有实际意义的标题。 通用对话框,Action=1 打开文件; =2 保存文件 方法:showopen;showsave 4.文件对话框: 格式:【窗体】对话框名,Fliter=描述符1|过滤器1| 描述符2|过滤器2|… FliterIndex 用来指定默认的过滤器。 文件类型 5.多重窗体程序设计 Show方法:用来将指定的窗体装入内存并显示该窗体。 6.VB工程中,可以作为启动对象的程序是Sub main 过程或任何窗体。 一个工程中可以包括多个窗体文件。 十一. 数据文件 1基本文件操作语句与函数 ⑴ 打开文件 ★重点★难点★ 格式:Open文件名【for 方式】 as #文件号 如果省略【for 方式】,则打开文件的存取方式是随机存取方式。 方式指文件的输出方式,可以是Output(顺序输出)以写的方式打开、 input(顺序输入)、append(添加)。 使用open语句打开文件时,如果为输入input打开的文件不存在,则产生“文件未找到”的错误;如果为Output(顺序输出) 、append(添加)访问方式打开的文件不存在,则建立相应的文件。 (2)关闭文件 (3)EOF函数 用来测试文件的结束状态。利用EOF函数,可以避免在文件输入时出现“输入超出尾”错误。 DO While Not EOF 2.顺序文件与随机文件 ⑴ 顺序文件写操作 Print #文件号,表达式 Write #文件号, 表达式 (2)顺序文件读操作 Input #文件号,变量表 (3)随机文件的打开与读写操作 随机文件的记录是定长记录。在用open语言打开文件时必须指定记录的长度。 打开随机文件: Open”文件名” for random As #文件号 对文件的操作既可以读也可以写。 |
|