将小时设置好,直到达到最大罚款为止

  • 本文关键字:设置 小时 java
  • 更新时间 :
  • 英文 :


罚款为第一个小时或一个小时的一部分,将汽车非法停放。

加上每小时或一小时的一部分RM50.00那辆车是非法停放的。

最大罚款应为RM300.00。

我该怎么办,如果我要设置最大罚款,只有直到300?

public class ParkingTicket {
    private ParkedCar car;
    private PoliceOfficer police;
    private ParkingMeter meter;
    private double fine;
    private int min;
    private double firstfine = 150;
    private double hour_fine =50;
    private double max_fine = 300;
    public ParkingTicket() {
        car=null;
        police=null;
        fine=0;
        min=0;   
    }
    public void CalTotalFine() {
        int time = car.getParkMin()- meter.getMinutesPurchased();
        if(time < 60) {
            fine=firstfine;
        } else {
            fine= firstfine+ (hour_fine*(time/60));
        }
    }
}

要确保罚款永远不会超过max_fine,您可以在评估罚款后添加支票为:

if (fine > max_fine) {
    fine = max_fine;
}

并进一步使用/返回fine的值。

fine是您所说的计算值。因此,将其存储为字段是没有意义的。

如果要限制它,则可以使用Math.min()方法。

public static final double MIN_FINE = 150;
public static final double MAX_FINE = 300;
public static final double HOURLY_RATE = 50;
public double getFine() {
    int time = car.getParkMin()- meter.getMinutesPurchased();
    double fine = 0;
    if(time < 60) {
        fine = MIN_FINE;
    } else {
        fine = MIN_FINE + (time/60)*HOURLY_RATE;
    }
    // return the smallest of these values
    return Math.min(fine, MAX_FINE);
}

最新更新