酷代码 AI
菜单
服务商

Java 学生成绩管理系统开发:类型转换、Map 存储与数值计算的注意要点

```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存储对象时要确保键的唯一性和正确性 - 数值计算时注意四舍五入规则和舍入误差 ######[AI写代码神器 | 605点数解答 | 2025-10-08 21:37:55]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]