天天看点

2017寒假作业三

寒假作业三

1.博客主页

Dark-Existed

Z、悟空

2.实现设计思路

一.计算式的生成以及答案的计算

  1. 利用srand rand生成随机数和随机符号 itoa函数连接字符和int类型的数字 string类型可通过'+'直接连接字符,利用这个特性直接添加() 来随机生成计算式
  2. 答案的计算利用栈模拟四则运算 由于计算式存储在string类型中无法直接得出计算结果,所以利用栈模拟四则运算得出答案

    先将string类型中原本的中缀表达式转换成后缀表达式以便于用栈模拟运算 利用栈去计算得出结果

二.计算结果的验证以及正确错误题目的统计

通过将用户输入数值与答案进行比较判断答题是否正确 计算正确的题目数量 同时提示是否正确

3.编码规定

缩进用4个空格 {}单独成行 每个语句 单独一行

程序实现和结果测试截图

在大部分情况下能够正确运行 然而存在部分缺陷 将float类型的答案进行转换 保留两位小数时存在精度损失 所得到答案可能会不正确

answer[i]=expressionCalculate(equation[i]);
    //四舍五入保留两位小数
    temp2=(int)(answer[i]*100+0.5f);
    answer[i]=(float)temp2/100;
           

这需要后续进行改进,避免转换的时候的精度损失

测试截图

2017寒假作业三

github的提交链接和提交日志截图

提交链接

本次合作使用的是github desktop

GUI界面对于新手而言易于上手 同时更加直观看到一些修改 但是功能没有命令行那么强大

后续将深入各种命令

提交截图

2017寒假作业三
2017寒假作业三

共同部分

main函数

main函数中的计算式生成主要是我实现的 中英文的输出提示是partner实现的

同时双方会在提交后看对方的实现方法 并提出一些建议

我的部分

creat_symbol(随机符号)

bracket(随机括号)

int_str(数字转字符串)

connecct(连接数字运算符)

InfixToPostfix(将中缀表达式转换成后缀表达式)

posfixCompute(计算后缀表达式)

expressionCalculate(表达式计算)

合作过程 合作体会

刚开始先沟通各自需要完成的部分 然后就去实现自己需要完成的功能 遇到一些困难会一起想解决办法 由于未写过多源文件 所以此次是写在一个源文件中 这对提交时的顺序需要注意 但所幸提交时没有出现错乱

在合作中沟通是很重要的环节 要做到对方理解你所表达的东西需要一些沟通能力

第一次合作完成编码 学习到团队合作的一些经验 对将来的团队合作会有不少的帮助

2017寒假作业三
2017寒假作业三