20165301结对编程项目-四则运算 (第二周)

结对编程项目-四则运算 (第二周)

需求分析

  • 实现一个命令行程序,要求:

    • 自动生成小学四则运算题目(加、减、乘、除)
    • 支持整数
    • 支持多运算符(比如生成包含100个运算符的题目)
    • 支持真分数
    • 统计正确率
      请输入要生成的题目数:<输入6>
  • 如下所示

题目1:
3 + 4 = <输入7>
正确!

题目2:
5 ÷ 8 = <输入5/6>
错误,正确答案为:5/8

题目3:
2/3 - 1/5 = <输入7/15>
正确!

题目4:
1/6 * 3/7 = <输入3/42>
正确!

题目5:
10 - 5 * 4 = <输入20>
错误,正确答案为:-20

题目6:
(1/3 + 1/2) * 11/20 = <输入55/120>
错误,正确答案为:11/24

完成6道题目,正确率为50%

设计思路

  • 通过命令行参数形式来指定生成题目数量以及运算符数量
  • 去重

实现过程中的关键代码解释

  • 加减乘除的条件语句
char z =op.charAt(0);
     if(z=='+')
     System.out.printf("%f",x+y);
     else if(z=='-')
     System.out.printf("%f",x-y);
     else if(z=='*')
     System.out.printf("%f",x*y);
     else if(z=='/'){
     if(y==0){
     System.out.println("you can not do that");
     }
     else{
     System.out.printf("%f",x/y);

运行截图

代码链接

代码分析

  • 先写一个循环来计数生成的算式个数for (int i = 0; i < number; i++)
  • 判定运算的类型,用if-else if-else语句,如果是‘+’就执行add(a,b)如果输入的数据等于正确结果,则输出right
  • 如果运算类型为“-”就执行minus(op1,op2),如果输入数据等于正确结果,则输出right
  • 如果运算类型为“*”就执行times(op1,op2)
  • 如果运算类型为“*”就执行Div(op1,op2)
  • 最后统计right的数量与输入的number比,right/number求出正确率输出

结对总结(对组员的评价)

  • 本次实验对我来说以一次很难得的历练,我个人编程能力一般,在通关过与队友20165302的共同讨论,翻阅课本、浏览网站寻找思路,最终顺利地完成了本次实验。在实验中,队友经常主动找我讨论问题,这让我逐渐拜托懒惰,开始积极主动起来。这是小组学习为我带来的巨大优势。

结对学习照

posted @ 2018-04-22 22:55  飞翔的僚机ctf  阅读(194)  评论(0编辑  收藏  举报