大学计算机基础教程(第三版)课件第7章 程序设计基础.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大学计算机基础教程(第三版)课件第7章 程序设计基础.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机基础教程第三版课件第7章 程序设计基础 大学计算机 基础教程 第三 课件 程序设计 基础
- 资源描述:
-
1、第7章 程序设计基础第7章 程序设计基础第7章 程序设计基础本章学习要求掌握逐步求精的结构化程序设计方法掌握基本数据结构及其操作掌握算法的基本概念及基本排序和查找算法掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力掌握数据库的基本知识,了解关系数据库的设计2第7章 程序设计基础本章大纲本章大纲7.1程序设计基本概念7.2软件工程基础7.3数据结构基础7.4 思维与算法7.5 数据库设计基础3第7章 程序设计基础7.17.1程序设计基本概念程序设计基本概念初始程序程序设计方法程序设计语言412/23/2023第7章 程序设计基础7.2软件工程基础7.2.1 软件工程的基本概念7.2
2、.2 软件开发过程7.2.3 结构化分析方法7.2.4 结构化设计方法7.2.5 软件测试第7章 程序设计基础7.1.17.1.1初始程序初始程序1程序计算机程序或者软件程序(简称程序)是指一组指示计算机每一步动作的指令,用某种程序设计语言编写,运行于某种目标体系结构上。2程序设计6第7章 程序设计基础7.1.27.1.2程序设计方法程序设计方法1程序设计方法结构化程序设计方法面向对象的程序设计方法2.程序设计风格主要应注重和考虑以下几个因素:源程序文档化;数据说明方法化;语句的结构;输入和输出。712/23/2023第7章 程序设计基础7.1.3 程序设计语言第一代 机器语言第二代 汇编语言
3、第三代 高级语言第四代 非过程化语言12/23/2023第7章 程序设计基础7.2.1 软件工程的基本概念1软件的定义软件(software)是与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据的集合。2软件的特点3软件危机与软件工程12/23/2023第7章 程序设计基础7.2.2 软件开发过程图7-3 软件开发过程图12/23/2023第7章 程序设计基础7.2.3 结构化分析方法需求分析软件需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。结构化分析方法结构化分析方法结构化分析的常用工具软件需求规格说明书12/23/2023第7章 程序设计基
4、础7.2.4 结构化设计方法1软件设计的基本概念软件设计的基础软件设计的基本原理结构化设计方法2概要设计概要设计的任务包括:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审。面向数据流的设计方法结构化设计的准则3详细设计常用的设计工具有:图形工具:程序流程图,N-S,PAD,HIPO;表格工具:判定表;语言工具:PDL(伪码)。12/23/2023第7章 程序设计基础7.3数据结构基础7.3.1 数据结构的概念7.3.2 线性表7.3.3 栈和队列7.3.4 树与二叉树12/23/2023第7章 程序设计基础7.2.5 软件测试1软件测试的目的及准则包括需求定义阶段的
5、需求测试、编码阶段的单元测试、集成测试以及其后的确认测试、系统测试,验证软件是否合格、能否交付用户使用等。2软件测试技术和方法综述静态测试与动态测试白盒测试方法与测试用例设计黑盒测试方法与测试用例设计软件测试的实施软件测试的实施过程主要有4个步骤:单元测试、集成测试、系统测试、验收测试。12/23/2023第7章 程序设计基础7.3.1 数据结构的概念数据结构的含义数据结构是数据的组织,存储和运算的总和。它是信息的一种组织方式,是以数据按某种组织关系起来的一批数据,其目的是为了提高算法的效率,然后用一定的存储方式存储到计算机中,并且它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中
6、的数据进行某种操作。数据结构的基本术语数据数据元素数据对象数据结构数据的逻辑结构l数据的逻辑结构l数据的逻辑结构l数据的存储结构l数据类型l抽象数据类型12/23/2023第7章 程序设计基础7.3.2 线性表线性表的逻辑结构线性表是由 n(n=0)个具有相同性质的数据元素组成的有限序列。记为:List =(a0,a1,a2.,an)线性表的运算线性表的顺序表示及实现线性表在计算机内的存储结构一般有两种方式:一种是顺序(静态)存储一种是链式(动态)存储。12/23/2023第7章 程序设计基础7.3.3 栈和队列1栈(1)栈的定义12/23/2023第7章 程序设计基础(2)栈的顺序存储一般地
7、说,栈有两种实现方法:顺序存储和链接存储,12/23/2023第7章 程序设计基础其中:(a)表示顺序栈为栈空,这也是初始化运算得到的结果。此时栈顶指针Top=0。此时如果作退栈运算,则产生“下溢”。(b)表示栈中只含一个元素A,在(a)基础上用进栈运算PUSH(sq,A),可以得到这种状态。此进栈顶指针Top=1。(c)表示在(b)基础上又有二个B,C先后进栈,此进栈顶指针Top=3。(d)表示在(c)状态下栈顶元素C退栈,这可执行一次POP(sq)运算得到。此时(新)栈顶指针Top=2。故B为当前的栈顶元素(注意,数据元素C虽并未擦去,但已不起作用)。(e)表示栈中有5个元素,这种状态可在
8、(d)的基础上通过连续执行PUSH(sq,D),PUSH(sq,E),PUSH(sq,F)得到。这种状态称为栈满。如果此时再作进栈运算,由于栈中已无空闲空间,因而发生“上溢”。12/23/2023第7章 程序设计基础2队列(1)队列的定义包括5种基本运算:队列初始化INIQUEUE(Q)、入队列INQUEUE(Q,X)、出队列OUTQUEUE(Q)、判队列空EMPTY(Q)、读队头GETHEAD(Q)。(2)队列的顺序实现两种实现方法,即顺序实现和链接实现。12/23/2023第7章 程序设计基础7.3.4 树与二叉树树的定义树是n(n0)个结点的有穷集合,满足:有且仅有一个称为根的结点;其余
9、结点分为m(m0)个互不相交的非空集合T1,T2,.,Tm,这些集合中的每一个都是一棵树,称为根的子树。12/23/2023第7章 程序设计基础2二叉树(1)二叉树的定义二叉树是n(n=0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树,且互不相交的二叉树构成。(2)二叉树的特点每个结点至多有二棵子树(即不存在度大于2的结点);二叉树的子树有左、右之分,且其次序不能任意颠倒。12/23/2023第7章 程序设计基础(3)满二叉树和完全二叉树满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。特点:每一层上的结点数都是最大结点数,第层上有2k-1个结点;深
10、度为的满二叉树有2m-1个结点。完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。特点:叶子结点只可能在层次最大的两层上出现;对任一结点,若其右分支下子孙的最大层次为L,则其左分支下子孙的最大层次必为L 或L+1。12/23/2023第7章 程序设计基础(4)二叉树的主要性质 在二叉树的第 i 层上至多有2i-1 个结点。(i1)深度为 k 的二叉树上至多含 2k-1 个结点(k1)。对任何一棵二叉树,度为0的叶子结点总是比度为 2 的结点多一个,则必存在关系式:n0=n2+1。12/23/2023第7章 程序设计基础(5)二叉树的遍历二叉树的遍历有三种
11、方式,如下:前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树。简记根-左-右。中序遍历(LDR),首先遍历左子树,然后访问根结点,最后右子树。简记左-根-右。后序遍历(LRD),首先遍历左子树,然后遍历右子树,最后访问根结点。简记左-右-根。12/23/2023第7章 程序设计基础7.4 思维与算法7.4.1计算思维的内容7.4.2计算思维的特性7.4.3 算法的思想7.4.4 算法的概念和复杂度7.4.5 查找技术12/23/2023第7章 程序设计基础7.4.1计算思维的内容计算思维是一种递归思维它是并行处理。它是把代码译成数据又把数据译成代码。它是由广义量纲分析进行的类
12、型检查。对于别名或赋予人与物多个名字的做法,它既知道其益处又了解其害处。对于间接寻址和程序调用的方法,它既知道其威力又了解其代价。它评价一个程序时,不仅仅根据其准确性和效率,还有美学的考量,而对于系统的设计,还考虑简洁和优雅。12/23/2023第7章 程序设计基础7.4.2计算思维的特性1根本的,不是刻板的技能2是人的,不是计算机的思维方式3数学和工程思维的互补与融合4是思想,不是人造物12/23/2023第7章 程序设计基础7.4.3 算法的思想算法的基本思想就是我们分析问题时的想法。由于想法不同思考的角度不同,着手点不一样,同一问题存在不同的算法,算法有优劣之分。从熟悉的问题出发,体会算
13、法的程序化思想,学会用自然语言来描述算法。算法的特征包括:有穷性确切性输入输出 可行性12/23/2023第7章 程序设计基础7.4.4 算法的概念和复杂度算法的定义广义地说,算法就是为解决问题而采取的步骤和方法,在程序设计中,算法是在有限步骤内求解某一问题所使用的一组定义明确的指令序列,通俗的讲算法,就是计算机解题的过程。每条指令表示一个或多个操作。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法,前者是算法实现的逻辑推理,后者是算法实现的具体操作。算法的表示为了表示一个算法,可以用多种不同的应运实现。常用的有自然语言,传统流程图,结构化流程图,N-S图,伪代码,计算机语言表
14、示法等。12/23/2023第7章 程序设计基础算法的时间复杂度分析 算法运算时间的度量 事后统计方法事前分析估算方法算法运行时间的分析规则 算法的空间复杂度分析 空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度。算法在计算机存储器内占用的存储空间主要分为三部分:算法源代码本身占用的存储空间、算法输入输出数据所占用的存储空间和算法运行过程中临时占用的存储空间。12/23/2023第7章 程序设计基础7.4.5 查找技术1顺序查找一般是在线性表中查找指定的元素。基本操作方法是:从线性表的第一个元素开始,与被查元素进行比较,相等则查找成功,否则继续向后查找。如果所有的元素均查找完毕后都
展开阅读全文