去掉最高分和最低分来评价成绩,用java实现

评价成绩

要求:体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考查一个班级的某科目的考试情况时,是计算全班同学的平均成绩。Gymnastics(体操比赛积分)类和School(某科目考试平均分)类都实现了ComputerAverage接口,但实现方式不同

知识运用方面:1、运用Java的接口知识。2、通过排序的方式将成绩从高到低输出,之后去掉最高分和最低分
 package bb;
import java.util.Scanner;
interface ComputerAverage{
	
	void Average();  //接口的求平均值的方法
}

class Gymnastics implements ComputerAverage{
	double score;
	String name;
	Gymnastics(String a){   //名字的构造函数
 		name = a;
 		get();
	}
	void get(){   //输出姓名
		System.out.println("姓名: "+name);
	}
	public void Average(){
		Scanner reader = new Scanner(System.in);
		int count;
		double t,average,sum = 0,summ = 0;
		System.out.print("统计跳体操次数:");
		count = reader.nextInt();  //次数
		double a[]=new double[count]; //数组赋空间
		System.out.println("分别输出体操分数的五个值: ");		
		for(int i = 0;i<count;i++){   //给数组赋值
			a[i]= reader.nextDouble();
		    summ+= a[i];			
		}
		System.out.println("体操分数未去掉高分和低分之前和"+summ);	
		System.out.println("排序之后的数组:");
		for(int k = 0;k<count;k++)  {
		for(int i = 1;i<count;i++){  //将五个数进行排序		  
			if(a[i-1]>a[i])
			   {
				   t = a[i-1];
				 a[i-1] = a[i];
				   a[i] = t;
			   }						
			  }
		}
			  for(int l = 0;l<count;l++){   //给数组赋值		
			System.out.print(+a[l]+" ");  //输出每一次的值	
			  }		   	   
			   for(int j = 1;j<=count-2;j++){  //未去掉高分和低分之后和
				 sum+= a[j];				 
				}
			   System.out.println();
			   System.out.println("体操分数未去掉高分和低分之后和"+sum);
			   if(count>2){
               average = sum/(count-2);
               System.out.println("平均值: "+average);  //求平均值
			   }
			   else{
				   System.out.println("该体操队员成绩无效!!!");
			   }			   
	}
}

class School implements ComputerAverage{
	double score;
	String classname;
	School(String a){   //班级构造函数
 		classname = a;
 		get();
	}
	void get(){   //输出班级
		System.out.println("姓名: "+classname);
	}
	 public void Average() {	 
		 Scanner reader = new Scanner(System.in);
		 System.out.print("请输入要统计的科目名字:");
		 String name = reader.next();
		 System.out.print("请输入班上人数:");
		 int amount = reader.nextInt();    //写入班级人数
		 double []a = new double[amount];   //创建数组
		 double summ = 0,average;
		 System.out.println("输入每位同学的成绩:");
		 for(int i = 0;i<amount;i++){   //给数组赋值
				a[i]= reader.nextDouble();
			    summ+= a[i];			
			}
		 System.out.println(name+"科目"+"平均分:"+(summ/amount));  //科目的平均分
	}
}

public class zhu {

	 public static void main(String args[]){		
		 Scanner reader = new Scanner(System.in);
		 System.out.println("1、体操   2、科目平均分");
		 System.out.print("请输入要查询的数字:");
		 int number = reader.nextInt();
	     switch(number) {
	     case 1:{
	    	 ComputerAverage C= new Gymnastics("小黄");
			 C.Average();
			 System.out.print("继续查询输入1,结束输入0");
			 int  boo = reader.nextInt();
			 if(boo==1)
			 main(args);
	    	    break;	 
	     }
	     case 2: {
	    	 School S = new School("计科一班");
	    	 S.Average();
	    	 System.out.println("继续查询输入1,结束输入0");
	    	 int  boo = reader.nextInt();
			 if(boo==1){
	    	 main(args);
	    	 }
	         break;	 
	     }
	     default:{
	    	 System.out.println("数字不存在,请重新输入!!!!!!");
	          main(args);
	     }
	     }
	     
	 }
}
运行结果:在这里插入图片描述
  • 49
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小熊同鞋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值