1

我正在做一个模拟汽车的项目。要求是通过给汽车加注燃料来证明汽车的运行,然后让汽车运行直到它没有更多的燃料。模拟以不同速度填充和运行汽车的过程。在汽车运行时,定期打印汽车的当前里程、燃油量和速度。

我编写了一些其他类来保存一些我将用来计算燃料、速度和里程的方法。我只是在如何让它像一辆真正的汽车一样工作时遇到了一点麻烦,任何帮助都将不胜感激。

public class FuelGauge {

protected double fuel;

public FuelGauge()
{
    fuel = 0.0;
}

public double getFuel() 
{
    return fuel;
}

public void setFuel(double fuel) 
{
    this.fuel = fuel;
}

public void fuelUp()
{
    if(fuel<18)
    fuel++;     
}

public void fuelDown()
{
    if(fuel>0)
        fuel--;
}

}

公共类里程表扩展 FuelGauge {

private int mileage, mpg;
private int economy;


public int getMileage()
{
    return mileage;
}

public void setMileage(int mileage)
{
    this.mileage = mileage;
}

public int getMpg() 
{
    return mpg;
}

public void setMpg(int mpg)
{
    this.mpg = mpg;
}

public void mileUp()
{
    if(mileage<999999)
        mileage++;
}

public void mileReset()
{
    if(mileage>999999)
        mileage = 0;
}

public void decreaseFuel(int fuel)
{
    if(mileage == mpg)
        fuelDown();
}

public int getEconomy()
{
    return (int) (mileage/fuel);
}

public void setEconomy(int economy) 
{
    this.economy = economy;
}

}

公共类汽车扩展里程表{

private String name;
private int speed;  

 public Car()
    {
        name = "Car";
        getMileage();
        getMpg();
        getEconomy();
        getFuel();
    }

public String getName() 
{
    return name;
}

public void setName(String name)
{
    this.name = name;
}

public int getSpeed() 
{
    return speed;
}

public void setSpeed(int speed) 
{
    this.speed = speed;
}

public void increaseSpeed()
{
    if(speed<=120)
        speed++;
}

public void decreaseSpeed()
{
    if(speed>0)
        speed--;
}

}

4

3 回答 3

5

我会更推荐您的汽车组件的 contains 与 isa 关系。

class FuelGauge { ... }
class Odometer { ...}

class Vehicle { ... }

class Car extends Vehicle
{
   private FuelGauge fuelGauge = new FuelGauge();
   private Odometer odometer = new Odometer();

   ...
}
于 2012-11-21T04:17:27.543 回答
1

好吧,这里有一些建议:

  • 启动汽车。
  • 从你的车道上拉出来;如果不需要,请开始驾驶
  • 如果您计划以固定速度行驶,您可以计算出骑行需要多长时间,然后使用循环来更新距离和燃料;否则,您可以将一组速度存储在一个数组中,使用一个循环,并在每次迭代中传递可变速度(这可能有点难以计算剩下多少燃料)



希望这有助于灵感运行。

于 2012-11-21T04:19:39.613 回答
0

这是您的汽车模拟器应用程序的设计:

  • 识别将具有里程表读数、油箱内当前燃料等作为实例变量的汽车类。
  • 编写一个线程,该线程在每次迭代中以 100 毫秒左右的睡眠时间连续运行,并且在线程的 run 方法中,您处理增加里程表读数并按一定比例减少燃料的逻辑。确保您的线程将运行直到油箱中的燃料大于 0。如果您可以仅在 cse 中引发事件或警报,则燃料低于某个常数。
  • 编写主类以使用满油箱燃料(可能是 40 升常数)和里程表读数为 0 启动该类,然后启动线程。

希望这会有所帮助。

-基肖尔麦地那

于 2012-11-21T05:17:57.560 回答