Java 6-1 计算成绩 (15分)

你的名字 2022-12-22 06:24 174阅读 0赞

体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班同学的平均成绩。体操Gymnastics类和学校School类都实现了ComputerAverage接口,但是实现的方式不同。
接口方法定义:
ComputerAverage接口有 如下方法:
public double average(double x[]);
其中 x 是用户传入的参数。 函数须返回平均值。

裁判测试程序样例:

  1. import java.util.Scanner;
  2. public class Main {
  3. public static void main(String[] args) {
  4. double a[] ;
  5. double b[];
  6. Scanner sc=new Scanner(System.in);
  7. String str1=sc.nextLine();
  8. String[] str_a=str1.split(" ");
  9. a=new double[str_a.length];
  10. for(int i=0;i<str_a.length;i++)
  11. a[i]=Double.parseDouble(str_a[i]);
  12. String str2=sc.nextLine();
  13. String[] str_b=str2.split(" ");
  14. b=new double[str_b.length];
  15. for(int i=0;i<str_b.length;i++)
  16. b[i]=Double.parseDouble(str_b[i]);
  17. CompurerAverage computer;
  18. computer=new Gymnastics();
  19. double result=computer.average(a); //computer调用average(double x[])方法,将数组a传递给参数x
  20. //System.out.printf("%n");
  21. System.out.printf("体操选手最后得分:%5.3f\n",result);
  22. computer=new School();
  23. result=computer.average(b); //computer调用average(double x[])方法,将数组b传递给参数x
  24. System.out.printf("班级考试平均分数:%-5.2f",result);
  25. }
  26. }
  27. /* 请在这里填写答案 */
  28. //定义接口
  29. //定义Gymnastics 类实现接口
  30. //定义School类实现接口
  31. 输入样例:
  32. 9.89 9.88 9.99 9.12 9.69 9.76 8.97
  33. 89 56 78 90 100 77 56 45 36 79 98
  34. 输出样例:
  35. 体操选手最后得分:9.668
  36. 班级考试平均分数:73.09

我的答案

  1. import java.util.*;
  2. public class Main
  3. {
  4. public static void main(String[] args)
  5. {
  6. double a[];
  7. double b[];
  8. Scanner sc=new Scanner(System.in);
  9. String str1=sc.nextLine();//接收第一行数据
  10. String []str_a=str1.split(" ");//利用split分割数据,使用str_a数组存储
  11. a=new double[str_a.length];
  12. for(int i=0;i<str_a.length;i++)
  13. {
  14. a[i]=Double.parseDouble(str_a[i]);//parse方法把字符转换为double
  15. }
  16. String str2=sc.nextLine();
  17. String []str_b=str2.split(" ");
  18. b=new double[str_b.length];
  19. for(int i=0;i<str_b.length;i++)
  20. {
  21. b[i]=Double.parseDouble(str_b[i]);
  22. }
  23. CompurerAverage c;
  24. c=new Gymnastics();
  25. double result;
  26. result=c.average(a);//computer调用average(double x[])方法,将数组a传递给参数x
  27. System.out.printf("体操选手最后得分:%5.3f\n",result);
  28. c=new School();
  29. result=c.average(b); //computer调用average(double x[])方法,将数组b传递给参数x
  30. System.out.printf("班级考试平均分数:%-5.2f",result);
  31. }
  32. }
  33. interface CompurerAverage
  34. {
  35. double average(double x[]);
  36. }
  37. class Gymnastics implements CompurerAverage
  38. {
  39. public double average(double x[])
  40. {
  41. double sum=0;
  42. Arrays.sort(x);//Arrays.sort方法排序
  43. //也可自己写排序方法
  44. //也可遍历找出最大最小值
  45. for(int i=1;i<x.length-1;i++)
  46. {
  47. sum+=x[i];
  48. }
  49. return sum/(x.length-2);
  50. }
  51. }
  52. class School implements CompurerAverage
  53. {
  54. public double average(double x[])
  55. {
  56. double sum=0;
  57. for(int i=0;i<x.length;i++)
  58. {
  59. sum += x[i];
  60. }
  61. double result=sum/(x.length);
  62. return result;
  63. }
  64. }

发表评论

表情:
评论列表 (有 0 条评论,174人围观)

还没有评论,来说两句吧...

相关阅读

    相关 计算成绩

    计算一个班级的物理和数学成绩。 编程要求用二维数组double scores\[10\]\[2\]存放一个班级的10名同学的物理和数学成绩。 要求: 设计一个函数输

    相关 Java 6-1 计算成绩 (15)

    体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班同学的平均成绩。体操Gymnastics类和学校School

    相关 学生成绩录入及查询 (15 )

    学生成绩表中,一名学生的信息包含如下信息: 学号(11位)、姓名、数学成绩、英语成绩、程序设计成绩、物理成绩。 本题要求编写程序,录入N条学生的信息,并且按查询要求显示学生成

    相关 PTA 计算平均成绩 (15 )

    给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩(\[0,100\]区间内的整数),要求计算他们的平均成绩,并

    相关 Java计算平均成绩

    编写一个程序,根据用户输入的总人数和总成缋计算平均成绩。要求程序能够处理总人数或者总成绩不是数字时的情况。 根据题目要求得知,在程序中需要对多种异常情况进行不同的处理