小学生结题程序—计应193第五组王正浩

 计划:

在之前的学习中,系统的了解了关于四则运算的java程序编程,所以计划花费的时间不长。

开发:

需求分析:通过具体的加减方法,获得具体数据的运算结果,重点在于具体运算方法的定义。

 

开发:主要运用Java编译器,Junit等工具实现程序代码的编写和测试,

具体的程序代码:

package KouSuan;

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

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


public static int score = 0;

// public static final 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);
}
}

}
}

 

代码复审:

在测试中问题不是特别多。自己结合各路大神的标准对自己的程序进行修改。以及写了很多输出语句来查找BUG。总归还是实现了运算的算法。

 总结:

在编码阶段因为需要对四种运算方法进行统一测试,故花费的时间比预估计的时间要长,在复审核阶段由于各路大神的指点,程序问题得到很快的解决。

PSP阶段

预估时间

实际所用时间

计划

 10

5

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

 10

5

开发

 70

 80

  • 需求分析

 5

5

  • 生成设计文档

 5

 5

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

 10

10

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

 10

 10

  • 具体设计

 10

 10

  • 具体编码

 20

 30

  • 代码复审

 5

 5

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

5

5

报告

 20

15

  • 测试报告

5

 5

  • 计算工作量

5

 5

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

 10

 5

总共花费时间

100

100

 

 

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