java实现计算成绩总分平均分并进行合格判断

127 阅读2分钟

import java.util.Scanner;
/**
需求:输入素质成绩,机试成绩,笔试成绩,计算并输出总分和平均分(平均分=素质成绩0.25+机试成绩0.5+笔试成绩*0.25)
如果三门课成绩有一门小于60分则提示需要重新学一遍吗!
分析:输入三个数字(考虑到实际情况中确实存在成绩中带小数的情况所以输入时支持小数)
判断数字是否合法
不合法提示重新输入
计算总分和平均分
if-else 判断成绩   是否大于60,否则提示需要重新学一遍吗!
键盘接收y(是)/n(否)
是→重新输入
否→结束运行
先执行,再判断循环,函数体至少运行一次,可以使用do-while循环

            键盘接收--键盘输入数据--java提供了工具
在类文件最上面添加代码
import java.util.Scanner;

//代码需要的位置获取扫描器对象
Scanner 对象名=Scanner(System.in);

            //获取键盘输入的数据
数据类型 变量名=对象名.next类型();
例如:
获取整数
int num1=对象名.nextInt();
获取字符串
String ss=对象名.next();
获取小数
double dd=对象名.nextDouble();
@author:dosml 
@date :2023.5.10
@version V1.0.1
/
public class Test1{
/
*
需求:主函数 --程序入口
@param args
@return void
*/
public static void main(String[] args){
//输入函数,获取扫描器对象
Scanner scan=new Scanner(System.in);

//----do-while循环进入口----
//由于break只能跳出最近的循环,所以给do-while循环命名为wo
wo:do{

            //----获取键盘输入的素质成绩,机试成绩,笔试成绩----
//输入提示

System.out.println("请输入你的素质成绩:");
//获取键盘输入的数据--素质成绩
double sz=scan.nextDouble();
//判断输入的成绩是否合法
if(sz<0||sz>100){
System.out.println("请输入0-100的数!");
continue;
}

            //输入提示
System.out.println("请输入你的机试成绩:");
//获取键盘输入的数据--机试成绩
double js=scan.nextDouble();

            //判断输入的机试成绩是否合法
if(js<0||js>100){
System.out.println("请输入0-100的数!");
continue;
}

            //输入提示
System.out.println("请输入你的笔试成绩:");
//获取键盘输入的数据--笔试成绩
double bs=scan.nextDouble();

            //判断输入的笔试成绩是否合法
if(bs<0||bs>100){
System.out.println("请输入0-100的数!");
continue;
}
//----计算并输出总分和平均分----
//平均分=素质成绩0.25+机试成绩0.5+笔试成绩0.25
System.out.println("你的成绩平均分为:"+((sz
0.25)+(js0.5)+(bs0.25))+"分");
//总分=素质成绩+机试成绩+笔试成绩
System.out.println("你的成绩总分为:"+(sz+js+bs)+"分");

            //----判断分数是否大于等于60(及格)----
//任意一门不大于60,输出(需要重新学一遍吗!),否则结束循环
if(sz<60||js<60||bs<60){
//输出语句提示是否需要重新学,是y否n
System.out.println("需要重新学一遍吗!(是则输入y/否则输入n)请输入:");
//获取输入内容的格式为字符串
String ss=scan.next();
switch(ss){
case "y":
continue;
case "n":
break wo;
default:
System.out.println("输入错误!请重新输入!");
}
}else{
break;
}  
}while(true);}
}