项目二输入学生成绩转化为等级_第1页
项目二输入学生成绩转化为等级_第2页
项目二输入学生成绩转化为等级_第3页
项目二输入学生成绩转化为等级_第4页
项目二输入学生成绩转化为等级_第5页
已阅读5页,还剩21页未读, 继续免费阅读

下载本文档

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

文档简介

1、第2项将学生的成绩输入年级。这个项目需要一个班级参加考试,老师们玩百分制。现在学校要求一个五级制,即90100分转化为A,8089分转化为B,7079分转化为C,6069分转化为D,60分以下转化为E。为了完成结果的转化和输出,第一步必须判断输入的结果是否合法。因为这是一个百分比系统,0-100分是合法的,超出这个范围的输入结果是有问题的;第二步是将输入的法律分数转换成相应的分数。因此,本项目分为两个任务来完成。第一个任务是输入学生的分数并判断他们的合法性;第二个任务是把学生的成绩输入年级。任务1:输入学生的分数来判断他们的合法性;1.在问题场景中输入学生的分数,以判断其是否合法(分数基于百分

2、比系统)。分析:程序流程图:方法1:首先判断输入分数是否在1到100之间,如果是,输出提示信息“输入分数合法”;然后判断输入分数是否在0到100之间,如果是,则输出提示信息“输入分数不合法”。第二,具体实现方法1:参考程序:# include stdio . h main() float x;Printf(“请输入学生分数”);Scanf(%f ,2。具体实现方法2:参考程序:# include stdio . h main() float x;Printf(“请输入学生分数”);Scanf(%f ,方法2:判断输入分数是否在0到100之间,如果是,输出提示信息“输入分数合法”;否则,将输出提

3、示消息“输入的结果不合法”。程序流程图,本任务知识点: 1。关系运算符和关系表达式。逻辑运算符和逻辑表达式。if和if else语句3。相关知识1。关系运算符和关系表达式1。关系运算符和优先级(大于)=(大于或等于)=(等于)!=(不等于)、具有相同的优先级(高)和相同的优先级(低)。(1)前四个运算符(、=)具有相同的优先级,后两个运算符具有相同的优先级。前4种高于后2种。(2)关系运算符的优先级低于算术运算符。(3)关系运算符的优先级高于赋值运算符。2.关系表达式用关系运算符连接两个表达式的公式称为关系表达式。例子:ab,a!关系表达式的值=b,a ba c,“a”b是一个逻辑值,即“真”

4、或“假”。在C语言中,整数值1代表“真”,整数值0代表“假”。如果a=1,b=4,则:(1)1)ab的值为0。因为a=1,b=4,ab的值为假,也就是说,表达式ab的值为0。(2)a!=b的值是1。(3)a=b=0的值为1。因为“=”的优先级高于“=”,所以b=0优先,结果为1;再次执行=运算符,a=1成立,因此整个表达式的值为1。(4)b=0=a的值为1。3.相关知识(续)。特别注意:在C语言中,数值也可以作为判断条件。此外,规定非零值表示条件为“真”,零值表示条件为“假”。参见相关示例。(2)逻辑运算符和逻辑表达式,1。逻辑运算符和优先级| |逻辑或优先级低后,C的值为5。因为ab不是真的

5、,表达式的值是0,并且下面的语句c=a没有被执行,所以C的值保持不变,仍然是5;2)如果(ab) t=a,则执行该语句;a=b。b=t。在那之后,A的值是3,B的值是4;4)如果(ab)c=a,则执行该语句;否则c=b。后c值为4。执行语句if(值if(ab为0,整个表达式ab?A:b应该是表达式3的值,即b的值。a:b的值实际上是a和B的最大值.如果a=3,b=4,c=5,那么表达式c(ab?a:b)?c: (ab?A:b)的值为5。这里的表达式1是c(ab?A:b),表达式2是c,表达式3是(ab?a:b ).表达c(ab?a:b)?c: (ab?a:b)的值实际上是a、b和C的最大值.在

6、任务2中,将学生的成绩输入年级。首先,在问题场景中输入学生的分数。如果等级合法,输出相应的等级;否则,输出非法提示信息。方法1:首先判断输入结果是否合法,如果非法,输出“输入结果非法”的提示信息;如果合法,判断分数是否在90到100之间。如果是,将变量Y赋给相应的值;另外,判断分数是否在80和90之间。如果是,将变量y赋给相应的值,依此类推。参考程序:# include stdio . h main() float x;char y;打印(请输入1-100分);Scanf(%f ,方法2:方法2:首先判断输入结果是否合法,如果不合法,输出提示信息“输入结果非法”;如果合法,判断分数是否大于等于

7、90分。如果是,将变量y赋给相应的值;否则,判断得分是否大于或等于80分,如果大于或等于80分,则将相应的值赋给变量y;否则,判断分数是否大于或等于70分,如果是,给变量y赋值,依此类推。# include stdio . h main() float x;char y;打印(请输入1-100分);Scanf(%f ,方法3:我们也可以使用switch语句来实现它。#include stdio.h main() int x,t;char y;打印(请输入1-100分);Scanf (%d 、case 5: case 43360 case : case 23360 case 13360 case

8、 03360 printf(学生成绩为e );休息;默认值: printf(“输入错误的学生成绩”);,在这个任务中,我们应该掌握:1。if语句的嵌套用法。2.switch语句的用法。3,相关知识,1。if语句嵌套语法 if(表达式1)语句组1 else if(表达式2)语句组2 else if(表达式3)语句组3.else语句组n,例如 if(x=90,这里实际上只有一个if else语句,但是else后面没有普通语句,但是if和else后面可以跟一个语句组,并且这个语句组也可以是if else语句,这叫做if语句的嵌套。当if语句嵌套时,else语句和if语句的匹配原则是:与它上面的if匹

9、配,最接近它,在括号的同一层,但还没有匹配。输入一个字符,判断它是小写、大写、数字还是其他字符。分析:输入字符,判断是否为小写,如果是,输出相应的提示信息;否则,判断是否大写,如果是,输出相应的提示信息;等等。参考程序:# include stdio . h main() char a;打印(“请输入一个字符”;Scanf (%c ,分析下列程序错误的原因:# include stdio . h main() char a;打印(“请输入一个字符”;Scanf (%c ,2。switch语句,一般形式:switch(表达式)case常量表达式1:语句组1;休息;大小写常量表达式2:语句组2;休

10、息;大小写常量表达式n:语句组n;休息;默认值:语句组n1;,描述:开关后的表达式可以是int char和enumeration之一。每种情况后的表述必须互不相同,否则会有矛盾。格后的常量表达式只起到语句标签的作用,不做条件判断。一旦系统找到条目标签,它就从这个标签开始,不再判断标签,所以应该添加一个break语句来结束switch语句。例如开关(t)案例10:案例93360y= a ;printf( %cn ,y);案例8:y= B ;printf( %cn ,y);案例7:y= C ;printf( %cn ,y);案例6:y= D ;printf( %cn ,y);默认值:y= E ;p

11、rintf( %cn ,y);,如果t=9,连续输出交流直流电,如果t=7,连续输出交流直流电,如果修改为以下程序:开关(t)情况10:情况93360y= aprintf( %cn ,y);休息;案例8:y= B ;printf( %cn ,y);休息;案例7:y= C ;printf( %cn ,y);休息;案例6:y= D ;printf( %cn ,y);休息;dfault:y= Eprintf( %cn ,y);,如果t=9,输出a,如果t=7,输出c,示例2-4运输公司为用户计算运费。距离越远,每公里的运费越低。S=3000 15%折扣,假设每吨公里基本运费为P,货物重量为W,距离为

12、S,折扣为D,总运费的计算公式为f=p*w*s*(1-d)。分析:公司对不同的旅程采取了五种折扣,但实际上有无数种旅程值,所以我们必须将这无数种旅程转换成几个值。通过观察,我们可以以250公里为一个单位,从而将所有的距离转换成13种情况,即0,1, 12。其中,0不享受折扣;1享受2%的折扣;2、3享受5%的折扣;4、5、6和7享受8%的折扣;8、9、10和11享受10%的折扣;12享受15%的折扣。参考程序:# include stdio . h void main() int c,s;浮动p、w、d、f;打印(“请输入基本运费、货物重量和距离”);scanf(%f、%f、%d 、case

13、2: case :d=5;休息;病例4:病例5:病例6:病例7:d=8;休息;病例8:病例9:病例10:病例11:d=10休息;案例12:d=15休息; f=p * w * s *(1-d/100.0);Printf(总运费=.4f n ,f);,使用switch语句解决问题的关键是将各种情况分成几个有限值。在任务3中,通过类比,例2-5输入四个学生的分数,并按照从高到低的顺序输出。分析:我们之前已经找到了最多三个数字。为了找到四个数字的最大值,我们只需要比较前三个数字和第四个数字的最大值。找到四个数字的最大值后,下一步是找到其余三个数字的最大值;最后,找出最后两个数字的最大值。参考程序:#

14、include stdio.h main () float a,b,c,d,t;Printf(“请输入用逗号分隔的4名学生的分数”);scanf(%f,%f,%f,%f ,if(BC) t=b;b=c。c=t。 if(BD) t=b;b=d。d=t。/*此时,获得两个最大的数字A和B,其余的是C和D */if(CD) t=C;c=d。d=t。 printf(“四个学生从低到高的年级顺序是:%.1f,%.1f,%.1fn ,a,b,c,d);,例2-6输入一个数,如果是7的倍数,则输出该数的立方,否则输出该数的平方。分析:判断它是否是7的倍数,看它是否能被7整除;A的立方不能写成a3,a3可以简

15、单地用a*a*a来表示,也可以通过调用C语言提供的库函数power(A,3)来表示。此时,应该使用# include math.h 语句来包含包含幂函数的库文件math.h。#include stdio.h main() int a,t;Printf(“请输入一个整数”);scanf(%d ,# include stdio . h # include math . h main() int a,t;Printf(“请输入一个整数”);扫描( %d ,例2-7)输入一个数字来判断它是否是水仙花号(一个三位数的数字,其每个数字的和等于它自己,这个数字就是水仙花号)。分析:要想得到这个数的三位数之和

16、,我们必须首先分解这个数的每一位数,这通常是通过对数余数或舍入来完成的。参考程序:# include stdio.h main () int a,b,c,x;Printf(“请输入一个三位数的整数”);Scanf(%d ,例2-8输入方程ax2 bx c=0的系数值(设a0),并输出方程的实根或不带实根的提示信息。分析:输入方程的系数A、B、C后,首先判断b2-4ac是否大于零,如果有实根,则找出方程的实根,如果没有实根,则输出提示信息。参考程序:# include stdio . h # include math . h main() float a,b,c,d,p,q,x1,x2;Printf(“在一个变量中输入二次方程的系数a、b、c”);scanf(“%f、%f、% f”、,示例2-9从键盘输入两个整数和一个运算符(加法、减法、乘法和除法),找到结果并输出。分析:首先判断输入运算符是否符合范围,然后判断是否为“”,如果是,则添加;否则,判断它是否是-,如果是,做减法

温馨提示

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

评论

0/150

提交评论