用java模拟向货船上装载集装箱,每个集装箱有一定重量,货船总重大于每个集装箱,装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。
时间: 2024-04-30 21:18:12 浏览: 42
好的,这个问题可以使用Java语言来实现。下面是一个简单的解决方案:
```java
import java.util.Scanner;
public class CargoShip {
private int maxWeight; // 货船最大载重
private int currentWeight; // 当前载重
public CargoShip(int maxWeight) {
this.maxWeight = maxWeight;
this.currentWeight = 0;
}
public boolean loadContainer(int weight) {
if (currentWeight + weight <= maxWeight) { // 能够装载
currentWeight += weight;
return true;
} else { // 超重,拒绝装载
System.out.println("Cargo ship overloaded, cannot load container.");
return false;
}
}
public void setSail() {
System.out.println("Cargo ship set sail on time.");
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter cargo ship's max weight: ");
int maxWeight = scanner.nextInt();
CargoShip cargoShip = new CargoShip(maxWeight);
while (true) {
System.out.print("Enter container's weight (0 to exit): ");
int weight = scanner.nextInt();
if (weight == 0) break;
if (!cargoShip.loadContainer(weight)) {
continue;
}
}
cargoShip.setSail();
scanner.close();
}
}
```
上面的程序定义了一个 CargoShip 类来表示货船,其中包含了货船的最大载重和当前载重两个属性,以及装载集装箱和正点启航两个方法。在程序中,我们使用一个循环来读取用户输入的集装箱重量,如果能够装载,则将其加入货船的载重中,否则提示超重并继续读取下一个集装箱。当用户输入 0 时,循环结束并正点启航。
你可以根据自己的需求对该程序进行修改和扩展,比如添加集装箱数量的限制,或者对货船超重的情况进行记录和处理。