小学生口算题卡程序——计应193第五组万翔

计划:

      能够用简单的Java代码实现加减乘除的四则运算程序,实现所有四则运算的需求。

需求分析:

      实现小学生口算题卡加减乘除的正常运行,对答案对错进行判断并打分。

具体设计:

      先编写一个实现类,里边定义要用到的加减乘除四个方法,并定义相关的算法。用户可以选择年级,运算题的类型,程序可对用户的答案进行判断,答完题后并进行打分。

代码规范:

      取符合命名规范的名字,以便于后期的维护,严格代码规范,写能让人看懂的代码。

代码复审:

      对代码运行进行观察,看看是否符合规范或存在报错的现象,能够正常运行,不能的话在进行改正和优化

 

 

package text;
import java.util.Scanner;
import java.lang.String;
import java.lang.Math;

public class Calculation {
public static final int one = 1;
public static final int two = 2;


public static int score = 0;
public static void main(String args[]) {
int choose,clas,n,result, x, y,score=0;
Scanner sr=new Scanner(System.in);
System.out.println("欢迎使用小学四则运算程序");
System.out.println("你是几年级的小朋友呢?:");
clas=sr.nextInt();

while(true) {
if (clas==1)
{
ONE();
break;
}

if (clas==2)
{
TWO();
break;
}

}
}
public static void menu1() {
System.out.println("1---------加法");
System.out.println("2---------减法");
System.out.println("3---------退出");
System.out.println("请输入你的选项:");
}
public static void menu2() {
System.out.println("1---------加法");
System.out.println("2---------减法");
System.out.println("3---------乘法");
System.out.println("4---------除法");
System.out.println("5---------混合运算");
System.out.println("6---------退出");
System.out.println("请输入你的选项:");
}
public static int ADD() {
int choose,clas,n,result, x, y,score=0;

Scanner sr=new Scanner(System.in);

System.out.println("这里是加法运算,请你输入要做几题");
n=sr.nextInt();
while(n>0) {
x=(int)(Math.random()*10);
y=(int)(Math.random()*10);
System.out.print(x+"+"+y+"=");
result=sr.nextInt();
if(result==(x+y)) {
System.out.println("答案正确,你太棒了!");
score++;
}else {
System.out.println("答案错误,要细心吆!正确答案是"+(x+y));
}
n--;
}
return score;
}

public static int SUB() {
int choose,clas,n,result, x, y,score=0;

Scanner sr=new Scanner(System.in);

System.out.println("这里是减法运算,请你输入要做几题");
n=sr.nextInt();
while(n>0) {
x=(int)(Math.random()*100);
y=(int)(Math.random()*100);
if(x<y) {
System.out.print(y+"-"+x+"=");
result=sr.nextInt();
if(result==(y-x)) {
System.out.println("答案正确,你太棒了!");
score++;
}else {
System.out.println("答案错误,要细心吆!正确答案是"+(y-x));
}
}else {
System.out.print(x+"-"+y+"=");
result=sr.nextInt();
if(result==(x-y)) {
System.out.println("答案正确,你太棒了!");
}else {
System.out.println("答案错误,要细心吆!正确答案是"+(x-y));
}
}
n--;
}
return score;
}

public static int MULTI() {
int choose,clas,n,result, x, y,score=0;

Scanner sr=new Scanner(System.in);

System.out.println("这里是乘法运算,请你输入要做几题");
n=sr.nextInt();
while(n>0) {
x=(int)(Math.random()*10);
y=(int)(Math.random()*10);
System.out.print(x+"*"+y+"=");
result=sr.nextInt();
if(result==(x*y)) {
System.out.println("答案正确,你太棒了!");
score++;
}else {
System.out.println("答案错误,要细心吆!正确答案是"+(x*y));
}
n--;
}
return score;
}

public static int DIVI() {
int choose,clas,n,result, x, y,score=0;

Scanner sr=new Scanner(System.in);

int all, max;
System.out.println("这里是除法运算,请你输入要做几题");
n=sr.nextInt();
while(n>0) {
x=(int)(Math.random()*10);
y=(int)(Math.random()*10);
all=x*y;

if(y!=0) {
System.out.print(all+"/"+y+"=");
result=sr.nextInt();
if(result==(all/y)) {
System.out.println("答案正确,你太棒了!");
score++;
}else {
System.out.println("答案错误,要细心吆!正确答案是"+(all/y));
} }
n--;
}
return score;
}

public static int MIX() {
int choose,clas,n,result, x, y,score = 0;

Scanner sr=new Scanner(System.in);

System.out.println("这里是混合运算,请你输入要做几题");
n=sr.nextInt();
while(n>0) {
int sum=0;
x=(int)(Math.random()*10);
y=(int)(Math.random()*10);
choose=(int)(Math.random()*3);
switch(choose) {
case 0:
System.out.print(x+"+"+y+"=");
sum=x+y;
break;

case 1:
if(x<y) {
System.out.print(y+"-"+x+"=");
sum=y-x;
}else {
System.out.print(x+"-"+y+"=");
sum=x-y;
}
break;

case 2:
System.out.print(x+"*"+y+"=");
sum=x*y;
break;

case 3:
int all1;
all1=x*y;
if(y!=0) {
System.out.print(all1+"/"+y+"=");
sum=all1/y;
}
break;
}

System.out.print("请输入答案:");
result=sr.nextInt();
if(result==sum) {
System.out.println("答案正确,你太棒了!");
score++;
}else {
System.out.println("答案错误,要细心吆!正确答案是"+(sum));
}
n--;
}
return score;
}

public static void ONE() {
int choose,clas,n,result, x, y;
Scanner sr=new Scanner(System.in);

while(true) {
menu1();
choose=sr.nextInt();

switch(choose) {
case 1:
System.out.println("本次加法运算得分是"+ADD());
break;

case 2:
System.out.println("本次减法运算得分是"+SUB());
break;

case 3:
System.exit(0);
}
} }
public static void TWO() {
int choose,clas,n,result, x, y;
Scanner sr=new Scanner(System.in);

while(true) {
menu2();
choose=sr.nextInt();

switch(choose) {
case 1:
System.out.println("本次加法运算得分是"+ADD());
break;

case 2:
System.out.println("本次减法运算得分是"+SUB());
break;

case 3:
System.out.println("本次乘法运算得分是"+MULTI());
break;

case 4:
System.out.println("本次除法运算得分是"+DIVI());
break;

case 5:
System.out.println("本次运算混合得分是"+MIX());
break;

case 6:
System.exit(0); }}}
}

 
程序实际运行测试:

 

测试:

        程序可程序已可以完成简单的四则运算。满足小学生100以内口算需求。

总结:

      程序可程序已可以完成简单的四则运算。和前期设计目的一致,满足用户的小学生100以内口算需求。

 

 

 

PSP阶段

自己所花时间百分比

工程师所花时间百分比

计划

12

6

  •  明确需求和其他相关因素,估计每个阶段的时间成本

12

6

开发

92

88

  •  需求分析

11

10

  •  生成设计文档

5

6

  •  设计复审(和同事审核设计文档)

7

6

  •  代码规范(为目前的开发制定合适的规范)

6

3

  •  具体设计

9

12

  •  具体编码

38

21

  •  代码复审

6

9

  •  测试(自测、修改代码、修改提交)

10

21

报告

6

6

  •  测试报告

2

2

  •  计算工作量

2

1

  •  事后总结,并提出过程改进计划

2

3


 

 

posted @ 2021-04-11 11:39  Xiao旋  阅读(386)  评论(0编辑  收藏  举报