已答覆 建立C#函數

  • 2012年4月19日 上午 10:53
     
      包含代碼

    關於建立C#函數問題點

    前50小時每分鐘0.3元

    超過50小時每分鐘鐘0.2元

    建立此C#函數名稱與呼叫C#函數應如何下定義盲點有點不解...

    謝謝您的回覆

    程式碼如下所示

    public void bill(int hour)
                {
                int hour;
                int total;            
                if (hour <= 50)
                    {
                    total = hour * 0.3;
                    }
                else if (hour >= 50)
                    {
                    total = (hour - 50) * 0.2 + 50 * 0.3;
                    }
                return;
                }
            private void btnCompute_Click(object sender, EventArgs e)
                {
                int minute;
                int cost;
                minute = Convert.ToInt32(txtMinute.Text);
                cost = Convert.ToInt32(txtCost.Text);
                }

所有回覆

  • 2012年4月19日 上午 11:06
    版主
     
     
    你的盲點是什麼 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

  • 2012年4月19日 上午 11:08
     
     已答覆

    您的問題是什麼? 

    建立此C#函數名稱與呼叫C#函數應如何下定義 <-- 不太明白你這句話的意思

    回到你的程式碼

    由你的程式碼看起來,hour是表示為小時,你的題目是每分鐘計價,那你應該要把hour換算成分鐘再去計算

    也就是在計價的部份要多換算成 * 60 


    軟體開發領域裡區區一個迷途工程師
    MyBlog: http://www.dotblogs.com.tw/ian/
    開發ASP.NET您要瞭解的基楚



    • 已編輯 No.18MVP 2012年4月19日 上午 11:09
    • 已編輯 No.18MVP 2012年4月19日 上午 11:10
    • 已標示為解答 闕疑 2012年4月20日 上午 05:53
    •  
  • 2012年4月19日 上午 11:51
     
     已答覆 包含代碼

    您好,

    如18說的,您只要將hour * 60 變成分數來處理即可!

    public double  bill(double hour)
    {
    	double total = 0;
    	if (hour <= 50)
    	{
    		total = (hour * 60) * 0.3;
    	}
    	else
    	{
    		total = ( (hour - 50) * 60) * 0.2 + (50 * 60)  * 0.3;
    	}
    	return total;
    }
    int minute = 36700;
    double hour = Math.Ceiling(minute / 60.0);
    MessageBox.Show(bill(hour).ToString());


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 闕疑 2012年4月20日 上午 05:54
    •  
  • 2012年4月19日 下午 02:26
     
     已答覆 包含代碼

    除了No.18和亂馬客所說的一小時等於六十分鐘的問題外,似乎還有以下幾個問題:

    1.bill函式似乎沒有回傳值。

    2.hour似乎多宣告了一次。

    3.hour是int型態,沒辦法跟double型態的0.3相乘。

    4.total是int型態,無法儲存hour和0.3或0.5相乘的結果,且沒有預設值。

    我修改成如下的樣子,不曉得是不是你要的。

    //public void bill(int hour)
    static public double bill(double hour)
    {
    	//int hour;
    	//int total;
    	double total = 0;
    	if (hour <= 50)
    	{
    		total = hour * 0.3;
    	}
    	else if (hour >= 50)
    	{
    		total = (hour - 50) * 0.2 + 50 * 0.3;
    	}
    	//return;
    	return total;
    }
    static void Main(string[] args)
    {
    	Console.WriteLine(bill(30));
    	Console.WriteLine(bill(60));
    	Console.Read();
    }


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    • 已標示為解答 闕疑 2012年4月20日 上午 05:54
    •  
  • 2012年4月20日 上午 05:51
     
     

    亂碼克 謝謝您的回覆...

  • 2012年4月20日 上午 05:52
     
     
    謝謝您的回覆