第十四课功能键之取反——C#计算器编程教学

26 篇文章 0 订阅
23 篇文章 0 订阅
编写取反的功能我曾经想换成求阶乘,因为是太麻烦了。我又不得不跟括号打交道。没办法啊,你不这样,算式表示就有问题。然而加上括号,好几个方法说我还没有对括号进行处理的代码,所以遇到括号我会忽略哦!说明一点,本程序没有实现括号功能,但是为了实现取反,在表示上可能有括号(当数字为负),其他的就不是括号的意思,只是表示本项为负数而已。
所以因为这个功能,好多代码必须增加判别功能,工作量加得不是一般的大。

所以呢,讲这个功能,又要回过头来修改其他涉及到的方法,包括那个CaclList类中的ToString方法,也要修改。

为了实现取反,影响的面很大,但也不得不硬着头皮弄啊。
根据编程原则,先要进行分析。算式中出现负数很正常对吧,出现负数怎么个样子呢?比如-8,它在算式里是怎么表示的?是“(-8)”。大家有没有想到,其中这个“-”,我们在前面的程序里是不是一个运算符?当然是的,所以首先一个,SetOp方法要修改。
其次,你们有没有想到,假如第一个数字就是负数,会是什么个情况?想想看我们的CaclString的set 访问器,它会忽略第一个是左括号的数字表示,所以为了不被忽略,它也要修改。
第三,就是那个ToString方法,如何还原算式中项是负数的情况,是不是要添加括号啊?这个得修改。
第四,如何将带有括号的数字放入操作的集合?这个要修改AddString方法,还要增加放入负数操作。
第五,SwitchString方法没有指示括号的命令,这个也要加上。至于加什么,这个要想想好。就是还要分析。

第六,这还涉及到功能键回删,你想啊,最后一个负数,它的caclString表示的时候是带有括号的,你不能删除括号呀,删除右括号这是什么算式啊?本来好好的,回删就是caclString去掉最后一个字符,现在,增加了好多判断。

第十四课结语。代码修改较多,先不放出来了。编程序,最麻烦的是功能改变或增加,这不是程序员们能作主的事。要坚定信心,拿出看家法宝,仔细分析,化解难题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落单枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值