用java写一个生产排产系统 ,每次生产不得高于23.43小时
时间: 2023-06-25 09:02:35 浏览: 156
好的,以下是一个简单的生产排产系统的Java代码示例:
```java
import java.util.ArrayList;
import java.util.List;
public class ProductionScheduleSystem {
private List<ProductionOrder> orders;
private double maxProductionTime = 23.43;
public ProductionScheduleSystem() {
orders = new ArrayList<>();
}
public void addOrder(ProductionOrder order) {
orders.add(order);
}
public void schedule() {
double currentProductionTime = 0.0;
for (ProductionOrder order : orders) {
if (currentProductionTime + order.getProductionTime() <= maxProductionTime) {
order.setScheduledStartTime(currentProductionTime);
currentProductionTime += order.getProductionTime();
} else {
System.out.println("Cannot schedule order " + order.getId() + " due to production time constraints.");
}
}
}
// Getters and setters
public double getMaxProductionTime() {
return maxProductionTime;
}
public void setMaxProductionTime(double maxProductionTime) {
this.maxProductionTime = maxProductionTime;
}
}
class ProductionOrder {
private int id;
private double productionTime;
private double scheduledStartTime;
public ProductionOrder(int id, double productionTime) {
this.id = id;
this.productionTime = productionTime;
}
// Getters and setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getProductionTime() {
return productionTime;
}
public void setProductionTime(double productionTime) {
this.productionTime = productionTime;
}
public double getScheduledStartTime() {
return scheduledStartTime;
}
public void setScheduledStartTime(double scheduledStartTime) {
this.scheduledStartTime = scheduledStartTime;
}
}
```
该系统包含两个类:`ProductionScheduleSystem` 和 `ProductionOrder`。`ProductionScheduleSystem`类表示生产排产系统,其中`addOrder`方法用于添加生产订单,`schedule`方法用于计算订单的计划开始时间并设置它们的`scheduledStartTime`属性。`ProductionOrder`类表示生产订单,其中`id`属性是订单的唯一标识符,`productionTime`属性是订单的生产时间,`scheduledStartTime`属性是订单的计划开始时间。
在`schedule`方法中,系统会遍历所有订单并计算它们的计划开始时间。如果当前的生产时间加上订单的生产时间小于等于最大生产时间,系统会将订单的计划开始时间设置为当前生产时间,并将当前生产时间增加订单的生产时间。否则,系统将会输出一个错误消息,表示无法排产该订单。
你可以使用以下代码测试该系统:
```java
public static void main(String[] args) {
ProductionScheduleSystem system = new ProductionScheduleSystem();
system.addOrder(new ProductionOrder(1, 10.0));
system.addOrder(new ProductionOrder(2, 5.0));
system.addOrder(new ProductionOrder(3, 8.0));
system.addOrder(new ProductionOrder(4, 3.0));
system.schedule();
for (ProductionOrder order : system.getOrders()) {
System.out.println("Order " + order.getId() + " scheduled to start at " + order.getScheduledStartTime() + " hours.");
}
}
```
这段代码会创建一个生产排产系统并添加四个订单。然后,它会调用`schedule`方法来计算订单的计划开始时间,并输出每个订单的计划开始时间。你可以修改订单的生产时间和最大生产时间来测试该系统的不同方面。
阅读全文