二级access考点.docx
《二级access考点.docx》由会员分享,可在线阅读,更多相关《二级access考点.docx(18页珍藏版)》请在冰豆网上搜索。
二级access考点
二级access考点
公共基础知识
第一章数据结构与算法
考点1算法的定义
算法是对一个问题求解步骤的一种描述,是求解问题的方法,它是指令的有限序列,其中每条指令表示一个或多个操作。
一般来说有5个主要特征。
有穷性:
一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。
确定性:
算法中的每一步都有确切的含义。
可行性:
算法中的操作能够用已经实现的基本运算执行有限次来实现。
输入:
一个算法有零个或多个输入,零输入就是算法本身确定了初始条件。
输出:
一个算法有一个或多个输出,以反映数据加工的结果。
考点2算法复杂度
算法复杂度包括时间复杂度和空间复杂度,是衡量一个算法好坏的度量。
算法时间复杂度:
是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。
算法空间复杂度:
是指执行这个算法所需要的内存空间。
考点3什么是数据结构
1、数据结构是指相互有关联的数据元素的集合。
一般来说,数据结构包括数据的逻辑结构、数据的存储结构、数据操作3个方面的内容。
2、数据结构主要研究和讨论以下三个方面的问题:
数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。
数据的逻辑结构反映数据的逻辑关系,与数据的存储没有关系,是独立于计算机的。
它有两大类逻辑结构:
线性结构和非线性结构。
线性结构(非空的数据结构):
构成条件1)有且只有一个根结点2)每一个结点最多有一个前件,也最多有一个后件。
*常见的线性结构有线性表、栈、队列和线性链表等
非线性结构:
不满足线性结构条件的数据结构。
*常见的非线性结构有树、二叉树和图等。
在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。
数据的存储结构又称数据的物理结构,是指数据的逻辑结构在计算机中的表示,即逻辑结构在计算机中的实现。
一个数据的逻辑结构可以有多种存储结构,但影响数据处理的效率。
3、4种基本的存储映射方法
顺序映射
链式映射
索引映射
散列映射
考点4数据结构的图形表示
根据数据元素之间关系的不同,通常有4种结构:
集合、线性结构、树形结构和图状结构。
考点5线性表
1、线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
2、线性表中的元素之间具有一对一的关系,除了第一个元素外,其他任何一个元素有且只有一个直接前驱;除了最后一个元素外,其他任何一个元素有且只有一个直接后驱。
线性表中的元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。
线性表的长度是可以变的,当向线性表中插入一个元素时,线性表的长度加1;当删除线性表中的一个元素时,线性表的长度减1。
考点6线性表的顺序存储结构
1、线性表是一种存储结构,它的存储方式:
顺序和链式,其中顺序存储是线性表一种常用的存储方式。
2、线性表的顺序存储结构具有两个基本特点:
(1)线性表中所有元素所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
*:
由此可以看出,在线性表的顺序存储结构中,其前后件两个元素在存储空间中是紧邻的,且前件元素一定存储在后件元素的前面,可以通过计算机直接确定第i个结点的存储地址。
考点7线性表的插入和删除操作
插入和删除操作是线性表的常用操作。
顺序表的插入运算:
在一般情况下,要在第i(1≤i≤n)个元素之前插入一个新元素时,首先要从最后一个(即第n个)元素开始,直到第i个元素之间共n-i+1个元素依次向后移动一个位置,移动结束后,第i个位置就被空出,然后将新元素插入到第i项。
插入结束后,线性表的长度就增加了1。
顺序表的删除运算:
在一般情况下,要删除第i(1≤i≤n)个元素时,则要从第i+1个元素开始,直到第n个元素之间共n-i个元素依次向前移动一个位置。
删除结束后,线性表的长度就减小了1。
考点8什么是栈
1、栈是限定仅在一端进行插入和删除操作的线性表。
允许插入和删除的一端叫栈顶,另一端叫做栈底。
不含元素的栈叫做空栈。
2、栈顶元素总是最后被插入的元素,栈底元素总是最先被插入的元素。
即栈的修改只能在栈顶进行,按照“先进后出”或“后进先出”的原则组织数据的。
栈具有记忆作用。
3、栈的基本运算:
1)插入元素称为入栈运算;2)删除元素称为退栈运算;3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
4、栈的存储方式和线性表类似,也有两种,即顺序栈和链式栈。
考点9栈的顺序存储结构
考点10栈的插入和删除运算
栈的插入和删除运算只能在栈顶进行。
考点11什么是队列
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
尾指针(Rear)指向队尾元素,头指针(front)指向排头元素的前一个位置(队头)。
队列是“先进先出”或“后进后出”的线性表。
考点12队列的顺序存储结构
考点13队列的插入和删除运算
在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从头指针front指向的后一个位置直到队尾指针rear指向的位置之间,所有的元素均为队列中的元素。
*:
循环队列中元素的个数=rear-front。
考点14线性单链表
在单链表中,每一个结点只有一个指针域,由这个指针只能找到其后件结点,而不能找到其前件结点。
考点15循环链表
循环链表是另一种形式的链式存储结构。
表中最后一个结点的指针域指向头结点,整个链表形成一个环。
这种循环链表的好处是从任意结点开始都可以找到其他结点。
考点16双向链表
在某些应用中,对于线性链表中的每个结点设置两个指针,一个称为左指针,指向其前件结点;另一个称为右指针,指向其后件结点,这种链表称为双向链表,如下图所示:
考点17链表的基本操作
链表的基本操作为插入和删除。
(1)在线性链表中包含指定元素的结点之前插入一个新元素。
*:
在线性链表中插入元素时,不需要移动数据元素,只需要修改相关结点指针即可,也不会出现“上溢”现象。
(2)在线性链表中删除包含指定元素的结点。
*:
在线性链表中删除元素时,也不需要移动数据元素,只需要修改相关结点指针即可。
考点18树的定义
树是一种简单的非线性结构。
在树这种数据结构中,所有数据元素之间的关系具有明显的层次特性。
树形结构中的基本元素:
树的结点:
包含一个数据元素及若干指向其子树的分支。
度:
结点拥有的子树数称为结点的度。
叶子:
度为0的结点称为叶子或终端结点。
树的度:
是树内各结点的度的最大值。
双亲和孩子:
结点的子树的根称为该结点的孩子,相应的,该结点称为孩子的双亲。
兄弟:
同一双亲的孩子之间互称兄弟。
结点的层次:
结点的层次从根开始定义,根为第一层,根的孩子为第二层。
深度:
树的结点的最大层次称为树的深度。
有序树和无序树:
如果将树的各子树看成从左到右是有次序的,则称该树为有序树,否则称为无序树。
考点19二叉树的定义
定义:
二叉树是一种很有用的非线性结构,它具有以下两个特点:
1)非空二叉树只有一个根结点;2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
*:
根据二叉树的概念可知,二叉树的度可以为0(叶结点)、1(只有一棵子树)或2(有2棵子树)。
性质:
性质1在二叉树的第k层上,最多有个结点。
性质2深度为m的二叉树最多有个个结点(m>=1)。
性质3对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1
性质4、具有n个结点的完全二叉树的深度为k+1,其中k是
的整数部分。
性质5、如果对一棵有n个结点的完全二叉树的结点按层序编号,则对人一结点i(1<=i<=n)来说:
如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是结点k,其中k是i/2的整数部分。
如果2i>n,则结点i无左孩子;否则其左孩子是结点2i。
如果2i+1>n,则结点i无右孩子;否则其右孩子是结点2i+1。
满二叉树与完全二叉树:
满二叉树:
除最后一层外,每一层上的所有结点都有两个子结点。
完全二叉树:
除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
*:
根据完全二叉树的定义可得出:
度为1的结点的个数为0或1。
下图a表示的是满二叉树,下图b表示的是完全二叉树:
考点20二叉树的顺序存储结构
考点21二叉树的链式存储结构
考点22二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中的所有结点。
二叉树的遍历可以分为以下三种:
(1)前序遍历(DLR):
若二叉树为空,则结束返回。
否则:
首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
(2)中序遍历(LDR):
若二叉树为空,则结束返回。
否则:
首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
(3)后序遍历(LRD):
若二叉树为空,则结束返回。
否则:
首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。
考点23顺序查找
基本思想:
从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。
否则就是表中没有要找的元素,查找不成功。
在平均情况下,利用顺序查找法在线性表中查找一个元素,大约要与线性表中一半的元素进行比较,最坏情况下需要比较n次。
顺序查找一个具有n个元素的线性表,其平均复杂度为O(n)。
下列两种情况下只能采用顺序查找:
1)如果线性表是无序表(即表中的元素是无序的),则不管是顺序存储结构还是链式存储结构,都只能用顺序查找。
2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。
考点24二分查找
思想:
先确定待查找记录所在的范围,然后逐步缩小范围,直到找到或确认找不到该记录为止。
前提:
必须在具有顺序存储结构的有序表中进行。
查找过程:
1)若中间项(中间项mid=(n-1)/2,mid的值四舍五入取整)的值等于x,则说明已查到;
2)若x小于中间项的值,则在线性表的前半部分查找;
3)若x大于中间项的值,则在线性表的后半部分查找。
特点:
比顺序查找方法效率高。
最坏的情况下,需要比较log2n次。
*:
二分法查找只适用于顺序存储的线性表,且表中元素必须按关键字有序(升序)排列。
对于无序线性表和线性表的链式存储结构只能用顺序查找。
在长度为n的有序线性表中进行二分法查找,其时间复杂度为O(log2n)。
考点25排序概述
排序是指将一个无序序列整理成按值非递减顺序排列的有序序列,即是将无序的记录序列调整为有序记录序列的一种操作。
考点26插入类排序
定义:
插入类排序是指将无序子序列中的一个或几个记录插入到有序序列中,从而增加记录的有序子序列的长度。
方法:
直接插入排序
折半插入排序
希尔排序
考点27交换类排序
定义:
通过依次交换无序序列中记录的位置,使其满足有序性要求,以此方法增加记录有序子序列的长度。
方法:
冒泡排序
快速排序
考点28选择类排序
定义:
从记录的无序子序列中选择关键字最小或最大的记录,并将它加入到有序子序列中,以此方法增加记录有序子序列的长度。
方法:
简单选择排序
堆排序
总结:
各种排序法比较:
第二章程序设计基础
考点1程序设计的方法
程序是指令的有序集合,它是为了解决某一问题而设计的一系列指令。
程序设计是使用计算机系统的指令或语句,组成求解不同问题、实现不同算法所需的完整序列的一个工作过程。
重点考查结构化程序设计和面向对象程序设计。
考点2程序设计的风格
程序设计的风格主要强调:
“清晰第一,效率第二”。
主要应注重和考虑下述一些因素:
1、源程序文档化。
(1)标识符的命名。
标识符即符号名,符号名能反映它所代表的实际东西,应有一定的实际含义。
(2)程序中加注释。
分为序言性注释和功能性注释。
序言性注释:
位于程序开头部分,包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。
功能性注释:
嵌在源程序体之中,用于描述其后的语句或程序的主要功能。
(3)程序的编辑风格。
利用空格、空行、缩进等技巧使程序层次清晰。
2、数据说明
(1)数据说明的次序规范化;
(2)说明语句中变量安排有序化;(3)使用注释来说明复杂数据的结构。
3、语句的结构。
可以根据以下原则构造语句。
(1)为了便于阅读和理解,不要一行有多个语句。
(2)程序编写应优先考虑清晰性,不要刻意追求技巧性,使得程序复杂。
(3)不同层次的语句采用缩进形式,使程序的逻辑结构和功能特征更加清晰。
(4)要避免复杂的判定条件,避免多重的循环嵌套。
(5)表达式中使用括号以提高运算次序的清晰度。
(6)除非对效率有特殊要求,否则先考虑程序的清晰性,不要追求高效率而丧失程序的清晰度。
(7)尽量使用库函数;(8)程序编写要简单,要直截了当地表达出程序员的用意。
(9)首先要保证程序正确,然后才要求提高速度。
(10)避免使用临时变量而使程序可读性下降。
4、输入和输出
(1)对所有输入的数据都要进行有效性检查,要能够识别出错误的输入,对错误的输入做出异常处理,使得每个输入数据具有有效性。
(2)检查输入数据项的各种重要组合的合理性,必要时报告输入状态信息。
(3)在输入时,输入的步骤和方式应该尽量简单。
(4)输入数据时,应允许使用自由格式输入。
(5)允许使用默认值。
(6)输入一批数据时,最好使用输入结束标志,而不需要用户指定输入数据数目。
(7)在交互式输入时,要给用户提示信息,如可使用选择项的种类和取值范围;在输入结束时,给出状态信息;(8)当程序设计语言对输入,输出格式有严格要求时,应保持输入格式与输入语句要求的一致性。
(9)给所有的输出加注释,并设计输出报表格式。
考点3结构化程序设计的提出
考点4结构化程序设计的基本特征
(1)程序由几种基本的结构组成
(2)整个程序采用模块化结构(3)有限制地使用转移语句(4)采用结构化程序设计语言书写程序,并采用一定的书写格式使程序结构清晰,易于阅读(5)在程序设计时采用“自顶向上、逐步细化”的实施方法。
考点5结构化程序设计的3种基本结构
结构化程序的基本结构:
顺序结构,选择结构,循环结构。
(1)顺序结构。
一种简单的程序设计,即按照程序语句行的自然顺序,一条语句一条语句地执行程序,它是最基本、最常用的结构。
(2)选择结构。
又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列。
(3)循环结构,可根据给定的条件,判断是否需要重复执行某一相同的或类似的程序段。
通过3种基本控制结构可以看到,结构化程序中的基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。
考点6结构化程序设计方法
结构化程序设计的总体思想是采用模块化结构,自上而下,逐步求精。
1、逐步求精法
2、模块化程序设计方法
考点7结构化程序设计方法的原则
结构化程序设计方法的主要原则可以概括为:
自顶向下,逐步求精,模块化,限制使用goto语句。
(1)自顶向下。
程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。
不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
(2)逐步求精。
对复杂问题,应设计一些子目标作过渡,逐步细化。
(3)模块化。
一个复杂问题,肯定是由若干稍简单的问题构成。
模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。
(4)限制使用goto语句。
考点8面向对象程序设计方法的提出
考点9面向对象程序设计方法的基本概念
1、类和对象
在面向对象程序设计中,对象是系统中的基本运行实体,是有特殊属性(数据)和行为方式的实体。
即对象由两个元素构成:
一组包含数据的属性
允许对属性中包含的数据进行操作的方法。
类实质上定义的是一种对象类型,它是对具有相似行为对象的一种抽象,描述了属于该类型的所有对象的性质。
(类是指具有共同属性、共同方法的对象的集合。
所以类是对象的抽象,对象是对应类的一个实例。
)
2、封装性
类的封装性是指类的内部信息对用户是隐蔽的。
*:
信息隐蔽是通过对象的封装性来实现的。
3、继承性
继承性指的是一个新类可以从现有的类中派生出来,新类具有父类中所有的特性,直接继承父类的方法和属性,新类就称为子类。
*:
类的继承性是类之间共享属性和操作的机制,它提高了软件的可重用性。
4、多态性
多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。
5、消息
是一个实例与另一个实例之间传递的信息。
消息的组成包括:
(1)接收消息的对象的名称;
(2)消息标识符,也称消息名;(3)零个或多个参数。
考点10面向对象程序设计的基本思想和方法
第三章软件工程基础
考点1软件与软件工程概述
1、软件的定义
软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。
软件包括系统软件和应用软件。
系统软件是为计算机管理自身资源,提高计算机使用效率而编写的软件。
系统软件包括操作系统(如windows、UNIX、Linux、Macintosh等)、各种语言编译程序、数据库管理系统、文件编辑系统、系统检查与诊断软件等。
应用软件是专门为了某种使用目的而编写的程序系统。
常见的有文字处理软件(如WPS和Word)、专用的财务软件、人事软件、计算机辅助设计软件(如AutoCAD)和绘画软件(如3DS)等。
软件的特点:
软件是一种逻辑实体。
软件的生产与硬件不同,它没有明显的制作过程。
软件在运行、使用期间不存在磨损、老化的问题。
软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件存在移植的问题
软件复杂性高,成本昂贵。
软件开发涉及诸多的社会因素。
2、软件工程的定义
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程的目的就是要建造一个优良的软件系统,它所包含的内容概括为以下两点:
(1)软件开发技术主要有软件开发方法学、软件工具、软件工程环境。
(2)软件工程管理,主要有软件管理、软件工程经济学。
软件工程的主要思想是将工程化原则运用到软件开发过程,它包括3个要素:
方法、工具和过程。
方法是完成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
考点2软件生命周期
软件生命周期:
是指从软件定义、开发和使用、维护到报废为止的整个过程,一般包括问题定义、可行性分析、需求分析、总体设计、详细设计、编码、测试和维护。
软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。
(1)软件定义阶段:
包括制定计划和需求分析。
制定计划:
确定总目标;可行性研究;探讨解决方案;制定开发计划。
需求分析:
对待开发软件提出的需求进行分析并给出详细的定义。
(2)软件开发阶段:
软件设计:
分为概要设计和详细设计两个部分。
软件实现:
把软件设计转换成计算机可以接受的程序代码。
软件测试:
在设计测试用例的基础上检验软件的各个组成部分。
(3)软件运行维护阶段:
软件投入运行,并在使用中不断地维护,进行必要的扩充和删改。
*:
软件生命周期中所花费最多的阶段是软件运行维护阶段。
考点3软件工具与软件开发环境
1、软件工具:
是一种软件,是为提高软件生产率和改进软件的质量,辅助和支持其他软件开发、维护、模拟、移植或管理而研制的程序系统。
2、软件开发环境:
是一组相关软件工具的集合,将它们组织在一起,为特定的领域所使用,以支持整个软件生命周期的计算机辅助开发程序系统。
考点4结构化分析方法概述
结构化分析方法是结构化程序设计理论在软件需求分析阶段的应用。
结构化分析方法的实质:
着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的常用工具:
(1)数据流图(DFD);
(2)数据字典(DD);(3)判定树;(4)判定表。
考点5数据流图
数据流图以图形的方式描绘数据在系统中流动和处理的过程,它反映了系统必须完成的逻辑功能,是结构化分析方法中用于表示系统逻辑模型的一种工具。
数据流图的4种基本符号分别是数据的源点或终点、数据流、数据存储和加工。
数据流:
数据流是一组确定的数据在系统内传播的路径。
数据流反应了系统中流动的数据,表现出动态数据的特征。
加工:
加工又称为数据处理,对数据流进行某些操作或变换,它把输入的数据流变成输出的数据流。
数据存储:
又称文件,是存储数据的工具,它是数据流在加工过程中产生的临时文件或加工过程中需要查找的信息,它可以是数据库文件或任何形式的数据组织。
数据存储反映了系统中静止的数据,表现出静态数据的特征。
数据源点或终点:
是系统外部环境中的实体,统称外部实体,表示系统中的数据的来龙去脉。
画数据流图的基本步骤:
自外向内,自顶向下,逐层细化,完善求精。
考点6数据字典
数据字典是关于数据信息的集合,也是对数据流图中包含的所有元素定义的集合,是数据流图的补充工具。
数据流图和数据字典共同构成系统的逻辑模型,是需求规格说明书的主要组成部分。
数据字典可分为4类条目,分别是数据流、数据项、数据存储和数据加工(处理过程)
*:
数据字典的作用是对数据流图中出现的被命名的图形元素的确切解释。
*:
数据字典是结构化分析方法的核心。
考点7软件需求规格说明书
作用:
是作为用户和软件开发人员之间的合同
是作为开发人员进行设计和编程的根据
作为软件开发完成后验收的依据。
特点:
正确性、无歧义性、完整性、可验收性、一致性、可理解性和可追踪性。
考点8概要设计
概要设计也称为总体设计,通常有两个部分组成:
系统设计、结构设计。
1、概要设计中有关的基本原理与概念:
(1)模块:
在程序中是数据说明、可执行语句等程序对象的集合。
(2)模块化:
是指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。
(3)模块独立性:
每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
耦合性:
指对软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
内聚性:
指对模块功能强度的度量。
若一个模块内元素联系越紧密,则它的内聚性就越高。
模块划分的原则:
耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,应尽量做到高内聚低耦合,以提高模块独立性,为设计高质量的软件结构奠定基础。
2、概要设计的图形工具:
(1)层次图
(2)HIPO图(3)结构图
3、概要设计方法:
采用结构化设计方法。
考点9详细设计
1、详细设计的根本任务是确定每个模块的内部特征,即确定每个模块内部的执行过程。
2、详细设计的常用工具:
(1)程序流程图:
结构化流程图的优点:
结构清晰,易于理解,易于修改。
缺点:
只能描述执行过程而不能描述有关的数据。
(2)盒图(特点