寒假作业三

合作者

林世杰 031602421 http://www.cnblogs.com/q1076452761

/

李翔 031602418 http://www.cnblogs.com/031602418matt

/

设计思路

这一次的要求是写出一个能随机生成四则运算程序提供给别人进行测试,并且能够判断出计算的结果,并反馈一些数据。问题的解决最终可以分为几个部分:1.随机生成题目;2.计算生成的题目并判断结果是否正确;3.中英文界面,最终反馈的正确,错误的题目,正确率的一些其他改进的问题。

对于随机生成的部分,主要是利用rand和srand函数,生成数字,符号和括号的类型。数字生成很简单,括号的生成要考虑不同的情况,符号的生成也是比较复杂的,因为要考虑数学意义等实际问题。当这些问题都解决了,结果又出现了更棘手的问题:怎么计算这些算式的值呢?一开始我们的想法就是很简单的用switch 和 if 语句来实现也尝试过其中一种括号的情况,然而比我们想象的要复杂许多,意味这样我们总共要书写644*4总情况,这样下来是根本行不通的。后来经过一些查找,在网站上找到一些关于表达式计算的方法,也就是利用栈,设置一个数据栈和运算符栈来进行答案的计算。通过对运算符优先级的判断,然进行两数之间主意计算,最终得到相关结果。具体内容在代码中体现。最后就是中英文界面的优化,等等这些方面就相对比较简单了,利用按照输入的不同实现中文与英文的输出。

制定的编码规范

1.标准化的书写,包括缩进,括号等,尽量保证书写直观,美观

2.使用的变量名命名最好能看出其的用途,或者有注释解释

3.写的每一部分最好都要有注释解释用途和实现方式

4.每个函数最好只实现一个功能

5.若要是有不清楚的地方要及时提出交流

程序实现和结果测试的截图

最终版2.0 :

英文:

中文

3.0版本:

英文

中文

github链接

李翔的github

我的github

在连接中,有许多版本,最终以 最终版2.0 和 3.0 为准的两种不同输出方式代码。

分工协作的截图

交流截图

合作过程的差异

起初,我们想法很简单,直接强撸,然而我试着计算一种情况的结果,发现这样代码变得非常庞大,出错的情况非常大,根本不够实际,然后经过一些大佬指点,说有个表达式的计算,于是就去查找了一下,要用到栈,一开始就非常懵逼了,不过还是坚持下去,尽量去把它看懂,但是现在还是懵懂状态,似懂非懂,就了解了一些栈命令。然后理解了一些运算优先级,最后有点懒了,就把一些中英文部分交给李翔了,还有github的创建,对于github还不是很熟,基本是用qq联系,然后修改的。

感想

和队友合作我感觉很愉快,我们可以互相交流编程思想,有时候自己很容易在一个地方卡壳,然后经过队友一些不同方向的想法,就很容易把一些问题解决了。合作可以产生更多的灵感吧,会产生更多的想法。

posted @ 2017-02-17 15:25  Linese  阅读(184)  评论(3编辑  收藏  举报