收藏 分销(赏)

2017全国计算机等级考试二级C语言知识点超全.doc

上传人:二*** 文档编号:4518382 上传时间:2024-09-26 格式:DOC 页数:64 大小:553KB 下载积分:5 金币
下载 相关 举报
2017全国计算机等级考试二级C语言知识点超全.doc_第1页
第1页 / 共64页
本文档共64页,全文阅读请下载到手机保存,查看更方便
资源描述
.. - 全国计算机 等级考试 . . word.zl- .. - 目录 . . word.zl- .. - 第一局部公共根底知识 第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 数据库系统的根本概念 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 考点4scanf函数18 考点5 位运算的含义和应用 18 第3章选择构造 19 考点1 关系运算符和关系表达式 19 考点2 逻辑运算符和逻辑表达式 19 考点3 if语句及其构成的选择构造 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 二维数组和指针 25 考点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 . . word.zl- .. - 第一局部公共根底知识第1 章算法与数据构造 考点1 算法 1.什么是算法 算法是指对解题方案的准确而完整的描述。计算机程序本质上就是一个算法,它告诉计算机确切的步骤来执行一个指定的任务。 〔1〕算法的根本特征 一般来说,算法应具有:可行性、确定性、有穷性、拥有足够的情报这几个特征。 〔2〕算法的组成要素 通常,一个算法由两局部组成:一是对数据对象的运算和操作,二是算法的控制构造。 2.算法的复杂度 算法的复杂度是算法规模的度量,一个算法的复杂度上下表达在运行该算法所需要的计算机资源的多少,所需的资源越多,就说明该算法的复杂度越高;反之,所需的资源越少,那么该算法的复杂度越低。算法复杂度包括算法的时间复杂度和算法的空间复杂度。 考点2 数据构造 1.数据构造的概念 所谓数据构造是指由某一数据对象及该对象中所有数据成员之间的关系组成的集合。成员之间的关系有很多种,最常见的是前后件关系。 2.数据的逻辑构造 〔1〕逻辑构造的定义 数据的逻辑构造,是指反映数据之间逻辑关系的数据构造。对于电脑上的数据而言,逻辑构造就是能够用眼睛看到的数据形式,包括在屏幕上看到的文本、图片、视频等。 〔2〕逻辑构造的分类 根据数据构造中各元素之间前后关系的复杂程度,将数据的逻辑构造分成线性构造和非线性构造。一个非空的线性构造如果满足以下两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。 3.数据的存储构造 数据的存储构造也称为数据的物理构造,是指数据在计算机中存放的方式,包括数据元素的存储和关系的存储。通常,一种数据的逻辑构造根据需要可以表示成多种存储构造,常用的存储构造有顺序、链式存储构造。 考点3 线性表及其顺序存储构造 1.线性表的根本概念 线性表是由n 个数据元素组成的有限序列,是最简单、最常用的数据构造。其中的数据元素有着广泛的含义,可以是一个单独的数字或字母,可以是矩阵中的一行或一列向量,也可以是二维表中的一条记录。线性表是一种线性构造。数据元素在线性表中的位置,只取决于它们自己的序号,即数据元素之间的相对位置是线性的。 2.线性表的顺序存储构造 一种数据的逻辑构造根据需要可以表示成多种存储构造。线性表的存储构造常用的是顺序存储,也称为顺序分配。线性表的顺序存储构造具有以下两个根本特点:①线性表中所有元素所占的存储空间是连续的;②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 3.顺序表的插入 所谓“顺序表〞指的是使用顺序存储构造的线性表。在顺序表中插入一个新的数据元素,就像是在排队买票的时候进来了一个插队的人。 4.顺序表的删除 在顺序表中删除一个数据元素,就像是在排队买票的时候其中的一个人离开了。在平均情况下,要在线性表中删除一个元素,需要移动线性表中一半的数据元素。 考点4 栈和队列 1.栈及其根本运算 〔1〕什么是栈 栈是一种特殊的线性表。在这种特殊的线性表中,其插入和删除运算都只能在线性表的一端进展。一端是封闭的,不允许插入和删除数据元素;另一端是敞开的,允许插入和删除数据元素。 在栈中,允许插入和删除数据元素的一端称为栈顶,而不允许插入和删除数据元素的一端称为栈底。栈顶元素总会是被最后插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出〞或“后进先出〞的原那么组织数据的。栈具有记忆的功能,支持子程序的调用。通常用指针top 来指示栈顶位置,用指针bottom 来指示栈底的位置。往栈中插入一个元素称为入栈运算,从栈中删除一 . . word.zl- .. - 个元素称为退栈运算。通过栈顶指针top 来反反映栈中元素的动态变化情况。 〔2〕栈的根本运算 栈的根本运算有3种:入栈、退栈与读栈顶元素。①入栈运算。入栈运算是指在栈顶位置插入一个新元素。这个运算有两个根本操作:首先将栈顶指针进一〔即top加1〕,然后将新元素插入到栈顶指针指向的位置。②退栈运算。退栈运算是指取出栈顶元素并赋给指定的变量。这个运算有两个根本操作:首先将栈顶元素赋值给一个指定的变量,然后将栈顶指针退一〔即top减1〕。③读栈顶元素。读栈顶元素是指将栈顶元素赋给一个指定的变量,但是不删除栈顶元素。因此,在这个运算中,栈顶指针不会改变。当栈顶指针为0时,说明栈空,读不到栈顶元素。 2.队列及其根本运算 〔1〕什么是队列 队列是指允许在表的一端进展插入、而在另一端进展删除的线性表。允许插入的一端称为队尾,通常用一个队尾指针〔rear〕指向队尾元素,队尾指针总是指向最后被插入的元素;允许删除的一端称为排头〔也称为队头〕,通常也用一个排头指针〔front〕指向排头元素的前一个位置。 〔2〕循环队列及其运算 队列的顺序存储构造一般采用循环队列的形式。所谓的循环队列,就是将队列的存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。 ①入队运算。入队运算是指在循环队列的队尾参加一个新元素。这个运算有两个根本操作:首先将队尾指针进一〔即rear=rera+1〕,并当rear=m+1 时置rear=1;然后将新元素插入到队尾指针指向的位置。②退队运算。退队运算是指在循环队列的排头位置退出一个元素并赋值给指定的变量。这个运算有两个根本操作:首先将排头指针进一〔即front=front+1〕,并当 front=m+1 时置front=1;然后将排头指针指向的元素赋给指定的变量。 考点5 线性链表 1.线性链表 〔1〕线性链表 线性表的链式存储构造称为线性链表。在 线性链表中,存储空间上的每一个存储结点都要分成两局部:一局部用于存储数据元素的值,称为数据域;另一局部用于存储该数据元素的存储序号〔存储结点的地址,即指向后件结点〕,称为指针域。 〔2〕线性链表的查找 在非空的线性链表中查找指定元素的操作:从头指针指向的结点开场往后沿着指针进展扫描,如果找到要查找的内容,那么查找成功;如果没有对应的要查找的元素,那么查找失败。为了弥补线性单链表的这个缺点,对线性链表中的每个结点设置两个指针,一个称为左指针 〔Llink〕,用以指向其前件结点;另一个称为右指针〔Rlink〕,用来指向其后件结点。这样的线性表称为双向链表。 〔3〕线性链表的插入 在向线性链表中插入一个新元素之前,我们先要给该元素分配一个新结点,其中包括值域和指针域以便用于存储该元素的值。然后找到插入位置,将插入位置前件的指针指向新结点,将新接点的指针指向插入位置后件的结点。 〔4〕线性链表的删除 要从线性表中删除一个元素,首先将要删除元素的前后件两个指针断开,然后把要删除结点的前件的指针,指向删除结点后的数据元素。 2.循环链表 循环链表与单链表唯一的不同,就是最后一个结点的指针域中的值不同。单链表的最后一个结点的指针域存放的是一个空指针,而循环链表的最后一个结点的指针域存放的是指向第一个结点的指针。 考点6 树与二叉树 1.树的根本概念 树是一种比拟简单的非线型构造。在树中所有的数据元素之间具有明显的层次关系。之所以将这种数据构造命名为“树〞,是因为其构造看上去像一棵倒长着的树。在树的图形表示中,上端的结点是前件,下端的结点是后件。 2.二叉树及根本性质 〔1〕二叉树 二叉树是一种特殊的树,是一种很有用的非线型构造。所有树构造上的术语都可以用在二叉树上。二叉树具有以下两个特征:①非空二叉树只有一个根结点;②每个结点最多有两棵子树, . . word.zl- .. - 且分别称为该结点的左子树和右子树。在二叉树中,每个结点的度最大为2,所有的左子树和右子树也均是二叉树。同时,在二叉树中所有的结点可以没有左子树,也可以没有右子树。即没有左子树又没有右子树的结点是叶子结点。 〔2〕满二叉树 所谓满二叉树是指:除最后一层外,每一层上的所有结点都有两个子结点。这就是说,在满二叉树中,每一层上的结点数都到达最大值,即满二叉树的第k 层上有2k-1 个结点,且深度为m 的满二叉树有2m-1 个结点。 〔3〕完全二叉树 所谓的完全二叉树是指:除最后一层外,每一层上的结点数均到达最大值,最后一层上只缺少右边的假设干个结点。 完全二叉树就是去掉最后一层假设干个右边结点的满二叉树。 〔4〕二叉树的根本性质 ①二叉树的根本性质。二叉树具有以下几个根本性质:性质1:在二叉树的第K 层上最多有2k-1〔k≥1〕个结点。性质2:深度为m 的二叉树最多有2m-1 个结点。性质3:在任意一棵二叉树中,叶子结点〔即度为0 的结点〕,总比度为2 的结点多一个。性质4:具有n 个结点的二叉树,其深度至少为[log2n]+1。 ②完全二叉树的两项特性。完全二叉树还具有以下两项特性:性质5:具有n 个结点的 完全二叉树,其深度为[log2n]+1。性质6:设完全二叉树共有n 个结点。如果从根结点开场,按层序〔每一层从左到右〕用自然数“1,2,„, n〞给结点进展编号。 3.二叉树的遍历 二叉树的遍历是指按照一定的顺序访问二叉树中的结点,每个结点只被访问一次。为了保证所有结点被不重不漏地访问,必须按照一定的顺序进展。 〔1〕前序遍历〔DLR〕 首先访问根结点,然后遍历左子树,最后遍历右子树;在遍历左、右子树时,也按上述的顺序执行。可见前序遍历二叉树是一个递归的过程。对于二叉树的前序遍历,具有如下的规那么:对于空的二叉树,不进展操作返回空值。对于非空的二叉树的遍历按以下顺序执行:①访问根结点; ②前序遍历左子树;③前序遍历右子树。 〔2〕中序遍历〔LDR〕 首先遍历左子树,然后访问根结点,最后遍历右子树;在遍历左、右子树时,也按上述的顺序执行。可见中序遍历二叉树也是一个递归的过程。对于二叉树的中序遍历,具有的规那么:①对于空的二叉树,不进展操作返回空值。②对于非空的二叉树的遍历按以下顺序执行:中序遍历左子树;访问根结点;中序遍历右子树。 〔3〕后序遍历〔LRD〕 首先遍历左子树,然后遍历右子树,最后访问根结点;在遍历左、右子树时,也按上述的顺序执行。可见后序遍历二叉树同样也是一个递归的过程。对于二叉树的后序遍历,具有的规那么:①对于空的二叉树,不进展操作返回空值。②对于非空的二叉树的遍历按以下顺序执行:后序遍历左子树;后序遍历右子树;访问根结点。 考点7 查找技术 查找就是从给定的一个数据构造中,找出指定的数据元素。本节中我们只学习对线性表的查找,常用的查找方法有顺序查找和二分法查找。 1.顺序查找 顺序查找的过程是:从线性表的第一个元素开场,依次将线性表中的数据与要查找的数据进展比拟,如果找到了相等的数据,那么查找成功,停顿向下查找;如果比拟完了线性表中的所有数据元素,没有找到相等的数据,那么查找失败。 2.二分法查找 二分法查找又称为折半查找,只能应用于顺序存储的有序表。有序表是指线性表中的元素已经按值非递减〔从整体上看是升序,但相邻的元素的值可以一样〕排列。 考点8 排序技术 排序就是将一组无序的数据按照一定的顺序排列起来。本节中所指的顺序是非递减顺序 〔整体上呈升序,但相邻的数据可以相等〕,根本排序算法主要有交换类排序、插入类排序和选择类排序3 大类。 1.交换类排序 交换排序就是借助数据元素之间的互相交换进展排序的方法。常用的交换排序方法有冒泡排序和快速排序。 〔1〕冒泡排序 冒泡排序的过程简单,它的根本思想是通 . . word.zl- .. - 过对相邻元素进展比拟,并根据比拟的结果交换位置,从而逐步由任意序列变为有序序列。过程是:先从头往后扫描、然后从后往头 扫描、再重复上述过程 〔2〕快速排序 快速排序就是一种可以通过一次交换而消除多个逆序的排序方法,因此相对冒泡排序法而言,速度要快。 2.插入类排序 插入排序,就是将无序序列中的各个元素依次插入到已经排好序的线性表中。常用的插入排序的方法有简单插入排序和希尔排序。 〔1〕简单插入排序 简单插入排序的方法是:在初始序列中,将只包含第1 个元素的子序列看成是一个有序序列,然后从第2 个元素起,依次将每个元素插入到前1 个有序子序列中。 〔2〕希尔排序 希尔排序的根本思想是:将整个无序序列分割成假设干个子序列,对每个子序列分别进展简单插入排序,最后再对全体元素进展一次简单插入排序。与简单插入排序的子序列构成方式不同,希尔排序是将原序列中相隔某个增量 h 的元素构成一个子序列。在排序过程中逐步减少这个增量,最后当h 减到1 时,进展一次插入排序,排序就完成了。增量序列一般取hi = n/2k (k=1,2,„,[log2n]),其中n 为待排序序列的长度。希尔排序的效率与所选取的增量序列有关。通过希尔排序法对长度为n 的线性表进展排序,如果选取了上述增量序列,最坏情况下,需要比拟的次数为O(n1.5)。 3.选择类排序 常用的选择排序有两种,简单项选择择排序和堆排序。 〔1〕简单项选择择排序 简单项选择择排序的根本步骤是: ①在一组n 个数据中选择出最小值;②假设它不是这组数据中的第1 个数据,那么将它与这组数据中的第1 个数据互换位置;③对剩下的子表采用同样的方法,直到子表空为止。 〔2〕堆排序法 在学习堆排序之前,我们先来看一下堆的定义,堆的定义如下: 具有n个元素的序列〔h1,h2,…,hn〕, 当且仅当满足 或 〔i=1,2,…,n/2〕时称之为堆。第2 章程序设计根底 考点1 程序设计方法与风格 程序是一组计算机指令的集合,是程序设计的最终成果。程序设计方法所要做的工作是,如何对实际问题进展抽象和归纳以及对程序进展编排,才能使程序的可读性、稳定性、可维护性、效率等更好。目前,主要有两种程序设计方法:构造化程序设计和面向对象程序设计。 1.源程序文档化 ①符号名的命名:符号名的命名应尽量表达一些实际意义,以增强程序的可读性。②程序注释:良好的注释能够帮助读者理解程序。注释一般分为序言性注释和功能性注释,以给出程序的整体说明和程序的主要功能。序言性注释一般位于每一个程序的开头局部,它给出程序的整体说明;功能性注释一般嵌在原程序之中。③视觉组织:为使程序的构造清晰明了,可以在程序中利用空行、空格、缩进等技巧使程序层次清晰。 2.数据说明的方法 在编写程序时,一定要注意数据说明的方法。为使程序中的数据说明易于理解和维护。 3.语句的构造 程序的语句应该简单易懂,在编写程序时,应注重:每一行只写一条语句。程序编写优先考虑清晰性。一般情况下,在编写程序时,要做到清晰第一,效率第二。首先要保证程序的正确性,然后再提高速度。防止使用临时变量而使程序的可读性下降。尽可能使用库函数。防止不必要的转移。利用信息隐蔽,保证每一个模块的独立性。防止使用复杂的条件嵌套语句。防止使用无条件转移语句。尽量做到模块功能单一化。不要修补不好的程序,要重新编写。 4.输入和输出 输入和输出的方式应尽可能方便用户的使用。系统能否让用户承受,往往取决于输入和输出的风格。 . . word.zl- .. - 考点2 构造化程序设计 1.构造化程序设计的原那么 构造化程序设计必须遵守模块化、自顶向下、逐步求精、限制使用goto 语句的原那么。 2.构造化程序设计的根本构造与特点 构造化程序设计方法是一种程序设计的先进方法。实事证明,在程序设计时,只要使用3 种程序构造就可以实现所有的构造形式,它们是顺序构造、选择构造和循环构造。 3.构造化程序设计原那么和方法的应用 构造化程序设计的效率较高,但是在实际设计程序时,应要注意:使用程序设计语言中的顺序、选择、循环等有限的控制构造表示程序的控制逻辑。选用的控制构造只允许有一个入口和一个出口。程序语句组成容易识别的语句序列块,每块只允许有一个入口和一个出口。复杂构造的程序设计时,仅用嵌套的根本控制构造进展组合嵌套来实现。语言中所没有的控制构造,应采用前后一致的方法来模拟。严格控制goto 语句的使用,但不是完全不能用。 考点3 面向对象的程序设计 面向对象方法,现在已经开展为一种主流的软件开发方法。它历经了多年的研究和开展,已经日益成熟和完善,应用也越来越深入和广泛。 1.面向对象方法的特点 面向对象的程序设计,是在构造化程序设计的根底上,以更接近人们通常思维的方式来解决问题的一种全新的软件开发技术。 面向对象的程序设计以对象为核心,强调对象的“封装性〞“继承性〞“抽象性〞和“多态性〞。其本质就是主X从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来认识、理解和描述客观事物。 2.面向对象方法的根本概念 〔1〕对象〔object〕 面向对象方法认为:现实世界是由一系列的对象组成的。对象是现实世界中彼此相关并互通信息的实体。每个对象都包含了两局部的内容:描述对象状态的数据和描述对象行为。对象是面向对象方法中最根本的概念。因此,面向对象方法中的对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的整体。对象可以做的操作表示它 的动态行为,在面向对象分析和面向对象设计中,通常把对象的操作也称为方法或效劳。 〔2〕类和实例 类是具有共同属性、共同方法的对象的集合,是关于对象的抽象描述,反响属于该对象类型的所有对象的性质。 〔3〕消息〔Message〕 消息传递是对象间通信的手段,一个对象通过向另一对象发送信息来请求其效劳。消息机制统一了数据流和控制流,一个消息由下述 3 局部组成:接收消息的对象名称、消息名、零个或多个参数。 〔4〕继承〔Inheritance〕 ①类的继承:继承广义地说,是指能够直接获得已有的属性和特征,而不必重复地定义。②继承的传递性:继承具有传递性,如果类A 继承类B,类B 继承类C,那么类A 继承类 C。因此,一个类实际上继承了它上层的全部基类特性,也就是说,属于某类的对象除了具 有该类定义的特性外,还具有该类上层全部基类定义的特性。单继承:一个子类只有唯一的一个父类,这种继承称为单继承。多重继承: 一个子类也可以有多个父类,它可以从多个父类中继承特性。③继承的优点:相似的对象可以共享程序代码和数据,从而大大减少了程序 中的冗余信息,提高软件的可重用性,便于软件修改维护。 〔5〕多态性(Polymorphism) 多态性:对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全不同的行为,该现象称为多态性。 第3章软件工程根底 考点1 软件工程根本概念 1.软件的定义与特点 〔1〕软件的定义 一般认为计算机软件是计算机系统中与硬件相互依存的另一局部,包括程序、数据及相关文档的完整集合。可见软件可分为两个局部:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用相关的文档。 〔2〕软件的特点 计算机软件具有如下的几个特点:软件是一种逻辑实体,而不是物理实体,具有抽象性; . . word.zl- .. - 与硬件的生产不同,软件没有明显的制作过程;软件在使用期间不存在磨损、老化问题;对硬件和环境具有依赖性;软件复杂度高,本钱昂贵;软件开发涉及诸多的社会因素。 〔3〕软件的分类 计算机软件按功能可分为3 类:应用软件、系统软件、支撑软件〔或称为工具软件〕。 2.软件危机和软件工程 软件工程概念的出现源自软件危机。 〔1〕软件危机 “软件危机〞是20 世纪60 年代末以后出现的,其泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。实际上,几乎所有的软件都不同程度地存在这些问题。 随着计算机技术的开展和应用领域的扩大,软件已经成为计算机科学开展的“瓶颈〞。 〔2〕软件工程 为了消除软件危机,通过认真研究软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程概念,开辟了工程学的新兴领域——软件工程学。它是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。 3.软件工程过程与软件生命周期 〔1〕软件工程过程 ISO 9000 定义:软件工程过程是指把输入转化为输出的一组彼此相关的资源和活动。 〔2〕软件生命周期 软件生命周期是指软件产品从提出、实现、使用维护到停顿使用退役的整个过程。也就是说,软件产品从考虑其概念开场,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。这些阶段可以有重复,执行时也可以有迭代。 4.软件工程的目标与原那么 〔1〕软件工程的目标 软件工程的目标是:在给定本钱、进度的前提下,开发出具有有效性、可靠性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。 为实现软件工程的目标,软件工程的理论和技术性研究的内容主要包括软件开发技术和软件工程管理两个方面。 〔2〕软件工程的原那么 为了到达上述的软件工程目标,在软件开发过程中,必须遵循以下软件工程的根本原那么:抽象、确定性、模块化、信息隐蔽、局部化、完备性、一致性、可验证性。 5.软件开发工具与软件开发环境 软件工程技术鼓励研制和采用各种先进的软件开发方法、工具和环境。工具和环境的使用进一步提高了软件的开发效率、维护效率和软件质量。 〔1〕软件开发工具 软件开发工具的开展是从单项工具的开发逐步向集成工具开展的,软件开发工具为软件工程方法提供了自动的或半自动的软件支撑环境。 〔2〕软件开发环境 软件开发环境或称软件工程环境是指全面支持软件开发全过程的软件工具的集合。计算机辅助软件工程〔CASE〕是当前软件开发环境中富有特色的研究工作和开展方向。 考点2 软件分析方法 软件开发方法是指软件开发过程所遵循的方法和步骤,其目的在于有效地得到一些工作产品,即满足质量要求的程序和文档。软件开发方法包括分析方法、设计方法和程序设计方法。 1.需求分析与需求分析方法 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求的过程。需求分析的目标是创立所需的数据模型、功能模型和控制模型。 〔1〕需求分析的定义 1997 年IEEE 软件工程标准词汇表对需求分析定义如下: ①用户解决问题或到达目标所需的条件或 功能;②系统或系统部件要满足合同、标准、标准或其他正式规定文档所需具有的条件或功能;③一种反映①或②所描述的条件或功能的文档说明。 〔2〕需求分析阶段的工作 需求分析阶段的工作主要分为4 个方面:需求获取、需求分析、编写需求规格说明书、 . . word.zl- .. - 需求评审。 〔3〕需求分析方法 常用的需求分析方法有两种:①构造化分析方法。主要包括:面向数据构造的Jackson 方法〔JSD〕,面向数据流的构造化分析方法 〔SA〕,面向数据构造的构造化数据系统开发方法〔DSSD〕。②面向对象的分析方法〔OOA〕。从需求分析建立的模型的特性来分,需求分析方法又分为静态分析方法和动态分析方法。 2.构造化分析方法 〔1〕构造化分析方法的根本概念 构造化分析方法是面向数据流、自顶向下、逐步求精、进展需求分析的方法。该方法使用简单易读符号,根据软件内部数据传递、变换的关系,自顶向下、逐层分解,描绘出满足要求的软件模型。 〔2〕构造化分析的常用工具 构造化分析方法利用图形等构造化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要局部。这种方法所用的常用工具有:数据流图、数据字典、判定树和判定表。 3.软件需求规格说明书 软件需求规格说明书〔SRS〕是需求分析阶段得出的最主要的文档。它通常用自然语言完整、准确、具体地描述系统的数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求以及将来可能提出的要求。 ①软件需求规格说明书的作用 软件需求规格说明书具有几个作用:便于用户、开发人员进展理解和交流;反映出用户问题的构造,可以作为软件开发工作的根底和依据;作为确认测试和验收的依据。 ②软件需求规格说明书的内容 软件需求规格说明书是作为需求分析的一局部而制定的可交付文档。 ③软件需求规格说明书的特点 软件需求规格说明书是确保软件质量的有力措施,衡量软件需求规格说明书质量的标准:正确性、无歧义性、完整性、一致性、可理解性、可验证性、可修改性和可追踪性。考点3 构造化设计方法 1.软件设计的根本概念 〔1〕软件设计的根底 软件设计是一个把软件需求转化为软件 表示的过程,是软件工程的重要阶段。软件设计的根本目标是用比拟抽象、概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。 〔2〕软件设计的根本原理 软件设计应遵循软件工程的根本目标和原那么,建立适用于在软件设计中应该遵守的根本原理和软件设计中的有关概念。 模块化、抽象、信息隐藏和局部化、模块独立性。 〔3〕构造化设计方法 构造化设计方法是目前采用最为广泛的一种软件设计方法,其根本思想是将软件设计成由相对独立、单一功能的模块组成的构造 2.概要设计 概要设计又称为总体设计或初步设计。软件概要设计的根本任务是: ①设计软件的系统构造。在需求分析阶段,已经把系统分解成层次构造,而在概要设计阶段,需要进一步分解,划分为模块以及模块的层次构造。②数据构造及数据库设计。数据设计是实现需求定义和规格说明过程中提出的数据对象的逻辑表示。③编写概要设计文档。在概要设计阶段,需要编写的文档有:概要设计说明书、数据库设计说明书、集中测试方案等。 ④概要设计文档评审。在概要设计中,对设计局部是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性、有效性,各局部之间的一致性等都要进展评审,以免在以后的设计中出现大的问题而返工。 2.概要设计工具 构造图〔SC〕,也称程序构造图,是描述软件构造的图形工具,是常用的软件构造设计工具。模块用一个矩形表示,矩形内注明模块的功能和名字;箭头或直线表示模块间的调用关系。在构造图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。常用的构造图有4 种模块类型:传入模块、传出模块、变换模块和协调模块。 3.面向数据流的设计方法 在需求分析阶段,主要是分析信息在系统中的加工和流动情况。面向数据流的设计方法的目标是给出设计软件构造的一个系统化的 . . word.zl- .. - 途径。 〔1〕数据流类型。典型的数据流类型有两种:变换型和事务型。 〔2〕面向数据流设计方法的实施要点与 设计过程。 4.设计的准那么 通过大量设计实践证明,以下设计准那么可以借鉴为设计的指导和对软件构造图进展优化。 提高模块独立性、模块规模适中、深度、宽度、扇出和扇入适当、使模块的作用域在该模块的控制域内、应减少模块的接口和界面的复杂性、设计成单入口、单出口的模块和设计功能可预测的模块。 3.详细设计 详细设计的任务就是为软件构造图中的每一个模块确定实现算法和局部数据构造,用某种选定的表达工具表
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服