适用于软工考研。张海藩软件工程导论中结构化中结构化非结构化看完这篇文章应该就懂了。

结构化程序的思想

  1. 程序由顺序、选择和循环这三种基本结构组成.且它们都具有以下特点:只有一个入口;只有一个出口;结构中无死循环,程序中三种基本结构之间形成顺序执行关系。

2. 一个大型程序应按功能分割成一些功能模块,并把这些模块按层次关系进行组织

3. 在程序设计时应采用自顶向下逐步细化的实施方法

结构化程序的优点

按结构化程序设计方法设计出的程序优点是: 结构良好,各模块间的关系清晰简单,每一模块内都由基本单元组成这样设计出的程序清晰易读,可理解性好,容易设计,容易验证其正确性,也容易维护同时,由于采用了“自顶向下、逐步细化”的实施方法,能有效地组织人们的智力,有利于软件的工程化开发。


非结构化化为结构化的三种方法

1. 当一个模块有多个入口时,可以分别对每一个入口端复制一个,并当成不同的模块看待,这样可将多入口模块分解为单入口模块

2. 遇到循环条件判断出口散乱时(即顺序循环条件有多个出口),可将两个判断条件合成为一个判断条件

此时程序有S2,S3两个出口

此思想很重要 : 此时条件一和条件二是顺序执行的。如果条件一和条件二在同一级别上,那么就算有S2和S3两个出口,在逻辑上也可以看做为一个出口,程序仍是结构化的(见下图,虽然也是S2,S3,不过在同一级别上,仍是结构化的)

‍♂️ 3. 如果把判断条件复合起来(即利用方法二)仍然无法解决问题的话,此时可利用一个标志变量来控制程序的执行路径

引入一个标志位 flag 当判断条件都执行完想要break时,就令flag=1,此时经过判断后可以退出。这样做的好处是无论有多少判断条件,想要退出该程序都必须经过flag判断,显而易见,这样设计的程序是结构化的。

感谢,侵删!

extjs 方法执行顺序_(软件工程)非结构化程序变为结构化程序的三种方法相关推荐

  1. python调用cmd执行命令_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  2. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  3. 华为交换机重制_华为交换机恢复出厂设置的三种方法

    原标题:华为交换机恢复出厂设置的三种方法 当交换机利旧使用时,一般会把交换机恢复出厂设置,并升级到最新版本. 准备工作 如果利旧的交换机是已经使用过的,可保存交换机恢复出厂设置前的配置,可用于交换机的 ...

  4. python 多因素方差分析_多因素方差分析估计平方和的三种方法

    在做多因素方差分析时,有三种方法计算平方和(以模型Y ~ A + B + A:B为例,即先输入A,再输入B,最后输入交互项A:B):Type Ⅰ Sums of Squares(Type1, sequ ...

  5. mysql如何防止插入重复数据_防止MySQL重复插入数据的三种方法

    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...

  6. python可以播放音乐吗_详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  7. mysql 禁止插入重复数据_防止MySQL重复插入数据的三种方法

    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...

  8. python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法

    0. 实验环境Ubuntu 16.04 Matlab R2015b 1. 借助于 mlab 库 安装方法非常简单,只需一行命令 sudo pip install mlab 即可. import num ...

  9. js 将图片置灰_让网页图片变灰色的三种方法

    我一直喜欢灰度图像因为我认为他们看起来更有艺术感.很多图片编辑如Photoshop很容易把你的彩色图像变成灰度.甚至有选择调整颜色深度和色调.不幸的是,这样的效果想做在网络上并不容易,因为浏览器有差异 ...

最新文章

  1. android 桌面提醒功能,安卓手机桌面上使用的工作提醒软件选择哪个?
  2. 大规模分布式消息中间件考虑点
  3. Android studio 不显示自定义View 的提示
  4. U9cloud RPA加持 智领未来
  5. IntelliJ IDEA学习记录
  6. html中span的值不显示,为什么加上form标签之后就不能在span中显示获得值了?
  7. oracle自带调优,oracle 参数调优
  8. JAXB自定义绑定– Java.util.Date / Spring 3序列化
  9. 随机邮箱_msgsafe - 一个处于半死不活状态的加密邮箱
  10. 前沿 | 张钹院士畅谈清华大学如何办人工智能专业
  11. eclipse spring mysql,eclipse环境下的springboot框架+mybatis访问MySQL报错空指针
  12. 2017年(毕业生)暑期实习信息汇总
  13. c++全局变量的声明和使用
  14. Springboot接收ajax提交JSON数组
  15. Hive(二)——数据类型与文件格式
  16. 阿里云ECS服务器怎么安装宝塔面板?
  17. 冬至了,回家羊肉。:)
  18. Nvivo的使用学习
  19. VSS 和VDS 交换机区别
  20. vue校验输入框不能有中文

热门文章

  1. ssh集群服务器免密登录
  2. theadClasses设置Bootstrap Table表头样式
  3. day 5 名片管理系统-文件版
  4. 关于linux开机自启
  5. Ajax Post请求实例
  6. 【Java】【编译】javac编译源代码时,若源文件使用了别的java源代码的函数,javac会自动关联。...
  7. 一只火鸡带你了解大数据预测(经典)
  8. [转载] python3.6版本生成的python脚本如何打包为可独立执行的exe程序
  9. [转载] 机器学习之主成分分析PCA(Python实现)
  10. ALTERA 命名规则