簡體   English   中英

模擬汽車 (Java)

[英]Simulating a Car (Java)

我正在做一個模擬汽車的項目。 要求是通過向汽車加注燃料來演示汽車的運行,然后運行汽車直到沒有更多燃料。 模擬以不同速度填充和運行汽車的過程。 在汽車運行時,定期打印出汽車當前的行駛里程、燃油量和速度。

我編寫了一些其他類來保存一些我將用來計算燃料、速度和里程的方法。 我只是在如何讓它像真正的汽車一樣工作時遇到了一些麻煩,任何幫助將不勝感激。

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--;
}

}

我更推薦你的汽車組件的 contains vs isa 關系。

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

class Vehicle { ... }

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

   ...
}

好吧,這里有一些建議:

  • 啟動汽車。
  • 從你的車道上拉出來; 如果不需要,開始開車
  • 如果您計划以固定速度行駛,您可以計算騎行將占優勢的時間,只需使用循環來更新距離和燃料; 否則,您可以在數組中存儲一組速度,使用循環,並在每次迭代時傳遞可變速度(這可能有點難以計算剩余的燃料量)



希望能幫助靈感跑起來。

這是您的汽車模擬器應用程序的設計:

  • 識別將具有里程表讀數、油箱內當前燃料等作為實例變量的汽車類。
  • 編寫一個線程,該線程在每次迭代時以 100 毫秒左右的睡眠時間連續運行,在線程的 run 方法中,您處理增加里程表讀數和按一定比例減少燃料的邏輯。 確保您的線程將運行直到油箱中的燃料大於 0。如果您可以在 cse 中引發事件或警報,則燃料低於某個常數。
  • 編寫主類以啟動滿油箱燃料(可能是 40 升常數)和里程表讀數為 0 的類,然后啟動線程。

希望這是有幫助的。

-KishoreMadina

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM