2017全国计算机等级考试二级C语言知识点超全整(打印版)_第1页
2017全国计算机等级考试二级C语言知识点超全整(打印版)_第2页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、全国计算机等级考试高频考点秘籍 选择题真考考点二级C语言程序设计(内含:公共基础知识及计算机基础考点)目录第一部分公共基础知识第1章算法与数据结构.1考点1算法.1.考点2数据结构.1考点3线性表及其顺序存储结构.1考点4栈和队列.1考点5线性链表 .2考点6树与二叉树.2考点7查找技术.3考点8排序技术.3第2章程序设计基础.4考点1程序设计方法与风格.4考点2结构化程序设计 .5考点3面向对象的程序设计 .5第3章 软件工程基础.5考点1软件工程基本概念 .5考点2软件分析方法.6考点3结构化设计方法 .7考点4软件测试.8考点5程序的调试.9第4章数据库设计基础.9考点1数据库系统的基本

2、概念 .9考点2数据库系统的基本概念 .10考点3关系代数.12考点4数据库设计与管理 .12第二部分二级 C 语言第1章程序设计基本概念.14考点1程序设计.14考点2C程序的结构和格式.14考点3常量和变量 .14考点4算术表达式 .15考点5赋值表达式.16考点6自加、自减和逗号运算 .16第2章顺序结构.17考点1字符型常量与变量.17考点2putchar与getchar函数.17考点3printf函数.17考点4sca nf函数.18考点5位运算的含义和应用 .18第3章选择结构.19考点1关系运算符和关系表达式 .19考点2逻辑运算符和逻辑表达式 .19考点3 if语句及其构成的选

3、择结构 .19考点4switch语句与break语句.20第4章循环结构.20考点1while循环结构 .20考点2do-while循环结构.21考点3for循环结构 .21考点4嵌套循环语句 .21第5章函数.21考点1库函数.21考点2函数的调用 .22考点3参数传递 .22考点4函数的递归调用 .23考点5局部、全局变量和存储分类 .23第6章地址与指针.23考点1变量的地址和指针 .23考点2指针变量的操作 .24考点3函数之间地址的传递 .24第7章数组.24考点1一维数组的定义及元素的引用.24考点2函数对一维数组及元素的引用.25考点3二维数组的定义25考点4二维数组和指针 .2

4、5考点5二维数组名和指针数组作为实参26第8章字符串26考点1用一维字符数组存放字符串 .26考点2使指针指向字符串 .26考点3字符串的输入和输出 .26考点4字符串数组.27考点5用于字符串处理的函数 .27第9章编译预处理和动态存储分配 .27考点1编译预处理.27考点2宏替换.27考点3文件包含处理 .28考点4动态存储分配 .28第10章结构体、共用体和用户定义类型28考点1结构体.28考点2共用体.29考点3用户定义类型 .29第11章文件.29考点1文件指针 .29考点2文件的读写 .30第一部分公共基础知识第1章算法与数据结构考点1算法1.什么是算法算法是指对解题方案的准确而完

5、整的描述。 计算机程序本质上就是一个算法,它告诉计算 机确切的步骤来执行一个指定的任务。(1)算法的基本特征一般来说,算法应具有:可行性、确定性、 有穷性、拥有足够的情报这几个特征。(2)算法的组成要素通常,一个算法由两部分组成:一是对数据 对象的运算和操作,二是算法的控制结构。2.算法的复杂度算法的复杂度是算法规模的度量,一个算法 的复杂度高低体现在运行该算法所需要的计算机 资源的多少,所需的资源越多,就说明该算法的 复杂度越高;反之,所需的资源越少,则该算法 的复杂度越低。算法复杂度包括算法的时间复杂 度和算法的空间复杂度。考点2数据结构1.数据结构的概念所谓数据结构是指由某一数据对象及该

6、对象 中所有数据成员之间的关系组成的集合。成员之 间的关系有很多种,最常见的是前后件关系。2.数据的逻辑结构(1)逻辑结构的定义数据的逻辑结构,是指反映数据之间逻辑 关系的数据结构。对于电脑上的数据而言,逻 辑结构就是能够用眼睛看到的数据形式,包括 在屏幕上看到的文本、图片、视频等。(2)逻辑结构的分类根据数据结构中各元素之间前后关系的复 杂程度,将数据的逻辑结构分成线性结构和非 线性结构。一个非空的线性结构如果满足以下 两个条件:有且只有一个根结点;每一个 结点最多有一个前件,也最多有一个后件。3.数据的存储结构数据的存储结构也称为数据的物理结构, 是指数据在计算机中存放的方式,包括数据元

7、素的存储和关系的存储。通常,一种数据的逻 辑结构根据需要可以表示成多种存储结构,常 用的存储结构有顺序、链式存储结构。考点3线性表及其顺序存储结构1.线性表的基本概念线性表是由n个数据元素组成的有限序列, 是最简单、最常用的数据结构。其中的数据元 素有着广泛的含义,可以是一个单独的数字或 字母,可以是矩阵中的一行或一列向量,也可 以是二维表中的一条记录。线性表是一种线性 结构。数据元素在线性表中的位置,只取决于 它们自己的序号,即数据元素之间的相对位置 是线性的。2.线性表的顺序存储结构一种数据的逻辑结构根据需要可以表示成多 种存储结构。线性表的存储结构常用的是顺序存 储,也称为顺序分配。线性

8、表的顺序存储结构具 有以下两个基本特点:线性表中所有元素所占 的存储空间是连续的;线性表中各数据元素在 存储空间中是按逻辑顺序依次存放的。3.顺序表的插入所谓“顺序表”指的是使用顺序存储结构的 线性表。在顺序表中插入一个新的数据元素,就 像是在排队买票的时候进来了一个插队的人。4.顺序表的删除在顺序表中删除一个数据元素,就像是在排 队买票的时候其中的一个人离开了。在平均情况 下,要在线性表中删除一个元素,需要移动线性 表中一半的数据元素。考点4栈和队列1.栈及其基本运算(1)什么是栈栈是一种特殊的线性表。在这种特殊的线 性表中,其插入和删除运算都只能在线性表的 一端进行。一端是封闭的,不允许插

9、入和删除 数据元素;另一端是敞开的,允许插入和删除 数据元素。在栈中,允许插入和删除数据元素的一端 称为栈顶,而不允许插入和删除数据元素的一 端称为栈底。栈顶元素总会是被最后插入的元 素,从而也是最先被删除的元素;栈底元素总 是最先被插入的元素,从而也是最后才能被删 除的元素。即栈是按照“先进后出”或“后进 先出”的原则组织数据的。栈具有记忆的功能, 支持子程序的调用。通常用指针top来指示栈顶位 置,用指针bottom来指示栈底的位置。往栈中插 入一个元素称为入栈运算,从栈中删除一 个元素称为退栈运算。通过栈顶指针top来反反映 栈中元素的动态变化情况。(2)栈的基本运算栈的基本运算有3种:

10、入栈、退栈与读栈顶 元素。入栈运算。入栈运算是指在栈顶位置 插入一个新元素。这个运算有两个基本操作: 首先将栈顶指针进一(即top加1),然后将新 元素插入到栈顶指针指向的位置。退栈运算。 退栈运算是指取出栈顶元素并赋给指定的变量。 这个运算有两个基本操作:首先将栈顶元素赋 值给一个指定的变量,然后将栈顶指针退一 (即top减1)。读栈顶元素。读栈顶元素是指 将栈顶元素赋给一个指定的变量,但是不删除 栈顶元素。因此,在这个运算中,栈顶指针不 会改变。当栈顶指针为0时,说明栈空,读不到 栈顶元素。2.队列及其基本运算(1) 什么是队列队列是指允许在表的一端进行插入、而在另 一端进行删除的线性表。

11、允许插入的一端称为队 尾,通常用一个队尾指针(rear)指向队尾元素, 队尾指针总是指向最后被插入的元素;允许删 除的一端称为排头(也称为队头),通常也用一 个排头指针(front)指向排头元素的前一个位 置。(2) 循环队列及其运算队列的顺序存储结构一般采用循环队列 的形式。所谓的循环队列,就是将队列的存储 空间的最后一个位置绕到第一个位置,形成逻 辑上的环状空间,供队列循环使用。1入队运算。 入队运算是指在循环队列的 队尾加入一个新元素。 这个运算有两个基本操 作: 首先将队尾指针进一(即rear=rera+1),并 当rear=m+1时置rear=1然后将新元素插入到队 尾指针指向的位置

12、。退队运算。退队运算是指 在循环队列的排头位置退出一个元素并赋值给指 定的变量。这个运算有两个基本操作:首先将排 头指针进一(即front=front+1),并当front=m+1时置front=1;然后将排头指针指向的元 素赋给指定的变量。 考点5线性链表1.线性链表(1)线性链表线性表的链式存储结构称为线性链表。在 线性链表中,存储空间上的每一个存储结点都 要分成两部分:一部分用于存储数据元素的 值,称为数据域;另一部分用于存储该数据元 素的存储序号(存储结点的地址,即指向后件 结点),称为指针域。(2) 线性链表的查找在非空的线性链表中查找指定元素的操 作:从头指针指向的结点开始往后沿着

13、指针进行 扫描,如果找到要查找的内容,则查找成功;如果 没有对应的要查找的元素,则查找失败。为了弥 补线性单链表的这个缺点,对线性链表中的每个 结点设置两个指针,一个称为左指针(Llink),用以指向其前件结点;另一个称为 右指针(Rlink),用来指向其后件结点。这样 的线性表称为双向链表。(3) 线性链表的插入在向线性链表中插入一个新元素之前,我 们先要给该元素分配一个新结点,其中包括值 域和指针域以便用于存储该元素的值。然后找 到插入位置,将插入位置前件的指针指向新结点, 将新接点的指针指向插入位置后件的结点。(4) 线性链表的删除要从线性表中删除一个元素,首先将要删除 元素的前后件两个

14、指针断开,然后把要删除结点 的前件的指针,指向删除结点后的数据元素。2.循环链表循环链表与单链表唯一的不同,就是最后 一个结点的指针域中的值不同。单链表的最后 一个结点的指针域存放的是一个空指针,而循 环链表的最后一个结点的指针域存放的是指向 第一个结点的指针。考点6树与二叉树1.树的基本概念树是一种比较简单的非线型结构。在树中所 有的数据元素之间具有明显的层次关系。之所以 将这种数据结构命名为“树”,是因为其结构 看上去像一棵倒长着的树。在树的图形表示中, 上端的结点是前件,下端的结点是后件。2.二叉树及基本性质(1) 二叉树二叉树是一种特殊的树,是一种很有用的非 线型结构。所有树结构上的术

15、语都可以用在二叉 树上。二叉树具有以下两个特征:非空二叉树只 有一个根结点; 每个结点最多有两棵子树, 且分别称为该结点的左子树和右子树。在二叉树 中,每个结点的度最大为2,所有的左子树和右 子树也均是二叉树。同时,在二叉树中所有的结 点可以没有左子树,也可以没有右子树。即没有 左子树又没有右子树的结点是叶子结点。(2)满二叉树所谓满二叉树是指:除最后一层外,每一层 上的所有结点都有两个子结点。这就是说,在满 二叉树中,每一层上的结点数都达到最大值,即 满二叉树的第k层上有2个结点,且深度为m的满 二叉树有2-1个结点。(3)完全二叉树所谓的完全二叉树是指:除最后一层外, 每一层上的结点数均达

16、到最大值,最后一层上 只缺少右边的若干个结点。完全二叉树就是去掉最后一层若干个右 边结点的满二叉树。(4)二叉树的基本性质1二叉树的基本性质。二叉树具有以下几 个基本性质:性质1:在二叉树的第K层上最多 有2(k1)个结点。性质2:深度为m的二叉 树最多有2-1个结点。性质3:在任意一棵二叉树 中,叶子结点(即度为0的结点),总比度为2的 结点多一个。性质4:具有n个结点的二叉树,其 深度至少为logn+1。2完全二叉树的两项特性。完全二叉树还 具有以下两项特性:性质5:具有n个结点的 完全二叉树,其深度为logn+1。性质6:设完 全二叉树共有n个结点。如果从根结点开始,按层 序(每一层从左

17、到右)用自然数“1,2”,n”给结点进行编号。3.二叉树的遍历二叉树的遍历是指按照一定的顺序访问 二叉树中的结点,每个结点只被访问一次。为 了保证所有结点被不重不漏地访问,必须按照 一定的顺序进行。(1)前序遍历(DLR)首先访问根结点,然后遍历左子树,最后遍 历右子树;在遍历左、右子树时,也按上述的顺序 执行。可见前序遍历二叉树是一个递归的过程。对于 二叉树的前序遍历,具有如下的规则:对于空的 二叉树,不进行操作返回空值。对于非空的二叉 树的遍历按下列顺序执行:访问根结点; 前序遍历左子树;前序遍历右子树。(2)中序遍历(LDR)首先遍历左子树,然后访问根结点,最后遍 历右子树;在遍历左、右

18、子树时,也按上述的顺 序执行。可见中序遍历二叉树也是一个递归的过 程。对于二叉树的中序遍历,具有的规则:对 于空的二叉树,不进行操作返回空值。对于非 空的二叉树的遍历按下列顺序执行:中序遍历左 子树;访问根结点;中序遍历右子树。(3)后序遍历(LRD)首先遍历左子树,然后遍历右子树,最后 访问根结点;在遍历左、右子树时,也按上述 的顺序执行。可见后序遍历二叉树同样也是一 个递归的过程。对于二叉树的后序遍历,具有 的规则:对于空的二叉树,不进行操作返回 空值。对于非空的二叉树的遍历按下列顺序 执行:后序遍历左子树;后序遍历右子树;访 问根结点。考点7查找技术查找就是从给定的一个数据结构中,找出指

19、 定的数据元素。本节中我们只学习对线性表的查找, 常用的查找方法有顺序查找和二分法查找。1.顺序查找顺序查找的过程是:从线性表的第一个元素 开始,依次将线性表中的数据与要查找的数据进 行比较,如果找到了相等的数据,则查找成功, 停止向下查找;如果比较完了线性表中的所有数 据元素,没有找到相等的数据,则查找失败。2.二分法查找二分法查找又称为折半查找,只能应用于 顺序存储的有序表。有序表是指线性表中的元 素已经按值非递减(从整体上看是升序,但相 邻的元素的值可以相同)排列。考点8排序技术排序就是将一组无序的数据按照一定的顺 序排列起来。本节中所指的顺序是非递减顺序(整体上呈升序,但相邻的数据可以

20、相等),基 本排序算法主要有交换类排序、插入类排序和 选择类排序3大类。1.交换类排序交换排序就是借助数据元素之间的互相交 换进行排序的方法。常用的交换排序方法有冒 泡排序和快速排序。(1)冒泡排序冒泡排序的过程简单,它的基本思想是通 过对相邻元素进行比较,并根据比较的结果交 换位置,从而逐步由任意序列变为有序序列。过程是:先从头往后扫描、然后从后往头 扫描、再重复上述过程(2)快速排序快速排序就是一种可以通过一次交换而 消除多个逆序的排序方法,因此相对冒泡排序 法而言,速度要快。2.插入类排序插入排序,就是将无序序列中的各个元素依 次插入到已经排好序的线性表中。常用的插入排 序的方法有简单插

21、入排序和希尔排序。(1) 简单插入排序简单插入排序的方法是:在初始序列中, 将只包含第1个元素的子序列看成是一个有序 序列,然后从第2个元素起,依次将每个元素插 入到前1个有序子序列中。(2) 希尔排序希尔排序的基本思想是:将整个无序序列 分割成若干个子序列,对每个子序列分别进行 简单插入排序,最后再对全体元素进行一次简 单插入排序。与简单插入排序的子序列构成方 式不同,希尔排序是将原序列中相隔某个增量h的元素构成一个子序列。在排序过程中逐步 减少这个增量,最后当h减到1时,进行一次插 入排序,排序就完成了。增量序列一般取h=n/2(k=1,2,log n),其中n为待排序序列 的 长度。希尔

22、排序的效率与所选取的增量序列有 关。通过希尔排序法对长度为n的线性表进行 排序,如果选取了上述增量序列,最坏情况下, 需要比较的次数为0(n)。3.选择类排序常用的选择排序有两种,简单选择排序和 堆排序。(1) 简单选择排序简单选择排序的基本步骤是:1在一组n个数据中选择出最小值;若 它不是这组数据中的第1个数据,则将它与这组 数据中的第1个数据互换位置;对剩下的子表 采用同样的方法,直到子表空为止。(2) 堆排序法在学习堆排序之前,我们先来看一下堆的 定义,堆的定义如下:具有n个元素的序列(h, h,h),当且仅当满足( h2l(k2i仏 A 丛心或bi 如1(i=1,2,n/2)时称之为堆

23、。第2章程序设计基础考点1程序设计方法与风格程序是一组计算机指令的集合,是程序设计的 最终成果。程序设计方法所要做的工作是,如何对实 际问题进行抽象和归纳以及对程序进行编排,才能 使程序的可读性、稳定性、可维护性、效率等更好。 目前,主要有两种程序设计方法:结构化程序设计和 面向对象程序设计。1.源程序文档化符号名的命名:符号名的命名应尽量表达 一些实际意义,以增强程序的可读性。程序注 释:良好的注释能够帮助读者理解程序。注释一 般分为序言性注释和功能性注释,以给出程序的 整体说明和程序的主要功能。序言性注释一般位 于每一个程序的开头部分,它给出程序的整体说 明;功能性注释一般嵌在原程序之中。

24、视觉组 织:为使程序的结构清晰明了,可以在程序中利用 空行、空格、缩进等技巧使程序层次清晰。2.数据说明的方法在编写程序时,一定要注意数据说明的方 法。为使程序中的数据说明易于理解和维护。3.语句的结构程序的语句应该简单易懂,在编写程序 时,应注重:每一行只写一条语句。程序编写优 先考虑清晰性。一般情况下,在编写程序时,要做 到清晰第一,效率第二。首先要保证程序的正确 性,然后再提高速度。避免使用临时变量而使程 序的可读性下降。尽可能使用库函数。避免不 必要的转移。利用信息隐蔽,保证每一个模块的 独立性。避免使用复杂的条件嵌套语句。避免使 用无条件转移语句。尽量做到模块功能单一化。 不要修补不

25、好的程序,要重新编写。4.输入和输出输入和输出的方式应尽可能方便用户的使 用。系统能否让用户接受,往往取决于输入和 输出的风格。考点2结构化程序设计1.结构化程序设计的原则结构化程序设计必须遵守模块化、自顶向 下、逐步求精、限制使用goto语句的原则。2.结构化程序设计的基本结构与特点结构化程序设计方法是一种程序设计的 先进方法。实事证明,在程序设计时,只要使 用3种程序结构就可以实现所有的结构形式,它们是顺序结构、选择结构和循环结构。3.结构化程序设计原则和方法的应用结构化程序设计的效率较高,但是在实际 设计程序时,应要注意:使用程序设计语言中 的顺序、选择、循环等有限的控制结构表示程 序的

26、控制逻辑。选用的控制结构只允许有一个 入口和一个出口。程序语句组成容易识别的语句 序列块,每块只允许有一个入口和一个出口。复 杂结构的程序设计时,仅用嵌套的基本控制结构 进行组合嵌套来实现。语言中所没有的控制结 构,应采用前后一致的方法来模拟。严格控制goto语句的使用,但不是完全不能用。 考点3面向对象的程序设计面向对象方法,现在已经发展为一种主流 的软件开发方法。它历经了多年的研究和发 展,已经日益成熟和完善,应用也越来越深入 和广泛。1.面向对象方法的特点面向对象的程序设计,是在结构化程序设 计的基础上,以更接近人们通常思维的方式来 解决问题的一种全新的软件开发技术。面向对象的程序设计以

27、对象为核心,强调 对象的“封装性”“继承性” “抽象性”和“多态 性”。其本质就是主张从客观世界固有的事物出发 来构造系统,提倡用人类在现实生活中常用的 思维方法来认识、理解和描述客观事物。2.面向对象方法的基本概念(1)对象(object)面向对象方法认为:现实世界是由一系列 的对象组成的。对象是现实世界中彼此相关并 互通信息的实体。每个对象都包含了两部分的 内容:描述对象状态的数据和描述对象行为。 对象是面向对象方法中最基本的概念。因此, 面向对象方法中的对象是由描述该对象属性的 数据以及可以对这些数据施加的所有操作封装 在一起构成的整体。对象可以做的操作表示它 的动态行为,在面向对象分析

28、和面向对象设计 中,通常把对象的操作也称为方法或服务。(2) 类和实例类是具有共同属性、共同方法的对象的集 合,是关于对象的抽象描述,反应属于该对象 类型的所有对象的性质。(3) 消息(Message)消息传递是对象间通信的手段,一个对象 通过向另一对象发送信息来请求其服务。消息 机制统一了数据流和控制流,一个消息由下述3部分组成:接收消息的对象名称、消息名、 零个或多个参数。(4) 继承(Inheritanee)类的继承:继承广义地说,是指能够直 接获得已有的属性和特征,而不必重复地定 义。继承的传递性:继承具有传递性,如果 类A继承类B,类B继承类C,则类A继承类C。因此,一个类实际上继承

29、了它上层的全部 基类特性,也就是说,属于某类的对象除了具 有该类定义的特性外,还具有该类上层全部基 类定义的特性。单继承:一个子类只有唯一的 一个父类,这种继承称为单继承。多重继承: 一个子类也可以有多个父类,它可以从多个父 类中继承特性。继承的优点:相似的对象可 以共享程序代码和数据,从而大大减少了程序 中的冗余信息,提高软件的可重用性,便于软 件修改维护。(5) 多态性(Polymorphism)多态性:对象根据所接收的消息而做出动 作,同样的消息被不同的对象接收时可导致完 全不同的行为,该现象称为多态性。第3章软件工程基础 考点1软件工程基本概念1.软件的定义与特点(1) 软件的定义一般

30、认为计算机软件是计算机系统中与硬 件相互依存的另一部分,包括程序、数据及相 关文档的完整集合。可见软件可分为两个部分: 一是机器可执行的程序和数据;二是机器不可 执行的,与软件开发、运行、维护、使用相关 的文档。(2) 软件的特点计算机软件具有如下的几个特点:软件是一 种逻辑实体,而不是物理实体,具有抽象性; 与硬件的生产不同,软件没有明显的制作过程; 软件在使用期间不存在磨损、老化问题;对硬 件和环境具有依赖性;软件复杂度高,成本昂 贵;软件开发涉及诸多的社会因素。(3)软件的分类计算机软件按功能可分为3类:应用软件、 系统软件、支撑软件(或称为工具软件)。2.软件危机和软件工程软件工程概念

31、的出现源自软件危机。(1) 软件危机“软件危机”是20世纪60年代末以后出现 的,其泛指在计算机软件的开发和维护过程中 所遇到的一系列严重问题。实际上,几乎所有 的软件都不同程度地存在这些问题。随着计算机技术的发展和应用领域的扩 大,软件已经成为计算机科学发展的“瓶颈”。(2) 软件工程为了消除软件危机,通过认真研究软件 危机的方法,认识到软件工程是使计算机软件 走向工程科学的途径,逐步形成了软件工程概 念,开辟了工程学的新兴领域一一软件工程学。 它是采用工程的概念、原理、技术和方法来开 发与维护软件,把经过时间考验而证明正确的 管理技术与当前能够得到的最好的技术方法结 合起来,经济地开发出高

32、质量的软件并有效地 维护它。3.软件工程过程与软件生命周期(1) 软件工程过程ISO 9000定义:软件工程过程是指把输入 转化为输出的一组彼此相关的资源和活动。(2) 软件生命周期软件生命周期是指软件产品从提出、实现、使 用维护到停止使用退役的整个过程。也就是说,软 件产品从考虑其概念开始,到该软件产品不能使用 为止的整个时期都属于软件生命周期。一般包括可 行性研究与需求分析、设计、实现、测试、交付使 用以及维护等活动。这些阶段可以有重复,执行时 也可以有迭代。4.软件工程的目标与原则(1)软件工程的目标 软件工程的目标是:在给定成本、进度的 前提下,开发出具有有效性、可靠性、可维护 性、可

33、重用性、可适应性、可移植性、可追踪 性和可互操作性且满足用户需求的产品。为实现软件工程的目标,软件工程的理论 和技术性研究的内容主要包括软件开发技术和 软件工程管理两个方面。(2)软件工程的原则为了达到上述的软件工程目标,在软件开 发过程中,必须遵循以下软件工程的基本原则: 抽象、确定性、模块化、信息隐蔽、局部化、 完备性、一致性、可验证性。5.软件开发工具与软件开发环境软件工程技术鼓励研制和采用各种先进的软 件开发方法、工具和环境。工具和环境的使用进一步 提高了软件的开发效率、维护效率和软件质量。(1)软件开发工具软件开发工具的发展是从单项工具的开发 逐步向集成工具发展的,软件开发工具为软件

34、 工程方法提供了自动的或半自动的软件支撑环 境。(2)软件开发环境软件开发环境或称软件工程环境是指全 面支持软件开发全过程的软件工具的集合。计 算机辅助软件工程(CASE)是当前软件开发环 境中富有特色的研究工作和发展方向。考点2软件分析方法软件开发方法是指软件开发过程所遵循的方法 和步骤,其目的在于有效地得到一些工作产品,即满 足质量要求的程序和文档。软件开发方法包括分析 方法、设计方法和程序设计方法。1.需求分析与需求分析方法软件需求是指用户对目标软件系统在功能、 行为、性能、设计约束等方面的期望。需求分 析的任务是发现需求、求精、建模和定义需求 的过程。需求分析的目标是创建所需的数据模

35、型、功能模型和控制模型。(1)需求分析的定义1997年IEEE软件工程标准词汇表对需求 分析定义如下:用户解决问题或达到目标所需的条件或 功能;系统或系统部件要满足合同、标准、 规范或其他正式规定文档所需具有的条件或功 能;一种反映或所描述的条件或功能的 文档说明。(2)需求分析阶段的工作需求分析阶段的工作主要分为4个方面: 需求获取、需求分析、编写需求规格说明书、需求评审。(3)需求分析方法常用的需求分析方法有两种:结构化分 析方法。主要包括:面向数据结构的Jackson方法(JSD),面向数据流的结构化分析方法(SA),面向数据结构的结构化数据系统开发 方法(DSSD)。面向对象的分析方法

36、(00A)。 从需求分析建立的模型的特性来分,需求分析 方法又分为静态分析方法和动态分析方法。2.结构化分析方法(1)结构化分析方法的基本概念结构化分析方法是面向数据流、自顶向下、逐步 求精、进行需求分析的方法。该方法使用简单易读符 号,根据软件内部数据传递、变换的关系,自顶向下、 逐层分解,描绘出满足要求的软件模型。(2)结构化分析的常用工具结构化分析方法利用图形等结构化的描 述方式表达需求,简明易懂,用它们形成需求说 明书中的主要部分。这种方法所用的常用工具有: 数据流图、数据字典、判定树和判定表。3.软件需求规格说明书软件需求规格说明书(SRS)是需求分析 阶段得出的最主要的文档。它通常

37、用自然语言 完整、准确、具体地描述系统的数据要求、功 能需求、性能需求、可靠性和可用性要求、出 错处理需求、接口需求、约束、逆向需求以及 将来可能提出的要求。1软件需求规格说明书的作用软件需求规格说明书具有几个作用:便于 用户、开发人员进行理解和交流;反映出用户 问题的结构,可以作为软件开发工作的基础和 依据;作为确认测试和验收的依据。2软件需求规格说明书的内容软件需求规格说明书是作为需求分析的一部 分而制定的可交付文档。3软件需求规格说明书的特点软件需求规格说明书是确保软件质量的 有力措施,衡量软件需求规格说明书质量的标 准:正确性、无歧义性、完整性、一致性、可 理解性、可验证性、可修改性和

38、可追踪性。考点3结构化设计方法1.软件设计的基本概念(1)软件设计的基础软件设计是一个把软件需求转化为软件 表示的过程,是软件工程的重要阶段。软件设 计的基本目标是用比较抽象、概括的方式确定 目标系统如何完成预定的任务,即软件设计是 确定系统的物理模型。(2) 软件设计的基本原理软件设计应遵循软件工程的基本目标和原 则,建立适用于在软件设计中应该遵守的基本 原理和软件设计中的有关概念。模块化、抽象、信息隐藏和局部化、模块 独立性。(3) 结构化设计方法结构化设计方法是目前采用最为广泛的一 种软件设计方法,其基本思想是将软件设计成 由相对独立、单一功能的模块组成的结构2.概要设计概要设计又称为总

39、体设计或初步设计。软 件概要设计的基本任务是:设计软件的系统结构。在需求分析阶段,已 经把系统分解成层次结构,而在概要设计阶段,需 要进一步分解,划分为模块以及模块的层次结构。2数据结构及数据库设计。数据设计是实现需求定 义和规格说明过程中提出的数据对象的逻辑表示。3编写概要设计文档。在概要设计阶段,需要编写 的文档有:概要设计说明书、数据库设计说明书、 集中测试计划等。4概要设计文档评审。在概要设计中,对 设计部分是否完整地实现了需求中规定的功能、 性能等要求,设计方案的可行性,关键的处理 及内外部接口定义正确性、有效性,各部分之 间的一致性等都要进行评审,以免在以后的设 计中出现大的问题而

40、返工。2.概要设计工具结构图(SC),也称程序结构图,是描述 软件结构的图形工具,是常用的软件结构设计 工具。模块用一个矩形表示,矩形内注明模块 的功能和名字;箭头或直线表示模块间的调用 关系。在结构图中还可以用带注释的箭头表示 模块调用过程中来回传递的信息。常用的结构 图有4种模块类型:传入模块、传出模块、变 换模块和协调模块。3.面向数据流的设计方法在需求分析阶段,主要是分析信息在系统 中的加工和流动情况。面向数据流的设计方法 的目标是给出设计软件结构的一个系统化的途径。(1) 数据流类型。典型的数据流类型有 两种:变换型和事务型。(2) 面向数据流设计方法的实施要点与 设计过程。4.设计

41、的准则通过大量设计实践证明,以下设计准则可以 借鉴为设计的指导和对软件结构图进行优化。提高模块独立性、模块规模适中、深度、 宽度、扇出和扇入适当、使模块的作用域在该 模块的控制域内、应减少模块的接口和界面的 复杂性、设计成单入口、单出口的模块和设计 功能可预测的模块。3.详细设计详细设计的任务就是为软件结构图中的 每一个模块确定实现算法和局部数据结构,用 某种选定的表达工具表示算法和数据结构的细节。常用的设计工具有以下几种:(1) 图形工具程序流程图:程序流程图是软件过程的 设计表示工具,表达直观、清晰,易于学习和 掌握。N-S图:NS图是用方框图来代替传 统的程序流程图的技术。基本图形有5种

42、。PAD图:PAD图即问题分析图(Problem AnalysisDiagram)。它是继程序流程图和方框 图之后,提出的又一种描述软件详细设计的图 形工具。基本图形有5种。(2) 表格工具用表格来描述处理动作及相应的各种条件或 描述输入、处理、输出的过程。(3) 语言工具用与程序设计语言很相近的伪码描述处理过 程的细节。过程设计语言(PDL)也称为结构化的 英语和伪码,它是一种混合语言,采用英语的词汇和 结构化程序设计语言的语法,类似编程语言。考点4软件测试软件测试就是在软件投入运行之前,尽可 能多地发现软件中的错误。它是对软件规格说 明、设计和编码的最后复审。通常,软件测试 的工作量往往占

43、软件开发总工作量的40%以上。1.软件测试的目的软测试的目的:测试是为了发现错误而执 行程序的过程;一个好的测试用例是指很可能 找到迄今为止尚未发现的错误的用例;一个成 功的测试是发现了至今尚未发现的错误的测试; 测试是要以查找错误为中心,而不是为了演示 软件的正确功能。2.软件测试的准则要作好软件测试,必须设计有效的测试方 案和好的测试用例。3.软件测试技术和方法软件测试的方法是多种多样的。若从是否需 要执行被测软件的角度划分,可以分为静态测试 和动态测试;若按照功能划分,可以分为白盒测 试和黑盒测试。(1) 静态测试与动态测试静态测试:静态测试包括代码检查、静 态结构分析、代码质量度量等。

44、静态测试主要 由人工进行,充分发挥人的逻辑思维优势,也 可以借助软件工具自动进行。动态测试:动 态测试是基于计算机的测试,是为了发现错误 而执行程序的过程。(2) 白盒测试与测试用例设计白盒测试的方法也称结构测试或逻辑测试。 它是根据软件的内部工作过程,检查内部成分, 以确认每种内部操作是否符合设计要求。白盒 测试允许测试人员利用程序内部的逻辑结构及 有关信息来设计和选择测试用例,对程序所有 的逻辑路径进行测试。1逻辑覆盖测试。逻辑覆盖测试泛指以程序 内部的逻辑结构为基础的测试用例设计书。从覆 盖源程序语句的详尽程度分析,大致有以下一些 不同的覆盖标准:语句覆盖、判定覆盖、条件覆 盖、判断-条

45、件覆盖。2基本路径测试。基本路径测试的思想和 步骤是,根据软件过程性描述中的控制流程确 定程序的环路复杂性度量,用此度量定义基本 路径集合,并由此导出一组测试用例对每一条 独立执行路径进行测试。(3) 黑盒测试与测试用例设计 黑盒测试也称功能测试或数据驱动测试,是对软件已经实现的功能是否满足需求进行测 试和验证。所以,黑盒测试的测试用例是根据 程序的外部功能进行设计的,在软件接口处进 行,完成功能验证。4.软件测试的实施软件测试是保证软件质量的重要手段。为 使软件测试工作系统化,我们应制定测试流 程。所谓测试流程就是软件测试这个过程规定 的程序。软件测试过程一般按4个步骤进行,即单 元测试、集

46、成测试、验收测试(确认测试)和 系统测试。考点5程序的调试1.基本概念在对程序进行了成功的测试之后将进入 程序调试(通常称Debug,即排错)。程序调试 的任务是诊断和改正程序中的错误。(1) 程序调试的基本步骤1错误定位:从错误的外部表现形式入手,研究 有关部分的程序,确定程序中出错位置,找出错误的 内在原因。修改设计和代码,以排除错误:排错 是软件开发过程中一项艰苦的工作,这也决定了调 试工作是一个具有很强技术性和技巧性的工作。 进行回归测试,防止引进新的错误:重复进行暴露这 个错误的原始测试或某些有关测试,以确认该错误是 否被排除、是否引进了新的错误。(2) 程序调试的原则调试活动由对程

47、序中错误的定性、定位和 排错两部分组成,因此调试原则也从确定错误 的性质和位置时的注意事项和修改错误的原 则两个方面考虑。2.软件测试方法调试的关键在于推断程序内部的错误位置及 原因。软件调试可以分为静态调试和动态调试。 软件测试中讨论的静态分析方法同样适用静态调 试。静态调试主要指通过人的思维来分析源程序 代码和排错,是主要的调试手段,而动态调试是辅 助静态调试的。主要的调试方法有强行排错法、回溯 法和原因排除法。第4章数据库设计基础 考点1数据库系统的基本概念1.数据、数据库、数据库管理系统(1)数据数据:描述事物的符号记录。计算机中的数据一般分成两部分,其中一 部分与程序仅有短时间的交互

48、关系,随着程序 的结束而消亡,这样的数据称为临时性数据, 一般存放在计算机内存中;而另一部分数据则 对系统起着长期持久的作用,这样的数据称为 持久性数据,一般存放在计算机的长期存储设 备(如硬盘)中。数据库系统中处理的就是这 种持久性数据。(2) 数据库数据库:数据库(DataBase DB)是指长 期存储在计算机内的、具有统一的结构形式、 可共享的数据集合。数据库中的数据按一定的 数据模型组织、描述和存储,具有较小的冗余 度、较高的数据独立性和易扩展性,并可为各 种应用程序所共享。(3) 数据库管理系统数据库管理系统:数据库管理系统(DataBase Management System DB

49、MS)是管理 数据库的机构,是一个系统软件,负责数据库中 的数据组织、数据操纵、数据维护、控制及保护 和数据服务等。数据库管理系统是数据库系统的 核心,其主要功能包括几个方面:数据模式定义、 数据存取的物理构建、数据操纵、数据的完整性、 安全性定义与检查、数据库的并发控制与故障恢 复和数据的服务。(4) 数据库管理员数据库管理员:对数据库的规划、设计、 维护、监视等进行管理的人员,称为数据库管 理员。其主要工作:数据库设计、数据库维护 和改善系统性能。(5) 数据库系统数据库系统(DBS)是指引入数据库后 的计算机系统,一般由数据库、数据库管理系 统、应用系统、数据库管理员和用户构成。(6)

50、数据库应用系统数据库应用系统(DBAS)是数据库系统再 加上应用软件及应用界面这三者所组成,具体包 括:数据库、数据库管理系统、数据库管理员、 硬件平台、软件平台、应用软件、应用界面。2.数据库系统的发展数据管理发展到今经历了:人工管理、 文件系统和数据库系统3个阶段。其中数据独立 性最高的是数据库系统,这里的数据独立性指 的是数据库和应用程序的相互独立。(1) 文件系统阶段文件系统是数据库系统发展的初级阶段, 它提供了简单的数据共享和数据管理能力,但 是它无法提供完整统一的管理和数据共享的能 力。(2) 层次与网状数据库系统阶段从20世纪60年代末起,真正的数据库系 统一一层次数据库与网状数

51、据库开始发展,它 们为统一管理与共享数据提供了大力支撑。但 是这两个系统也存在不足,主要是其脱胎与文 件系统,受文件的物理影响较大,对数据库使 用带来的诸多不便,同时,此类系统的数据模 式构造繁琐不宜于推广。(3)关系数据库系统阶段关系数据库系统结构简单、使用方便、 逻辑性强、物理性少。在数据库的储多新技术 中,下面3种是比较重要的:面向对象数据库 系统、知识库系统和关系数据库系统的扩充。3.数据库系统的基本特点数据库技术是在文件系统基础上发展产生 的,两者都以数据文件的形式组织数据,但由于 数据库系统在文件系统之上加入DBMS对数据进 行管理,从而使得数据库系统具有以下特点。(1) 数据的高

52、集成性数据库系统的数据高集成性主要表现在 如下几个方面:在数据库系统中采用统一的数据结构方 式,如在数据库中采用二维表作为统一结构方 式。在数据库系统中按照多个应用的需要组 织全局统一的数据结构(即数据模式),数据模 式不仅可以建立全局的数据结构,还可以建立 数据间的语义联系,从而构成一个内在紧密联 系的数据整体。数据库系统中的数据模式是 多个应用共同的、全局的数据结构,而每个应 用的数据则是全局结构中的一部分,称为局部 结构(即视图),这种全局与局部的结构模式构 成了数据库系统数据集成性的主要特征。(2) 数据的高共享性与低冗余性 由于数据的集成性使得数据可为多个应用所共享。数据共享的使用大

53、大减少数据冗 余,节约存储空间。减少冗余性以避免数据的 不同出现是保证系统一致性的基础。(3) 数据高独立性数据独立性是指数据与程序间的互不依 赖性,是数据库中常用的术语。其包括数据的 物理独立性和数据的逻辑独立性。(4) 数据统一管理与控制数据库系统不仅为数据提供高度集成环境, 同时它还为数据提供操作功能,这主要包含以下3个方面:数据的完整性检查、数据的安全性保 护、并发控制。4.数据库系统的内部结构系统数据库系统在其内部具有三级模式和二级 映射,三级模式分别是外模式、概念模式与内 模式。二级映射则分别是,外模式一概念模式 映射和概念模式一内模式映射。这种三级模式 与二级映射构成了数据库系统

54、内部的抽象结构 体系。(1)数据库系统的三级模式数据模式是数据库系统中数据结构的一种 表示形式,它具有不同的层次与结构方式:外模式也称子模式或用户模式。它能够 看见和使用局部数据的逻辑结构和特征的描述, 它是用户的数据视图,一个数据库可以有多个 外模式。概念模式是数据库系统中全局数据 逻辑结构的描述,是全体用户(应用)公共数 据视图。一个数据库只有一个概念模式。3内模式又称物理模式,一个数据库只有一个内 模式。它是数据物理结构和存储方式的描述,是 数据在数据库内部的表示方式。(2)数据库系统的两级映射数据库系统的三级模式是对数据的3个级 别的抽象,它把数据具体物理实现留给物理模 式,使用户能逻

55、辑地、抽象地处理数据,而不 必关心数据在计算机中的具体表示方式和存 储方式。考点2数据库系统的基本概念1.数据模型的基本概念数据模型(Data Model)研究的就是数据 的组织形式及方式。数据库是某个企业、组织 或部门所涉及的数据的综合,它不仅要反映数 据本身的内容,而且要反映数据之间的联系。数据模型通常由数据结构、数据操作和完 整性约束3部分组成。(1)数据结构数据结构是所研究的对象类型的集合。数据 结构是对系统静态特征的描述。(2)数据操作数据操作是指对数据库中各种对象的实例 允许执行的操作的集合,包括操作及有关的操 作规则。数据操作是对系统动态特征的描述。(3)数据的约束条件数据的约束

56、条件是一组完整性规则的集合。 完整性规则是给定的数据模型中数据及其 联系所具有的约束和依存规则,用以限定符合 数据模型的数据库状态以及状态的变化,以保 证数据的正确、有效、相容。2.数据模型的分类数据模型按不同的应用层次分成3种类型, 它们是概念数据模型、逻辑数据模型、物理数 据模型。(1) 概念数据模型概念数据模型简称概念模型,它是一种面 向客观世界、面向用户的模型;它与具体的数 据库管理系统无关,与具体的计算机平台无 关。概念模型是整个数据模型的基础。(2) 逻辑数据模型逻辑数据模型又称数据模型,它是一种 面向数据库系统的模型,该模型着重于在数据库 系统一级的实现。目前,数据库领域中最常用

57、的 逻辑数据模型有四种,分别为:层次模型、网状 模型、关系模型和面向对象模型。(3) 物理数据模型物理数据模型又称物理模型,它是一种面 向计算机物理表示的模型,此模型给出了数据 模型在计算机上物理结构的表示。3.E- R模型概念模型是面向现实世界,它的出发点是 有效和自然地模拟现实世界,给出数据的概念 化结构。它的表示方法很多,其中最著名是E-R模型(或实体联系模型),它于1976年由PeterCher首先提出。(1)E-R模型的基本概念实体是客观存在并可相互区别的事物。 实体可以是具体的人、事、物,也可以是抽象的 概念或联系。属性是实体所具有的某一特性。 一个实体可由若干个属性来刻画。码是能

58、够唯 一标识实体的属性集。属性的取值范围称为该 属性的域。用实体名及其属性名集合来抽象和 刻画同类实体,称为实体型。同型实体的集合 称为实体集。例如,全体学生就是一个实体集。在现实世界中,事物内部以及事物之间是普遍 联系的。在E-R模型中,这些联系反映为实体内 部的联系和实体之间的联系。(2)E-R模型的图形表示方法E-R模型可以用一种非常直观的图的形式 表示,这种图称为E-R图。E-R图提供了表示 实体集、属性和联系的方法。实体型:用矩形表示,矩形框内写明实 体名。属性:用椭圆形表示,并用无向边将 其与相应的实体连接起来。联系:用菱形表 示,菱形框内写明联系名,并用无向边将其与 有关实体连接

59、起来,在无向边旁标上联系的类 型(1:1,1:n或m:n)。4.层次模型层次模型是数据库系统中最早出现的数据 模型,层次数据库系统采用层次模型作为数据 的组织方式。5.网状模型在现实世界中事物之间的联系更多的是非 层次关系的,用层次模型表示非树形结构是很 不直接的,网状模型则可以克服这一弊病。网 状数据库系统采用网状模型作为数据 的组织方式。网状模型是一种比层次模型更具普遍性的 结构,它去掉了层次模型的两个限制,允许多 个结点没有双亲结点,允许结点有多个双亲结 点,此外它还允许两个结点之间有多种联系。6.关系模型关系模型由关系数据结构、关系操纵和关 系完整性约束3部分组成。(1) 关系的数据结

60、构关系模型的数据结构非常单一。在关系模型中, 现实世界的实体以及实体间的各种联系都用关系来表 示。关系模型米用二维表来表示,简称表。二维表 由表结构及表的元组组成。表结构由n个命名的属 性组成。每个属性有一个取值范围称为值域。表框 架对应了关系的模式,即类型的概念。(2) 关系操纵关系模型中常用的关系操纵包括:选择、 投影、连接、除、并、交、差等查询操作和增 加、删除、修改操作两大部分。其中,查询操 作是最主要的部分。数据查询。用户可查询数据库中的数据, 它包括一个关系内的查询以及多个关系间的查 询。数据删除。数据删除的基本单位是一个关 系内的元组,它的功能是将指定关系内的指定元 组删除。它也

温馨提示

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

评论

0/150

提交评论