相同部分合作者林世杰 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用起来不是很习惯,大部分的修改还是利用QQ进行的,还有很多东西要学习。合作体会第一次和别人一起完成一个程序,主要感受有以下几点:1.讨论能使对达成的目的有更明确的的认识,有助于解决题目 2.讨论使解决问题的效率提高很多 3.合作起到保险作用,要是有什么不是很会的部分,不至于会在一个节点处卡死,合作能使工程继续进行。 4.能在合作中学习,得到提升的机会最后,发现自己还是有很多东西需要去学,掌握理解能力也急需提高。感谢世杰的合作,能够完成这一份代码,不至于落的开天窗的局面。(严肃脸) |