在全系1000名学生中举行慈善募捐,当总数达到10万元时就借宿,统计此时捐款的人数以及平均每人的捐款的数目。 java实现
时间: 2024-09-19 11:01:05 浏览: 51
在Java中,我们可以创建一个简单的程序来解决这个问题。首先,我们需要定义一个`Student`类,包含姓名和捐款金额两个属性。然后,我们创建一个数组或者集合来存储所有学生的捐款情况,并在满足条件时计算捐款人数和平均捐款。
```java
import java.util.ArrayList;
import java.util.Scanner;
public class CharityDonation {
static class Student {
String name;
double donation;
public Student(String name, double donation) {
this.name = name;
this.donation = donation;
}
}
public static void main(String[] args) {
// 初始化学生列表
ArrayList<Student> students = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入捐赠总额(元):");
double totalAmountGoal = 100000;
while (true) {
System.out.print("请输入学生姓名(输入'quit'结束)或捐款额(负值退出):");
String input = scanner.nextLine();
if ("quit".equals(input)) {
break;
} else {
try {
double donation = Double.parseDouble(input);
if (donation > 0) {
students.add(new Student(input, donation));
totalAmountGoal -= donation; // 减去当前学生的捐款
if (totalAmountGoal <= 0) { // 达到目标总金额
System.out.println("捐款达到目标,总额为" + totalAmountGoal + "元,共捐款者:" + students.size() + "人");
// 计算平均捐款
double averageDonation = students.stream().mapToDouble(Student::getDonation).average().orElse(0);
System.out.println("平均每人捐款:" + averageDonation + "元");
break;
}
} else {
System.out.println("请输入正数捐款!");
}
} catch (NumberFormatException e) {
System.out.println("请输入数字!");
}
}
}
scanner.close();
}
}
```
在这个程序中,用户通过循环输入学生的姓名和捐款金额,直到达到目标总金额为止。最后会打印出捐款人数和平均每人捐款数。
阅读全文