c语言程序设计与项目实践第5章.ppt_第1页
c语言程序设计与项目实践第5章.ppt_第2页
c语言程序设计与项目实践第5章.ppt_第3页
c语言程序设计与项目实践第5章.ppt_第4页
c语言程序设计与项目实践第5章.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章分支结构程序设计 本章的学习重点 简单的if语句 if else语句执行规则 嵌套的if else语句 switch语句 break语句 嵌套的switch语句 5 1结构化程序设计思想 1976年 NiklausWirth提出 程序 算法 数据结构结构化程序设计的基本思想是 1 自顶向下2 逐步细化3 模块化设计4 结构化程序编码结构化程序设计框架图 5 2简单的if语句 if语句有三种基本形式 if语句if和else语句嵌套if和else语句设计分支结构应注意如下问题 1 正确选择条件或逻辑表达式作为分支的判断条件 2 根据需求绘制分支流程图 3 按流程图编写程序 5 2 1if语句的定义 if语句的一般形式 if 表达式 语句段if语句的执行流程 如果表达式的值为真 非0 则执行其后的语句段 否则不执行该语句 If语句流程图 5 2 1if语句的定义 if语句中的表达式可以是任何能转化为数值的表达式 例如 if 100 if a b if a b c if sizeof int if a b a b a b 范例5 1GetMaxVariableInTwo c利用if语句的分支功能 可以区分两个或多个数值的大小 本范例由键盘输入两个变量的值 使用if语句判断两者中的较大值 并将较大值输出在屏幕上 5 2 2合理设计if语句 1 逻辑运算符的编写风格逻辑运算表达式编写应尽量避免产生歧义 避免出现逻辑错误 例如 为避免逻辑表达式书写错误 通常将常量放在逻辑运算符左边 if a 0 a a 应写成 if 0 a a a 2 语句段封装不论语句段由一条语句还是多条语句构成 都使用大括号封装 实训5 1 求一元二次方程的实根解 键盘输入一元二次方程ax2 bx c 0的三个参数a b和c 计算当判别式b2 4ac 0时的根 程序使用if语句判断是否满足判别式条件 结果精确到小数点后3位 判别式可计算为 sqrt delta sqrt b2 4ac 当sqrt delta大于或等于0时方程有实根 因此 一元二次方程的两个根分别为 x1 b sqrt delta 2ax2 b sqrt delta 2a1 需求分析 需求1 键盘输入参数a b c的值需求2 判断判别式 确定方程是否有实根需求3 调用开根号数学函数sqrt 计算方程的根需求4 输出结果 精度为小数点后3位 实训5 1 求一元二次方程的实根解 2 技术应用对于需求1 使用scanf函数输入参数a b c的值 对于需求2 使用if语句判断方程是否有实根 判断方法为 if b2 4ac 0 对于需求3 由于要求精确到小数点后3位 采用数据类型float型 根据上述分析画出程序流程图 源文件 CalculateFormulaRealRoot c 5 3多分支if语句 多分支if语句又称为 if else语句 是由关键字if和else构成的多分支结构语句 if else语句的一般形式为 if 表达式 语句段1else语句段2if else语句的执行规则为 若表达式的值为真 非0 则执行语句段1 否则进入else分支 执行语句段2 5 3 1if else语句的结构 if else语句的表达形式为 if 表达式 语句段1 else 语句段2 if else语句的流程图 5 3 1if else语句的结构 范例5 2CalculateAbstract c数学计算中 绝对值使用 表示 本范例从键盘输入参数a的值 然后利用if else语句实现绝对值的计算 并打印信息显示数据符号是否发生了变化 5 3 2if else语句的应用范例5 3JudgeOddorEven c键盘输入int型参数a的值 判断其是否为偶数 若为偶数 则打印a为偶数信息 若为奇数 则打印为奇数信息 利用模除 对a值是否为偶数进行判断 使用if else分支语句实现不同信息的输出 5 3 2if else语句的应用 5 3 2if else语句的应用范例5 3JudgeOddorEven c键盘输入int型参数a的值 判断其是否为偶数 若为偶数 则打印a为偶数信息 若为奇数 则打印为奇数信息 利用模除 对a值是否为偶数进行判断 使用if else分支语句实现不同信息的输出 范例5 4JudgeLeapYearorNotWithIfElse c键盘输入unsignedint型年份 判断其是否为闰年 若为闰年 则打印为闰年信息 若为平年 则打印为平年信息 闰年的判断方法是 若年数能被400整除 那么该年是闰年 若能被4整除但不能被100整除 该年是闰年 其他年份都是平年 5 3 3if else if语句的结构及应用 当有多个分支选择时 可采用if else if语句 if else if类型结构语句的一般形式为 if 表达式1 语句段1 elseif 表达式2 语句段2 elseif 表达式3 语句段3 elseif 表达式m 语句段m else语句段n If else if语句流程图 5 3 3if else if语句的结构及应用 范例5 5StudentScoreSet c学生成绩分为5个等级 分别为 A 90 score 100 B 80 score 90 C 70 score 80 D 60 score 70 E score 60键盘输入某学生成绩 判断其属于哪个等级 并打印到屏幕上 使用多分支if else if语句实现 范例5 6JudgeCharacterFromKeyboard c使用getchar函数接收键盘输入的一个字符 并判断该字符类型 若输入为字母 则打印字母信息 若为数字 则打印数字信息 若为控制字符 则打印控制字符信息 5 4嵌套if else语句 嵌套if语句指在if分支或else分支中再次执行if或else语句 嵌套if分支语句的流程图如下 5 4 1嵌套if else语句的定义 嵌套if else语句一般表达形式为 if 表达式1 if 表达式2 语句段1 else 语句段2 else if 表达式3 语句段4 else 语句段5 如图所示为单层嵌套if else语句流程图 5 4 2嵌套if else语句的应用 范例5 7CompareTwoVariableValue c键盘输入两个int型变量的值a和b 判断两个变量的大小 若a b 则输出a b 若a b 则输出a b 若a b 则输出a b 实训5 2 求一元二次方程的复数根解 键盘输入一元二次方程ax2 bx c 0的三个参数a b和c 计算 b2 4ac 0时 输出实数根 b2 4ac 0时 输出复数根 并检查输入参数的正确性 使用嵌套if语句实现 首先使用scanf函数输入三个参数a b和c 定义判别式变量delta b2 4ac 定义变量sqrt delta sqrt b2 4ac 当delta大于0时一元二次方程的两个根分别为 x1 b sqrt delta 2a x2 b sqrt delta 2a当delta等于0时 方程有一个实根 x b 2a当delta小于0时 方程有两个共轭复数根 分别为 x1 b 2a sqrt delta 2ai x2 b 2a sqrt delta 2ai 实训5 2 求一元二次方程的复数根解 1 需求分析 需求1 键盘输入参数a b c的值并判断输入参数需求2 判断判别式 确定方程有实根还是复数根需求3 调用开根号数学函数sqrt 计算方程的根需求4 输出结果2 技术应用对于需求1 使用scanf函数输入参数a b c的值 对于需求2 使用if语句判断方程有实根还是复数根 判断方法为 if b2 4ac 0 对于需求3 输出结果时根据实根和复数根的不同 输出不同数据格式 如复数根应输出 m ni和m ni的形式 实训5 2 求一元二次方程的复数根解 一元二次方程求根流程图源代码 CalculateFormulaRoot c 5 5switch语句 switch语句的一般表达形式为 switch 表达式 case常量表达式1 语句段1 case常量表达式2 语句段2 case常量表达式n 语句段n default 语句段n 1 5 5 1switch语句的定义 switch语句的运行规则为 计算表达式的值 顺次与其后的常量表达式值相比较 当表达式的值与某个常量表达式的值相等时 即执行其后的语句段 语句段执行完毕后 不再进行判断 继续执行后面所有case后的语句 switch语句流程图 5 5 1switch语句的定义 范例5 8SwitchSentenceCase c键盘输入整型的星期数 打印出英文的星期名字字符串 根据键盘输入的星期数 打印出该星期数的英文名使用switch语句实现 输入函数使用scanf函数 星期一记为1 星期天记为7 例如 输入2 应打印Tuesday 5 5 2break语句 为避免程序在switch语句中持续执行case语句 可以使用break语句 switch语句中添加break语句的流程图 5 5 3switch语句的执行与应用 范例5 9SwitchSentenceWithBreak c键盘输入学生成绩 分段显示不同成绩段的优劣 90 score 100为excellence80 score 90为allright70 score 80为midding60 score 70为passscore 60为bad 实训5 3 使用switch语句实现四则运算 键盘输入四则运算式 通过switch语句分支执行 的四则运算 结果精确到小数点后3位 例如 输入4 5 6 将输出结果 4 5 6 1 5 程序只能实现简单的四则运算 不能实现复合四则运算 输入参数采用float型 使用switch语句做四则运算的分支程序 1 需求分析 需求1 键盘输入四则运算式需求2 switch语句作分支判断四则运算需求3 输出结果 精度为小数点后3位2 技术应用对于需求1 使用scanf函数输入四则运算表达式 对于需求2 使用switch语句对各四则运算作分支处理 对于需求3 采用float型输出精确到小数点后3位结果 源代码 CalculateFormulaProcess c 5 6嵌套switch语句 嵌套的switch语句是指在一个switch语句中某个case下会再嵌入一个或多个switch语句嵌套switch语句的一般表达形式 switch 表达式1 case常量表达式1 switch 表达式2 case常量表达式11 语句段11case常量表达式12 语句段12 c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论