模拟向货船上装载集装箱,每个集装箱有一定重量,货船总重大于每个集装箱,装载若千集 装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。java
时间: 2024-05-11 13:20:04 浏览: 131
好的,可以通过以下代码实现:
```java
import java.util.Scanner;
public class CargoShip {
private int totalWeight;
private int currentWeight;
public CargoShip(int totalWeight) {
this.totalWeight = totalWeight;
this.currentWeight = 0;
}
public boolean loadContainer(int weight) {
if (currentWeight + weight > totalWeight) {
System.out.println("Cargo ship overloaded, cannot load container.");
return false;
} else {
currentWeight += weight;
System.out.println("Container loaded successfully.");
return true;
}
}
public void startSailing() {
System.out.println("Cargo ship is sailing.");
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter total weight of cargo ship: ");
int totalWeight = scanner.nextInt();
CargoShip cargoShip = new CargoShip(totalWeight);
int numContainers = 0;
while (true) {
System.out.print("Enter weight of container (or -1 to exit): ");
int weight = scanner.nextInt();
if (weight == -1) {
break;
}
if (cargoShip.loadContainer(weight)) {
numContainers++;
}
}
System.out.println("Total number of containers loaded: " + numContainers);
cargoShip.startSailing();
}
}
```
在这个示例中,我们首先创建一个名为`CargoShip`的类,它有两个实例变量:`totalWeight`(货船总重)和`currentWeight`(当前已装载的重量)。我们使用构造函数来初始化货船的总重和当前重量。
接下来,我们定义了两个方法:`loadContainer`和`startSailing`。`loadContainer`方法用于装载集装箱,并检查货船是否超重。如果货船超重,则该方法返回`false`并打印一条错误消息。否则,它会将集装箱的重量添加到当前重量中,并返回`true`表示装载成功。`startSailing`方法仅打印一条消息,表示货船已启航。
在`main`方法中,我们首先提示用户输入货船的总重。然后,我们使用`Scanner`类从控制台读取用户输入,并创建一个`CargoShip`对象。接下来,我们进入一个循环中,在每次迭代中提示用户输入集装箱的重量。如果用户输入了-1,则退出循环。否则,我们调用`loadContainer`方法来装载集装箱。如果装载成功,则将`numContainers`计数器加1。
最后,我们打印出装载的集装箱数量,并调用`startSailing`方法表示货船已启航。
希望这可以帮助你实现你的代码!
阅读全文