要求
第一周 输出阶段总结博客
- 需求分析
- 设计思路
- 整数/多运算符(题目生成/题目运算判题)
- JUnit测试
扩展需求
第二周 输出整体总结博客
- 设计思路
- 真分数(题目生成/题目运算判题)
- JUnit测试
扩展需求
由于这次的实验题目比较难,且第一周时学习任务比较繁重,因此实验的第一周我们小组对于实验要求如何实现没有太多的头绪,一开始的进展较为缓慢。第一周,我们在算法思想上面稍稍借鉴了一下网上的一些博文,然后,再把各个算法整理出一个大概的框架,按照程序内容的构造结合起来,初步实现了实验第一周的要求。
第二周,学习的担子没有那么重,我们有更多的时间来思考真分数四则运算与扩展需求的实现方法。经过了一周的思考,大体上算是完成第二周所要实现的内容。截图
代码
import java.util.*; public class SiZeYunSuan { public static void main(String[] args) { System.out.println("输入测试题数目:"); Scanner sc=new Scanner(System.in); int number=sc.nextInt(); double right = 0; double wrong = 0; for (int i = 0; i < number; i++) { System.out.println("第"+(i+1)+"道题,请在下方输入答案:"); double op1=(int)(Math.random()*10); double op2=(int)(Math.random()*10); Random r3 = new Random(); int m = r3.nextInt(4); char[] chs = {'+','-','*','/'}; String Operator = String.valueOf(chs[m]); //生成题目 if(Operator.equals("+")){ System.out.println(op1+"+"+op2+"="); boolean b = add(op1,op2); if(b == true){ right++;System.out.println("right! "); } else{ wrong++;System.out.println("no "); System.out.println("right answer: "+(op1+op2)); } } else if(Operator.equals("-")){ System.out.println(op1+"-"+op2+"="); boolean b =minus(op1,op2); if(b == true){ right++;System.out.println("right! "); } else{ wrong++;System.out.println("no "); System.out.println("right answer: "+(op1-op2)); } } else if(Operator.equals("*")){ System.out.println(op1+"×"+op2+"="); boolean b =times(op1,op2); if(b == true){ right++;System.out.println("right! "); } else{ wrong++;System.out.println("no "); System.out.println("right answer: "+(op1*op2)); } } else{ System.out.println(op1+"÷"+op2+"="); boolean b =Div(op1,op2); if(b == true){ right++;System.out.println("right! "); }else{ wrong++;System.out.println("no "); System.out.println("right answer: "+op1/op2); } } } System.out.println("做对了"+right+"道题."); System.out.println("做错了"+wrong+"道题."); System.out.println("正确率为"+(right/(wrong+right))*100+"%"); } private static boolean add(double x,double y) { Scanner sc = new Scanner(System.in); double num1 = sc.nextDouble(); double result = x + y; if(num1 == result){ return true; }else{ return false; } } private static boolean minus(double x,double y) { Scanner sc = new Scanner(System.in); double num1 = sc.nextDouble(); double result = x - y; if(num1 == result){ return true; }else{ return false; } } private static boolean times (double x,double y) { Scanner sc = new Scanner(System.in); double num1 = sc.nextDouble(); double result = x * y; if(num1 == result){ return true; }else{ return false; } } private static boolean Div(double x,double y) { Scanner sc = new Scanner(System.in); double num1 = sc.nextDouble(); double result =x/y; if(num1 == result){ return true; }else{ return false; } } }