您的位置:首页 > 编程语言 > C#

第十七课预期策略选择——C#计算器编程教学

2016-05-04 16:08 363 查看
编程的一个难题是,方法我可以穷尽,但有些结果并非是用户的选择或期望,换个说法,有些表达具有二义性,可以这样,也可以那样,或者因为表达不够完整,因而结果是什么可能也有二义性。那么我们生成哪个结果呢?

本程序有很多这样的情况。比如,用户输入了计算式,他再按开根号,你是给他当前项的根号值,还是给算式结果的根号值?用户输入了不完整的算式,你怎样处理?反正这都考验的不是编程能力,而是策略选择能力。

一方面你可以坚持严密原则,算式不完整是吧,我不给答案,而提示错误,你也可以以善意的原则修改最可能错误,给最善意的结果。另一方面,你也可以定义不完整为完整,或者确定用户最可能的意图。

以上的文字是不是很绕?

比如这样两个算式:

9*

9*9*

我的处理方法是,前面的我看作是9*9,后面的也看作9*9。为什么这样呢?9*,我将之定义为9的平方,即定义不完整为完整。而后面这个,我按最善意的原则认为用户多按了*号,所以计算前删除掉。

比如取反,用户按了9*9*,然后按取反,你取哪个反?第三个数字还没出来呢!那最可能的意图是取第二个数的反。

第十七课结语。以上说的都会体现在编程过程中。你不能不会用户的意,也不能只会用户的意,而不能自已定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: