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;
}

代码说明:

  1. getAvgAge(List<Student> list) 方法用于计算所有学生的平均年龄。通过遍历学生列表,将每个学生的年龄累加,最后除以学生总数即可得到平均年龄。

  2. 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编程基础知识。
Java编程题:计算学生平均年龄和统计班级平均分

原文地址: https://www.cveoy.top/t/topic/oc0n 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录