2012-09-25 52 views
4

我已新引進到C#編碼的世界。目前,我正在計劃使用總行駛距離和總行車時間來計算平均車速,並將結果乘以從紐約市到邁阿密的時間,以獲得從紐約市到邁阿密的距離。我已經在窗體上放置了四個textBoxes,並且一個button進行了計算。C#與私人雙重功能的工作來計算距離

我需要幫助建立功能。例如,爲了計算速度:速度=距離/時間。我如何將這些信息以CalculateVelocity()函數內的適當格式存儲?

4文本框和其標籤(這是用戶將inpu他們的數據):

Starting Mileage 
Ending Mileage 
Total Driving Time 
Time from NY city to MIAMI 

代碼(Code)功能,我使用:

private double CalculateVelocity() 
    { 
     //Calculate Velocity 
    } 

    public double GetTime() 
    { 
      //Get Time 
      return GetTime; 
    } 

    private double CalculateDistance(double velocity, double time) 
    { 
     //Calculate Distance 
    } 

    private double DisplayResults(double velocity, double time, double distance) 
    { 
     //Display Results 
    } 

    private double ClearTextboxes() 
    { 
     //Clear textboxes 
    } 

    // Property to GetTime 
    private double GetTime 
     { 
      get 
      { 
       // variable to hold time 
       double time = double.MinValue; 

       // Safely parse the text into a double 
       if (double.TryParse(tbTime.Text, out time)) 
       { 
        return time; 
       } 

       // Could just as easily return time here 
       return double.MinValue; 
      } 
      set 
      { 
       // Set tbTime 
       tbTime.Text = value.ToString(); 
      } 
     } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     //Calculate and display result in a label 
    } 
+0

所以,你要採取的開始里程和終點裏程來獲得距離,然後在使用的時候輸入計算速度? – LukeHennerley

+0

@LukeHennerley,當按下按鈕時,一個平均速度將使用的總行駛距離和travled的總小時數計算,並且將被乘以時間從NY城市MIAMI得到去從NY城市的距離邁阿密。標籤報告速度,時間和距離。 – techAddict82

回答

3

CalculateVelocity應該是這個樣子:

private double CalculateVelocity() 
{ 
    double time = GetTime(); //assuming you have set up GetTime() 
    double distance = endingMileageBox - startingMileageBox; 
    return distance/time; 
} 

其中endingMileageBox是從結束里程文本框中的值,並且startingMileageBox是從起始里程文本框中的值。


根據您的評論,這裏的CalculateDistance應該是什麼樣子:

private double CalculateDistance(double velocity, double time) 
{ 
    //note that this assumes the units match up. If not, you'll need to do some conversions here 
    return velocity * time; 
}  

}

+0

+1這是完美的。我還沒有設置'GetTime()'。任何消化如何設置'GetTime()'? – techAddict82

+0

那麼,假設'tbTime'被填充,你實際上可能只想'double time = GetTime;'來代替。如果你想讓GetTime成爲一個公共財產,你並不需要一個獲取時間的函數。我真的建議把'GetTime'property私人然後做'GETTIME()'是這樣的:'公共雙GETTIME(){返回GETTIME;}' –

+0

好吧,我根據你編輯我的回答幫助。當聲明這個'public double GetTime(){return GetTime;}'時,我現在在'GetTime()'和'GetTime'之間出現了一個模糊錯誤。這是爲什麼? – techAddict82

2

只需添加參數你需要的,從文本框做解析(如你表現出你知道如何)可以在調用函數之前應該是這樣的:

private static double CalculateVelocityMPH(double distanceMiles, double timeHours) 
{ 
    return distanceMiles/timeHours; 
} 

值得挑選和指定單位,比如我有作爲後修復。

然後在解析時間文本框時,使用TimeSpan.Parse,然後使用.TotalHours來調用該方法。