第六章 详细设计 6.1 结构化程序设计 6.2 详细设计工具 6.3 面向数据结构的设计方法 退出.

Slides:



Advertisements
Similar presentations
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
Advertisements

冀教版四年级数学上册 本节课我们主要来学习 2 、 3 、 5 的倍数特征,同学们要注意观察 和总结规律,掌握 2 、 3 、 5 的倍 数分别有什么特点,并且能够按 要求找出符合条件的数。
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
2 、 5 的倍数特征 集合 2 的倍数(要求) 在百数表上依次将 2 的倍数找出 并用红色的彩笔涂上颜色。
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
山东建筑大学 国家级虚拟仿真实验教学中心 (建筑工程及装备) 申报及建设情况汇报
量子與能源 石化能源危機 核分裂能 核融合能 太陽能 燃料電池.
克劳斯-雷克曼 教授 德国 凯勒数控教学仿真软件有限公司
小学生游戏.
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
第六章 详细设计.
SQL Injection.
走进编程 程序的顺序结构(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第一讲: 基本流程(1).
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第17章 网站发布.
What have we learned?.
第2章 算法—程序的灵魂.
第6章 详细设计 6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法
结构程序设计 过程设计的工具 面向数据结构的设计方法 程序复杂程度的定量度量
第二章 Java语言基础.
整合思维导图的初中英语教学设计 主讲人:卢璐.
使用矩阵表示 最小生成树算法.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
专题作业.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
$9 泛型基础.
Web安全基础教程
C语言程序设计 第二章 程序的灵魂 -- 算法.
第3步:将上图对应转换为程序流程图,并将每个处理框编号。
VisComposer 2019/4/17.
VB与Access数据库的连接.
姚金宇 MIT SCHEME 使用说明 姚金宇
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
《计算机应用基础》 第9章 程序设计基础(二).
iSIGHT 基本培训 使用 Excel的栅栏问题
算法初步 §1.1.2 程序框图.
College of Computer Science & Technology
第4课时 绝对值.
十几减5、4、3、2.
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
1.非线性规划模型 2.非线性规划的Matlab形式
第一章 绪论 1.1 引言 1.2 逻辑结构和存储结构 1.3 算法.
第七、八次实验要求.
2.2直接证明(一) 分析法 综合法.
第二节 C语言的特点.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
_08文件操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
_01自己实现简单的消息处理框架模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司
第6章 详细设计 Detailed Design
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第四章 UNIX文件系统.
第十七讲 密码执行(1).
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
任课教师:戴开宇 TA:时均帅、谭肖、王安华 程序设计B班 :20-16:50(90分钟)
§4.5 最大公因式的矩阵求法( Ⅱ ).
顺序结构程序设计 ——关于“字符串”和数值.
编译原理实践 6.程序设计语言PL/0.
9.3多项式乘多项式.
Presentation transcript:

第六章 详细设计 6.1 结构化程序设计 6.2 详细设计工具 6.3 面向数据结构的设计方法 退出

6.1 结构化程序设计 三种基本的控制结构

结构化程序设计技术是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种控制结构。 逐步求精方法是由Wirth提出的一种早期的自顶向下的设计策略。面对现实的复杂问题,我们首先不要一下子就力图触及到问题解法的细节,而应当先从问题的全局出发,用较自然的抽象语句来表示问题,从而得到抽象算法。这时的算法主要是描述“做什么”,或者说是把问题描述为几个子问题或子功能。接下来对子问题,也就是对抽象算法进行细化,在这一阶段设计的算法中,已经开始含有程序设计语言的成分。随着算法的不断细化,越来越多地开始完成“如何做”,算法中程序设计语言的成分也越来越多,当最后把算法全部细化为程序设计语言描述时,程序设计也就随之完成了。

其他常用的控制结构

6.2 详细设计工具 6.2.1 程序流程图 6.2.2 盒图 6.2.3 PAD图 6.2.4 过程设计语言 6.2.5 判定表 6.2 详细设计工具 6.2.1 程序流程图 6.2.2 盒图 6.2.3 PAD图 6.2.4 过程设计语言 6.2.5 判定表 6.2.6 判定树 退出

6.2.1 程序流程图 程序流程图中常用的符号

程序流程图虽然比较直观,灵活,并且比较容易掌握,但是它的随意性和灵活性却使它不可避免地存在着一些缺点: (1)由于程序流程图的特点,它本身并不是逐步求精的好工具。因为它使程序员容易过早地考虑程序的具体控制流程,而忽略了程序的全局结构; (2)程序流程图中用箭头代表控制流,这样使得程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制; (3)程序流程图在表示数据结构方面存在不足。

6.2.2 盒图(N-S图) N-S图的基本符号

N-S图有以下一些特点: (1)功能域(即某一个特定控制结构的作用域)有明确的规定,并且可以很直观地从N-S图上看出来; (2)它的控制转移不能任意规定,必须遵守结构化程序设计的要求; (3)很容易确定局部数据和全局数据的作用域; (4)很容易表现嵌套关系,也可以表示模块的层次结构。

6.2.3 PAD图 PAD图的基本符号

PAD图提供的定义功能

6.2.4 过程设计语言 PDL语言具有下述特点: (1)PDL虽然不是程序设计语言,但是它与高级程序设计语言非常类似,只要对PDL描述稍加变换就可变成源程序代码。因此,它是详细设计阶段很受欢迎的表达工具。 (2)用PDL写出的程序,既可以很抽象,又可以很具体。因此,容易实现自顶向下逐步求精的设计原则。 (3)PDL描述同自然语言很接近,易于理解。 (4)PDL描述可以直接作为注释插在源程序中,成为程序的内部文档。这对提高程序的可读性是非常有益的。 (5)PDL描述与程序结构相似,因此自动产生程序比较容易。 PDL的缺点是不如图形描述形象直观,因此人们常常将PDL描述与一种图形描述结合起来使用。

6.2.5 判定表 一张判定表由四部分组成: (1)左上部列出所有条件; (2)左下部是所有可能做的动作; 6.2.5 判定表 一张判定表由四部分组成: (1)左上部列出所有条件; (2)左下部是所有可能做的动作; (3)右上部为各种可能组合条件,其中每一列表示一种可能组合; (4)右下部的每一列是和每一种条件组合所对应的应做的工作。

  1 2 3 4 5 教授 T F 副教授 讲师 助教 讲座 50 × 30 25 20 15 例:某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。

6.2.6 判定树 教师课时津贴判定树

6.3 面向数据结构的设计方法 6.3.1 Jackson图 6.3.2 Jackson程序设计方法 退出

6.3.1 Jackson图 Jackson图表示方法

Jackson图的优点: (1)Jackson图不仅便于表示层次结构,而且也有利于对结构自顶向下分解; (2)Jackson图形象直观,可读性好; (3)Jackson图不仅能表示数据结构,也能表示程序结构(因为程序结构也可以由上述3种基本结构组成)。 Jackson图的缺点: 在选择结构和重复结构中,选择条件或循环结束条件不能直接在Jackson图中表示出来。这样就影响了图形的表达能力,也不利于直接把图翻译成程序。

改进的Jackson图

6.3.2 Jackson程序设计方法 例:高考后将考生的基本情况文件(简称考生基本情况文件)和考生高考成绩文件(简称考分文件)合并成一个新文件(简称考生新文件)。考生基本情况文件和考分文件都是由考生记录组成的。为简便起见,考生基本情况文件中的考生记录的内容包括:准考证号、姓名、通讯地址。考分文件中的考生记录的内容包括:准考证号和各门考分。合并后的考生新文件自然也是由考生记录组成,内容包括:准考证号、姓名、通讯地址和各门考分。 Jackson程序设计方法由五个步骤组成:

第一步 数据结构表示 对要求解的问题进行分析,确定输入数据和输出数据的逻辑结构,并用Jackson图描述这些数据结构。

第二步 找出输入数据结构和输出数据结构的对应关系 第二步 找出输入数据结构和输出数据结构的对应关系 找出输入数据结构和输出数据结构中有对应关系的数据单元,即有直接因果关系、在程序中可以同时处理的数据单元。需要注意的是,对于重复的数据单元,必须是重复的次序、次数都相同才有可能有对应关系。

第三步 确定程序结构图 根据下述三规则,由Jackson图导出相应的程序结构图: (1)为每对有对应关系的数据单元,按照它们在数据结构图中所处的层次,在程序结构图中的相应层次画一个处理框。如果这对数据单元在输入数据结构图和输出数据结构图中所处的层次不同,那么应以它们在输入数据结构图和输出数据结构图中层次较低的那个层次作为它们在程序结构图中的处理框所处的层次; (2)对于输入数据结构中剩余的数据单元,根据它们所处的层次,在程序结构图的相应层次为每个数据单元画上相应的处理框; (3)对于输出数据结构中剩余的数据单元,根据它们所处的层次,在程序结构图的相应层次为每个数据单元画上相应的处理框。

实际上,这一步是一个综合的过程:每对有对应关系的数据单元合画一个处理框,没有对应关系的数据单元则各画一个处理框。

第四步 列出并分配所有操作和条件 列出所有操作和条件(包括分支条件和循环结束条件),并把它们分配到程序结构图的适当位置。 操作:(1)停止; (2)打开两个输入文件; (3)建立输出文件。 (4)从输入文件中各读一条记录。 (5)生成一条新记录。 (6)将新记录写入输出文件。 (7)关闭全部文件。 条件:I(1)文件结束。

把操作和条件分配到程序结构图的适当位置

第五步 用伪码表示程序 Jackson方法中使用的伪码与Jackson图是完全对应的。针对三种基本程序结构,有相对应的Jackson伪码。 (1)顺序结构 A seq B C D A end

(2)选择结构 (3)重复结构 A select condition1 B A or condition2 C A or condition3 D A end A iter until(或while) condition B A end

用Jackson伪码描述的程序: 产生新文件 seq 打开两个输入文件 从输入文件中各读一条记录 分析考生记录iter until文件结束 处理考生记录 seq 产生准考证号 产生姓名 产生通讯地址

产生考分 生成一条新记录 将新记录写入输出文件 从输入文件中各读一条记录 处理考生记录 end 关闭全部文件 停止 产生新文件 end