软件工程:结构化程序设计技术

📌目录



⚖️ 结构化程序设计技术:构建清晰代码的基石

结构化程序设计(Structured Programming)是一种程序设计方法学,它采用自顶向下、逐步求精的设计方法,使用顺序、选择、循环三种基本控制结构来编写程序。本文将详细介绍结构化程序设计的概念、原则、方法和技术要点。

🎯 一、结构化程序设计概述

(一)结构化程序设计的定义

结构化程序设计是一种程序设计方法学,它采用自顶向下、逐步求精的设计方法,使用顺序、选择、循环三种基本控制结构来编写程序。

概念理解:
#mermaid-svg-frfiKWXGDS4WeNgf{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-frfiKWXGDS4WeNgf .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-frfiKWXGDS4WeNgf .error-icon{fill:#552222;}#mermaid-svg-frfiKWXGDS4WeNgf .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-frfiKWXGDS4WeNgf .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-frfiKWXGDS4WeNgf .marker{fill:#333333;stroke:#333333;}#mermaid-svg-frfiKWXGDS4WeNgf .marker.cross{stroke:#333333;}#mermaid-svg-frfiKWXGDS4WeNgf svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-frfiKWXGDS4WeNgf p{margin:0;}#mermaid-svg-frfiKWXGDS4WeNgf .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster-label text{fill:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster-label span{color:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster-label span p{background-color:transparent;}#mermaid-svg-frfiKWXGDS4WeNgf .label text,#mermaid-svg-frfiKWXGDS4WeNgf span{fill:#333;color:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .node rect,#mermaid-svg-frfiKWXGDS4WeNgf .node circle,#mermaid-svg-frfiKWXGDS4WeNgf .node ellipse,#mermaid-svg-frfiKWXGDS4WeNgf .node polygon,#mermaid-svg-frfiKWXGDS4WeNgf .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-frfiKWXGDS4WeNgf .rough-node .label text,#mermaid-svg-frfiKWXGDS4WeNgf .node .label text,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape .label,#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape .label{text-anchor:middle;}#mermaid-svg-frfiKWXGDS4WeNgf .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-frfiKWXGDS4WeNgf .rough-node .label,#mermaid-svg-frfiKWXGDS4WeNgf .node .label,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape .label,#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape .label{text-align:center;}#mermaid-svg-frfiKWXGDS4WeNgf .node.clickable{cursor:pointer;}#mermaid-svg-frfiKWXGDS4WeNgf .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-frfiKWXGDS4WeNgf .arrowheadPath{fill:#333333;}#mermaid-svg-frfiKWXGDS4WeNgf .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-frfiKWXGDS4WeNgf .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-frfiKWXGDS4WeNgf .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-frfiKWXGDS4WeNgf .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-frfiKWXGDS4WeNgf .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-frfiKWXGDS4WeNgf .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-frfiKWXGDS4WeNgf .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster text{fill:#333;}#mermaid-svg-frfiKWXGDS4WeNgf .cluster span{color:#333;}#mermaid-svg-frfiKWXGDS4WeNgf div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-frfiKWXGDS4WeNgf .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-frfiKWXGDS4WeNgf rect.text{fill:none;stroke-width:0;}#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape p,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-frfiKWXGDS4WeNgf .icon-shape .label rect,#mermaid-svg-frfiKWXGDS4WeNgf .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-frfiKWXGDS4WeNgf .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-frfiKWXGDS4WeNgf .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-frfiKWXGDS4WeNgf :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 结构化程序设计
自顶向下
逐步求精
基本控制结构
从顶层开始设计
逐步细化实现
顺序、选择、循环

(二)结构化程序设计的提出

历史背景:

时间 事件 人物
1965年 提出goto语句有害论 Dijkstra
1966年 证明基本控制结构 Bohm和Jacopini
1970年代 结构化程序设计普及 Wirth等

(三)结构化程序设计的特点

设计特点:

特点 说明
自顶向下 从顶层开始设计
逐步求精 逐步细化实现
模块化 程序分解为模块
结构化 使用基本控制结构

📦 二、基本控制结构

(一)三种基本控制结构

基本控制结构:

结构化程序设计使用三种基本控制结构。
#mermaid-svg-fVlC7KLVn8E55GHW{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-fVlC7KLVn8E55GHW .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-fVlC7KLVn8E55GHW .error-icon{fill:#552222;}#mermaid-svg-fVlC7KLVn8E55GHW .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-fVlC7KLVn8E55GHW .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-fVlC7KLVn8E55GHW .marker{fill:#333333;stroke:#333333;}#mermaid-svg-fVlC7KLVn8E55GHW .marker.cross{stroke:#333333;}#mermaid-svg-fVlC7KLVn8E55GHW svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-fVlC7KLVn8E55GHW p{margin:0;}#mermaid-svg-fVlC7KLVn8E55GHW .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster-label text{fill:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster-label span{color:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster-label span p{background-color:transparent;}#mermaid-svg-fVlC7KLVn8E55GHW .label text,#mermaid-svg-fVlC7KLVn8E55GHW span{fill:#333;color:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .node rect,#mermaid-svg-fVlC7KLVn8E55GHW .node circle,#mermaid-svg-fVlC7KLVn8E55GHW .node ellipse,#mermaid-svg-fVlC7KLVn8E55GHW .node polygon,#mermaid-svg-fVlC7KLVn8E55GHW .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-fVlC7KLVn8E55GHW .rough-node .label text,#mermaid-svg-fVlC7KLVn8E55GHW .node .label text,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape .label,#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape .label{text-anchor:middle;}#mermaid-svg-fVlC7KLVn8E55GHW .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-fVlC7KLVn8E55GHW .rough-node .label,#mermaid-svg-fVlC7KLVn8E55GHW .node .label,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape .label,#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape .label{text-align:center;}#mermaid-svg-fVlC7KLVn8E55GHW .node.clickable{cursor:pointer;}#mermaid-svg-fVlC7KLVn8E55GHW .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-fVlC7KLVn8E55GHW .arrowheadPath{fill:#333333;}#mermaid-svg-fVlC7KLVn8E55GHW .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-fVlC7KLVn8E55GHW .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-fVlC7KLVn8E55GHW .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-fVlC7KLVn8E55GHW .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-fVlC7KLVn8E55GHW .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-fVlC7KLVn8E55GHW .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-fVlC7KLVn8E55GHW .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster text{fill:#333;}#mermaid-svg-fVlC7KLVn8E55GHW .cluster span{color:#333;}#mermaid-svg-fVlC7KLVn8E55GHW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-fVlC7KLVn8E55GHW .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-fVlC7KLVn8E55GHW rect.text{fill:none;stroke-width:0;}#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape p,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-fVlC7KLVn8E55GHW .icon-shape .label rect,#mermaid-svg-fVlC7KLVn8E55GHW .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-fVlC7KLVn8E55GHW .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-fVlC7KLVn8E55GHW .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-fVlC7KLVn8E55GHW :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 基本控制结构
顺序结构
选择结构
循环结构
按顺序执行
条件选择
重复执行

(二)顺序结构

顺序结构是最基本的控制结构,按顺序执行。

顺序结构特点:

特点 说明
顺序执行 按顺序依次执行
单入口单出口 一个入口,一个出口
无分支 没有分支选择

顺序结构示例:
#mermaid-svg-JOVHebCEswCXnm89{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-JOVHebCEswCXnm89 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-JOVHebCEswCXnm89 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-JOVHebCEswCXnm89 .error-icon{fill:#552222;}#mermaid-svg-JOVHebCEswCXnm89 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-JOVHebCEswCXnm89 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-JOVHebCEswCXnm89 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-JOVHebCEswCXnm89 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-JOVHebCEswCXnm89 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-JOVHebCEswCXnm89 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-JOVHebCEswCXnm89 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-JOVHebCEswCXnm89 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-JOVHebCEswCXnm89 .marker.cross{stroke:#333333;}#mermaid-svg-JOVHebCEswCXnm89 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-JOVHebCEswCXnm89 p{margin:0;}#mermaid-svg-JOVHebCEswCXnm89 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-JOVHebCEswCXnm89 .cluster-label text{fill:#333;}#mermaid-svg-JOVHebCEswCXnm89 .cluster-label span{color:#333;}#mermaid-svg-JOVHebCEswCXnm89 .cluster-label span p{background-color:transparent;}#mermaid-svg-JOVHebCEswCXnm89 .label text,#mermaid-svg-JOVHebCEswCXnm89 span{fill:#333;color:#333;}#mermaid-svg-JOVHebCEswCXnm89 .node rect,#mermaid-svg-JOVHebCEswCXnm89 .node circle,#mermaid-svg-JOVHebCEswCXnm89 .node ellipse,#mermaid-svg-JOVHebCEswCXnm89 .node polygon,#mermaid-svg-JOVHebCEswCXnm89 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-JOVHebCEswCXnm89 .rough-node .label text,#mermaid-svg-JOVHebCEswCXnm89 .node .label text,#mermaid-svg-JOVHebCEswCXnm89 .image-shape .label,#mermaid-svg-JOVHebCEswCXnm89 .icon-shape .label{text-anchor:middle;}#mermaid-svg-JOVHebCEswCXnm89 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-JOVHebCEswCXnm89 .rough-node .label,#mermaid-svg-JOVHebCEswCXnm89 .node .label,#mermaid-svg-JOVHebCEswCXnm89 .image-shape .label,#mermaid-svg-JOVHebCEswCXnm89 .icon-shape .label{text-align:center;}#mermaid-svg-JOVHebCEswCXnm89 .node.clickable{cursor:pointer;}#mermaid-svg-JOVHebCEswCXnm89 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-JOVHebCEswCXnm89 .arrowheadPath{fill:#333333;}#mermaid-svg-JOVHebCEswCXnm89 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-JOVHebCEswCXnm89 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-JOVHebCEswCXnm89 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JOVHebCEswCXnm89 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-JOVHebCEswCXnm89 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JOVHebCEswCXnm89 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-JOVHebCEswCXnm89 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-JOVHebCEswCXnm89 .cluster text{fill:#333;}#mermaid-svg-JOVHebCEswCXnm89 .cluster span{color:#333;}#mermaid-svg-JOVHebCEswCXnm89 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-JOVHebCEswCXnm89 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-JOVHebCEswCXnm89 rect.text{fill:none;stroke-width:0;}#mermaid-svg-JOVHebCEswCXnm89 .icon-shape,#mermaid-svg-JOVHebCEswCXnm89 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JOVHebCEswCXnm89 .icon-shape p,#mermaid-svg-JOVHebCEswCXnm89 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-JOVHebCEswCXnm89 .icon-shape .label rect,#mermaid-svg-JOVHebCEswCXnm89 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JOVHebCEswCXnm89 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-JOVHebCEswCXnm89 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-JOVHebCEswCXnm89 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 开始
语句1
语句2
语句3
结束

代码示例:

python 复制代码
# 顺序结构示例
a = 10        # 语句1
b = 20        # 语句2
c = a + b     # 语句3
print(c)      # 语句4

(三)选择结构

选择结构根据条件选择执行路径。

选择结构类型:

类型 说明 示例
if结构 单分支选择 if (条件) 语句
if-else结构 双分支选择 if (条件) 语句1 else 语句2
switch结构 多分支选择 switch (变量) case ...

if-else结构示例:
#mermaid-svg-Ox1muIjYG7R11MKv{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Ox1muIjYG7R11MKv .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Ox1muIjYG7R11MKv .error-icon{fill:#552222;}#mermaid-svg-Ox1muIjYG7R11MKv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Ox1muIjYG7R11MKv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Ox1muIjYG7R11MKv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Ox1muIjYG7R11MKv .marker.cross{stroke:#333333;}#mermaid-svg-Ox1muIjYG7R11MKv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Ox1muIjYG7R11MKv p{margin:0;}#mermaid-svg-Ox1muIjYG7R11MKv .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster-label text{fill:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster-label span{color:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster-label span p{background-color:transparent;}#mermaid-svg-Ox1muIjYG7R11MKv .label text,#mermaid-svg-Ox1muIjYG7R11MKv span{fill:#333;color:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .node rect,#mermaid-svg-Ox1muIjYG7R11MKv .node circle,#mermaid-svg-Ox1muIjYG7R11MKv .node ellipse,#mermaid-svg-Ox1muIjYG7R11MKv .node polygon,#mermaid-svg-Ox1muIjYG7R11MKv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Ox1muIjYG7R11MKv .rough-node .label text,#mermaid-svg-Ox1muIjYG7R11MKv .node .label text,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape .label,#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape .label{text-anchor:middle;}#mermaid-svg-Ox1muIjYG7R11MKv .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Ox1muIjYG7R11MKv .rough-node .label,#mermaid-svg-Ox1muIjYG7R11MKv .node .label,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape .label,#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape .label{text-align:center;}#mermaid-svg-Ox1muIjYG7R11MKv .node.clickable{cursor:pointer;}#mermaid-svg-Ox1muIjYG7R11MKv .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Ox1muIjYG7R11MKv .arrowheadPath{fill:#333333;}#mermaid-svg-Ox1muIjYG7R11MKv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Ox1muIjYG7R11MKv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Ox1muIjYG7R11MKv .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Ox1muIjYG7R11MKv .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Ox1muIjYG7R11MKv .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Ox1muIjYG7R11MKv .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Ox1muIjYG7R11MKv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster text{fill:#333;}#mermaid-svg-Ox1muIjYG7R11MKv .cluster span{color:#333;}#mermaid-svg-Ox1muIjYG7R11MKv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Ox1muIjYG7R11MKv .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Ox1muIjYG7R11MKv rect.text{fill:none;stroke-width:0;}#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape p,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Ox1muIjYG7R11MKv .icon-shape .label rect,#mermaid-svg-Ox1muIjYG7R11MKv .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Ox1muIjYG7R11MKv .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Ox1muIjYG7R11MKv .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Ox1muIjYG7R11MKv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是
否
开始
条件?
语句1
语句2
结束

代码示例:

python 复制代码
# 选择结构示例
score = 85

if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
else:
    grade = 'D'

print(f"成绩等级: {grade}")

(四)循环结构

循环结构重复执行某段代码。

循环结构类型:

类型 说明 特点
while循环 先判断后执行 可能不执行
do-while循环 先执行后判断 至少执行一次
for循环 计数循环 适合已知次数

while循环示例:
#mermaid-svg-NUbBw4MByI4YnewH{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-NUbBw4MByI4YnewH .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-NUbBw4MByI4YnewH .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-NUbBw4MByI4YnewH .error-icon{fill:#552222;}#mermaid-svg-NUbBw4MByI4YnewH .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NUbBw4MByI4YnewH .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-NUbBw4MByI4YnewH .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NUbBw4MByI4YnewH .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NUbBw4MByI4YnewH .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-NUbBw4MByI4YnewH .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NUbBw4MByI4YnewH .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NUbBw4MByI4YnewH .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NUbBw4MByI4YnewH .marker.cross{stroke:#333333;}#mermaid-svg-NUbBw4MByI4YnewH svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NUbBw4MByI4YnewH p{margin:0;}#mermaid-svg-NUbBw4MByI4YnewH .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-NUbBw4MByI4YnewH .cluster-label text{fill:#333;}#mermaid-svg-NUbBw4MByI4YnewH .cluster-label span{color:#333;}#mermaid-svg-NUbBw4MByI4YnewH .cluster-label span p{background-color:transparent;}#mermaid-svg-NUbBw4MByI4YnewH .label text,#mermaid-svg-NUbBw4MByI4YnewH span{fill:#333;color:#333;}#mermaid-svg-NUbBw4MByI4YnewH .node rect,#mermaid-svg-NUbBw4MByI4YnewH .node circle,#mermaid-svg-NUbBw4MByI4YnewH .node ellipse,#mermaid-svg-NUbBw4MByI4YnewH .node polygon,#mermaid-svg-NUbBw4MByI4YnewH .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-NUbBw4MByI4YnewH .rough-node .label text,#mermaid-svg-NUbBw4MByI4YnewH .node .label text,#mermaid-svg-NUbBw4MByI4YnewH .image-shape .label,#mermaid-svg-NUbBw4MByI4YnewH .icon-shape .label{text-anchor:middle;}#mermaid-svg-NUbBw4MByI4YnewH .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-NUbBw4MByI4YnewH .rough-node .label,#mermaid-svg-NUbBw4MByI4YnewH .node .label,#mermaid-svg-NUbBw4MByI4YnewH .image-shape .label,#mermaid-svg-NUbBw4MByI4YnewH .icon-shape .label{text-align:center;}#mermaid-svg-NUbBw4MByI4YnewH .node.clickable{cursor:pointer;}#mermaid-svg-NUbBw4MByI4YnewH .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-NUbBw4MByI4YnewH .arrowheadPath{fill:#333333;}#mermaid-svg-NUbBw4MByI4YnewH .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-NUbBw4MByI4YnewH .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-NUbBw4MByI4YnewH .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NUbBw4MByI4YnewH .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-NUbBw4MByI4YnewH .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NUbBw4MByI4YnewH .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-NUbBw4MByI4YnewH .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-NUbBw4MByI4YnewH .cluster text{fill:#333;}#mermaid-svg-NUbBw4MByI4YnewH .cluster span{color:#333;}#mermaid-svg-NUbBw4MByI4YnewH div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-NUbBw4MByI4YnewH .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-NUbBw4MByI4YnewH rect.text{fill:none;stroke-width:0;}#mermaid-svg-NUbBw4MByI4YnewH .icon-shape,#mermaid-svg-NUbBw4MByI4YnewH .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-NUbBw4MByI4YnewH .icon-shape p,#mermaid-svg-NUbBw4MByI4YnewH .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-NUbBw4MByI4YnewH .icon-shape .label rect,#mermaid-svg-NUbBw4MByI4YnewH .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-NUbBw4MByI4YnewH .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-NUbBw4MByI4YnewH .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-NUbBw4MByI4YnewH :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是
否
开始
条件?
循环体
结束

代码示例:

python 复制代码
# while循环示例
i = 1
sum = 0
while i <= 100:
    sum = sum + i
    i = i + 1
print(f"1到100的和: {sum}")

# for循环示例
sum = 0
for i in range(1, 101):
    sum = sum + i
print(f"1到100的和: {sum}")

🌐 三、结构化程序设计的原则

(一)自顶向下原则

自顶向下原则:

从顶层开始设计,逐步细化。
#mermaid-svg-iUqAK5KHopuRhPCv{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-iUqAK5KHopuRhPCv .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-iUqAK5KHopuRhPCv .error-icon{fill:#552222;}#mermaid-svg-iUqAK5KHopuRhPCv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-iUqAK5KHopuRhPCv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-iUqAK5KHopuRhPCv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-iUqAK5KHopuRhPCv .marker.cross{stroke:#333333;}#mermaid-svg-iUqAK5KHopuRhPCv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-iUqAK5KHopuRhPCv p{margin:0;}#mermaid-svg-iUqAK5KHopuRhPCv .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster-label text{fill:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster-label span{color:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster-label span p{background-color:transparent;}#mermaid-svg-iUqAK5KHopuRhPCv .label text,#mermaid-svg-iUqAK5KHopuRhPCv span{fill:#333;color:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .node rect,#mermaid-svg-iUqAK5KHopuRhPCv .node circle,#mermaid-svg-iUqAK5KHopuRhPCv .node ellipse,#mermaid-svg-iUqAK5KHopuRhPCv .node polygon,#mermaid-svg-iUqAK5KHopuRhPCv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-iUqAK5KHopuRhPCv .rough-node .label text,#mermaid-svg-iUqAK5KHopuRhPCv .node .label text,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape .label,#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape .label{text-anchor:middle;}#mermaid-svg-iUqAK5KHopuRhPCv .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-iUqAK5KHopuRhPCv .rough-node .label,#mermaid-svg-iUqAK5KHopuRhPCv .node .label,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape .label,#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape .label{text-align:center;}#mermaid-svg-iUqAK5KHopuRhPCv .node.clickable{cursor:pointer;}#mermaid-svg-iUqAK5KHopuRhPCv .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-iUqAK5KHopuRhPCv .arrowheadPath{fill:#333333;}#mermaid-svg-iUqAK5KHopuRhPCv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-iUqAK5KHopuRhPCv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-iUqAK5KHopuRhPCv .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-iUqAK5KHopuRhPCv .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-iUqAK5KHopuRhPCv .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-iUqAK5KHopuRhPCv .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-iUqAK5KHopuRhPCv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster text{fill:#333;}#mermaid-svg-iUqAK5KHopuRhPCv .cluster span{color:#333;}#mermaid-svg-iUqAK5KHopuRhPCv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-iUqAK5KHopuRhPCv .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-iUqAK5KHopuRhPCv rect.text{fill:none;stroke-width:0;}#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape p,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-iUqAK5KHopuRhPCv .icon-shape .label rect,#mermaid-svg-iUqAK5KHopuRhPCv .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-iUqAK5KHopuRhPCv .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-iUqAK5KHopuRhPCv .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-iUqAK5KHopuRhPCv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 顶层模块
第二层模块
第二层模块
第三层模块
第三层模块
第三层模块

(二)逐步求精原则

逐步求精原则:

逐步细化,从抽象到具体。
#mermaid-svg-0ED40HC1Y3d5AGD4{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-0ED40HC1Y3d5AGD4 .error-icon{fill:#552222;}#mermaid-svg-0ED40HC1Y3d5AGD4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-0ED40HC1Y3d5AGD4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .marker.cross{stroke:#333333;}#mermaid-svg-0ED40HC1Y3d5AGD4 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-0ED40HC1Y3d5AGD4 p{margin:0;}#mermaid-svg-0ED40HC1Y3d5AGD4 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster-label text{fill:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster-label span{color:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster-label span p{background-color:transparent;}#mermaid-svg-0ED40HC1Y3d5AGD4 .label text,#mermaid-svg-0ED40HC1Y3d5AGD4 span{fill:#333;color:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .node rect,#mermaid-svg-0ED40HC1Y3d5AGD4 .node circle,#mermaid-svg-0ED40HC1Y3d5AGD4 .node ellipse,#mermaid-svg-0ED40HC1Y3d5AGD4 .node polygon,#mermaid-svg-0ED40HC1Y3d5AGD4 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .rough-node .label text,#mermaid-svg-0ED40HC1Y3d5AGD4 .node .label text,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape .label,#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape .label{text-anchor:middle;}#mermaid-svg-0ED40HC1Y3d5AGD4 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .rough-node .label,#mermaid-svg-0ED40HC1Y3d5AGD4 .node .label,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape .label,#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape .label{text-align:center;}#mermaid-svg-0ED40HC1Y3d5AGD4 .node.clickable{cursor:pointer;}#mermaid-svg-0ED40HC1Y3d5AGD4 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .arrowheadPath{fill:#333333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-0ED40HC1Y3d5AGD4 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-0ED40HC1Y3d5AGD4 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-0ED40HC1Y3d5AGD4 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster text{fill:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 .cluster span{color:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-0ED40HC1Y3d5AGD4 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-0ED40HC1Y3d5AGD4 rect.text{fill:none;stroke-width:0;}#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape p,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-0ED40HC1Y3d5AGD4 .icon-shape .label rect,#mermaid-svg-0ED40HC1Y3d5AGD4 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-0ED40HC1Y3d5AGD4 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-0ED40HC1Y3d5AGD4 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-0ED40HC1Y3d5AGD4 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 抽象描述
第一层细化
第二层细化
第三层细化
具体实现

(三)模块化原则

模块化原则:

将程序分解为独立模块。

要求 说明
功能独立 模块功能独立
接口简单 模块接口简单
高内聚 模块内部紧密
低耦合 模块间依赖少

(四)限制使用goto语句

限制goto原则:

goto语句使程序结构混乱,应限制使用。

goto的问题:

问题 说明
结构混乱 破坏程序结构
难以理解 程序难以理解
难以维护 程序难以维护
难以测试 程序难以测试

📊 四、结构化程序设计的方法

(一)设计方法

设计方法:
#mermaid-svg-TX8BamVLGl8TLWeI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-TX8BamVLGl8TLWeI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-TX8BamVLGl8TLWeI .error-icon{fill:#552222;}#mermaid-svg-TX8BamVLGl8TLWeI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-TX8BamVLGl8TLWeI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-TX8BamVLGl8TLWeI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-TX8BamVLGl8TLWeI .marker.cross{stroke:#333333;}#mermaid-svg-TX8BamVLGl8TLWeI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-TX8BamVLGl8TLWeI p{margin:0;}#mermaid-svg-TX8BamVLGl8TLWeI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster-label text{fill:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster-label span{color:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster-label span p{background-color:transparent;}#mermaid-svg-TX8BamVLGl8TLWeI .label text,#mermaid-svg-TX8BamVLGl8TLWeI span{fill:#333;color:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .node rect,#mermaid-svg-TX8BamVLGl8TLWeI .node circle,#mermaid-svg-TX8BamVLGl8TLWeI .node ellipse,#mermaid-svg-TX8BamVLGl8TLWeI .node polygon,#mermaid-svg-TX8BamVLGl8TLWeI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-TX8BamVLGl8TLWeI .rough-node .label text,#mermaid-svg-TX8BamVLGl8TLWeI .node .label text,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape .label,#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape .label{text-anchor:middle;}#mermaid-svg-TX8BamVLGl8TLWeI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-TX8BamVLGl8TLWeI .rough-node .label,#mermaid-svg-TX8BamVLGl8TLWeI .node .label,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape .label,#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape .label{text-align:center;}#mermaid-svg-TX8BamVLGl8TLWeI .node.clickable{cursor:pointer;}#mermaid-svg-TX8BamVLGl8TLWeI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-TX8BamVLGl8TLWeI .arrowheadPath{fill:#333333;}#mermaid-svg-TX8BamVLGl8TLWeI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-TX8BamVLGl8TLWeI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-TX8BamVLGl8TLWeI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TX8BamVLGl8TLWeI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-TX8BamVLGl8TLWeI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TX8BamVLGl8TLWeI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-TX8BamVLGl8TLWeI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster text{fill:#333;}#mermaid-svg-TX8BamVLGl8TLWeI .cluster span{color:#333;}#mermaid-svg-TX8BamVLGl8TLWeI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-TX8BamVLGl8TLWeI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-TX8BamVLGl8TLWeI rect.text{fill:none;stroke-width:0;}#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape p,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-TX8BamVLGl8TLWeI .icon-shape .label rect,#mermaid-svg-TX8BamVLGl8TLWeI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TX8BamVLGl8TLWeI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-TX8BamVLGl8TLWeI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-TX8BamVLGl8TLWeI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 结构化设计方法
自顶向下
逐步求精
模块化
从顶层开始
逐步细化
分解为模块

(二)设计步骤

设计步骤:

步骤 任务 产出
1 分析问题 问题分析
2 设计顶层 顶层结构
3 逐层细化 细化结构
4 编写代码 程序代码
5 测试调试 测试结果

(三)设计实例

实例:计算学生成绩

问题分析:

  • 输入:学生成绩列表
  • 处理:计算平均分、最高分、最低分
  • 输出:统计结果

自顶向下设计:

复制代码
主程序
├── 输入成绩
├── 计算统计
│   ├── 计算平均分
│   ├── 计算最高分
│   └── 计算最低分
└── 输出结果

逐步求精:

python 复制代码
# 第一层:主程序框架
def main():
    scores = input_scores()
    stats = calculate_statistics(scores)
    output_results(stats)

# 第二层:细化各模块
def input_scores():
    # 输入成绩
    pass

def calculate_statistics(scores):
    # 计算统计
    pass

def output_results(stats):
    # 输出结果
    pass

# 第三层:具体实现
def input_scores():
    scores = []
    n = int(input("请输入学生人数: "))
    for i in range(n):
        score = float(input(f"请输入第{i+1}个学生的成绩: "))
        scores.append(score)
    return scores

def calculate_statistics(scores):
    avg = sum(scores) / len(scores)
    max_score = max(scores)
    min_score = min(scores)
    return {'average': avg, 'max': max_score, 'min': min_score}

def output_results(stats):
    print(f"平均分: {stats['average']:.2f}")
    print(f"最高分: {stats['max']:.2f}")
    print(f"最低分: {stats['min']:.2f}")

if __name__ == "__main__":
    main()

💡 五、结构化程序设计的工具

(一)流程图

流程图是描述程序结构的图形工具。

流程图符号:

符号 含义 说明
椭圆 开始/结束 流程的开始和结束
矩形 处理 处理步骤
菱形 判断 条件判断
平行四边形 输入/输出 数据输入输出
箭头 流向 流程方向

流程图示例:
#mermaid-svg-GUJfJMk3yaUpz7AI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-GUJfJMk3yaUpz7AI .error-icon{fill:#552222;}#mermaid-svg-GUJfJMk3yaUpz7AI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GUJfJMk3yaUpz7AI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GUJfJMk3yaUpz7AI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GUJfJMk3yaUpz7AI .marker.cross{stroke:#333333;}#mermaid-svg-GUJfJMk3yaUpz7AI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GUJfJMk3yaUpz7AI p{margin:0;}#mermaid-svg-GUJfJMk3yaUpz7AI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster-label text{fill:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster-label span{color:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster-label span p{background-color:transparent;}#mermaid-svg-GUJfJMk3yaUpz7AI .label text,#mermaid-svg-GUJfJMk3yaUpz7AI span{fill:#333;color:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .node rect,#mermaid-svg-GUJfJMk3yaUpz7AI .node circle,#mermaid-svg-GUJfJMk3yaUpz7AI .node ellipse,#mermaid-svg-GUJfJMk3yaUpz7AI .node polygon,#mermaid-svg-GUJfJMk3yaUpz7AI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GUJfJMk3yaUpz7AI .rough-node .label text,#mermaid-svg-GUJfJMk3yaUpz7AI .node .label text,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape .label,#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape .label{text-anchor:middle;}#mermaid-svg-GUJfJMk3yaUpz7AI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-GUJfJMk3yaUpz7AI .rough-node .label,#mermaid-svg-GUJfJMk3yaUpz7AI .node .label,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape .label,#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape .label{text-align:center;}#mermaid-svg-GUJfJMk3yaUpz7AI .node.clickable{cursor:pointer;}#mermaid-svg-GUJfJMk3yaUpz7AI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-GUJfJMk3yaUpz7AI .arrowheadPath{fill:#333333;}#mermaid-svg-GUJfJMk3yaUpz7AI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-GUJfJMk3yaUpz7AI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-GUJfJMk3yaUpz7AI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GUJfJMk3yaUpz7AI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-GUJfJMk3yaUpz7AI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GUJfJMk3yaUpz7AI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster text{fill:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI .cluster span{color:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-GUJfJMk3yaUpz7AI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-GUJfJMk3yaUpz7AI rect.text{fill:none;stroke-width:0;}#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape p,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-GUJfJMk3yaUpz7AI .icon-shape .label rect,#mermaid-svg-GUJfJMk3yaUpz7AI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GUJfJMk3yaUpz7AI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-GUJfJMk3yaUpz7AI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-GUJfJMk3yaUpz7AI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是
否
开始
输入成绩
计算平均分
平均分>=60?
输出及格
输出不及格
结束

(二)盒图(N-S图)

盒图是结构化的流程图。

盒图特点:

特点 说明
结构化 强制使用结构化控制结构
无箭头 不使用箭头表示流向
嵌套 通过嵌套表示层次

盒图示例:

复制代码
┌─────────────────────────────────┐
│ 输入成绩                         │
├─────────────────────────────────┤
│ 计算平均分                       │
├─────────────────────────────────┤
│ if 平均分 >= 60                  │
│ ┌─────────────────────────────┐ │
│ │ 输出及格                     │ │
│ └─────────────────────────────┘ │
│ else                             │
│ ┌─────────────────────────────┐ │
│ │ 输出不及格                   │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────┘

(三)PAD图

PAD图(Problem Analysis Diagram)是问题分析图。

PAD图特点:

特点 说明
树形结构 自左向右展开
层次清晰 层次关系清晰
易于转换 易于转换为代码

PAD图示例:

复制代码
开始
├─ 输入成绩
├─ 计算平均分
├─ if 平均分 >= 60
│  └─ 输出及格
│  else
│     └─ 输出不及格
└─ 结束

(四)伪代码

伪代码是介于自然语言和编程语言之间的代码表示。

伪代码示例:

复制代码
// 计算学生成绩统计
function calculateStatistics(scores):
    sum = 0
    max = scores[0]
    min = scores[0]
    
    for each score in scores:
        sum = sum + score
        if score > max:
            max = score
        if score < min:
            min = score
    
    average = sum / length(scores)
    
    return {average, max, min}

📋 六、结构化程序设计的优缺点

(一)优点

优点:

优点 说明
结构清晰 程序结构清晰
易于理解 程序易于理解
易于维护 程序易于维护
易于测试 程序易于测试
提高效率 提高开发效率

(二)缺点

缺点:

缺点 说明
效率问题 可能影响效率
局限性 不适合所有场景
复杂性 复杂系统难以应用

(三)适用场景

适用场景:

场景 说明
数据处理 数据处理程序
业务逻辑 业务逻辑程序
教学程序 教学示例程序

📝 七、结构化程序设计实例

(一)实例背景

项目:学生成绩管理系统

功能:

  • 输入学生成绩
  • 计算统计信息
  • 输出统计结果

(二)设计过程

自顶向下设计:

复制代码
主程序
├── 初始化
├── 主循环
│   ├── 显示菜单
│   ├── 获取选择
│   └── 处理选择
│       ├── 输入成绩
│       ├── 计算统计
│       ├── 输出结果
│       └── 退出系统
└── 结束处理

(三)代码实现

完整代码:

python 复制代码
def main():
    scores = []
    running = True
    
    while running:
        # 显示菜单
        print("\n=== 学生成绩管理系统 ===")
        print("1. 输入成绩")
        print("2. 计算统计")
        print("3. 输出结果")
        print("4. 退出系统")
        
        # 获取选择
        choice = input("请选择操作(1-4): ")
        
        # 处理选择
        if choice == '1':
            scores = input_scores()
        elif choice == '2':
            if len(scores) > 0:
                stats = calculate_statistics(scores)
                print("统计完成")
            else:
                print("请先输入成绩")
        elif choice == '3':
            if len(scores) > 0:
                output_results(stats)
            else:
                print("请先输入成绩")
        elif choice == '4':
            running = False
            print("感谢使用,再见!")
        else:
            print("无效选择,请重新输入")

def input_scores():
    scores = []
    n = int(input("请输入学生人数: "))
    for i in range(n):
        while True:
            try:
                score = float(input(f"请输入第{i+1}个学生的成绩: "))
                if 0 <= score <= 100:
                    scores.append(score)
                    break
                else:
                    print("成绩必须在0-100之间")
            except ValueError:
                print("请输入有效的数字")
    return scores

def calculate_statistics(scores):
    avg = sum(scores) / len(scores)
    max_score = max(scores)
    min_score = min(scores)
    return {'average': avg, 'max': max_score, 'min': min_score}

def output_results(stats):
    print("\n=== 统计结果 ===")
    print(f"平均分: {stats['average']:.2f}")
    print(f"最高分: {stats['max']:.2f}")
    print(f"最低分: {stats['min']:.2f}")

if __name__ == "__main__":
    main()

📝 总结

结构化程序设计是一种重要的程序设计方法学。

🎯 设计定义:采用自顶向下、逐步求精的设计方法,使用顺序、选择、循环三种基本控制结构来编写程序。

📦 基本控制结构:

  • 顺序结构:按顺序依次执行
  • 选择结构:根据条件选择执行路径(if、if-else、switch)
  • 循环结构:重复执行某段代码(while、do-while、for)

🌐 设计原则:

  • 自顶向下:从顶层开始设计
  • 逐步求精:逐步细化实现
  • 模块化:程序分解为模块
  • 限制goto:避免使用goto语句

💡 设计方法:自顶向下、逐步求精、模块化设计。

📋 设计工具:流程图、盒图(N-S图)、PAD图、伪代码。


核心启示:结构化程序设计是程序设计的基础,"万丈高楼平地起"。掌握结构化程序设计技术,能够编写出结构清晰、易于理解和维护的程序。在实际工作中,我们需要注意:第一,熟练掌握三种基本控制结构;第二,遵循自顶向下、逐步求精的设计方法;第三,合理使用设计工具(流程图、盒图、PAD图等);第四,限制使用goto语句,保持程序结构清晰;第五,重视代码的可读性和可维护性。虽然现代编程语言提供了更多的高级特性,但结构化程序设计的基本思想仍然具有重要价值。理解结构化程序设计,有助于我们更好地理解程序设计的本质,提高编程能力。记住:好的程序不仅是能运行的程序,更是结构清晰、易于理解和维护的程序。


相关推荐
三环上的骑士3 小时前
【领域篇17】软件研发与组织效能评估:100 个典型应用场景全景梳理(附分类体系)
软件工程·软件研发·代码质量·开发者体验·组织效能·效能评估·研发效能评估
郝学胜-神的一滴20 小时前
游戏引擎原理与实践 01:聊聊游戏引擎的前世今生
开发语言·c++·游戏引擎·产品运营·软件工程·产品经理·untiy
workflower1 天前
企业竞争要素变迁,智能型企业走向新四化
人工智能·机器学习·机器人·无人机·软件工程
盖伦发发7 天前
软件工程SOLID 五大设计原则
后端·软件工程
Old Uncle Tom7 天前
评测即生死:Agent 时代的可靠性重构
人工智能·软件工程·agent
建筑工程企业管理系统7 天前
工程建设管理信息系统如何选型?多项目协同管控避坑指南
大数据·软件工程·软件需求
黄昏回响8 天前
软件工程基础知识(五):软件测试详解(下篇)——现代测试实践与论文指导
网络·其他·软件工程·改行学it
梁辰兴10 天前
软件工程:McCall软件质量因素
软件工程·梁辰兴·mccall软件质量因素·mccall模型·产品运行·产品修正·产品转移
爱码小白11 天前
开发在线部署工具,读懂组织管理:从代码架构悟创业底层逻辑
软件工程