分享

基础

 xingainian 2011-03-14

1.1 算法
   算法:是解题方案的准确而完整的描述。通俗地说,算法就是计算机解题的过程。算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。
   (1)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;
   (2)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;

   (3)可行性,算法原则上能够精确地执行;
   (4)拥有足够的情报。
   算法效率的度量算法复杂度:算法时间复杂度和算法空间复杂度。★★★

   算法时间复杂度:指执行算法所需要的计算工作量。即算法执行过程中所需要的基本运算次数。
   算法空间复杂度:指执行这个算法所需要的内存空间。

   1.2 数据结构的基本概念

   数据结构:指相互有关联的数据元素的集合。
   数据结构研究的三个方面:

   (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;
   (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
   (3)对各种数据结构进行的运算。
   线性结构的条件,(一个非空数据结构)
   (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。
   非线性结构:不满足线性结构条件的数据结构。

   1.3 线性表及其顺序存储结构

   线性表的顺序存储结构具有以下两个基本特点:
   (1)线性表中所有元素所占的存储空间是连续的;
   (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
   顺序表的运算:查找、插入、删除。
   1.4线性链表
   数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
   结点由两部分组成:
   (1) 用于存储数据元素值,称为数据域;

   (2) 用于存放指针,称为指针域,用于指向前一个或后一个结点。

   在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。

   链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
   线性链表的基本运算:查找、插入、删除。

   1.5栈和队列★★★★

  

   栈:限定在一端进行插入与删除的线性表。 
   其允许插入与删除的一端称为栈顶,用指针top表示栈顶位置。

   不允许插入与删除的另一端称为栈底,用指针bottom表示栈底。

   栈按照先进后出”(FILO)后进先出”(LIFO)组织数据,栈具有记忆作用。

   栈的存储方式有顺序存储和链式存储。

   栈的基本运算:

   (1) 入栈运算,在栈顶位置插入元素;

   (2) 退栈运算,删除元素(取出栈顶元素并赋给一个指定的变量)
   (3) 读栈顶元素,将栈顶元素赋给一个指定的变量,此时指针无变化。
   队列:指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。

  
   rear指针指向队尾,用front指针指向队头元素的前一个位置。
   队列是先进先出”(FIFO)后进后出”(LILO)的线性表。

   队列运算:

   (1) 入队运算:从队尾插入一个元素
;
   (2) 退队运算:从队头删除一个元素
;
   计算循环队列的元素个数:

  尾指针减头指针,若为负数,再加其容量即可。

  

   尾指针-头指针>0 ,尾指针-头指针
 
   尾指针-头指针<0 ,尾指针-头指针+容量

   计算栈的个数
:
   栈底栈顶 +1

1.6 树与二叉树 ★★★★★
   1、树的基本概念
   树是一种简单的非线性结构,其所有元素之间具有明显的层次特性。
   在树结构中,每一个结点只有一个前件,称为父结点。
   没有前件的结点只有一个,称为树的根结点,简称树的根。
   每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。
   在树结构中,一个结点所拥有的后件的个数称为该结点的度。 来源:考试大
   所有结点中最大的度称为树的度。
   树的最大层次称为树的深度。
  
  2、二叉树及其基本性质 
  满足下列两个特点的树,即为二叉树
  (1) 非空二叉树只有一个根结点;
  (2) 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
  
   二叉树基本性质:★★★★
   性质1 在二叉树的第k层上,最多有 个结点。
   性质2 深度为m的二叉树最多有个 个结点。
   性质3 在任意一棵二叉树中,度数为0的结点(即叶子结点)总比度为2的结点多一个。
   性质4 具有n个结点的二叉树,其深度至少为 ,其中 表示取 的整数部分
   3、满二叉树与完全二叉树
   满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。 来源:www.
   完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
   下图a表示的是满二叉树,下图b表示的是完全二叉树:
  
   4、二叉树的遍历 ★★★★
   二叉树的遍历是指不重复地访问二叉树中的所有结点。二叉树的遍历可以分为以下三种:
   (1)前序遍历(DLR):若二叉树为空,则结束返回。否则:首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
   (2)中序遍历(LDR):若二叉树为空,则结束返回。否则:首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
   (3)后序遍历(LRD):若二叉树为空,则结束返回。否则:首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点.
  
   该二叉树前序遍历为:F C A D B E G H P
   该二叉树中序遍历为:A C B D F E H G P
   该二叉树后序遍历为:A B D C H P G E F
   1.7 查找技术
   查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素。
   查找结果:(查找成功:找到;查找不成功:没找到。)
   平均查找长度:查找过程中关键字和给定值比较的平均次数。
   查找分为: 顺序查找 二分法查找对于长度为n的有序线性表,最坏情况只需比较 次,而顺序查找需要比较n次。
   1.8 排序技术
   排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。
   1、交换类排序法(冒泡排序,快速排序)
   2、插入类排序法(简单插入排序,希尔排序)
   3、选择类排序法(简单选择排序,堆排序)
   冒泡排序法,快速排序法,简单插入排序法,简单选择排序法,最坏需要比较的次数为n(n-1)/2
   希尔排序,最坏需要比较的次数为
   堆排序,最坏需要比较的次数为 来源:考试大-计算机二级考试 

 2.1 程序设计设计方法和风格
  "清晰第一、效率第二"已成为当今主导的程序设计风格。
  形成良好的程序设计风格需注意:
  1、源程序文档化;
  2、数据说明的方法;
  3、语句的结构;
  4、输入和输出。
  注释分序言性注释和功能性注释。 语句结构清晰第一、效率第二。
  2.2 结构化程序设计
  结构化程序设计方法的四条原则是:
  1、自顶向下;
  2、逐步求精;
  3、模块化;
  4、限制使用goto语句。
  结构化程序的基本结构及特点:
  (1)顺序结构:一种简单的程序设计,最基本、最常用的结构;
  (2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;
  (3)循环结构:又称重复结构,可根据给定条件,判断是否需要重复执行某一相同或类似的程序段。
  结构化程序设计的特点:只有一个入口和出口
  2.3 面向对象的程序设计
  面向对象方法的优点:
  (1)与人类习惯的思维方法一致;
  (2)稳定性好;
  (3)可重用性好;
  (4)易于开发大型软件产品;
  (5)可维护性好。
  对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
  面向对象的程序设计方法中,对象是由数据的容许的操作组成的封装体,是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
  操作描述了对象执行的功能,是对象的动态属性,操作也称为方法或服务。
  对象的基本特点:
  (1)标识惟一性;
  (2)分类性;
  (3)多态性;
  (4)封装性;
  (5)模块独立性好。
  类是指具有共同属性、共同方法的对象的集合。类是关于对象性质的描述。类是对象的抽象,对象是其对应类的一个实例。
  消息是一个实例与另一个实例之间传递的信息。对象间的通信靠消息传递。它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
  继承是使用已有的类定义作为基础建立新类的定义技术,广义指能够直接获得已有的性质和特征,而不必重复定义他们。
  继承具有传递性,一个类实际上继承了他上层的全部基类的特性。
  继承分单继承和多重继承。
  多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。

3.1 软件工程基本概念
  1、软件的相关概念
  计算机软件是包括程序、数据及相关文档的完整集合。
  软件的特点包括:1)软件是一种逻辑实体,而不是物理实体,具有抽象性;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开发涉及诸多的社会因素。
  2、软件危机与软件工程
  软件工程源自软件危机。所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
  软件工程的主要思想是将工程化原则运用到软件开发过程,它包括3个要素:方法、工具和过程。方法是完成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
  软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
  3、软件生命周期
  软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程。
  软件生命周期分为软件定义、软件开发及软件运行维护三个阶段:
  1)软件定义阶段:包括制定计划和需求分析。
  制定计划:确定总目标;可行性研究;探讨解决方案;制定开发计划。
  需求分析:对待开发软件提出的需求进行分析并给出详细的定义。
  2)软件开发阶段:
  软件设计:分为概要设计和详细设计两个部分。
  软件实现:把软件设计转换成计算机可以接受的程序代码。

  软件测试:在设计测试用例的基础上检验软件的各个组成部分。
  3)软件运行维护阶段:软件投入运行,并在使用中不断地维护,进行必要的扩充和删改。
  4、软件工程的目标和与原则
  (1)软件工程目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、
  可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
  (2)软件工程需要达到的基本目标应是:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发,及时交付使用。
  (3)软件工程原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
  1)抽象:
  2)信息隐蔽:
  3)模块化:
  4)局部化:
  5)确定性:
  6)一致性:
  7)完备性:
  8)可验证性:
  3.2 结构化分析方法
  1、需求分析
  需求分析方法有:1)结构化需求分析方法;2)面向对象的分析方法。
  2、结构化分析方法
  结构化分析方法是结构化程序设计理论在软件需求分析阶段的应用。
  结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
  结构化分析的常用工具:1)数据流图(DFD)2)数据字典(DD)3)判定树;4)判定表。

  数据流图的基本图形元素:

  加工(转换):输入数据经加工变换产生输出。
  数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。
  存储文件(数据源):表示处理过程中存放各种数据的文件。
  源,潭:表示系统和环境的接口,属系统之外的实体。
  3.3 结构化设计方法

  1、软件设计的基础
  从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。

  从工程角度来看,软件设计分两步完成,即概要设计和详细设计。
  概要设计:又称结构设计,将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式。
  详细设计:确定每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。
  软件设计的基本原理包括:抽象、模块化、信息隐蔽和模块独立性。
  1)抽象。抽象是一种思维工具,就是把事物本质的共同特性提取出来而不考虑其他细节。
  2)模块化。解决一个复杂问题时自顶向下逐步把软件系统划分成一个个较小的、相对独立但又不相互关联的模块的过程。
  3)信息隐蔽。每个模块的实施细节对于其他模块来说是隐蔽的。
  4)模块独立性。软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。
  *:模块分解的主要指导思想是信息隐蔽和模块独立性。
  模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标。

  内聚性:是一个模块内部各个元素间彼此结合的紧密程度的度量。
  *:按内聚性由弱到强排列,内聚可以分为以下几种:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚及功能内聚。
  耦合性:是模块间互相连接的紧密程度的度量。
  *:按耦合性由高到低排列,耦合可以分为以下几种:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合以及非直接耦合。
  一个设计良好的软件系统应具有高内聚、低耦合的特征。
  在结构化程序设计中,模块划分的原则是:模块内具有高内聚度,模块间具有低耦合度。
  2、总体设计(概要设计)和详细设计
  (1)总体设计(概要设计)
  软件概要设计的基本任务是:1)设计软件系统结构;2)数据结构及数据库设计;3)编写概要设计文档;4)概要设计文档评审。

  常用的软件结构设计工具是结构图,也称程序结构图。程序结构图的基本图符:
  模块用一个矩形表示,箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据信息。
  (2)详细设计
  详细设计是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
  常用的过程设计(即详细设计)工具有以下几种:

  图形工具:程序流程图、N-S(方盒图)PAD(问题分析图)HIPO(层次图+输入/处理/输出图)
  表格工具:判定表。
  语言工具:PDL(伪码)
  3.4 软件测试

  1、软件测试定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
  软件测试的目的:尽可能地多发现程序中的错误,不能也不可能证明程序没有错误。软件测试的关键是设计测试用例,一个好的测试用例能找到迄今为止尚未发现的错误。
  2、软件测试方法:静态测试和动态测试。
  静态测试:包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。
  动态测试:是基于计算机的测试,主要包括白盒测试方法和黑盒测试方法。
  (1)白盒测试
  白盒测试方法也称为结构测试或逻辑驱动测试。它是根据软件产品的内部工作过程,检查内部成分,以确认每种内部操作符合设计规格要求。

  白盒测试的基本原则:保证所测模块中每一独立路径至少执行一次;保证所测模块所有判断的每一分支至少执行一次;保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。
  *:白盒测试法的测试用例是根据程序的内部逻辑来设计的,主要用软件的单元测试,主要方法有逻辑覆盖、基本路径测试等。
  A、逻辑覆盖。逻辑覆盖泛指一系列以程序内部的逻辑结构为基础的测试用例设计技术。通常程序中的逻辑表示有判断、分支、条件等几种表示方法。
  语句覆盖:选择足够的测试用例,使得程序中每一个语句至少都能被执行一次。
  路径覆盖:执行足够的测试用例,使程序中所有的可能的路径都至少经历一次。
  判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分支(TF)至少经历一次。
  条件覆盖:设计的测试用例保证程序中每个判断的每个条件的可能取值至少执行一次。
  判断-条件覆盖:设计足够的测试用例,使判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能取值分支至少执行一次。
  *:逻辑覆盖的强度依次是:语句覆盖<路径覆盖<判定覆盖<条件覆盖<判断-条件覆盖。
  B、基本路径测试。其思想和步骤是,根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例,对每一条独立执行路径进行测试。
  (2)黑盒测试
  黑盒测试方法也称为功能测试或数据驱动测试。黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。

  黑盒测试主要诊断功能不对或遗漏、接口错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错误。
  黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例,主要方法有等价类划分法、边界值分析法、错误推测法等,主要用软件的确认测试。
  3、软件测试过程一般按4个步骤进行:单元测试、集成测试、确认测试和系统测试。
  3.5 程序的调试
  程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行,调试程序应该由编制源程序的程序员来完成。
  程序调试的基本步骤:(1)错误定位;(2)纠正错误;(3)回归测试。
  软件的调试后要进行回归测试,防止引进新的错误。
  软件调试可分为静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的调试手段,而动态调试是辅助静态调试。
  对软件主要的调试方法可以采用:
  (1)强行排错法。
  (2)回溯法。
  (3)原因排除法。

 4.1 数据库系统的基本概念
  1、数据、数据库、数据管理系统
  (1)数据
  (2)数据库(DB)
  (3)数据库管理系统(DBMS):一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库的核心。
  数据库管理系统功能:
  1)数据模式定义
  2)数据存取的物理构建
  3)数据操纵
  4)数据的完整性、安生性定义与检查
  5)数据库的并发控制与故障恢复
  6)数据的服务
  数据库技术的根本目标是解决数据的共享问题。
  2、数据库系统的发展
  数据库管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
  3、数据库系统的基本特点
  (1)数据的高集成性。
  (2)数据的高共享性与低冗余性。
  (3)数据独立性:
  数据独立性一般分为物理独立性与逻辑独立性两级。
  物理独立性:物理独立性即是数据的物理结构(包括存储结构,存取方式等)的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
  逻辑独立性:数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型、改变数据间联系等,不需要相应修改应用程序,这就是数据的逻辑独立性。
  (4)数据统一管理与控制。
  4、数据库系统的内部结构体系

  (1)数据库系统的三级模式:
  1)概念模式:数据库系统中全局数据逻辑结构的描述,是全体用户(应用)公共数据视图。
  2)外模式:也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。
  3)内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法。内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。内模式对一般用户是透明的,但它的设计直接影响数据库的性能。
  (2)数据库系统的两级映射:
  1)概念模式/内模式的映射:实现了概念模式到内模式之间的相互转换。当数据库的存储结构发生变化时,通过修改相应的概念模式/内模式的映射,使得数据库的逻辑模式不变,其外模式不变,应用程序不用修改,从而保证数据具有很高的物理独立性。
  2)外模式/概念模式的映射:实现了外模式到概念模式之间的相互转换。当逻辑模式发生变化时,通过修改相应的外模式/逻辑模式映射,使得用户所使用的那部分外模式不变,从而应用程序不必修改,保证数据具有较高的逻辑独立性。
  4.2 数据模型
  1、数据模型
  2、实体联系模型及E-R
  E-R模型的图示法:

  1)实体集:用矩形表示。
  2)属性:用椭圆形表示。
  3)联系:用菱形表示。
  4)实体集与属性间的联接关系:用无向线段表示。
  5)实体集与联系间的联接关系:用无向线段表示。
  3、数据库管理系统常见的数据模型有层次模型、网状模型和关系模型三种。
  4.3 关系代数
  1、关系的数据结构
  关系是由若干个不同的元组所组成,因此关系可视为元组的集合。n元关系是一个n元有序组的集合。
  关系模型的基本运算:1)插入;2)删除;3)修改;4)查询(包括投影、选择、笛卡尔积运算)
  2、关系操纵
  关系模型的数据操纵即是建立在关系上的数据操纵,一般有查询、增加、删除和修改四种操作。
  3、集合运算及选择、投影、连接运算
  (1)():关系RS具有相同的关系模式,RS的并是由属于R或属于S的元组构成的集合。
  (2)():关系RS具有相同的关系模式,RS的差是由属于R但不属于S的元组构成的集合。
  (3)(∩):关系RS具有相同的关系模式,RS的交是由属于R且属于S的元组构成的集合。
  (4)广义笛卡尔积(×):设关系RS的属性个数分别为nm,则RS的广义笛卡尔
  积是一个有(n+m)列的元组的集合。每个元组的前n列来自R的一个元组,后m列来自S的一个元组,记为R×S
  *:根据笛卡尔积的定义:有n元关系Rm元关系S,它们分别有pq个元组,则关系RS经笛卡尔积记为R×S,该关系是一个n+m元关系,元组个数是p×q,由RS的有序组组合而成。
  例:有两个关系RS,分别进行并、差、交和广义笛卡尔积运算。
  (5)在关系型数据库管理系统中,基本的关系运算有选择、投影与联接三种操作:
  1)选择:选择指的是从二维关系表的全部记录中,把那些符合指定条件的记录挑出来。
  2)投影:投影是从所有字段中选取一部分字段及其值进行操作,它是一种纵向操作。
  3)联接:联接将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。
  4.4 数据库设计方法和步骤
  (1)数据库设计阶段包括:需求分析、概念分析、逻辑设计、物理设计。
  (2)数据库设计的每个阶段都有各自的任务:
  1)需求分析阶段:这是数据库设计的第一个阶段,任务主要是收集和分析数据,这一阶段收集到的基础数据和数据流图是下一步设计概念结构的基础。
  2)概念设计阶段:分析数据间内在语义关联,在此基础上建立一个数据的抽象模型,即形成E-R图。
  3)逻辑设计阶段:将E-R图转换成指定RDBMS中的关系模式。
  4)物理设计阶段:对数据库内部物理结构作调整并选择合理的存取路径,以提高数据库访问速度及有效利用存储空间。

 1. 关于逻辑假值(.F.
  1) 定义一个数组,没有给数组元素赋值,其每个元素取值为逻辑假值
  如: dimension ab(3)
  ab(1) 结果为逻辑假(.F.
  ab(2) 结果为逻辑假(.F.
  ab(3) 结果为逻辑假(.F.
  2) 定义一个公共变量,没有给该变量赋值,其值为逻辑假值
  如: public xy
  xy 结果为逻辑假(.F.
  3) 定义一个局部变量,没有给该变量赋值,其值为逻辑假值
  如: local ac
  ac 结果为逻辑假(.F.
  4) 在参数传递过程中,多余的形参,其值为逻辑假值
  如: x=1
  y=2
  do abc with x,y
  procedure abc
  param a1,b1,c1
  a1,b1,c1
  Return
  2. 关于条件子句
  1) 只能用在VF命令中的条件
  For 条件
  While 条件
  2) 只能用在SQL语句中的条件
  Where 条件
  3. 关于通配符
  1) 只能用在VF命令中的通配符
  * 代替任意多个字符
  : 代替任意1个字符
  2) 只能用在SQL语句中的条件
  %: 代替任意多个字符
  _: 代替任意多个字符
  4. 关于%(百分号)
  1) 求余运算符
  如: 10%3 表示10除以3的余数
  2) 通配符
  如: select * from 学生 where 姓名 like "%" 表示在学生表中,查找姓王的学生
  在VF%(百分号)没有表示百分比的功能,要表示百分比时,将其转换成小数
  5. 使用SQL语句删除
  1) 删除某个文件
  如:删除表文件 drop table 表名
  删除视图 drop view 视图名
  2)删除表中记录
  Delete from 表名 [where 条件]
  3)删除某个字段
  Alter table 表名 drop 字段名
  4)删除字段的有效性规则、默认值等
  如: 删除字段有效性规则
  Alter table 表名 alter 字段名 drop check
  删除字段的默认值
  Alter table 表名 alter 字段名 drop default

第一章 数据库基础知识
  1、数据库管理系统:DBMS;数据库应用系统:DBAS;数据库系统:DBS;数据:DB
  DBS包括DBMSDBASDB
  2、实体间的联系:一对一,一对多,多对多。
  3、数据库中的数据模型:网状模型,层次模型,关系模型。
  4、关系:一个关系就是一个二维表,每一个关系有一个关系名。
  5、元组:二维表中的行称为元组。
  6、属性:二维表中的列称为属性。
  7、域:属性的取值范围。
  8、关系;关系名表名;属性字段;元组记录;记录,元组;字段,属性。
  9、传统的集合运算:并,差,交。
  10、专门的关系运算:选择(水平方向) for,while,where
  投影(垂直方向) fields,select
  联接(一对一,一对多,多对多)
  11、定义数组 第二章 VF基础知识

  1、创建项目:通过菜单创建

  命令:creat project项目名

  2、打开项目管理器:通过文件打开菜单项

  命令:modify project 项目名

  3、各类文件选项卡:数据选项卡(数据库,自由表,查询,视图)

  文档选项卡(表单,报表,标签)

  

  代码

  其他

dime/declare 数组名(34)

第五章 SQL语言

  1SQLstructure query language

  2、定义:是结构化查询语言,是关系数据库的标准语言,是一种高度非过程化的语言,是数据库后台操作语言,具有非常强大的查询功能,查询时它的核心。

  3、基本构成:select 查询什么 from 从哪来 where 查询条件

  4、三大功能:

  l 数据查询

  .格式:select 字段名/表名/* from 1 inner join 2 on 1主关键字=2主关键字 where 筛选条件[group by (……分组)having(限定分组条件)order by(……排序)

  .函数

max

min

avg

cnt(count)

sum

最大值

最小值

求平均值

统计

求和

  .值域查询: between…and…

  .空值查询:is null

  .模糊查询:$ (后包前) *(%) ?like

  l 操作功能

  .插入 insert into 表名 value

  . 更新 update 表名 set 字段=表达式 where 条件

  .删除 delete from 表名 where 条件

  l 定义功能

  .表的定义 creat ***

  . 删除表 drop table表名

  删除视图 drop view

  .表结构的修改

  .添加字段:alter table 表名add 字段名 类型(长度)

  .删除字段:alter table 表名 drop 字段名

  .修改字段:alter table 表名 alter 字段名 新类型(长度)

  .重新命名字段:alter table 表名 rename 旧字段名 to 新字段名

  .建立有效性规则:alter table 表名(数据库表)alter 字段 set check 字段条件

  .删除有效性规则:alter table 表名alter 字段 drop check

  .建立默认值:alter table 表名 alter 字段 set default 条件

  .删除默认值:alter table 表名 alter 字段 drop default

  .建立唯一索引:alter table 表名add unique 字段 tag索引名

  .删除唯一索引:alter table 表名drop unique tag 索引名

  .建立主索引:alter table 表名add primary key字段 tag索引名

  .删除主索引:alter table 表名drop primary key字段 tag索引名

  .建立普通索引:alter table 表名add foreign key字段 tag索引名

  .删除普通索引:alter table 表名drop foreign key tag索引名

 

for语句

SQL语句

主索引

黄钥匙表示

primary key

候选索引

candi

unique

唯一索引

unique

 

普通索引

默认

foreign key

  5SQL的六种去向:

  .将查询结果保存到永久表:into table/dbf 表名

  .将查询结果保存到临时表:into cursor表名

  .将查询结果保存到数组:into array 数组名

  .将查询结果保存到文本文件:to file 文本文件名

  .将查询结果预览显示:to preview

  .将查询结果打印:to printer

  6、约束规则:

  7、量词查询:some any all (anysome是同义词)

  * someany 只有子查询中有一行能使结果为真,则结果为真

  * all 子查询中所有记录都使结果为真,则结果为真。

  8、谓词查询 exists not exists 用来检查是否有结果返回,即存在/不存在元组

 第六章 查询与视图

  1、命令.locate for 条件 查找满足条件的第一条记录

  continue 继续查找满足条件的下一条记录

  found() 测试是否有返回值 T,无F

  display 显示

  .index in 字段 tag 表名

  seek “字段

  found()

  display

  skip

  .建立查询:creat query 查询文件名

  select * from 表名 where 条件

  2、查询设计器Inner Join 联接

  where 筛选

  order by 排序依据

  group by 分组依据

  having count 分组满足条件

  选项卡:字段、连接、筛选、杂项、排序依据、分组依据

  3、联接包括:内部联接(Inner Join)、左联接(left outer join)

  右联接(right outer join)、完全联接(full join)

  l 建立临时联接要求的是任意表,永久联接的表示同一数据库表

  4、查询去向:浏览、临时表、表、图形、屏幕、报表、标签

  5、运行查询do 查询名.qpr

  6、视图的定义:是一个虚拟表,是从一个或多个数据库中导出的表;在视图中只存放视图的定义, 不存放视图的内容。

  7、建立视图creat view

  8、在浏览图查询视图creat view 视图名 as

  9、视图与查询的比较:

  l 相同点:可以从数据源中查找妈祖一定筛选条件的记录和选定部分字段;

  自身不保存数据,它们的查询结果随数据源内容的变化而变化;

  视图有更新条件,查询有查询去向;

  视图可以更新,查询是只读;

  查询有7个去向,视图无;

  l 不同点:视图可以更新数据源表,而查询不能;

  视图可以访问远程数据,而查询不能直接访问,需借助于远程视图方可;

  视图只能在数据库中存在,而查询不是数据库的组成部分,它是一个独立的程序 文件;

  视图的基表只能是数据库表,而查询的基表可以是自由表,数据库表以及多个数据库的表;

  都可以生成SQL语言。

  l 建立视图必须是数据库表或已经存在的视图,建立查询只要是表都可以。

第七章 程序设计基础(p128)

  1、概念:是命令的集合,分行存储在磁盘上,按照人为的顺序依次输出的过程。

  2、建立、修改:modify command 程序名

  3、运行:do 程序名

  4、基本输入语句:(以求圆的面积为例)

  .input”请输入圆的半径”to r

  .accept ”请输入圆的半径”to r

  .@10.10 say “请输入圆的半径” get r

  read

  .wait ”请等候……”window

  . messagebox (“欢迎光临!”48欢迎信息”)

  5、程序的结构:顺序结构

  选择结构(分支、判断)

  循环结构(条件循环、步长循环、扫描循环)

  6、程序的控制语、注释语

  .exit 退出、终止

  .loap 中止

  .quit 关闭系统

  .&& 同行注释

  . * 换行注释

  .error 不参与程序的执行

  6、程序模块

  7、变量的作用域

  .公共变量(public):作用于程序运行的始终

  .局部变量(local):只在本过程中使用,即不上传,也不接收

  .私有变量(private):在程序运行过程中自动隐藏,成程序结束时显示本身

  8、程序调试命令:debug

 第八章 表单设计与运用

  1、对象:只要是存在的东西就认为是对象

  2、类:对象生成的模板

  3、类的特征:.层次性

  .继承性 子类不但继承父类的事件、属性、方法,而且有自己的事件、属性、方法

  .封装性

  4、对象与类的关系:类是对象一般化,抽象化;对象是类的具体化,实例化

  5、创建类:creat class 类名

  6、类的使用:新建项目添加点开类拖入表单

  7、创建表单:creat form 表单名

  运行表单:do form 表单名

  8、表单属性:

  属性名称 说明 属性名称 说明

  Caption 表单标题 Name 表单名称

  Alwaysontop 是否永远居上 Autocenter 自动居中

  Backcolor 背景色 Borderstyle 边框样式

  Picture 背景图片 Maxbutton 设置表单最大化按钮

  Movble 设置表单是否可移动 windowstate 表单状态(最大//普通)

  Showwindow 是否作为顶层表单 Windowtype 表单窗口风格设定

  Height 表单高度 Width 表单宽度

  Controlbox 是否在表单右上角显示图标 Forecolor 前景色

  Mouseicon 鼠标的图标(Mousepointer>99时才起作用)

  Mousepointer 鼠标的形状

  Icon 表单最小化的图标

  9、标签属性:

  属性名称 说明 属性名称 说明

  Autosize 自动调整字体大小 Alignment 对齐方式(默认为左)

  Left 标签离表单左边界的距离 Backstyle 标签背景是否透明

  Top 标签离表单顶部的距离 Dsiablebackcolor 标签失效时的背景色

  Dsiableforecolor 标签失效时的前景色 Enable 标签是否可用

  Visible 标签是否可见 Fontbold 标签文本是否为粗体

  Fontitalic 标签文本是否为斜体 Fontname 标签文本字体设置

  Fontsize 标签文本字体大小 Fontunderline 标签文字是否带下划线

  Forecolor 标签字体颜色 Wordwrap 标签是横排/竖排

  10、文本框属性

  .公共属性

  Backcolor Backstyle Borderstyle Enable Fontname Fontsize

  Fontitalic Fontunderline Forecolor Visible Height Width

  Left Top

  .属性名称 说明 属性名称 说明

  Controlsource 数据源的绑定 Passwordchar 输入占位符

  Value 返回文本框当前内容 Inputmask 模式符(× 9 # * )

  Sellength 文本长度 Selstart 文本的开始位置

11、编辑框属性

  公共属性

  Backcolor Backstyle Borderstyle Enable Fontname Fontsize

  Fontitalic Fontunderline Forecolor Visible Height Width

  Left Top Alignment

  .Hideselection 失去焦点,文本是否显示选定状态

  Readonly 是否为只读     Scrollbars   是否有垂直的滚动条

  12、命令按钮属性

  Enable Fontname Fontsize Left Top Width

  Fontitalic Fontunderline Visible Height

  13、命令按钮组属性

  Buttoncount  指定命令按钮个数

  14、复选框属性

  Caption  Value

  15、选项按钮组属性

  Buttoncount  指定命令按钮个数

  Buttons    用于存取每个按钮的数目

  16、列表框属性

  Rowsourcetype 数据值的来源类型 Rowsource 数据值的来源

  List 数据条目列表 Listcount 数据的条目数

  Controlsource 绑定 Selected 是否处于选顶状态

  Multiselect 是否为多选 Columncount 列表框的列数

  17、组合框属性

  style  0   下拉组合框           Rowsourcetype 数据值的来源类型

  2 下拉列表框           Rowsource   数据值的来源

  18、形状属性

  Curvature 形状的曲率 Borderwidth 边框宽度

  Bordercolor 边框的背景色 Backcolor 背景色

  19、线条属性

  Width    Height

  20、页框属性

  Pagecount   统计页的数目

  21、微调控件属性

  Increment   步长值

  22、表格属性

  Rowsourcetyp数据值的来源类型

23、计时器属性

  Intenval   设置间隔,一毫秒为单位

  24、新建属性:表单新建属性

  25、表格生成器:右键生成器

  26、表单事件:由系统定义,用户触发的动作行为过程。

  27、常用事件:

  init 在用户建立对象时引发 gotfocus 在对象获得焦点时引发

  destroy 在对象释放时引发 click 在单击鼠标左键时引发

  error 在发生错误时引发 ablclick 在双击鼠标左键时引发

  load 在表单对象建立之前引发 unload 在表单对象释放时引发

  rightclick 在单击鼠标右键时引发

  interactivechange 通过鼠标和键盘交互操作改变一个控件值时引发

  注意:.load 先于init ;destroy先于unload;

  .如果一个表单建立一个命令按钮,先引发表单的load事件,再引发命令按钮的load 事                 件,最后引发表单的init事件;

  .如果关闭一个含有命令按钮的表单,先引发表单的destroy事件,再引发命令按钮的  destroy事件,最后引发表单的unload事件。

  .方法包含在事件之中。(方法与属性均包含在实践之中)

  .在同一事件内,load先大后小,表单最大。

  28、方法:.定义:动作

  .常用方法:thisform release  关闭(释放)表单

  thisform refresh  刷新表单

  this.show     显示当前表单

  this.hide     隐藏当前表单

  thisform.text1.setfocus  让文本框1获得焦点

  29、对象的引用:thisform   从表单开始

  this     从当前对象开始

  thisformset  从表单集开始

  parent    从容器开始

  30、将修改表单名的四种方法(ok 为例)

  .thisformset.form1.command1.caption=”ok”

  .thisform.command1.caption=”ok”

  .this.caption=”ok”

  .this.parent.caption=”ok”

  31、表单集:.定义:由多个表单组成的表单集和,即在一个设计器中出现多个表单。

  .创建:表单表单集新建表单。

  32、数据环境:右键数据环境

  33、表单向导:.表单向导

  .一对多表单向导

 第九章 菜单设计与应用

  1 菜单的分类:条形/下拉式/弹出式

  2、下拉式菜单的创建:.文件新建菜单

  .命令:creat menu 菜单名或modify menu 菜单名

  3、系统菜单:set sysmenu on/off,automatic/to[<弹出式菜单名称表>][to<条形菜单项名称表>]to [default][save/nosave]

  * 各项参数及选项的含义

  l on: 允许程序执行时访问系统文件

  l off: 禁止程序执行时访问系统菜单

  l automatic: 可使系统菜单显示出来,可以访问系统菜单

  l to <弹出式菜单名称表>: 重新配置系统菜单,以内部名字列出可用的弹出式菜单

  l to <条形菜单项名称表>:重新配置系统菜单,以条形菜单项内部名称表列出可用的子菜单

  l to default:将系统菜单恢复为缺省配置

  l save: 将当前的系统菜单配置指定为缺省配置

  l nosave: 将缺省配置恢复为VF系统菜单的标准配置

  4、菜单设计器的组成:.菜单名称

  .结果(子菜单、命令、主菜单名、过程)

  .选项 .菜单集 .预览 .插入 .删除

  5、在菜单设计器环境下,系统的显示菜单会出现两条命令:常规选项与菜单选项:(p104)

  6、为顶层表单添加菜单的方法和过程(p104)

  7、生成菜单程序:菜单生成生成菜单生成

  8、运行菜单程序:do 菜单名.mpr 注意:文件名的扩展名.mpr不能省略

第十章 报表设计

  1、报表向导 .报表向导

  .一对多报表向导

  2、布局 .列报表:应用于财政报表、销售总结

  .行报表:应用于列表

  .一对多报表:应用于发票、会计报表

  .多栏报表:应用于电话本、名片

  3、内容 .数据源

  .布局

  4、建立报表:creat report 报表名

  5、快速报表:报表快速报表

  6、报表控件:

  7、多栏报表:文件页面设置

  8、报表调用:report form 报表名

  9、报表预览:report form 报表名 to preview

33、创建自由表:确定当前没有打开数据库,使用命令:creat 表名

  34、将自由表添加到数据库中:open database 数据库名;add table 表名

  35、将数据库表移出数据库:open database 数据库名;remove table 表名

  ************************************************************************************

  小结:

  1. use 打开表时,记录号位于第一条记录;

  2. 执行带all的命令,记录指针指向eof;

  3. bof的记录总是1eof的记录号是记录数+1;

  4. 空表的总记录是0bof的记录号是1eof的记录号是1

  36、排序:.建立排序:sort on 字段名a/d/c to新表名

  .a(asc):升序; d (desc):降序;c:不区分字母的大小写

  37、索引:.索引的种类:主索引,候选索引,唯一索引,普通索引

  .建立索引:index on 关键字 tag 索引文件名

  .打开索引:set index to 索引文件名

  .关闭索引:set index to

  .查找索引:find /seek

  .删除索引:delete tag all 索引标识

  .主控索引:set order to 索引名

  .建立永久链接的条件:子表有索引,父表必须有主索引

  .建立临时链接:窗口数据工作区

  命令:set relation to 父表字段名 into 子表名 additive

  38、互换表中记录:先打开表

  go 1;scatter to aa(数组名) ;go 3;scatter to bb(数组名);

  go 1;gatter from bb;go 3;gatter from bb

  ************************************************************************************

  小结:

  1. 排序要执行两次,按关键字和记录号,要打开表;索引只执行一次,按关键字,不需要打开表;

  2. 排序生成一个新表,索引是针对原表;

  3. 升降序的表示与书写方式不同;

  4. 排序与索引的两个to 的含义不同,排序的to 表示到一个新表,索引的to 表示建立单索引文件,索引文件不能按降序排,只能按升序排;

  5. 表达式的连接方式不同,排序用()逗号,索引用(+降序升序)加减号;

  6. 自由表有三个索引:候选索引,唯一索引,普通索引;

  7. 数据库表有四个索引:主索引,候选索引,唯一索引,普通索引

  8. 一个表只能有一个主索引,可以有多个候选索引,唯一索引,普通索引;

  9. 主索引和候选索引表示表记录的唯一性。

  ************************************************************************************

  38、数据的完整性:.实体完整性:保证主索引和候选索引的唯一性

  .域完整性:表示范围只在数据库中的设置

  .参照完整性:描述表与表之间的关系

  l 参照完整性规则:更新规则(级联、限制、忽略);

  删除规则(级联、限制、忽略)

  插入规则(限制、忽略);

  l 参照完整性是数据库文件的产物,要有联接,必须打开文件,先清理数据库

  39、工作区:.工作区的选择:select<工作区号>|<别名>

  .范围:1~32767 默认0号工作区,也是最小工作区

.select 0表示选定当前还未使用的编号最小工作区

第四章 数据库及其操作

  1、创建数据库:.在项目管理器中建立

  .在菜单中建立

  .命令:creat database 数据库名

  2、打开数据库:open database 数据库名

  3、删除数据库:delete database 数据库名

  4、修改数据库:modify database 数据库名

  5、关闭数据库:close database

  6、打开表设计器:modify structure

  7、增加表中字段:alter table 表名 add 字段名

  8、删除表中字段:alter table 表名 drop 字段名

  9、修改表中字段:alter table 表名 rename 原字段 to 新字段

  10、更改字段类型及宽度:alter table 表名 alter 字段名+类型(宽度)

  11、显示表:list structure

  12、显示全部表记录:list

  13、显示当前表记录:display

  14、记录的绝对定位:go n

  15、浏览,修改表:browse

  16、编辑,修改表:edit/change

  17、批量修改:replace all 字段 with 字段

  18、逻辑删除(只在记录前加*,不删除)delete

  19、恢复逻辑删除:recall

  20、物理删除:.pack 只删除带*的记录

  .zap 物理删除表中全部记录

  21、关闭表:use

  22、打开表:use 表名

  23、复制表记录:use 表名;copy to 新表名

  24、复制表结构:use表名;copy structure to 新表名

  25、追加表记录:.将另一个表中的记录添加到该表中:use要追加记录的表名;

  append from有记录的表名

  .在尾部追加记录:append

  .在尾部增加一条空记录:append blank

  26、插入表记录:.在当前记录的的后面插入一条记录insert after

  .在当前记录的的后面插入一条空记录insert blank

  .在当前记录的的前面插入一条记录insert after

  26、显示所有含条件的记录:list for

  27、显示满足条件的记录:list while

  28、显示字段:list fields

  29、指针记录的定位:.bof() 文件头

  .go top 第一条记录

  .go bottom 最后一条记录

  .eof() 文件尾

  .skip 向下一条记录(不包含当前记录)

  .all 所有记录

  .locate for 满足条件的第一条记录

  .continue 继续查找满足条件的下一条记录

  30、记录的范围:.next n 向下n条记录

  .rest 从指针指向位置开始的所有记录

  .record n 当前记录

  31、在数据库关闭/删除的情况下建立的表为自由表,自由表字段名最长为10个字符

  31、在数据库打开/修改的情况下建立的表为数据库表,数据库表字段名最长为128个字符

  32、创建数据库表:open database 数据库名;creat表名

来源:考试大-计算机二级考试

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多