Java编程:学生成绩计算与输出,含成绩类和学生类实现
我来帮你解决这个编程问题。我们需要创建两个类:成绩类和学生类,并实现题目要求的功能。 ```java import java.util.*; class Grade { private int usualScore; private int finalScore; public Grade(int usualScore, int finalScore) { this.usualScore = usualScore; this.finalScore = finalScore; } public int getTotalScore() { return (int)(usualScore * 0.4 + finalScore * 0.6); } } class Student { private String id; private String name; private Grade chinese; private Grade math; private Grade physics; public Student(String id, String name) { this.id = id; this.name = name; } public void setGrade(String course, Grade grade) { switch (course) { case "语文": chinese = grade; break; case "数学": math = grade; break; case "物理": physics = grade; break; } } public int getTotalScore() { return chinese.getTotalScore() + math.getTotalScore() + physics.getTotalScore(); } public double getAverageScore() { return Math.round(getTotalScore() * 100.0 / 3) / 100.0; } public String toString() { return id + " " + name + " " + getTotalScore() + " " + String.format("%.2f", getAverageScore()); } } 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 usualScore = Integer.parseInt(data[3]); int finalScore = Integer.parseInt(data[4]); students.putIfAbsent(id, new Student(id, name)); Student student = students.get(id); student.setGrade(course, new Grade(usualScore, finalScore)); } for (Student student : students.values()) { System.out.println(student); } } } ``` 代码说明: 1. Grade类处理单科成绩计算,使用int类型直接截断小数部分 2. Student类管理学生信息和成绩,使用四舍五入保留两位小数 3. Main类处理输入输出,使用LinkedHashMap保持输入顺序 4. 平均分计算时先乘以100再除以100实现四舍五入到两位小数 注意事项: 1. 成绩计算时要注意类型转换,避免精度丢失 2. 使用LinkedHashMap保持学生输入顺序 3. 四舍五入处理要放在最后一步计算 4. 科目设置使用switch-case确保正确对应 ######[AI写代码神器 | 621点数解答 | 2025-04-18 11:43:55]
- C 语言:快速实现 5 个学生信息录入、按成绩升序排序并输出!(字节豆包 | 373点数解答 | 2024-10-30 00:37:20)409
- C语言实现:输入5名学生信息并按成绩升序排序输出(字节豆包 | 354点数解答 | 2024-10-30 18:45:58)353
- C语言:输入5个学生信息,按成绩升序排序并输出(字节豆包 | 373点数解答 | 2024-10-31 19:49:58)344
- C语言:输入5名学生信息并按成绩升序排序输出(字节豆包 | 326点数解答 | 2025-01-01 20:11:47)339
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)403
- 培训机构学员成绩与年龄更新:C++ 代码实现(DeepSeek | 186点数解答 | 2025-12-16 18:04:31)58
- Python 处理培训机构学员培训后年龄与 NOIP 成绩提升情况(DeepSeek | 73点数解答 | 2025-12-16 18:05:20)61
- 培训机构学员成绩提升:C++代码实现年龄与NOIP成绩更新(DeepSeek | 178点数解答 | 2025-12-31 12:20:24)58
- 成绩等级统计:20个60 - 100分成绩的等级数量揭秘(字节豆包 | 219点数解答 | 2025-04-09 10:20:32)218
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)305
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1134
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343