软件工程-UML-流程图
本文介绍程序流程图(程序框图)是用图形符号直观描述工作步骤与逻辑顺序的图示方法,涵盖开始 / 结束、处理、输入输出、判断、流向等基础符号及五种基本控制结构,并通过比较三数大小、登录系统实例说明其应用,能清晰表达逻辑、帮助理解。
一、流程图基础符号与控制结构 💡
这是程序设计的可视化基础,核心符号与结构如下:
| 符号形状 | 名称 | 作用描述 |
|---|---|---|
| 圆角矩形 | 开始/结束标志 | 表示流程的起点或终点,内部写“开始”或“结束” |
| 矩形 | 活动/执行标志 | 表示一个具体的处理步骤,内部写操作说明(如“输入a,b,c”“输出a”) |
| 平行四边形 | 输入/输出标志 | 表示数据的输入或输出操作(如“输入用户名和密码”) |
| 菱形 | 判断标志 | 表示条件分支点,内部写判断条件(如“a>b且a>c?”),结果为“是/否”两条路径 |
| 箭头 | 流线标志 | 表示步骤的执行顺序和流程方向 |
五种基本控制结构:
- 顺序型:步骤按线性顺序依次执行(如“输入→处理→输出”)
- 选择型:根据单一条件判断,选择两条分支之一执行
- 先判定型循环(DO-WHILE):先判断条件,条件成立则重复执行循环体
- 后判定型循环(DO-UNTIL):先执行一次循环体,再判断条件是否终止
- 多情况选择型(CASE):根据一个变量的多个取值,选择对应分支执行
二、案例1:比较a,b,c大小的流程图 📊
功能:输入三个数,输出其中的最大值。
逻辑步骤:
- 开始 → 输入a,b,c
- 判断
a>b 且 a>c:- 是 → 输出a
- 否 → 进入下一步判断
- 判断
b>c:- 是 → 输出b
- 否 → 输出c
- 结束
flowchart TD
A([开始]) --> B[输入a,b,c]
B --> C{a > b 且 a > c?}
C -- 是 --> D[输出最大值a]
C -- 否 --> E{b > c?}
E -- 是 --> F[输出最大值b]
E -- 否 --> G[输出最大值c]
D --> H([结束])
F --> H
G --> H
对应代码逻辑(伪代码):1
2
3
4
5
6
7input a, b, c
if a > b and a > c:
print(a)
elif b > c:
print(b)
else:
print(c)
三、案例2:登录系统流程图 🔐
功能:模拟用户登录验证流程。
flowchart TD
A([开始]) --> B[输入用户名、密码]
B --> C{用户是否存在?}
C -- 否 --> D[提示:用户不存在,去注册]
D --> B
C -- 是 --> E{账号密码是否正确?}
E -- 否 --> F[提示:用户名或密码错误]
F --> B
E -- 是 --> G[进入系统主界面]
G --> H[执行操作/退出系统]
H --> I([结束])逻辑步骤:
- 开始 → 输入用户名和密码
- 判断“是否存在该用户”:
- 否 → 提示“用户不存在”并引导注册,跳转回开始状态
- 是 → 验证用户名和密码
- 判断“用户名和密码是否正确”:
- 否 → 提示“用户名或密码错误”,跳转回开始状态
- 是 → 进入系统主界面
- 执行相关操作 → 退出系统 → 结束
核心特点:
- 包含循环跳转:错误时回到“开始”,允许用户重新尝试
- 包含分支选择:根据用户存在性、密码正确性分路径处理
- 符合实际登录系统的交互逻辑
四、流程图设计核心原则 ✅
- 清晰性:每个步骤只做一件事,判断条件明确无歧义
- 完整性:覆盖所有可能的分支情况(如登录失败、无最大值等边界)
- 可读性:箭头方向统一,符号使用规范,便于他人理解
- 可执行性:能直接转化为代码或实际操作步骤