用java 模拟向货船上装载集装箱,每个集装箱有一定重量,货船总重大于每个集装箱,装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。
时间: 2023-06-17 16:08:09 浏览: 299
好的,这是一个比较简单的模拟船舶装载集装箱的问题。我给您提供一个大致的解决思路:
1. 定义一个货船类,其中包含属性:货船总重、当前已装载重量、已装载集装箱数量、异常状态标识等信息。
2. 定义一个集装箱类,其中包含属性:集装箱重量、集装箱编号等信息。
3. 在货船类中定义一个装载集装箱的方法,每次调用该方法时,将传入一个集装箱对象,然后将集装箱的重量加入货船的当前已装载重量中,同时将已装载集装箱数量加1。如果当前已装载重量超过货船总重,则将异常状态标识设置为true,否则为false。
4. 在主程序中,创建一个货船对象和若干个集装箱对象,然后依次调用货船的装载集装箱方法,直到货船拒绝装载或者所有集装箱都已经装载完成。
5. 最后根据货船的异常状态标识来判断是否发生异常,然后输出相应的结果。
这只是一个大致的思路,具体实现还需要您根据实际情况进行调整和完善。希望能对您有所帮助。
相关问题
用java模拟向货船上装载集装箱,每个集装箱有一定重量,货船总重大于每个集装箱,装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。
好的,这个问题可以使用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 时,循环结束并正点启航。
你可以根据自己的需求对该程序进行修改和扩展,比如添加集装箱数量的限制,或者对货船超重的情况进行记录和处理。
用Java.+模拟向货船上装载集装箱,每个集装箱有一定重量,货船总重大于每个集装箱,装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。
以下是Java模拟向货船上装载集装箱的代码,满足每个集装箱有一定重量,货船总重大于每个集装箱,装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。
```java
import java.util.Scanner;
class CargoBoat {
private int maxContent;
private int currentContent;
public void setMaxContent(int maxContent) {
this.maxContent = maxContent;
}
public void loading(int weight) throws DangerException {
if (currentContent + weight > maxContent) {
throw new DangerException();
} else {
currentContent += weight;
}
}
}
class DangerException extends Exception {
public void showError() {
System.out.println("货船超重,拒绝装载集装箱!");
}
}
public class Main {
public static void main(String args[]) {
CargoBoat ship = new CargoBoat();
Scanner s = new Scanner(System.in);
ship.setMaxContent(1000);
int m = 0;
try {
while (true) {
m = s.nextInt();
ship.loading(m);
}
} catch (DangerException e) {
e.showError();
System.out.printf("无法再装载重量是%d吨的集装箱\n", m);
} finally {
System.out.printf("货船启航");
}
}
}
```
阅读全文