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

}

public class Odometer は 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;
}

}

public class Car はオドメーターを拡張します{

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

以下は、カー シミュレータ アプリケーションの設計です。

  • 走行距離計の読み取り値、タンク内の現在の燃料などをインスタンス変数として持つ Car クラスを識別します。
  • 反復ごとに 100 ミリ秒程度のスリープ時間で継続的に実行されるスレッドを作成し、スレッドの run メソッド内で、オドメーターの読み取り値を増やし、燃料をある程度の割合で減らすロジックを処理します。タンク内の燃料が 0 よりも大きくなるまでスレッドが実行されることを確認してください。燃料が特定の定数を下回っている場合に備えて、イベントまたはアラームを発生させることができる場合。
  • メイン クラスを記述して、燃料タンクが満タン (一定の場合は 40 リットル) でクラスを開始し、走行距離計の読み取り値を 0 にしてから、スレッドを開始します。

これが役に立てば幸いです。

-キショアマディナ

于 2012-11-21T05:17:57.560 に答える