JAVA7-3 统计学生平均成绩与及格人数 (10 分)

该博客介绍了如何使用JAVA编程计算一组学生的平均成绩和及格人数。程序接收学生人数和各成绩,确保成绩在整型范围内,然后输出平均分(保留一位小数)和及格人数(成绩不低于60分)。示例输入为5名学生的分数,输出显示平均分为71.2,及格人数为4人。

7-3 统计学生平均成绩与及格人数 (10 分)

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

输入格式:

输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

输出格式:

按照以下格式输出:

average = 成绩均值
count = 及格人数

其中平均值精确到小数点后一位。

输入样例:

5
77 54 92 73 60

输出样例:

average = 71.2
count = 4

我的代码如下:

import java.util.Scanner;
public class Main
{
   
   
    public static void main(String[] args
下面是一个使用 Java 编写的程序,用于统计指定数量学生平均成绩及格人数: ```java import java.util.Scanner; class Student { private int id; private int score; public Student(int id) { this.id = id; } public void setScore(int s) throws IllegalArgumentException { if (s < 0 || s > 100) { throw new IllegalArgumentException("成绩必须在 0 到 100 之间"); } this.score = s; } public int getScore() { return score; } @Override public String toString() { return "[学号:" + id + ",成绩:" + score + "]"; } } public class ScoreStatistics { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入要录入成绩的总人数: "); int N = scanner.nextInt(); Student[] students = new Student[N]; double sum = 0; int failCount = 0; for (int i = 0; i < N; i++) { students[i] = new Student(200001 + i); boolean validScore = false; while (!validScore) { try { System.out.print("请输入第 " + (i + 1) + " 个学生成绩: "); int score = scanner.nextInt(); students[i].setScore(score); sum += score; if (score < 60) { failCount++; } validScore = true; } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } } } double average = N == 0 ? 0 : sum / N; System.out.println("每个学生的信息:"); for (Student student : students) { System.out.println(student); } System.out.printf("该班的平均: %.2f\n", average); System.out.println("不及格人数: " + failCount); scanner.close(); } } ``` ### 代码解释 1. **`Student` 类**: - 包含学号 `id` 和成绩 `score` 两个属性。 - `setScore` 方法用于设置成绩,当成绩不在 0 到 100 之间时,抛出 `IllegalArgumentException` 异常。 - `toString` 方法用于以 `[学号:学号值,成绩分数值]` 的格式输出学生信息。 2. **`ScoreStatistics` 类**: - 在 `main` 方法中,首先从用户输入获取要录入成绩的总人数 `N`。 - 创建 `Student` 数组来存储学生信息。 - 使用 `for` 循环依次录入每个学生成绩,使用 `try-catch` 块捕获并处理可能的异常。 - 计算总成绩和不及格人数- 计算平均并输出每个学生的信息、平均和不及格人数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值