公共基础课本总结_第1页
公共基础课本总结_第2页
公共基础课本总结_第3页
公共基础课本总结_第4页
公共基础课本总结_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、晋中高教职业技能培训中心学员内部资料 公共基础课本总结第1章数据结构与算法1.1算法算法:是指解题方案的准确而完整的描述。算法的基本特征:可行性、确定性、有穷性(有限的时间)、拥有足够的情报。*算法的控制结构:算法中各操作之间的执行顺序。包括:顺序、选择、循环算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法算法的复杂度:时间复杂度(算法所需要的计算工作量,即算法所执行的基本运算次数)、空间复杂度(执行这个算法所需要的内存空间)1.2数据结构的基本概念数据结构:是指相互有关联的数据元素的集合。所谓结构就是指数据元素之间的前后件关系。在数据结构中没有前件的结点称为根结点,没有后

2、件的结点为叶子结点(终端结点)。数据结构研究的三个问题:1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。3)对各种数据结构进行的运算。*数据的逻辑结构:指反应数据元素之间逻辑关系的数据结构。*数据的存储结构(物理结构):数据的逻辑结构在计算机存储空间中的存放形式。(常用:顺序、链接、索引等结构) 数据处理:是指对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析空的数据结构:一个元素都没有的数据结构。数据结构分类:线性结构、非线性结构。*线性结构:有且只有一个

3、根结点,每一个结点最多有一个前件,也最多有一个后件。(线性表、栈、队列、线性链表) *非线性结构:不满足线性结构特点的数据结构。树、二叉树、图1.3线性表及其顺序存储线性表由一组数据元素组成。线性表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。线性表中数据元素的个数n称为线性表的长度。线性表可以为空表:n=0。线性表是一种存储结构,它的存储方式:顺序和链式。线性表的顺序存储结构有两个基本特点:1. 所有元素所占的存储空间是连续的。2.各元素在存储空间中是按逻辑顺序依次存放的,前后件两个元素在存储空间中是紧邻的。在长度为n的顺序存储的线性表中,当在任何位置

4、上插入或删除一个元素概率都相等时,它们所需移动元素的平均个数是为n/2。1.4栈和队列栈是限定在一端进行插入与删除的线性表。 栈顶:允许插入与删除的一端。 栈底:不允许插入与删除的一端。栈是按照“先进后出”或“后进先出”的原则组织数据的。 栈中元素个数:栈底-栈顶+1栈的基本运算:入栈运算(上溢)、退栈运算(下溢)、读栈顶元素栈的存储方式和线性表类似,也有两种:顺序栈和链式栈。队列允许在一端进行插入、而在另一端进行删除的线性表。队尾(rear):允许插入的一端。 队头(front):允许删除的一端。队列是按照“先进先出”或“后进后出”的原则组织数据的。 队中元素个数:队尾-对头(队尾>对

5、头) 队中元素个数:队尾-对头+容量(队尾<对头)队列的基本运算:入队运算、退队运算 循环队列:将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间1.5线性链表线性链表:线性表的链式存储结构,是一种物理存储单元上非连续、非顺序的存储结构*在链式存储结构中,每个数据结点由两部分组成:数据域(存放数据元素的值)、指针域(存放下一结点的存储地址)。*在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。*线性链表的优点:在线性链表中插入或删除一个元素时,不需要移动元素的位置,只需改变指针

6、的指向就行了。*循环链表的优点:只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有的结点,而线性单链表做不到这一点。栈和队列也可采用链式存储结构线性链表基本运算:插入、删除、合并、分解、逆转、复制、排序、查找1.6树与二叉树父结点:每一个结点只有一个前件,称为父结点。 根结点:没有前件的结点只有一个,称为根结点,简称为根。子结点:每一个结点可以有多个后件,这些后件称为子结点。叶子结点:没有后件的结点。结点的度:一个结点所拥有的后件个数。 树的度:所有结点中的最大的度。 树的深度:树的最大层次(几层)*根结点在第1层。叶子结点没有子树。二叉树的特点:非空二叉树只有一个根结点,每一个

7、结点最多有2颗子树,且分别称为该结点的左子树与右子树。二叉树的度:可以为0(叶子结点)、1(只有1颗子树)或2(有2颗子树)二叉树的性质:1.在二叉树的第k层上,最多有2k-1(k>=1)个结点 2.深度为m的二叉树最多有2m-1个结点3.度为0的结点(叶子结点)总是比度为2的结点多一个4.具有n个结点的二叉树,其深度至少为log2n+1 5.具有n个结点的完全二叉树,深度为log2n+1满二叉树:除最后一层外,每一层上的所有结点都有2各子结点。完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。*根据完全二叉树的定义可得出:度为1的结点的个数为0或

8、1。*一般二叉树采用链式存储结构,对于满二叉树与完全二叉树来说,可以按层序进行顺序存储。二叉树的遍历:是指不重复的访问二叉树中的所有结点。分类:前序遍历(根左右)、中序遍历(左根右)、后序遍历(左右根)*当完全二叉树总结点n为偶数时,叶子节点的个数为:n/2 *当完全二叉树总结点n为奇数时,叶子节点的个数为:(n+1)/21.7查找技术顺序查找:n(最坏)。 适用范围:无序线性表、线性表的链式存储结构。二分法查找:log2n(最坏)。适用范围:顺序存储的线性表。1.8排序技术交换类排序:冒泡排序法:n(n-1)/2(最坏) 快速排序法:n(n-1)/2(最坏) O(nlog2n)(平均)插入类

9、排序:简单插入排序法:n(n-1)/2(最坏) 希尔排序法:O(n1. 5)(最坏)选择类排序:简单选择排序法:n(n-1)/2(最坏) 堆排序法:O(nlog2n) (最坏)第2章程序设计基础2.1程序设计方法与风格程序设计风格:清晰第一,效率第二注释一般分为:序言性注释和功能性注释2.2结构化程序设计结构化程序设计的原则:自顶向下,逐步求精,模块化,限制使用 goto 语句结构化程序的基本结构:顺序结构、选择结构、重复结构(循环结构)2.3面向对象的程序设计面向对象方法的优点:与人类习惯的思维方法一致、稳定性好、可重用性好(主要考虑)、易于开发大型软件产品、可维护性好面向对象思想中的三个主

10、要特征是:封装性、继承性、多态性。对象:客观世界中的任何实体。 *对象是属性和方法的封装体。 *对象是类的一个实例。对象特点:标志唯一性、分类性、多态性、封装性(信息隐蔽是通过对象的封装性来实现的)、模块独立性好类:具有共同属性、共同方法的对象的集合。消息:是一个实例与另一个实例之间传递的信息,请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。继承:能够直接获得已有的性质和特性,而不必重复定义他们。 *类的继承性是类之间共享属性和操作的机制。继承性的优点:相似的对象可以共享程序的代码和数据结构,从而大大减少了程序中的冗余信息,提高软件的可重用性,便于软件修改维护多态性:是指同样

11、的消息被不同的对象接受时可导致完全不同的行动的现象。第3章软件工程基础3.1软件工程基本概念软件:包括程序、数据及相关文档的完整集合。 *软件按功能分为:应用软件、系统软件、支撑软件(或工具软件)软件工程概念的出现源自软件危机。软件危机:是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 *软件危机归结为成本、质量、生产率等问题。 软件工程:是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。软件工程的目的:1.软件开发技术:软件开发方法学、开发过程、开发工具和软件工程环境。(主体内容:软件开发方法学) 2.软件工程管理:软件管理学、软件工程经济学、软件心理

12、学。软件工程3要素:方法(完成软件工程项目的技术手段)、工具(支持软件的开发、管理、文档、生成)、过程(支持软件开发的各个环节的控制、管理)*软件工程过程:是把输入转化为输出的一组彼此相关的资源和活动。*软件工程基本活动: P(Plan)软件规格说明、D (Do)软件开发、C(Check)软件确认、A(Action)软件演进软件生命周期:将软件产品从提出、实现、使用维护到停止使用退役的过程。软件生命周期分为:软件定义、软件开发、软件运行和维护(花费时间最长)*软件定义:可行性研究与计划制定(软件开发费用)、需求分析(确定软件系统功能)*软件开发:1.软件设计(概要设计和详细设计)、2.软件实现

13、(软件开发工具)、3.软件测试*软件开发方法(分析方法、设计方法、程序设计方法)*软件维护活动包括:改正性维护、适应性维护、完善性维护和预防性维护。软件工程需要达到的基本目标应是:付出较低的开发成本、达到要求的软件功能、取得较好的软件性能、开发的软件易于移植、需要较低的维护费用、能按时完成开发,及时交付使用软件工程原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证性*软件开发工具、软件开发环境(或称软件工程环境是全面支持软件开发全过程的软件工具集合)*软件开发模型包括:瀑布模型、快速原型法模型、螺旋模型3.2结构化分析方法软件需求:是指用户对目标软件系统在功能、行为、性能、设

14、计约束等方面的期望。需求分析的任务:发现需求、求精、建模和定义需求的过程需求分析的工作:需求获取、需求分析、编写规格需求说明书、需求评审需求分析方法:结构化分析方法(面向数据结构的Jackson方法)、面向对象的分析方法(静态分析方法和动态分析方法)结构化分析方法:是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表、判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。 结构化分析的常用工具:数据流图(DFD:描述数据处理过程的工具)、数据字典(DD:结构化分析方法的核心)、判定树、判定表*数据流图以图形的方式描绘数据在系统中流动和处理的过程,它反映了系统必须完成的逻辑功能圆

15、圈:加工(转换) 箭头:数据流 两条横线:存储文件 矩形:源,潭软件需求规格说明书:是需求分析阶段的最后成果,是软件开发中的重要文档之一。*软件需求规格说明书的作用:便于用户、开发人员进行理解和交流、反映出用户问题的结构,可以作为软件开发工作的基础和依据、 作为确认测试和验收的依据*软件需求规格说明书的特点:正确性、无歧义性(最重要)、完整性、可验证性、一致性、可理解性、可修改性、可追踪性3.3结构化设计方法软件设计从技术观点看,软件设计包括软件结构设计、数据设计、接口设计、过程设计软件设计从工程管理角度看,软件设计分两步完成:概要设计和详细设计软件设计的基本原理:抽象、模块化 、信息隐蔽、模

16、块独立性 *衡量软件独立性依据:耦合性(是模块间互相连接的紧密程度的度量)内聚性(是一个模块内部各个元素间彼此结合的紧密程度的度量)*内聚:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚*耦合:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合*优秀的软件设计应做到“高内聚,低耦合”。 模块划分的原则:模块内具有高内聚度,模块间具有低耦合度。与结构化需求分析方法对应的是结构化设计方法。*常用的软件结构设计工具是结构图(程序结构图)。其中箭头表示模块间的调用关系。典型的数据流类型有两种:变换型和事务型。详细设计的任务,是为软件结构图中的每一个模块确定实现

17、算法和局部数据结构,用某种选定的工具表示算法和数据结构的细节。常见的过程设计工具:1.图形工具(程序流程图、NS、PAD:问题分析图、HIPO)、2.表格工具(判定表)、3.语言工具(PDL:伪码、过程设计语言)*程序流程图是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图。程序流程图表达直观、清晰,易于学习掌握,且独立于任何一种程序设计语言。构成程序流程图的最基本的图符及含义如下:箭头表示控制流 矩形表示加工步骤;菱形表示逻辑条件N-S图:为了避免流程图在描述程序逻辑时的随意性与灵活性,提出了用方框图代替传统的程序流程图,通常也把这种图称为NS图。3.4软件测试软件测试的目的:

18、是为了发现错误而执行程序的过程 软件测试的准则:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能(测试只能证明程序中有错误,不能证明程序中没有错误)、妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便软件测试的方法:静态测试和动态测试:设计设计高效合理的测试用例(输入值集,输出值集)(包括白盒测试和黑盒测试)白盒测试:也称结构测试或逻辑测试。根据程序的内部逻辑来设计,主要用软件的单元测试*白盒测试的基本原则:保证所侧模块中每一独立路径至少执行一次(穷举路径测试) *白盒测试的方法:逻辑覆盖测试(语句

19、、路径、判定、条件、判断条件覆盖)、基本路径测试黑盒测试:也称功能测试或数据驱动测试。根据程序的功能说明来设计,主要用软件的确认测试 *黑盒测试的方法:等价类划分法、边界值分析法、错误推测法、因果图软件测试的过程:单元测试(发现可能的错误)、集成测试、确认测试(验证软件是否满足了需求规格说明中确定的各种需求)、系统测试3.5程序的调试程序调试的任务:诊断和改正程序中的错误(主要在开发阶段)。 软件测试是尽可能多地发现软件中的错误。程序调试的基本步骤:错误定位、纠正错误(修改设计和代码,以排除错误)、回归测试(进行回归测试,防止引进新的错误)程序调试的方法:强行排错发、回溯法、原因排除法第4章数

20、据库设计基础4.1数据库系统的基本概念1.数据:是描述事物的符号记录。有型和值之分。2.数据库(DB):数据的集合。 *数据库中的数据具有“集成”、“共享”的特点。3.数据库管理系统(DBMS):是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。 是数据库系统的核心,位于用户和操作系统(OS)之间。*DBMS功能:数据模式定义、数据存取的物理构建、数据操纵、数据的完整性、安全性定义与检查、数据库的并发控制与故障恢复、数据的服务。*数据定义语言(DDL):负责数据的模式定义与数据的物理存取构建。*数据操纵语言(DML):负责数据的操作,包括查询及增、删、改等操作

21、。*数据控制语言(DCL):负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。4.数据库管理员(DBA):数据库设计、数据库维护、改善系统性能,提高系统效率。5.数据库系统(DBS):数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)6.数据库应用系统(DBAS):是数据库系统再加上应用软件及应用界面这三者所组成。*数据库管理经历阶段:人工管理阶段、文件系统阶段、数据库系统阶段(共享性高,冗余度小)数据库系统基本特点:数据的集成性、数据的高共享性与低冗余性、数据独立性(物理独立性与逻辑独立性)、数据统一管理与控制*物理独立性:数据的物

22、理结构(包括存储结构和存取方式等)的改变,不影响数据库的逻辑结构,从而不致引起应用程序的变化。*逻辑独立性:数据库总体逻辑结构的改变,如修改数据模式、增加新的数据类型等,不需要相应修改应用程序。数据库系统三级模式:概念模式:全体用户(应用)公共数据视图、外模式:子模式、用户模式,用户的数据视图、内模式:物理模式数据库系统二级映射:概念模式到内模式的映射(保证数据物理独立性)、外模式到概念模式的映射(保证数据逻辑独立性)4.2数据模型数据模型描述的内容:数据结构、数据操作、数据约束数据模型分类:概念数据模型(ER模型即实体联系模型)、逻辑数据模型(层次模型、网状模型、关系模型)、物理数据模型ER模型基本概念:实体:现实世界中的事物、属性:事物的特性、

温馨提示

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

评论

0/150

提交评论