需求分析

功能需求:

1、能自动生成小学四则运算题目。

2、程序能接受用户输入答案,并判定对错。

3、给出总共正确的数量。

设计

1、定义s为一组1至4的随机数,使用which(s)语句,case s 分别为四则运算的加减乘除。在case 语句中定义两个变量,为a和b,使它们能产生0至100之间的随机数,用来做四则运算。

2、which语句外层在编写一个while语句,使得which能循环多次,进行多个计算。

3、定义一个h记录做题正确的数目,初始值为0。

 

代码实现

代码:

import java.util.Scanner;


public class ruanjian {


public static int suiji(int num1,int num2){
int C=(int)num1+(int)(Math.random()*(num2-num1));
return C;
}
public static void main(String[] args) {

int S,a,b,i=1,f=0,h=0;
double D;
while(i<=5){
S=suiji(1,4);
i=i+1;
a=suiji(0,100);
b=suiji(0,100);
switch(S){
case 1 :
System.out.println(a+"+"+b+"=");
Scanner reader=new Scanner(System.in);
D=reader.nextInt();
if(D==a+b){
h++;
}
else{
System.out.println("答错了,正确答案是:"+(a+b));

}
break;
case 2 :
System.out.println(a+"*"+b+"=");
Scanner reader1=new Scanner(System.in);
D=reader1.nextInt();
if(D==a*b){
h++;
}
else{
System.out.println("答错了,正确答案是:"+(a*b));

}
break;
case 3 :
System.out.println(a+"-"+b+"=");
Scanner reader2=new Scanner(System.in);
D=reader2.nextInt();
if(D==a-b){
h++;
}
else{
System.out.println("答错了,正确答案是:"+(a-b));

}
break;
case 4 :
System.out.println(a+"/"+b+"=");
Scanner reader3=new Scanner(System.in);
D=reader3.nextInt();
if(D==a/b){
h++;
}
else{
System.out.println("答错了,正确答案是:"+(a/b));

}
break;
}
continue;
}
System.out.println("您一共答对了"+h+"道题");
}

}

程序效果截图:

PSP耗时统计

总结

对于程序的编写思路事先就写在稿纸上,只花了一个晚上就把最简单的代码写出来了,但是在修改过程中遇到了几个问题,对于break和continue选择一度陷入困境,因为我的代码在运行多个计算时a和b显示的是同一个值,我以为是break和continue没有选择对,但在向老师咨询后发现我定义的a与b产生随机数的步骤写在了while循环之前。除此之外我希望能在之后的设计改进中能同时列出多个题目,使得使用者能同时写出答案。

 

posted on 2015-04-08 19:33  安坤  阅读(192)  评论(2编辑  收藏  举报