java假设某家银行每接受一次顾客的汇款,便可计算出当前汇款总额。若现有两个顾客,每人分3次、每次100元将钱汇入。试模拟该银行作业,输出格式如下: 顾客甲第1次存入100元,汇款总额100 顾客乙第1次存入100元,汇款总额200 顾客乙第2次存入100元,汇款总额300 ……
时间: 2023-12-22 11:04:30 浏览: 65
好的,以下是Java的代码示例:
```java
public class BankSimulation {
public static void main(String[] args) {
int total = 0; // 汇款总额初始化为0
// 顾客甲和顾客乙分别存款3次
for (int i = 1; i <= 3; i++) {
total += 100; // 每次存入100元
System.out.printf("顾客甲第%d次存入100元,汇款总额%d\n", i, total);
}
for (int i = 1; i <= 3; i++) {
total += 100; // 每次存入100元
System.out.printf("顾客乙第%d次存入100元,汇款总额%d\n", i, total);
}
}
}
```
代码中同样用一个`total`变量来记录当前的汇款总额,然后分别模拟两个顾客的存款过程,每次存入100元并更新`total`变量的值,最后按照指定格式输出结果。
相关问题
用java编译以下问题:假设某一银行账户,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有多个顾客,每人分多次将钱(每个顾客汇入的时间和钱数不一样)汇入到该银行账户。试编写一个程序,模拟实际作业,要求自定义每个顾客的汇款金额和次数,然后有系统随机安排汇款顺序,每个顾客汇完自己的次数后将不会再汇款,显示总金额
以下是用Java编写的程序:
```java
import java.util.*;
public class BankAccount {
private double totalAmount;
public BankAccount() {
totalAmount = 0;
}
public double getTotalAmount() {
return totalAmount;
}
public void addMoney(double amount) {
totalAmount += amount;
}
}
class Customer {
private String name;
private double[] amounts;
private int[] frequencies;
private BankAccount account;
public Customer(String name, double[] amounts, int[] frequencies, BankAccount account) {
this.name = name;
this.amounts = amounts;
this.frequencies = frequencies;
this.account = account;
}
public String getName() {
return name;
}
public void doTransfer() {
Random rand = new Random();
for (int i = 0; i < amounts.length; i++) {
if (frequencies[i] == 0) {
continue;
}
double amount = amounts[i];
account.addMoney(amount);
frequencies[i]--;
System.out.println(name + " transferred " + amount + " to bank account");
try {
Thread.sleep(rand.nextInt(1000) + 500);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class BankSimulation {
public static void main(String[] args) {
BankAccount account = new BankAccount();
Customer[] customers = new Customer[3];
customers[0] = new Customer("Alice", new double[]{100, 200, 300}, new int[]{3, 2, 1}, account);
customers[1] = new Customer("Bob", new double[]{50, 50, 50, 50, 50}, new int[]{5, 4, 3, 2, 1}, account);
customers[2] = new Customer("Charlie", new double[]{500, 200}, new int[]{2, 1}, account);
int totalTransfers = 0;
while (true) {
List<Customer> activeCustomers = new ArrayList<>();
for (Customer customer : customers) {
if (Arrays.stream(customer.frequencies).sum() > 0) {
activeCustomers.add(customer);
}
}
if (activeCustomers.size() == 0) {
break;
}
Collections.shuffle(activeCustomers);
for (Customer customer : activeCustomers) {
customer.doTransfer();
}
totalTransfers += activeCustomers.size();
}
System.out.println("Total amount transferred: " + account.getTotalAmount());
System.out.println("Total number of transfers: " + totalTransfers);
}
}
```
程序中定义了三个类 `BankAccount`、`Customer` 和 `BankSimulation`。
`BankAccount` 类表示银行账户,包含一个成员变量 `totalAmount` 表示汇款总额,和两个方法 `getTotalAmount()` 和 `addMoney()` 分别用于获取总金额和添加汇款金额。
`Customer` 类表示顾客,包含四个成员变量 `name`、`amounts`、`frequencies` 和 `account` 分别表示顾客姓名、汇款金额、汇款次数和银行账户。`doTransfer()` 方法用于执行汇款操作,随机选择一笔汇款并向银行账户汇款,直到该顾客所有的汇款次数都完成。
`BankSimulation` 类表示银行模拟程序,包含一个 `main()` 方法。首先创建一个银行账户和三个顾客,在一个无限循环中,每次随机选择一个顾客进行汇款,直到所有顾客的汇款次数都完成。循环结束后输出汇款总额和汇款次数。
这个程序可以自定义每个顾客的汇款金额和次数,并且能够模拟多个顾客并发汇款的场景。
用java语言编写,假设某一银行账户,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有多个顾客,每人分多次将钱(每个顾客汇入的时间和钱数不一样)汇入到该银行账户。试编写一个程序,模拟实际作业。 [基本要求] 运行程序5次,观察每次运行结果是否相同,并对现象做解释。
好的,这是一个简单的银行账户余额管理系统,我可以为您提供Java语言代码示例。在这个示例程序中,我们将创建一个BankAccount类来处理银行账户的余额,以及一个Customer类来表示银行的顾客。
BankAccount类中有两个重要的成员变量,balance和transactions。balance用于跟踪账户的总余额,transactions用于保存每一次汇款的金额。在每次汇款时,我们将汇款金额添加到transactions变量中,同时更新balance变量的值。代码如下:
```java
public class BankAccount {
private double balance;
private ArrayList<Double> transactions;
public BankAccount() {
this.balance = 0;
this.transactions = new ArrayList<Double>();
}
public void deposit(double amount) {
this.balance += amount;
this.transactions.add(amount);
}
public double getBalance() {
return this.balance;
}
public ArrayList<Double> getTransactions() {
return this.transactions;
}
}
```
Customer类表示银行的顾客,其中包含顾客的姓名和银行账户。我们可以通过调用银行账户的deposit方法来进行汇款。示例代码如下:
```java
public class Customer {
private String name;
private BankAccount account;
public Customer(String name) {
this.name = name;
this.account = new BankAccount();
}
public void deposit(double amount) {
this.account.deposit(amount);
}
public double getBalance() {
return this.account.getBalance();
}
public ArrayList<Double> getTransactions() {
return this.account.getTransactions();
}
}
```
在主函数中,我们可以创建多个顾客对象,并进行多次汇款操作。示例代码如下:
```java
public static void main(String[] args) {
Customer customer1 = new Customer("Alice");
Customer customer2 = new Customer("Bob");
customer1.deposit(1000);
customer2.deposit(2000);
customer1.deposit(500);
customer2.deposit(1000);
System.out.println(customer1.getBalance());
System.out.println(customer1.getTransactions());
System.out.println(customer2.getBalance());
System.out.println(customer2.getTransactions());
}
```
在运行程序5次后,每次运行结果都应该是相同的。这是因为每个顾客的汇款操作都是独立的,不会受到其他顾客的影响。如果您发现运行结果不同,可能是因为您在程序中使用了随机数或系统时间等不稳定因素。
阅读全文
相关推荐











