(C语言程序设计案例课件)项目三输入学生成绩转化为等级.ppt
《(C语言程序设计案例课件)项目三输入学生成绩转化为等级.ppt》由会员分享,可在线阅读,更多相关《(C语言程序设计案例课件)项目三输入学生成绩转化为等级.ppt(105页珍藏版)》请在三一文库上搜索。
1、大连理工大学出版社,C语言程序设计案例教程,项目三 输入学生成绩转化为等级,教学目的: 通过本项目的学习,要求能熟练掌握C语言的三种控制结构和相关的语句,熟悉各种语句的执行流程,能够在不同情况下灵活选择不同的语句来解决实际问题。掌握基本语句为后续项目做好准备,也为后续面向对象程序设计的学习打下基础。,教学内容,项目三 输入学生成绩转化为等级,重点和难点,项目三 输入学生成绩转化为等级,重点:,难点 : 、掌握各控制语句的嵌套 、选择使用好控制语句来解决实际问题,项目三 输入学生成绩转化为等级,1)问题情景与实现,辅导员张老师在使用小王设计的程序时,发现他还想要对输入后的学生成绩进行合法性的判断
2、并将其转化为等级,故张老师找来小王同学,说明了需求,小王根据张老师的需求,参考了相关的资料,完善了原来的程序,帮助张老师解决了该问题。,任务1 输入学生成绩,判断其合法性、并将其转化为等级,项目三 输入学生成绩转化为等级,实现: /* 功能:成绩的合法性判断和等级转化*/ #include void main() float yuwen,shuxue,yingyu; float sum,ave; char gradeA,gradeB,gradeC; /*语文成绩的输入及合法性判断和等级的转化*/ while(1) printf(“请输入学生的语文的成绩:“); scanf(“%f”,else
3、if(yuwen=80) gradeA=B; else if(yuwen=70) gradeA=C; else if(yuwen=60) gradeA=D; else gradeA=E; break; /*数学成绩的输入及合法性判断和等级的转化*/ while(1) printf(“请输入学生的数学的成绩:“); scanf(“%f”,项目三 输入学生成绩转化为等级,if(shuxue 100) printf(“您输入的成绩不合法,请重新输入n”); else if(shuxue =90) gradeB=A; else if(shuxue =80) gradeB=B; else if(shux
4、ue =70) gradeB=C; else if(shuxue =60) gradeB=D; else gradeB=E; break; ,项目三 输入学生成绩转化为等级,/*英语成绩的输入及合法性判断和等级的转化*/ while(1) printf(“请输入学生的英语的成绩:“); scanf(“%f”,项目三 输入学生成绩转化为等级,else if(yingyu =60) gradeC=D; else gradeC=E; break; sum=yuwen+shuxue+yingyu; ave=sum/3; printf(“该生的语文,数学,英语的成绩分别是:n“); printf(“%f
5、分t%f分t%f分n”,yuwen,shuxue,yingyu); printf(“该生的语文,数学,英语的成绩的等级分别是:n“); printf(“%c级t%c级t%c级n”,gradeA,gradeB,gradeC); printf(“总分是%f分t平均分是%f分n”,sum,ave); ,项目三 输入学生成绩转化为等级,编译、连接、和运行程序。程序运行后,屏幕显示:,要完成上面的任务,小王必须要熟练掌握C程序的三种控制结构和相关的语句,熟悉各种语句的执行流程,能够在不同情况下灵活选择不同的语句来解决实际问题。,项目三 输入学生成绩转化为等级,2)相关知识,【例3.1】一个简单的顺序结构
6、C程序 /* 源文件名:Li4_1.c 功能:从屏幕依次显示输出文字。 */ #include main( ) printf(“好好学习,n”); printf(“天天向上。n”); ,顺序结构,3.1 顺序结构引例,编译、连接、和运行程序。程序运行后,屏幕显示:,运行以上程序,即在屏幕上依次输出好好学习,天天向上。为了更好的体验此程序的执行过程,在运行时可用单步执行来观察其流程,这样便会看到: 第一步程序执行第一条printf语句,在屏幕上显示“好好学习,”; 第二步程序执行第二条printf语句,在屏幕上显示“天天向上。”。,3.1 顺序结构引例,整个程序的执行过程可以用下图流程图表示。可
7、以说这就是顺序的执行过程,也是一个顺序的C程序结构,3.1 顺序结构引例,3.2 顺序结构,顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三部曲的程序就是顺序结构。 用流程图表示顺序结构:,利用以上结构完成下面例题: 【例3.2】由键盘输入圆的半径R,输出该圆的直径和面积(2R),其中=3.14159。 分析: 先从键盘接收半径,但半径是个变量,要先定义后使用,所以在输入前要先定义变量r,其他所要用到的变量一起先定义,然后输入半径。 接下来利用半径计算直径;利用半径或已
8、求得的直径计算圆的面积。最后把计算的结果输出。,3.2 顺序结构,/* 源文件名:Li 3_2.c 功能:由圆的半径计算圆的直径和面积 */ #include main() int R, d ; float s; printf (“请输入圆的半径:”); scanf (“%d”, ,3.2 顺序结构,3.2 顺序结构,编译、连接、和运行程序。程序运行后,屏幕显示:,此程序的流程通过流程图可以很好的体现顺序结构。,3.2 顺序结构,【例3.3】 鸡兔同笼问题。已知鸡兔总头数为H,总脚数为F,求鸡兔各有多少只? 分析: 此题若用顺序结构的思想就是先已知用键盘输入H,F,根据鸡兔总头数H和总脚数F推
9、倒出鸡的数量x和兔的数量y,即用还有已知数H,F的公式表示出x,y。然后 分别计算x,y。最后输出所求 。,利用数学知识列出二元一次方程组:,3.2 顺序结构,推倒解得:,这样利用这两个公式即可求得x,y。 从流程图中可以很好的描述此程序的流程。,/* 源文件名:Li 3_3.c 功能:已知鸡兔总头数为H,总脚数为F,求鸡兔各有多少只? */ #include main ( ) ,3.2 顺序结构,int H, F, x, y; / * x为鸡的数量,y为兔的数量 * / printf(“请输入鸡兔的总头数H,总脚数F:“); scanf(“%d%d“, ,编译、连接、和运行程序。程序运行后,
10、屏幕显示 :,3. 选择结构引例,【例3.4】分段计算水费,为了提倡节省用电,对电费的收取分三个收费区间: (1)当x0时,不收费。 (2)当用电数量在0到15之间时,按一种方法计算。 (3)当用电数量大于15时,则按另外一种方法计算。,3. 选择结构引例,这时就出现了选择情况,要用到分支选择结构,用流程图表示,如下图所示。,3. 选择结构,通过选择结构的引例,我们对选择结构有了初步的了解。选择结构可以按分支数的不同分为单分支选择结构、双分支选择结构和多分支选择结构,C语言提供了if语句和switch语句可以实现这些分支结构。单分支选择结构用简单的if语句就可以,双分支选择结构可以用ifels
11、e语句,多分支选择结构可以用switch语句、elseif语句或嵌套的if语句。其中if语句有三种形式(简单的if语句,ifelse语句、elseif语句)还可以嵌套使用,所以if语句可以组合成任意分支的选择结构,而switch语句又叫开关选择语句,多用于多分支选择结构。下面我们一一作以介绍。,3. 单分支选择结构,if语句一般格式: if (表达式) 语句; 其执行的过程可用流程图直观的表示出,如下图所示 。,3. 单分支选择结构,【语句说明】 (1)if是c语言的关键字,它表示if语句的开始,即可理解为英语单词“如果”。 (2)小括号中的表达式为指定的所要判断的条件,条件均为逻辑表达式或关
12、系表达式,也可以是任意的数值类型。注意:小括号不能省且后面没有分号。 例:以下三条语句都合法 if (3) printf(“O. K.n“); if (q) printf(“%dn“,a); if (3x & x=5) printf(“3x=5n“ );,3. 单分支选择结构,(3)语句可以是单语句,也可以是复合语句。注意:在复合语句 外不需再加分号。 【例3.5】从键盘输入一个整数,输出该数的绝对值。 案例分析: 先从键盘接收一个整数,这个整数可能是正数可能是负数也可能是0。 针对不同的数做出不同的执行动作,正数的绝对值是它本身,负数的绝对值是它的相反数,0的绝对值是它本身。综合起来只有是负
13、数的时候才需要动作,其它数的绝对值就是其本身不需要动作,所以选用单分支选择结构即可满足要求。 用流程图表示如下图所示。,3. 单分支选择结构,程序: /* 源文件名:Li 3_5.c 功能:从键盘输入一个整数,输出该数的绝对值。 */ #include main( ) int shu; printf(“请输入一个整数:n“); scanf(“%d“, shu ); if ( shu 0 ) shu = -shu; printf(“该数的绝对值为: %d。n“, shu ); ,3. 单分支选择结构,编译、连接、和运行程序。程序运行后,屏幕显示:,3. 单分支选择结构,3. 双分支选择结构,双分
14、支选择结构就是根据所给定的条件来判断选择要执行下面两个分支中的哪一个分支语句。用if与else构成的ifelse语句结构可以实现双分支选择结构。 ifelse语句 if (表达式) 语句1; else 语句2;,其执行的过程可用流程图直观的表示出来,如下图,【语句说明】 (1)if和else都是c语言的关键字,它表示if语句的开始,即可理解为英语单词“如果否则”。 (2)if后小括号中的表达式为指定的所要判断的条件,要求的条件同简单的if语句。注意:else后没有小括号即没有条件,其条件相当于默认为与if小括号中条件相反的所有条件。 (3)语句1和语句2都可以是单语句,也可以是复合语句。若是一
15、条语句不用加 ,若为多条语句组成一定要加 。else不能单独使用,必须与if一起构成ifelse结构。,3. 双分支选择结构,3. 双分支选择结构,【例3.6】 任意输入两个不相等的数,将较大的数输出。 案例分析:比较任意两个数会有两种种情况,若xy,输出x;若xy,输出y。 算法: (1)定义变量 (2)给变量赋初值,(3)比较x、y, 若xy, 输出大数x (4)否则(说明y大)输出y 用流程图表示如下图所示。,3. 双分支选择结构,/* 源文件名:Li 3_6.c 功能:任意输入两个不相等的数,将较大的数输出。 */ #include main( ) int x, y, t; print
16、f(“n请输入两个整数:“); scanf(“%d%d“, ,3. 双分支选择结构,编译、连接、和运行程序。程序运行后,屏幕显示:,3. 双分支选择结构,3. 多分支选择结构,在实际应用中,不仅有单分支和双分支的选择情况,很多时候会出现多分支的选择问题。多分支选择结构即根据所给定的条件来判断选择要执行下面多个分支中的哪一个分支语句。多分支选择结构有多种形式。 具体实现方法可用以下语句:elseif 语句、嵌套的 ifelse语句、switch语句,下面我们分别作以介绍。 、elseif 语句 此语句是ifelse ifelse语句的组合,中间的else if语句可以用多个以满足多分支选择结构的
17、要求。,elseif 语句的一般形式: if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式n-1) 语句n-1; else 语句n;,3. 多分支选择结构,3. 多分支选择结构,执行过程如下图,【例3.7】:体型判断。按公式计算:体指数t = 体重w / (身高h)(w 单位为公斤,h单位为米)。 按“体指数”对肥胖程度进行划分: 当t = 27时,为肥胖。 案例分析:编程从键盘输入你的身高h和体重w,根据给定公式计算体指数t,然后判断你的体重属于何种类型。用多分支选择语句即可实现。,3. 多分支选择结构,程序: /* 源文件名:Li 3_7.c 功
18、能:体型判断。按公式计算:体指数t = 体重w kg/ (身高h)m */ #include main( ) float t, w,h ; printf(“请输入您的体重kg和身高m:”); scanf(“%f %f ”, ,3. 多分支选择结构,if(t 18 ,3. 多分支选择结构,编译、连接、和运行程序。程序运行后,屏幕显示:,例1:if ( a0 ) if ( b0 ) printf(“%d,%dn“, a, b); 如果a,b都是正数,则输出a,b,、if语句的嵌套 在if语句中又包含有一个或多个if语句称为if语句的嵌套。嵌套的if语句可为简单的分语句,也可以是ifelse,还可以
19、是ifelse ifelse语句。嵌套完可能成为很复杂的结构。,3. 多分支选择结构,例2:if ( a0 ) if ( b0 ) printf(“%d,%dn“, a, b); else printf(“%dn“, a); else if ( b0 ) printf(“%dn“, b); else printf(“n“); 输出a,b中的正数,3. 多分支选择结构,【语句说明】 (1)嵌套不允许交叉。 (2)else与if必须成对出现,且else总是与最近的一个未配对的if配对。 例:读以下两程序,对比结果。,3. 多分支选择结构,3. 多分支选择结构,(3)为避免错误可用 将内嵌结构括起来
20、,以确定if与else的配对关系属内嵌范围。,【例3.8】:任意输入三个整数,找出其中最大的整数。 案例分析: 从键盘接收三个数a,b,c; 先比较其中两个数,若ab,则再拿较大的数a和第三个数c相比较,会得出最大数; 否则拿另一个较大的数b和第三个数c相比较,会从b,c中找出较大的数。 具体算法用流程图表示如下图。,/* 源文件名:Li 3_8.c 功能:任意输入三个整数,找出其中最大的整数。 */ #include main( ),3. 多分支选择结构, int a, b, c, max ; printf (”请输入三个整数:”); scanf( “%d%d%d“, ,3. 多分支选择结构
21、,编译、连接、和运行程序。程序运行后,屏幕显示:,switch一般格式: switch(表达式) case :语句组1; break; case :语句组2; break; case :语句组n-1; break; default :语句组n ; break; ,3. 多分支选择结构,switch语句: 用if或if.else或它们的嵌套也可使程序实现多路分支,但容易出现下面的问题。,执行过程: (1)计算表达式的值。 (2)判断:表达式的值与常量表达式的值是否相等。 (3)执行: 若表达式 = = 常量表达式, 则执行语句; 若表达式 != 常量表达式, 则执行default开始的(语句);
22、 若程序中无default开始的语句,则程序语句switch相当于一个空程序(语句)。,3. 多分支选择结构,3. 多分支选择结构,(4)两种结束方式:遇break语句跳出结束没有break时继续执行直到遇最后“”结束。注:break语句用于跳出其所在的switch结构,后面会详细介绍此语句。,switch语句: 说明: (1)switch后圆括号内的表达式要求是整型或字符型的; (2)各case的常量表达式的值不能相同; (3)default放在语句的的最后是一个好的习惯。 (4)case中的break语句是根据程序的需要选用的。 (5)多个case可共用一组执行语句,3. 多分支选择结构,
23、【例3.9】计算 y 的值。,* 源文件名:Li 3_9.c 功能:计算分段函数的值。 */ #include “math.h“ main ( ) ,3. 多分支选择结构,float x , y ; int m ; printf( “请输入 05 之间的数:“ ); scanf( “%f“, ,3. 多分支选择结构,编译、连接、和运行程序。程序运行后,屏幕显示,3. 多分支选择结构,3.5 循环结构引例,【例3.11】求 1 + 2 + + 100 分析: 求和的过程为: 设变量S为所求的和,最开始S0 = 0,之后加和100次 1) S=0+1 S1 = S0 + 1 2) S=1+2 S2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 案例 课件 项目 输入 学生 成绩 转化 等级
链接地址:https://www.31doc.com/p-3574653.html