结构化:把完成某一个任务的复杂的过程分解为子过程,子过程再分解,一直到某些相对简单的过程。关键词:算法分解或过程分解。面向对象就是将一个复杂的系统分解为一些合适实体(对象),由这些实体共同提供系统的功能(有人称为业务,我觉得业务这个术语用在这里不太好,因为这容易使人产生疑惑)。关键词:对象。
任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构三种基本结构组成。在构造算法时,也仅以这三种结构作为基本单元,同时规定基本结构之间可以并列和互相包含,不允许交叉和从一个结构直接转到另一个结构的内部去。结构清晰,易于正确性验证和纠正程序中的错误,这种方法就是结构化方法,遵循这种方法的程序设计,就是结构化程序设计。遵循这种结构的程序只有一个输入口和一个输出口。
结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,用"很随意"的流程线来描述转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。为此提出了程序的三种基本结构。
在讨论算法时我们列举了程序的顺序、选择和循环三种控制流程,这就是结构化程序设计方法强调使用的三种基本结构。算法的实现过程是由一系列 *** 作组成的,这些 *** 作之间的执行次序就是程序的控制结构。1996年,计算机科学家Bohm和Jacopini证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。所以,这三种结构就被称为程序设计的三种基本结构。也是结构化程序设计必须采用的结构。
结构化程序中的任意基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。在程序的静态形式与动态执行流程之间具有良好的对应关系。
基本思想是:根据SA方法中的数据流图建立一个良好的模块结构图(例如SC图或软件层次方框图);运用模块化的设计原理控制系统的复杂性,即设计出模块相对独立的,模块结构图深度,宽度都适当的,单入口单出口的,单一功能的模块结构的软件结构图或软件层次方框图。此方法提供了描述软件系统的工具,提出了评价模块结构图质量的标准,即模块之间的联系越松散越好,而模块内各成分之间的联系越紧凑越好。
结构化设计的目的:使程序的结构尽可能反映要解决的问题的结构。
结构化设计的任务:把需求分析得到的数据流图DFD等变换为系统结构图(SC)。
1
顺序结构:只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行
2
循环结构:在程序中需要反复执行某个功能而设置的一种程序结构
3
选择结构:用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程
自己百度下啊。。。看看再总结下。。。以下看看,是否对你有帮助
1思想的区别
结构化程序设计
思想:在编程之前,先对程序系统根据业务需要进行整体的规划,描述出系统的流程。对程序系统进行模块化分和功能分配。设计出各种图表,指明数据的流向。
缺点:
1)缺少扩展性:进行程序设计的时候只将系统着眼于现有业务功能的实现,没有考虑到系统将来的业务变化情况。
2)灵活性差:进行程序设计,时没有对软件的系统的设计和实现进行合理的分工。
3)违反职能均衡原则。
面向对象程序设计
思想:在进行程序开发之前,先将程序的业务变化进行合理的分析,将程序中的代码与现实中的事物结构特征结合起来考虑。
优点:实现了程序系统的可扩展性,可重用性,可维护性。
缺点:体系庞大,难以掌握。
2面向对象程序设计和结构化程序设计应用程序的区别
区别:对数据和对数据的处理的区别
面向对象应用程序将程序中的数据和对数据的 *** 作描述为一个整体,即类。
c语言就是结构化的程序设计语言
有三种结构,分别是:
顺序结构(一条条语句,有逻辑的顺序写下来;
循环结构(for/while/dowhile 这三种循环结构; 可以嵌套循环
分支结构(switch/if/if-else/if--else if--else;可以嵌套分支
由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。
按照结构化程序设计的观点,任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合: 顺序结构、选择结构和循环结构来实现。
结构化程序设计的基本思想是采用"自顶向下,逐步求精"的程序设计方法和"单入口单出口"的控制结构
问题一:什么叫结构化程序设计?它的主要内容是什么? 结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使处面向过程的方法来开发和维护都将非常困难
问题二:什么是结构化程序设计方法? 一个结构化程序就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、阅读、
修改和维护。这就减少了程序出错的机会,提高了程序的可靠性,保证了程序的质量。
结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。怎样才能得到一个结构化的程序呢如果我们面临一
个复杂的问题,是难以一下子写出一个层次分明、结构清晰、算法正确的程序的。结构化程序设计方法的基本思路是,把一个复
杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。
具体说,采取以下方法保证得到结构化的程序。
(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。
在接受一个任务后应怎样着手进行呢有两种不同的方法:一种是白顶向下,逐步细化;―种是自下而上,逐步积累。以写文章为
例来说明这个问题。有的人胸有全局,先没想好整个文章分成哪几个部分,然后再进一步考虑每一部分分成哪几节,每一节分成哪
几段,每一段应包含什么内容,用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫做
“自顶向下,逐步细化”。
另有些人写文章时不拟提纲,如同写信一样提起笔就写,想到哪里就写到哪里,直到他认为把想写的内容都写出来了为止。
这种方法叫做“自下而上,逐步积累”。
显然,用第一种方法考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改
只需找出该部分,修改有关段落即可,与其他部分无关。我们提倡用这种方法设计程序。这就是用工程的方法设计程序。
我们应当掌握自顶向下、逐步细化的设计方法。这种设计方法的过程是将问题求解由抽象逐步具体化的过程。
用这种方法便于验证算法的正确性,在向下一层展开之前应仔细检查本层设计是否正确,只有上一层是正确的才能向下细化。
如果每一层设计都没有问题,则整个算法就 正确的。由于每一层向下细化时都不太复杂,因此容易保证整个算法的正确性检查
时也是由上而下逐层检查,这样做,思路清楚,有条不紊地一步一步进行,既严谨又方便。
举一个例子来说明这种方法的应用。
例 将1到1000之间的素数打印出来。
我们已在本章中讨论过判别素数的方法,现在采用“筛法”来求素数表。所谓“筛法”指的是“埃拉托色尼(Eratosthenes)筛法”
他是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到1000全部整数,然后逐个判断它们是否素数,找出一个非素数,就
把它 挖掉,最后剩下的就是素数
具体作法如下:
(1) 先将1挖掉(因为1不(2) 是素数)。
(3) 用2去除它后面的各个数,(4) 把能被2整除的数挖掉,(5) 即把2 的倍(6) 数挖掉。
(7) 用3去除它后面各数,(8) 把3的倍(9) 数挖掉
(10) 分别用4、5…各数作为除数去除这些数以后个各数。这个过程一直进行到除数后面的数已全被挖掉为止。
上面的算法可表示为:
(1) 挖去1;
(2) 用刚才被挖去的数的下一个数p去除p后面各数,(3) 把p的倍(4) 数挖掉;
(5) 检查p是否小于√n的整数部分(如果n=1000,(6) 则检查p∠31?),(7)如果是则返回(2)继续执行,(8)否则
就结束;
(9) 之上盛夏的数就是素数。>>
问题三:结构化程序设计的工作原理是什么? 是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。
中文名:结构化程序设计
外文名:structured programming
提出人:EWDijikstra
时间:1965年
分享
概述
概念
其概念最早由EWDijikstra在1965年提出的,是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。结构化程序设计主要强调的是程序的易读性。
内容
详细描述处理过程常用三种工具:图形、表格和语言。
图形:程序流程图、N-S图、PAD图 表格:判定表
语言:过程设计语言(PDL)
结构化程序设计曾被称为软件发展中的第三个里程碑。该方法的要点是:
(1) 主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的“结构化程序”,严格控制GOTO语句的使用。用这样的方法编出的程序在结构上具有以下效果:
a 以控制结构为单位,只有一个入口,一个出口,所以能独立地理解这一部分。
b 能够以控制结构为单位,从上到下顺序地阅读程序文本。
c由于程序的静态描述与执行时的控制流程容易对应,所以能够方便正确地理解程序的动作。
(2)“自顶而下,逐步求精”的设计思想,其出发点是从问题的总体目标开始,抽象低层的细节,先专心构造高层的结构,然后再一层一层地分解和细化。这使设计者能把握主题,高屋建瓴,避免一开始就陷入复杂的细节中,使复杂的设计过程变得简单明了,过程的结果也容易做到正确可靠。
(3)“独立功能,单出、入口”的模块结构,减少模块的相互联系使模块可作为插件或积木使用,降低程序的复杂性,提高可靠性。程序编写时,所有模块的功能通过相应的子程序(函数或过程)的代码来实现。程序的主体是子程序层次库,它与功能模块的抽象层次相对应,编码原则使得程序流程简洁、清晰,增强可读性。
(4) 主程序员组。
其中(1)、(2)是解决程序结构规范化问题;(3)是解决将大划小,将难化简的求解方法问题;(4)是解决软件开发的人员组织结构问题。
模型
结构化程序设计通常使用自上往下的设计模型,开发员将整个程序结构映射到单个小部分。已定义的函数或相似函数的 在单个模块或字模块中编码,这意味着,代码能够更有效的载入存储器,模块能在其它程序中再利用。模块单独测试之后,与其它模块整合起来形成整个程序组织。
程序流程遵循简单的层次化模型,采用“for”、“repeat”、“while”等循环结构,鼓励使用“Go To”语句。几乎任何语言都能使用结构化程序设计技术来避免非结构化语言的通常陷阱。非结构化程序设计必须依赖于开发人员避免结构问题,从而导致程序组织较差。大多数现代过程式语言都鼓励结构化程序设计。
基本结构
结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。
顺序结构
顺序结构表示程序中的各 *** 作是按照它们出现的先后顺序执行的。
选择结构
选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。
循环结构
循环结构表示程序反复执行某个或某些 *** 作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:什么情况下执行循环?哪些 *** 作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环。
当型循环:表示先判断条件,当满足给定的>>
问题四:结构化程序设计的三种基本结构是什么。各有什么特点 顺序结构、分支结构、循环结构
顺序结构就是从头到尾一次执行每一个语句
分支结构根据不同的条件执行不同的语句或者语句体
循环结构就是重复的执行语句或者语句体,达到重复执行一类 *** 作的目的
问题五:什么是结构化程序设计 结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。结构化程序设计是过程式程序设计的一个子集,它对写入的程序使用逻辑结构,使得理解和修改更有效更容易。结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。结构化程序设计曾被称为软件发展中的第三个里程碑。结构化程序设计通常使用自上往下的设计模型,开发员将整个程序结构映射到单个小部分。当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处。
问题六:结构化程序设计原则 1.自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。 2.逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化。 3.模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。 4.限制使用goto语句
问题七:结构化程序设计的目的构成与方法 结构化程序设计的目的:通过设计结构良好的程序,以程序静态的良好的结构保证程序动态执行的正确性,使程序易理解、易调试、易维护,以提高软件开发的效率,减少出错率。构成:控制结构+数据结构,控制结构有顺序、选择、循环结构。方法:模块丁,自顶向下,自底向上。
问题八:结构化与非结构化程序的区别? 结构化就是把整体分布,把每部分都解决
问题九:什么叫结构化程序设计?它的主要内容是什么? 结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使处面向过程的方法来开发和维护都将非常困难
问题十:什么是结构化程序设计方法? 一个结构化程序就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、阅读、
修改和维护。这就减少了程序出错的机会,提高了程序的可靠性,保证了程序的质量。
结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。怎样才能得到一个结构化的程序呢如果我们面临一
个复杂的问题,是难以一下子写出一个层次分明、结构清晰、算法正确的程序的。结构化程序设计方法的基本思路是,把一个复
杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。
具体说,采取以下方法保证得到结构化的程序。
(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。
在接受一个任务后应怎样着手进行呢有两种不同的方法:一种是白顶向下,逐步细化;―种是自下而上,逐步积累。以写文章为
例来说明这个问题。有的人胸有全局,先没想好整个文章分成哪几个部分,然后再进一步考虑每一部分分成哪几节,每一节分成哪
几段,每一段应包含什么内容,用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫做
“自顶向下,逐步细化”。
另有些人写文章时不拟提纲,如同写信一样提起笔就写,想到哪里就写到哪里,直到他认为把想写的内容都写出来了为止。
这种方法叫做“自下而上,逐步积累”。
显然,用第一种方法考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改
只需找出该部分,修改有关段落即可,与其他部分无关。我们提倡用这种方法设计程序。这就是用工程的方法设计程序。
我们应当掌握自顶向下、逐步细化的设计方法。这种设计方法的过程是将问题求解由抽象逐步具体化的过程。
用这种方法便于验证算法的正确性,在向下一层展开之前应仔细检查本层设计是否正确,只有上一层是正确的才能向下细化。
如果每一层设计都没有问题,则整个算法就 正确的。由于每一层向下细化时都不太复杂,因此容易保证整个算法的正确性检查
时也是由上而下逐层检查,这样做,思路清楚,有条不紊地一步一步进行,既严谨又方便。
举一个例子来说明这种方法的应用。
例 将1到1000之间的素数打印出来。
我们已在本章中讨论过判别素数的方法,现在采用“筛法”来求素数表。所谓“筛法”指的是“埃拉托色尼(Eratosthenes)筛法”
他是古希腊的著名数学家。他采取的方法是,在一张纸上写上1到1000全部整数,然后逐个判断它们是否素数,找出一个非素数,就
把它 挖掉,最后剩下的就是素数
具体作法如下:
(1) 先将1挖掉(因为1不(2) 是素数)。
(3) 用2去除它后面的各个数,(4) 把能被2整除的数挖掉,(5) 即把2 的倍(6) 数挖掉。
(7) 用3去除它后面各数,(8) 把3的倍(9) 数挖掉
(10) 分别用4、5…各数作为除数去除这些数以后个各数。这个过程一直进行到除数后面的数已全被挖掉为止。
上面的算法可表示为:
(1) 挖去1;
(2) 用刚才被挖去的数的下一个数p去除p后面各数,(3) 把p的倍(4) 数挖掉;
(5) 检查p是否小于√n的整数部分(如果n=1000,(6) 则检查p∠31?),(7)如果是则返回(2)继续执行,(8)否则
就结束;
(9) 之上盛夏的数就是素数。>>
结构化程序设计是一种基于模块化和层次化的编程方法,其核心原则包括以下几点:
1、单一功能原则(Single Responsibility Principle, SRP):每个模块或函数只应该负责一个单一的功能,以确保代码的清晰性和可维护性。
2、开放封闭原则(Open-Closed Principle, OCP):软件实体(类、模块等)应该对扩展开放,对修改关闭,以便于系统的升级和维护。
3、里氏替换原则(Liskov Substitution Principle, LSP):子类对象能够替换基类对象并且仍然保持原来的行为,以确保代码的稳定性和可靠性。
4、接口隔离原则(Interface Segregation Principle, ISP):应该将客户端不需要的接口独立来,以避免客户端对不必要的接口产生依赖。
5、依赖倒置原则(Dependency Inversion Principle, DIP):高层模块不应该依赖低层模块,而应该通过抽象来依赖接口,以提高代码的灵活性和可复用性。
总之,结构化程序设计注重代码的可读性、可维护性和可扩展性,通过分解复杂问题为简单的模块和函数,并遵循一定的设计原则和规范,使得代码更加清晰、易懂、易于测试和调试。
结构化程序设计可以应用于多个领域和情境,包括但不限于以下几个方面:
1、软件开发:在软件开发过程中,可以采用结构化编程的思想和原则,通过分解复杂问题为简单的模块和函数,并尽可能地遵循一定的设计规范,使得代码更加清晰、易懂、易于测试和调试,从而提高软件的质量和可维护性。
2、算法设计:在算法设计和优化过程中,可以运用结构化编程的模块化和层次化思想,将大问题划分为小问题,逐步求解和优化,从而提高算法的效率和可扩展性。
3、数据库设计:在数据库设计和管理过程中,可以采用结构化编程的数据抽象和规范化思想,设计出更加规范、高效、可维护的数据库结构,以满足各种业务需求。
4、Web开发:在Web开发过程中,可以采用MVC(Model-View-Controller)架构,即将业务逻辑、数据模型和表现层分离开来,有利于代码的复用和扩展,提高Web应用的可维护性和易用性。
总之,结构化程序设计的思想和原则可以应用于各个领域和情境,帮助开发人员设计出更加清晰、高效、可维护的程序和系统。
以上就是关于简述结构化的程序设计,面向对象的程序设计的基本思想全部的内容,包括:简述结构化的程序设计,面向对象的程序设计的基本思想、什么叫结构化的程序设计 它的主要内容是什么、结构化设计的基本思想与目的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)