寒假作业三
1.博客主页
2.实现设计思路
一.计算式的生成以及答案的计算
- 利用srand rand生成随机数和随机符号 itoa函数连接字符和int类型的数字 string类型可通过'+'直接连接字符,利用这个特性直接添加() 来随机生成计算式
- 答案的计算利用栈模拟四则运算 由于计算式存储在string类型中无法直接得出计算结果,所以利用栈模拟四则运算得出答案
先将string类型中原本的中缀表达式转换成后缀表达式以便于用栈模拟运算 利用栈去计算得出结果
二.计算结果的验证以及正确错误题目的统计
通过将用户输入数值与答案进行比较判断答题是否正确 计算正确的题目数量 同时提示是否正确
3.编码规定
缩进用4个空格 {}单独成行 每个语句 单独一行
程序实现和结果测试截图
在大部分情况下能够正确运行 然而存在部分缺陷 将float类型的答案进行转换 保留两位小数时存在精度损失 所得到答案可能会不正确
answer[i]=expressionCalculate(equation[i]);
//四舍五入保留两位小数
temp2=(int)(answer[i]*100+0.5f);
answer[i]=(float)temp2/100;
这需要后续进行改进,避免转换的时候的精度损失
测试截图
github的提交链接和提交日志截图
提交链接
本次合作使用的是github desktop
GUI界面对于新手而言易于上手 同时更加直观看到一些修改 但是功能没有命令行那么强大
后续将深入各种命令
提交截图
共同部分
main函数
main函数中的计算式生成主要是我实现的 中英文的输出提示是partner实现的
同时双方会在提交后看对方的实现方法 并提出一些建议
我的部分
creat_symbol(随机符号)
bracket(随机括号)
int_str(数字转字符串)
connecct(连接数字运算符)
InfixToPostfix(将中缀表达式转换成后缀表达式)
posfixCompute(计算后缀表达式)
expressionCalculate(表达式计算)
合作过程 合作体会
刚开始先沟通各自需要完成的部分 然后就去实现自己需要完成的功能 遇到一些困难会一起想解决办法 由于未写过多源文件 所以此次是写在一个源文件中 这对提交时的顺序需要注意 但所幸提交时没有出现错乱
在合作中沟通是很重要的环节 要做到对方理解你所表达的东西需要一些沟通能力
第一次合作完成编码 学习到团队合作的一些经验 对将来的团队合作会有不少的帮助