用java编译以下问题:假设某一银行账户,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有多个顾客,每人分多次将钱(每个顾客汇入的时间和钱数不一样)汇入到该银行账户。试编写一个程序,模拟实际作业,要求自定义顾客数量、每个顾客的汇款金额和次数,不同顾客汇款次数和金额不同,同一个顾客每次汇款金额相同,然后有系统随机安排汇款顺序,每个顾客汇完自己的次数后将不会再汇款,显示总金额
时间: 2024-03-22 20:36:50 浏览: 25
很高兴为您解答这个问题,以下是使用 Java 编写的程序:
```java
import java.util.*;
public class BankAccountSimulation {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入顾客数量:");
int numCustomers = input.nextInt();
// 创建顾客数组
Customer[] customers = new Customer[numCustomers];
for (int i = 0; i < numCustomers; i++) {
System.out.printf("请输入顾客%d的汇款次数:", i + 1);
int numTransactions = input.nextInt();
System.out.printf("请输入顾客%d每次汇款金额:", i + 1);
double amountPerTransaction = input.nextDouble();
customers[i] = new Customer(i + 1, numTransactions, amountPerTransaction);
}
// 随机安排汇款顺序
List<Customer> customerList = Arrays.asList(customers);
Collections.shuffle(customerList);
// 模拟汇款
BankAccount bankAccount = new BankAccount();
for (Customer customer : customerList) {
for (int i = 0; i < customer.getNumTransactions(); i++) {
bankAccount.deposit(customer.getAmountPerTransaction());
}
}
// 显示总金额
System.out.printf("总金额为:%.2f\n", bankAccount.getBalance());
}
}
class Customer {
private int id;
private int numTransactions;
private double amountPerTransaction;
public Customer(int id, int numTransactions, double amountPerTransaction) {
this.id = id;
this.numTransactions = numTransactions;
this.amountPerTransaction = amountPerTransaction;
}
public int getId() {
return id;
}
public int getNumTransactions() {
return numTransactions;
}
public double getAmountPerTransaction() {
return amountPerTransaction;
}
}
class BankAccount {
private double balance;
public void deposit(double amount) {
balance += amount;
}
public double getBalance() {
return balance;
}
}
```
您可以根据需要修改顾客数量、每个顾客的汇款金额和次数,然后运行程序即可。程序会随机安排汇款顺序,并模拟汇款过程,最后显示总金额。