评价成绩
要求:体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考查一个班级的某科目的考试情况时,是计算全班同学的平均成绩。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);
}
}
}
}