java求学生的总分和平均分_Java集合练习题 求学生对象的平均年龄及按班级求平均分数...

本文展示了一段Java代码,用于计算学生对象列表的平均年龄以及按班级计算平均分数。首先,通过遍历集合计算所有学生的年龄总和和人数,从而得出平均年龄。接着,使用类似的方法统计每个班级的学生分数,更新班级总分和人数,最后输出每个班级的平均分数。
摘要由CSDN通过智能技术生成

有如下Student 对象,

private String name;

private int age;

private int score;

private String classNum;

其中,classNum 表示学生的班号,例如“class05”。 有如下List

List list = new ArrayList();

list.add(new Student(“Tom”, 18, 100, “class05”));

list.add(new Student(“Jerry”, 22, 70, “class04”));

list.add(new Student(“Owen”, 25, 90, “class05”));

list.add(new Student(“Jim”, 30,80 , “class05”));

list.add(new Student(“Steve”, 28, 66, “class06”));

list.add(new Student(“Kevin”, 24, 100, “class04”));

在这个list 的基础上,完成下列要求:

1) 计算所有学生的平均年龄

2) 计算各个班级的平均分

主类:

1 importjava.util.ArrayList;2

3 public classTestDay17_1_2 {4

5 public static voidmain(String[] args) {6 ArrayList al = new ArrayList<>();7

8 al.add(new TestDay17_1_2_Student("Tom", 18, 100, "class05"));9 al.add(new TestDay17_1_2_Student("Jerry", 22, 70, "class04"));10 al.add(new TestDay17_1_2_Student("Owen", 25, 90, "class05"));11 al.add(new TestDay17_1_2_Student("Jim", 30, 80, "class05"));12 al.add(new TestDay17_1_2_Student("Steve", 28, 66, "class06"));13 al.add(new TestDay17_1_2_Student("Kevin", 24, 100, "class04"));14

15 //计算平均年龄16 //定义总年龄及人数变量

17 int sumAge = 0;18 int count = 0;19 //遍历集合 总年龄累加、人数自增

20 for(TestDay17_1_2_Student s : al) {21 sumAge +=s.getAge();22 count++;23 }24 //计算并输出平均年龄

25 double averageAge = (sumAge * 1.0) /count;26 System.out.println("平均年龄是:" +averageAge);27

28 //计算各班级平均分29 //创建储存计算分数的集合

30 ArrayList alscore = new ArrayList<>();31 //遍历班级唯一插入成绩对象

32

33 for (int i = 0; i < al.size(); i++) {34 //过去当前学生对象

35 TestDay17_1_2_Student student =al.get(i);36 boolean flag = false;//标记没有重复班级名称

37 for (int j = 0; j < alscore.size(); j++) {38 //获取当前班级成绩对象

39 TestDay17_1_2_Score score =alscore.get(j);40 //判断班级名称是否重复

41 if(student.getClassNum().equals(score.getClassName())) {42 //重复标记设为真

43 flag = true;44 //修改当前成绩对象中分数和人数信息并跳出内循环

45 score.setStudentNum(score.getStudentNum()+1);46 score.setSumScore(score.getSumScore() +student.getScore());47 break;48 }49 }50

51 //判断flag如果为假(没有重复)则添加一个新的成绩对象

52 if (!flag) {53 alscore.add(new TestDay17_1_2_Score(student.getClassNum(),1,student.getScore()));54 }55 }56 for(TestDay17_1_2_Score score : alscore) {57 System.out.println(score.toString());58 }59 }60 }

学生类:

1 public classTestDay17_1_2_Student {2

3 privateString name;4 private intage;5 private intscore;6 privateString classNum;7 publicTestDay17_1_2_Student() {8 super();9 //TODO Auto-generated constructor stub

10 }11 public TestDay17_1_2_Student(String name, int age, intscore, String classNum) {12 super();13 this.name =name;14 this.age =age;15 this.score =score;16 this.classNum =classNum;17 }18 publicString getName() {19 returnname;20 }21 public voidsetName(String name) {22 this.name =name;23 }24 public intgetAge() {25 returnage;26 }27 public void setAge(intage) {28 this.age =age;29 }30 public intgetScore() {31 returnscore;32 }33 public void setScore(intscore) {34 this.score =score;35 }36 publicString getClassNum() {37 returnclassNum;38 }39 public voidsetClassNum(String classNum) {40 this.classNum =classNum;41 }42 }

成绩类:

1 public classTestDay17_1_2_Score {2

3 privateString className;4 private intstudentNum;5 private intsumScore;6

7 publicTestDay17_1_2_Score() {8 super();9 //TODO Auto-generated constructor stub

10 }11 public TestDay17_1_2_Score(String className, int studentNum, intsumScore) {12 super();13 this.className =className;14 this.studentNum =studentNum;15 this.sumScore =sumScore;16 }17 publicString getClassName() {18 returnclassName;19 }20 public voidsetClassName(String className) {21 this.className =className;22 }23 public intgetStudentNum() {24 returnstudentNum;25 }26 public void setStudentNum(intstudentNum) {27 this.studentNum =studentNum;28 }29 public intgetSumScore() {30 returnsumScore;31 }32 public void setSumScore(intsumScore) {33 this.sumScore =sumScore;34 }35

36 public doublegetAverageScore() {37 return (this.sumScore * 1.0) / this.studentNum;38 }39

40 @Override41 publicString toString() {42 double averageScore = this.getAverageScore();43 String className = this.getClassName();44 int studentNum = this.getStudentNum();45 int sumScore = this.getSumScore();46 return

47 (newStringBuffer()).append(className)48 .append("班级有").append(studentNum)49 .append("个同学,总分:").append(sumScore)50 .append(",平均分:").append(averageScore).toString()51 ;52 }53 }

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值