【教学课件】第七章详细设计.ppt
《【教学课件】第七章详细设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第七章详细设计.ppt(58页珍藏版)》请在三一办公上搜索。
1、详细设计,一、结构化程序设计思想1.结构化程序设计的提出Dijkstra在1965年召开的IFIP国际信息处理联合会议上提出将GOTO语句取消。1968年ACM美国计算机协会发表了Dijkstra一篇文章:GOTO 语句有害论,并提出了3种基本控制结构。,2.什么是结构程序设计结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。它包括顺序、条件和重复三种基本控制结构。,三种基本的控制结构,其他常用的控制结构,2.逐步求精的含义详细设计阶段逐步求精的含义:把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。总体设计阶段逐步求精的含义:把
2、一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。,3.结构程序设计技术的优越性(1)自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,因此可以显著提高软件开发工程的成功率和生产率。(2)用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程开发出的程序有清晰的层次结构,因此容易阅读和理解。(3)不使用GO TO语句仅使用单入口单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,易于阅读和理解。,(4)控制结构有确定的逻辑模式,编写程序代码只限于很少几种直截了当的方式,因此源程序清晰流畅。(5)程序清晰和模块化使得在修改和重新设计一个软件时可以重用的代码量
3、最大。(6)程序的逻辑结构清晰,有利于程序正确性证明。,一、图形设计表示法1.程序流程图2.盒图(NS图)3.PAD图4.程序设计语言PDL,详细设计工具,1.程序流程图(1)程序流程图又称为程序框图,是早期软件设计的主要工具。(2)优点:对控制流程的描绘很直观,便于初学者掌握。结构清晰,可读性、可测试性和可维护性好。,程序流程图,(3)缺点:程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。程序流程图中用箭头代表控制流,因此程序员不受约束,可以完全不顾结构程序设计的精神,随意转移控制。程序流程图不易表示数据结构。,Case条件,(Repea
4、t-until),示例,程序流程图的标准符号,循环的标准符号 注解的使用,多出口判断,N-S图,2.盒图(N-S图)盒图由Nassi和Shneiderman提出,又称为N-S图,它有以下特点:(1)功能域(即一个特定控制结构的作用域)明确,很容易从盒图上看出。(2)不可能任意转移控制(3)很容易确定局部和全程数据的作用域(4)很容易表现嵌套关系,也可以表示模块的层次结构(5)盒图没有箭头,不可以随意转移控制,不允许违背程序设计的原则。,N-S图,N-S图也叫做盒图。五种基本控制结构由五种图形构件表示。,N-S图的嵌套定义形式,X8,X6,X7,Casei=2,3,4,X3 X4,Case i=
5、2,3,4,X3,X4,X2,d,e,c,X5,与a图等价的流程图,练习:写出下列伪码的盒图Start If P then while Q do F Enddo else block G N end blockEndifstop,P,Q,F,G,N,复习,图形设计表示法 1.程序流程图 2.盒图,PAD图,3.PAD图PAD图由日本日立公司在1973年发明,它是一种用于过程设计的表达式,它综合了流程图、盒图、Warnier图和伪码等技术的一些特点,在Pascal语言基础上发展起来的。它用二维树型结构的图来表示程序的控制流,比较容易翻译成程序代码。,生成PAD图的步骤:第一步要从系统设计的一种粗
6、略、模糊概念出发,将过程描述为过程顺序部分的表示、重复部分的表示和选择部分的表示。重复以上步骤,直到过程完全确定和详尽为止。,头脑中粗略模糊问题解的概念,顺序过程的细化循环过程的细化选择过程的细化,模糊,模糊,模糊,模糊,模糊,模糊,模糊,模糊,模糊,模糊,前处理,后处理,选择处理,PAD图的基本符号及其说明,PAD也设置了五种基本控制结构的图式,并允许递归使用。,PAD图转换为相应源程序的步骤:根据问题解画出PAD图;把PAD图看作横向生长的树,沿着树向前进,写出源程序。写源程序时的原则:遇处理框和子程序框直接写出其处理内容遇选择框或重复框按照表4-2所示的语言模式写出相应的语句,PAD图的
7、基本图示和C语言的标准模式(表4.2),(Q),(Q),表4.2(续表),(Q),H,(Q),H,PAD图转换为C语言源程序的实例,例1,边长为x,y,z的三角形面积公式为:P=S(S-x)(S-y)(S-z)其中 S=(x+y+z)/2 现有三个三角形,它们的边长分别为a1,b1,c1;a2,b2,c2;a3,b3,c3,求这三个三角形面积之和。,/*file:y9-9,c*/,#include“stdio.h”,Main(),Float p();,Float a1,b1,c1,a2,b2,c2,a3,b3,c3,sum;,Scanf(“%f%f%f%f%f%f%f%f%f”,ab,/*fi
8、le:y9-9,c*/,#include“stdio.h”,Main(),Float p();,Float a1,b1,c1,a2,b2,c2,a3,b3,c3,sum;,Scanf(“%f%f%f%f%f%f%f%f%f”,&a1,&b1,&c1,&a2,&b2,&c2,&a3,&b3,&c3,);,Extern float sqrt();,Printf(%f”,sum);,Float(p(x,y,z),Float x,y,z;,Sum=p(a1,b1,c1)+p(a2,b2,c2)+p(a3,b3,c31);,ab,Extern float sqrt();,Printf(%f”,sum);
9、,Float(p(x,y,z),Float x,y,z;,Sum=p(a1,b1,c1)+p(a2,b2,c2)+p(a3,b3,c3);,cd,Return(s1);,Float s,s1;,S=(x+y+z)/2;,S1=sqrt(s*(s-x)*(s-y)*(s-z);,cd,Return(s1);,Float s,s1;,S=(x+y+z)/2;,S1=sqrt(s*(s-x)*(s-y)*(s-z);,/*file:y9-9,c*/,#include“stdio.h”,Main(),Float p();,Float a1,b1,c1,a2,b2,c2,a3,b3,c3,sum;,Sc
10、anf(“%f%f%f%f%f%f%f%f%f”,&a1,&b1,&c1,&a2,&b2,&c2,&a3,&b3,&c3,);,Extern float sqrt();,Printf(%f”,sum);,Float(p(x,y,z),Float x,y,z;,Sum=p(a1,b1,c1)+p(a2,b2,c2)+p(a3,b3,c3);,Return(s1);,Float s,s1;,S=(x+y+z)/2;,S1=sqrt(s*(s-x)*(s-y)*(s-z);,输入数据:3 4 5 3 4 5 3 4 5 三个三角形面积之和:18.000000,例2,打印1968年出生的学生人数,并统
11、计全班男女学生各有多少。,/*file:10-38,c*/,#include“stdio.h”,#define Bsize 128,main();,Struct student,ab,Char sex,*name;,/*file:10-38,c*/,#include“stdio.h”,#define Bsize 128,main();,Struct student,Char sex,*name;,Int birthyear;,Class5;,Char bfbsize+2,*fp3;,Int i;,Int count68=0,countm=0,countf=0;,cd,Printf(“name,
12、sex(m,f),birth yearn”);,ab,Int birthyear;,Class5;,Char bfbsize+2,*fp3;,Int i;,Int count68=0,countm=0,countf=0;,Printf(“name,sex(m,f),birth yearn”);,cd,(I=0,I5,I+),gh,Basicget(stdin,bf,bsize,fp,3),Classi.name=fp0;,Classi.sex=*fp1;,Classi.birthyear=atio(fp2);,ef,(Classi.birthyear=1968),+count68;,For(I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第七 详细 设计
链接地址:https://www.31ppt.com/p-5660486.html