Java编程题:计算学生平均年龄和统计班级平均分
Java编程题:计算学生平均年龄和统计班级平均分
问题描述:
假设有一个学生类Student,包含以下属性:
name(String): 姓名age(int): 年龄score(int): 成绩classNum(String): 班级
代码示例:
// 类的get/set方法和构造方法省略
// 1) 计算所有学生的平均年龄
public static double getAvgAge(List<Student> list) {
int sum = 0;
for (Student student : list) {
sum += student.getAge();
}
return (double) sum / list.size();
}
// 2) 统计各个班级的平均分,存入map
public static Map<String, Double> getAvgScoreByClass(List<Student> list) {
Map<String, List<Integer>> classScoreMap = new HashMap<>();
for (Student student : list) {
String classNum = student.getClassNum();
int score = student.getScore();
if (classScoreMap.containsKey(classNum)) {
List<Integer> scores = classScoreMap.get(classNum);
scores.add(score);
} else {
List<Integer> scores = new ArrayList<>();
scores.add(score);
classScoreMap.put(classNum, scores);
}
}
Map<String, Double> avgScoreMap = new HashMap<>();
for (Map.Entry<String, List<Integer>> entry : classScoreMap.entrySet()) {
String classNum = entry.getKey();
List<Integer> scores = entry.getValue();
double sum = 0;
for (int score : scores) {
sum += score;
}
double avgScore = sum / scores.size();
avgScoreMap.put(classNum, avgScore);
}
return avgScoreMap;
}
代码说明:
-
getAvgAge(List<Student> list)方法用于计算所有学生的平均年龄。通过遍历学生列表,将每个学生的年龄累加,最后除以学生总数即可得到平均年龄。 -
getAvgScoreByClass(List<Student> list)方法用于统计各个班级的平均分。使用HashMap存储班级号和对应学生成绩的列表,遍历学生列表,根据班级号将学生成绩加入对应的列表中。最后遍历HashMap,计算每个班级成绩的平均分,并存入新的HashMap中返回。
示例:
List<Student> students = new ArrayList<>();
// 添加多个学生对象到list
...
double avgAge = getAvgAge(students);
System.out.println("所有学生的平均年龄为:" + avgAge);
Map<String, Double> avgScoreMap = getAvgScoreByClass(students);
System.out.println("各个班级的平均分为:" + avgScoreMap);
学习建议:
- 本代码示例展示了如何使用Java语言中的
List和Map数据结构来进行数据操作,并利用循环和条件语句来实现计算功能。 - 可以尝试修改代码,实现其他功能,比如计算每个班级的学生人数、找出成绩最高的同学等。
- 练习更多类似的编程题,可以帮助你更好地掌握Java编程基础知识。
原文地址: https://www.cveoy.top/t/topic/oc0n 著作权归作者所有。请勿转载和采集!