伍迷家园

让编程融入生活
随笔 - 92, 文章 - 0, 评论 - 2113, 引用 - 172
数据加载中……

小菜编程成长记(二 代码规范、重构)

(续上篇) 
        大鸟说:“且先不说出题人的意思,单就你现在的代码,就有很多不足的地方需要改进。比如变量命名,你的命名就是ABCD,变量不带有任何具体含义,这是非常不规范的;判断分支,你这样的写法,意味着每个条件都要做判断,等于计算机做了三次无用功;数据输入有效性判断等,如果用户输入的是字符符号而不是数字怎么办?如果除数时,客户输入了0怎么办?这些都是可以改进的地方。”
  “哦,说得没错,这个我以前听老师说过,可是从来没有在意过,我马上改,改完再给你看看。”

 

class Program
{
    
static void Main(string[] args)
    
{
        
try
        
{
            Console.Write(
"请输入数字A:");
            
string strNumberA = Console.ReadLine();
            Console.Write(
"请选择运算符号(+、-、*、/):");
            
string strOperate = Console.ReadLine();
            Console.Write(
"请输入数字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 
= "除数不能为0";
                    
break;
            }


            Console.WriteLine(
"结果是:" + strResult);
            
            Console.ReadLine();


        }

        
catch (Exception ex)
        
{
            Console.WriteLine(
"您的输入有错:" + ex.Message);
        }

    }

}


        大鸟:“吼吼,不错,不错,改得很快吗?至在目前代码来说,实现计算器是没有问题了,但这样写出的代码是否合出题人的意思呢?”
        小菜:“你的意思是面向对象?”
        大鸟:“哈,小菜非小菜也!”

(待续)


      

posted on 2006-08-30 09:49 伍迷 阅读(6405) 评论(16)  编辑 收藏 网摘 所属分类: 面向对象小菜编程成长记

评论

#1楼   回复  引用    

有道理,支持!@_@~~
2006-09-22 09:56 | 拉力机[未注册用户]

#2楼   回复  引用    

catch (Exception ex)
{
Console.WriteLine("您的输入有错:" + ex.Message);
}

诧异
2006-09-24 05:06 | skyblue[未注册用户]

#3楼[楼主]   回复  引用  查看    

@skyblue
这样写的目的是只想 简化 用户输入时输入了非数字字符等错误的判断。以免在Convert.ToDouble()时报错。
2006-09-24 09:10 | 伍迷      

#4楼   回复  引用    

恩!不错,不错!确实不错
catch (Exception ex)
{
MessageBox.show("出现异常:"+ex.Message);
}
唉!一样一样!

2007-04-30 09:06 | 读者[未注册用户]

#5楼   回复  引用    

恭喜你!运行通过!呵呵
2007-04-30 09:09 | 读者[未注册用户]

#6楼   回复  引用  查看    

string strNumberA

《.NET设计规范》里的建议是不要使用匈牙利命名法。。。
2008-01-08 10:51 | 笼民      

#7楼   回复  引用    

To: 笼民
任何东西都不是绝对的,像这种很单纯而小的项目,匈牙利命名法没有什么不适合的。

To: 伍迷
不过和别人一样,感觉try-catch不爽(指针对异常机制)。这里switch-case少个default,别人虽然看到要输入+-*/,但不一定哦。就像上面要try-catch非数值一样...
2008-01-14 22:24 | yarco[未注册用户]

#8楼[楼主]   回复  引用  查看    

@yarco
你说得有道理,此代码有更好的表现方式。
2008-01-14 22:39 | 伍迷      

#9楼   回复  引用    

是啊 让我想起了细节决定成败!
2008-05-21 12:03 | 念时回复[未注册用户]

#10楼   回复  引用    

大三结束,看了此文及评论,真是自惭形秽.以后得多上来看看了,真的能学习很多.
同时,我在思索,怎样才能比较有效地提高编程能力呢?请各位师长帮忙解答.
2008-06-13 20:57 | 白菜虫[未注册用户]

#11楼   回复  引用    

最后输出完结果,为什么又读一行啊?
2008-07-18 23:09 | 菜[未注册用户]

#12楼[楼主]   回复  引用  查看    

@菜
为的是让控制台不要关闭。
2008-07-18 23:21 | 伍迷      

#13楼   回复  引用    

编程其次,思想关键呀。
2008-11-26 16:08 | teat[未注册用户]



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 490094




相关文章:

相关链接: