系统架构设计(十):结构化编程

定义

结构化编程 是一种遵循清晰逻辑结构、避免使用 goto 的编程方法。它强调使用有限的三种基本控制结构 来组织程序,提高程序的可读性、可维护性和可测试性

它是现代程序设计的基础,被广泛应用于命令式语言(如 C、Pascal、Java)中。

三种基本控制结构

控制结构 说明 示例语句
顺序结构 从上到下依次执行 A(); B(); C();
选择结构 根据条件执行不同分支 if...else、switch
循环结构 重复执行代码块 for、while、do...while

基本原则

  1. 模块化原则:将程序划分为若干函数/过程模块;
  2. 自顶向下设计:先规划总结构,再细化每层模块;
  3. 逐步求精:由抽象到具体,逐层实现;
  4. 控制结构有限原则:只使用顺序、选择、循环三种控制结构;
  5. 无 goto 原则:避免跳转语句导致程序流程混乱。

优缺点

优点

  • 结构清晰、逻辑明确;
  • 易于阅读、测试和维护;
  • 提高程序的可移植性和可重用性;
  • 便于团队协作开发。

局限性

  • 在面对复杂系统或高复用需求时缺乏抽象能力;
  • 模块粒度可能较粗,函数之间耦合较强;
  • 难以应对对象关系、事件驱动等复杂场景;
  • 不支持数据和行为的封装。

结构化编程与面向对象编程对比

比较维度 结构化编程 面向对象编程(OOP)
核心思想 以过程/函数为中心 以对象(数据+行为)为中心
数据管理 数据与操作分离 数据与操作封装在对象中
可维护性 中等 较强,支持继承与多态
重用性 依赖函数调用 支持继承、接口、封装、组合
编程复杂性 简单,适合小型程序 复杂,适合大型复杂系统

示例

请结合结构化编程思想设计一个学生成绩统计程序,并说明其程序结构。

解答:

主控制模块(main)

  • 负责调用各功能模块,整体程序的执行入口。

输入模块

  • 负责接收用户输入,如学生人数、成绩等。

处理模块

  • 实现成绩统计功能,如求平均值、最高分、最低分;
  • 采用循环结构实现遍历。

输出模块

  • 显示最终结果,采用顺序结构输出信息。
相关推荐
"sudo2 小时前
【2025-系统规划与管理师】第十章:云原生系统规划
系统架构
qqxhb2 小时前
系统架构设计师备考第48天——机器人&边缘计算
系统架构·机器人·边缘计算·边云协同·资源数据智能协同·联接约束分布性·数据第一入口
qqxhb7 小时前
系统架构设计师备考第49天——数字孪生体&云计算&大数据技术
大数据·系统架构·云计算·saas·paas·iaas·数字孪生体
阿啄debugIT9 小时前
HashMap为什么线程不安全? ConcurrentHashMap如何保证线程安全? AQS如何实现锁的获取与释放?用男女关系进行解释,一看就懂
经验分享·职场和发展·系统架构·软件工程·1024程序员节
okjohn1 天前
浅谈需求分析与管理
java·架构·系统架构·软件工程·产品经理·需求分析·规格说明书
m0_651593911 天前
企业级订单系统架构设计:领域驱动 vs 数据驱动实践指南
java·系统架构·领域驱动ddd
阿啄debugIT2 天前
2022年系统架构设计师考试上午选择真题解析
系统架构
qqxhb2 天前
系统架构设计师备考第42天——软件可靠性测试与评价
系统架构·可靠性测试·可靠性评价·运行剖面·失效统计分析·马尔可夫链建模
"sudo2 天前
【2025-系统规划与管理师】第11章:信息系统治理
系统架构
冷雨夜中漫步3 天前
高级系统架构师笔记——数据库设计基础知识(5)Armstrong公理系统、无损连接和有损连接
笔记·系统架构