酷代码 AI
菜单
服务商

创建成绩类,包含: 属性:平时成绩(int)、期末成绩(int) 方法:计算总成绩(计算规则:平时成绩*0.4+期末成绩*0.6,保留整数部分,小数部分直接丢弃) 创建学生类,包含: 属性:学号(String)、姓名(String)、语文成绩(成绩类)、数学成绩(成绩类)、物理成绩(成绩类) 方法:计算总分、计算平均分 输入3个学生的信息,将每个学生的信息封装在一个学生对象中。 按输入顺序依次输出3个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。

以下是实现上述需求的 Java 代码: ```java class Score { // 平时成绩 int usualScore; // 期末成绩 int finalScore; // 构造函数,用于初始化平时成绩和期末成绩 public Score(int usualScore, int finalScore) { this.usualScore = usualScore; this.finalScore = finalScore; } // 计算总成绩的方法 public int calculateTotalScore() { return (int) (usualScore * 0.4 + finalScore * 0.6); } } class Student { // 学号 String studentId; // 姓名 String name; // 语文成绩 Score chineseScore; // 数学成绩 Score mathScore; // 物理成绩 Score physicsScore; // 构造函数,用于初始化学生的基本信息和各科成绩 public Student(String studentId, String name, Score chineseScore, Score mathScore, Score physicsScore) { this.studentId = studentId; this.name = name; this.chineseScore = chineseScore; this.mathScore = mathScore; this.physicsScore = physicsScore; } // 计算学生总分的方法 public int calculateTotal() { return chineseScore.calculateTotalScore() + mathScore.calculateTotalScore() + physicsScore.calculateTotalScore(); } // 计算学生平均分的方法 public double calculateAverage() { return (double) calculateTotal() / 3; } } import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Student[] students = new Student[3]; for (int i = 0; i < 3; i++) { String studentId = scanner.next(); String name = scanner.next(); int chineseUsual = scanner.nextInt(); int chineseFinal = scanner.nextInt(); int mathUsual = scanner.nextInt(); int mathFinal = scanner.nextInt(); int physicsUsual = scanner.nextInt(); int physicsFinal = scanner.nextInt(); Score chineseScore = new Score(chineseUsual, chineseFinal); Score mathScore = new Score(mathUsual, mathFinal); Score physicsScore = new Score(physicsUsual, physicsFinal); students[i] = new Student(studentId, name, chineseScore, mathScore, physicsScore); } for (Student student : students) { int total = student.calculateTotal(); double average = student.calculateAverage(); System.out.printf("%d %.2f\n", total, average); } scanner.close(); } } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 在计算总成绩时,要注意强制类型转换,避免出现小数部分未正确处理的问题。 2. 在使用 `Scanner` 读取输入时,要确保输入的数据类型和顺序与代码中读取的一致,否则可能会导致输入异常。 3. 在格式化输出平均分到小数点后两位时,使用 `printf` 方法要注意格式控制符的使用,避免输出格式错误。 [2025-11-01 20:57:40 | AI写代码神器 | 750点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多