欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

小菜編程成長(zhǎng)記(一 面試受挫——代碼無錯(cuò)就是好?)第1/3頁(yè)

 更新時(shí)間:2006年10月17日 00:00:00   作者:  
小菜今年計(jì)算機(jī)專業(yè)大四了,學(xué)了不少軟件開發(fā)方面的東西,也學(xué)著編了些小程序,躊躇滿志,一心要找一個(gè)好單位。當(dāng)投遞了無數(shù)份簡(jiǎn)歷后,終于收到了一個(gè)單位的面試通知,小菜欣喜若狂。
        到了人家單位,前臺(tái)小姐給了他一份題目,上面寫著,“請(qǐng)用C++、Java、C#或VB.NET任意一種面向?qū)ο笳Z(yǔ)言實(shí)現(xiàn)一個(gè)計(jì)算器控制臺(tái)程序,要求輸入兩個(gè)數(shù)和運(yùn)算符號(hào),得到結(jié)果?!?
        小菜一看,這個(gè)還不簡(jiǎn)單,三下五除二,10分鐘不到,小菜寫完了,感覺也沒錯(cuò)誤。交卷后,單位說一周內(nèi)等通知吧。于是小菜只得耐心等待??墒前雮€(gè)月過去了,什么消息也沒有,小菜很納悶,我的代碼實(shí)現(xiàn)了呀,為什么不給我機(jī)會(huì)呢。
        小菜找到工作三年的師哥大鳥,請(qǐng)教原因,大鳥問了題目和了解了小菜代碼的細(xì)節(jié)以后,哈哈大笑,說道:“小菜呀小菜,你上當(dāng)了,人家單位出題的意思,你完全都沒明白,當(dāng)然不會(huì)再聯(lián)系你了”。
        小菜說:“我的代碼有錯(cuò)嗎?單位題目不就是要我實(shí)現(xiàn)一個(gè)計(jì)算器的代碼嗎,我這樣寫有什么問題?!?BR>
復(fù)制代碼 代碼如下:

class Program
{
    static void Main(string[] args)
    {
        Console.Write("請(qǐng)輸入數(shù)字A:");
        string A = Console.ReadLine();
        Console.Write("請(qǐng)選擇運(yùn)算符號(hào)(+、-、*、/):");
        string B = Console.ReadLine();
        Console.Write("請(qǐng)輸入數(shù)字B:");
        string C = Console.ReadLine();
        string D = "";

        if (B == "+")
            D = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(C));
        if (B == "-")
            D = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(C));
        if (B == "*")
            D = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(C));
        if (O == "/")
            D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C));

        Console.WriteLine("結(jié)果是:" + D);
    }     
}

小菜的代碼有什么問題呢?
二 代碼規(guī)范、重構(gòu)

大鳥說:“且先不說出題人的意思,單就你現(xiàn)在的代碼,就有很多不足的地方需要改進(jìn)。比如變量命名,你的命名就是ABCD,變量不帶有任何具體含義,這是非常不規(guī)范的;判斷分支,你這樣的寫法,意味著每個(gè)條件都要做判斷,等于計(jì)算機(jī)做了三次無用功;數(shù)據(jù)輸入有效性判斷等,如果用戶輸入的是字符符號(hào)而不是數(shù)字怎么辦?如果除數(shù)時(shí),客戶輸入了0怎么辦?這些都是可以改進(jìn)的地方?!?

“哦,說得沒錯(cuò),這個(gè)我以前聽老師說過,可是從來沒有在意過,我馬上改,改完再給你看看?!?BR>
復(fù)制代碼 代碼如下:

class Program
{
static void Main(string[] args)
{
try
{
Console.Write("請(qǐng)輸入數(shù)字A:");
string strNumberA = Console.ReadLine();
Console.Write("請(qǐng)選擇運(yùn)算符號(hào)(+、-、*、/):");
string strOperate = Console.ReadLine();
Console.Write("請(qǐng)輸入數(shù)字B:");
string strNumberB = Console.ReadLine();
string strResult = "";

switch (strOperate)
{
case "+":
strResult = Convert.ToString(Convert.ToDouble(strNumberA) + Convert.ToDouble(strNumberB));
break;
case "-":
strResult = Convert.ToString(Convert.ToDouble(strNumberA) - Convert.ToDouble(strNumberB));
break;
case "*":
strResult = Convert.ToString(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB));
break;
case "/":
if (strNumberB != "0")
strResult = Convert.ToString(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB));
else
strResult = "除數(shù)不能為0";
break;
}

Console.WriteLine("結(jié)果是:" + strResult);

Console.ReadLine();


}
catch (Exception ex)
{
Console.WriteLine("您的輸入有錯(cuò):" + ex.Message);
}
}
}


大鳥:“吼吼,不錯(cuò),不錯(cuò),改得很快嗎?至在目前代碼來說,實(shí)現(xiàn)計(jì)算器是沒有問題了,但這樣寫出的代碼是否合出題人的意思呢?”

小菜:“你的意思是面向?qū)ο螅俊?br>
大鳥:“哈,小菜非小菜也!”

相關(guān)文章

最新評(píng)論