C#学习之简单的计算器

winform应用,编写了一个简单的计算器。
C#学习之简单的计算器_第1张图片
看着很简单但是对于一个C#学习的新人来说也是挺难的,代码主要是参考别人博客写的,别人的博客好像也是参考Github上小项目搞得,练习项目。

首先写一个类:
Oper 操作类:A和B两个double值加上一个GetResult()用来获取计算结果。
子类:OperAdd、OperSub…加减乘除四个计算,返回的自然是A和B各种结算的计算结果,重写了GetResult()在里面把各自的逻辑完成返回就可以了。注意的是除法需要判断一下B是不是0,是0不可以除报个错。threw new Exception()

写个枚举类表示加减乘除:EnumOper.Add就是加了。以此类推。

最关键的类:工厂类createOperate(),这个类传进去那个枚举类表示我要进行什么操作,然后这个类通过一个switch语句返回一个Oper对象的子类,也就是上面那个OperAdd、Sub什么的,运用了多态的思想。有了工厂产出的这个类,就可以进行A和B的相应计算了。

剩下的代码都在form1中,这是winform界面的逻辑代码。
一个currentValue表示当前数值,一个numSum表示后面数值,一个currentOp表示操作。
单击一下按钮1,走NumberClick函数,NumberClick接收一个strNumber,也就是这个值是多少啊,传入按钮的Text就可以了,就是1。然后label1字符串的后面就加上这个值,以前是空的现在是1,currentValue记下了这个值。你再输入2,label1上面就再加一个字符变成12。

之后点击加号,走一个OpClick函数,OpClick的参数还是加减乘除的enum,告诉它你要做什么操作就好了。里面的逻辑是
如果运算符不是空的就走Evaluate函数计算,否则利用


 double.TryParse(label1.Text, out numSum);

如果label1中的值是double则放在numSum中保存。
接着走DisplayOp这个函数显示一下操作,DisplayOp说白了就是把操作显示在label2上面,加减乘除都把符号写上去。然后把label的Text清理掉,因为你进行了操作所以要打下一个数了把前一个数清空。最后label1清空准备显示下个操作的数,op记录操作。

第二个数打完了点一下等号,就进行Evaluate函数的逻辑,啥都不用传,Evaluate里造了一个oper对象,根据之前我们保存在currentOp里面的运算符对A和B进行相应运算。怎么运算的呢:
1.调用Evaluate的时候根据currentOperator当前的符号进行不同的操作,但是基本都是一样的
2.操作是:通过工厂建立一个oper子类,A中存放numSum的值也就是之前的值(开始是0),B中存放当前的值(新输入的值),走一下getresult()搞定。结果保存在numSum。

最后numSum显示在label上就可以了。

你可能感兴趣的:(C#与点net)