酷代码 AI
菜单
服务商

创建成绩类,包含: 属性:平时成绩(int)、期末成绩(int) 方法:计算总成绩(计算规则:平时成绩*0.4+期末成绩*0.6,保留整数部分,小数部分直接丢弃) 创建学生类,包含: 属性:学号(String)、姓名(String)、语文成绩(成绩类)、数学成绩(成绩类)、物理成绩(成绩类) 方法:计算总分、计算平均分 输入3个学生的信息,将每个学生的信息封装在一个学生对象中。 按输入顺序依次输出3个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。 浮点数保留小数的相关知识可参考:https://blog.csdn.net/huaishuming/article/details/17752365 注意:未用学生类对象封装数据的,本题计0分 输入格式: 依次输入3个学生的每门课成绩,每个学生成绩信息格式: 学号+英文空格+姓名+英文空格+课程名+英文空格+平时成绩+英文空格+期末成绩 注:3个学生的课程顺序可能会不一致 例如: 22201311 张琳 语文 70 80 22201311 张琳 数学 85 89 22201311

```java class Score { private int dailyScore; private int finalScore; public Score(int dailyScore, int finalScore) { this.dailyScore = dailyScore; this.finalScore = finalScore; } public int getTotalScore() { return (int)(dailyScore * 0.4 + finalScore * 0.6); } } class Student { private String id; private String name; private Score chinese; private Score math; private Score physics; public Student(String id, String name) { this.id = id; this.name = name; } public void setChinese(Score chinese) { this.chinese = chinese; } public void setMath(Score math) { this.math = math; } public void setPhysics(Score physics) { this.physics = physics; } public int getTotal() { return chinese.getTotalScore() + math.getTotalScore() + physics.getTotalScore(); } public double getAverage() { double avg = getTotal() / 3.0; return Math.round(avg * 100) / 100.0; } public String getId() { return id; } public String getName() { return name; } } public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Map<String, Student> students = new LinkedHashMap<>(); for (int i = 0; i < 9; i++) { String[] data = scanner.nextLine().split(" "); String id = data[0]; String name = data[1]; String course = data[2]; int daily = Integer.parseInt(data[3]); int fina = Integer.parseInt(data[4]); students.putIfAbsent(id, new Student(id, name)); Student student = students.get(id); switch (course) { case "语文": student.setChinese(new Score(daily, fina)); break; case "数学": student.setMath(new Score(daily, fina)); break; case "物理": student.setPhysics(new Score(daily, fina)); break; } } for (Student student : students.values()) { System.out.printf("%s %s %d %.2f\n", student.getId(), student.getName(), student.getTotal(), student.getAverage()); } } } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - 类型转换时注意精度丢失问题,特别是浮点数运算 - 使用Map存储对象时要确保键的唯一性和正确性 - 数值计算时注意四舍五入规则和舍入误差 [2025-10-08 21:37:55 | AI写代码神器 | 605点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]