- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 结构化程序设计 2.1 结构化程序设计概述 2.2 结构化程序设计方法 本章主要介绍结构化程序设计的概念、3种基本结构、逐步求精的程序设计方法和模块化的程序设计方法。 2.1 结构化程序设计概述 2.1.1 程序设计的发展过程 1969年,E.W.Dijkstra首先提出了结构化程序设计的概念,他强调了从程序结构和风格上来研究程序设计。 2.1.2 结构化程序设计思想 结构化程序设计要求把程序的结构限制为顺序、选择和循环3种基本结构,即只能用3种基本结构的组合来编写程序。 1.顺序结构 在顺序结构中的各个部分按照它们出现的先后顺序依次执行,如图2.1所示。 2.选择结构 选择结构也称为分支结构,如图2.3所示。它是根据给定的条件是否成立而选择执行两条路径中的哪一条,两条路径分别拥有不同的处理功能。 3.循环结构 循环结构的执行过程是,当满足某个指定的条件时反复执行某一部分操作。循环结构有当型循环和直到型循环两种类型。 (1)当型循环(While型循环) (2)直到型循环(Until型循环) 【例2.3】下面的程序是求1到100之间自然数的和。 一个结构化程序以及3种结构中的每一种结构都应具有以下特点。 (1)只有一个入口。 (2)只有一个出口。 (3)每一个语句都应当有一条从入口到出口的路径通过它(至少通过一次)。 (4)没有死循环。 2.2 结构化程序设计方法 2.2.1 模块化程序设计方法 模块化程序设计方法是把一个大的问题按一个人所能理解的大小规模进行分解的一种方法。 划分模块后,通过程序结构图来表示整个系统。 【例2.4】有一个电话簿管理系统,在该系统中存储某一地区的电话号码和用户姓名,同时它还具有以下功能:向该系统中增加新的电话号码;删除某一电话号码;查找用户姓名和电话号码;修改用户姓名和电话号码。 在划分模块时应注意以下问题。 1.模块的规模 模块规模应适中 2.模块的复杂程度 模块的深度表示程序结构中控制的层数。 宽度表示控制的总分布,是软件结构内同一个层次上的模块总数。 扇出表示直接由一个模块控制的模块数目。 平均扇出通常是3或4(扇出的上限通常是5~9)。 扇入表示直接控制一个给定模块的模块数目。 3.降低模块接口的复杂程度 4.设计单入口单出口的模块 2.2.2 自顶向下、逐步求精的方法 “自顶向下、逐步求精”是结构化程序设计的基本设计方法。采用这种方法可以将一个复杂问题分解和细化成一个由许多模块构成的层次结构;也可以把一个模块的功能逐步分解细化为一系列的处理步骤,直至某种高级语言的语句。 【例2.5】有一个班级共有30名学生,本学期共开设了5门课程,要求计算出每个学生的平均成绩,并将5门课程的成绩及平均成绩输出。 首先问题分为以下3个部分。 (1)输入30名学生的5门课程的成绩 (2)计算每个学生的平均成绩 (3)输出每个学生的5门课程的成绩及平均成绩 进行细化 (1)输入30名学生的5门课程的成绩。 do { 输入一名学生的5门课程的成绩 } (2)计算每个学生的平均成绩。 do {①计算每个学生的总分; ②计算每个学生的平均分。 } (3)输出每个学生的5门课程的成绩及平均成绩。 do {①输出5门课程的成绩; ②输出平均成绩。 } 对上述算法还可以进一步求精。 (1)输入30名学生的5门课程的成绩。 for(i=1;i=30;i++) {输入一名学生的5门成绩} (2)计算每个学生的平均成绩。 for(i=1;i=30;i++) {①计算每个学生的总分; ②average=总分/5; } (3)输出每个学生的5门课程的成绩及平均成绩。 for(i=1;i=30;i++) {①输出5门课程的成绩; ②printf(%f,average); } 对上述算法可以再进一步求精。 (1)输入30名学生的5门课程的成绩。 for(i=1;i=30;i++) { for(j=1;j=5;j++) scanf(%f,score); } (2)计算每个学生的平均成绩。 for(i=1;i=30;i++) { sum=0; ① { for(j=1;j=5;j++) sum=sum+a[i][j]; } ② average=sum/5; } (3)输出每个学生的5门课程的成绩及平均成绩。 for(i=1;i=30;i++) { ① { for(j=1;j=5;j++) printf(%f,a[i][j]); } ② printf(%f,average) } 2.3 结构化程序设计实例 【例2.6】求 的值。 /* 计算组合数的值 */ float combine(int m,int n) { flo
您可能关注的文档
- 常用工具软件 教学课件 袁云华教学大纲、 第4章 图形图像工具.doc
- 操作系统 教学课件 作者 吴小平 第5章.ppt
- 城市轨道交通行车组织 教学课件 作者 牛凯兰 牛红霞 项目八.ppt
- 仓储管理(蔡改成) 第2章 仓库及其设施与设备.ppt
- 常用工具软件 教学课件 袁云华教学大纲、 第5章 文件传输工具.doc
- 城市轨道交通行车组织 教学课件 作者 牛凯兰 牛红霞 项目八2.ppt
- 操作系统 教学课件 作者 吴小平 第6章.ppt
- 仓储管理(蔡改成) 第3章 储位管理与物料分类编码.ppt
- 城市轨道交通行车组织 教学课件 作者 牛凯兰 牛红霞 项目二1.ppt
- 操作系统 教学课件 作者 吴小平 第7章.ppt
- 2025年金肯职业技术学院单招职业适应性测试题库带答案.docx
- 2025年钦州幼儿师范高等专科学校单招综合素质考试题库完美版.docx
- 2025年钟山职业技术学院单招职业适应性考试题库参考答案.docx
- 2025年金华职业技术学院单招职业技能测试题库附答案.docx
- 2025年闽南理工学院单招职业技能测试题库审定版.docx
- 2025年闽南理工学院单招综合素质考试题库审定版.docx
- 2025年闽南理工学院单招职业倾向性考试题库汇编.docx
- 2025年闽南理工学院单招职业倾向性考试题库推荐.docx
- 2025年闽北职业技术学院单招综合素质考试题库1套.docx
- 2025年长沙轨道交通职业学院单招职业技能考试题库一套.docx
最近下载
- 2023年青海省海东地区循化县清水乡招聘社区工作者真题及参考答案详解.docx VIP
- 售电培训课件.pptx VIP
- 脊髓损伤康复临床路径.docx VIP
- 2023年青海省海东地区民和县杏儿乡招聘社区工作者真题参考答案详解.docx VIP
- 2023年青海省海东地区民和县西沟乡招聘社区工作者真题及参考答案详解1套.docx VIP
- 气道净化护理(2023年中华护理学会团体标准).pptx VIP
- 理正软件勘察说明书.doc VIP
- 部编版七年级上册语文《杞人忧天》导学案.pdf VIP
- 2023年青海省海东地区民和县北山乡招聘社区工作者真题及参考答案详解.docx VIP
- 各班护理工作职责.pptx VIP
文档评论(0)