作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/997
结对同学:阚博文http://www.cnblogs.com/zbwd666/
要求1 参考《构建之法》第4章两人合作,结对编程上述功能,要求每人发布随笔1篇 (代码是共同完成的,博客是分别完成的)。 (1) 给出每个功能的重点、难点、编程收获。(2)给出结对编程的体会,以及 (3) 至少5项在编码、争论、复审等活动中花费时间较长,给你较大收获的事件。 (10分)
(1)功能1和功能2
这两个功能就要求随机产生20道四则运算题(包含括号),用户输入一个答案与标准答案进行比对并判断对错,最后统计有多少四则运算题被正确解答。
因为功能1 和 功能2 之间只有是否加入括号的区别,而是否加入括号是随机进行决定的,所以只要实现功能2代码,功能1就可以完美解决。
我在以前的数据结构学习中,了解并学习过算术表达式的计算,加上老师所给的提示,所以和阚博文同学商量之后直接使用堆栈实现中缀表达式转化为后缀表达式并进行运算。具体实现参考严蔚敏主编的《数据结构》以及之前做过的后缀表达式ACM试题,由阚博文同学确定功能需求,由我进行代码编写。
整个功能实现重点在于掌握逆波兰表达式的转化,难点在于随机数生成和转化以及括号的处理。
功能截图:
核心代码如下:
1)表达式求值
double EvaluateExpression(char* MyExpression) { SC *OPTR = NULL; SF *OPND = NULL; char TempData[20]; double Data, a, b; char theta, *c, Dr[] = { '#', '