计划:

 能够用java语言做出实现加减乘除的四则运算。

 需求分析:

(1)    程序正常工作,能自定义产生题目供学生进行运算。

(2)    每次做完一种类型的题目之后都会得到相应的分数。

 

1 package RunJianKaiFa;
  2 import java.util.Scanner;
  3 import java.lang.String;
  4 import java.lang.Math; 
  5 
  6 public class CalculateGenerator {
  7         public static final int one = 1;
  8         public static final int two = 2;
  9 
 10         
 11 //        public static int score = 0;
 12         
 13       //  public static final int score = 0;
 14         public static void main(String args[]) {
 15             int choose,clas,n,result, x, y,score=0;
 16             
 17             Scanner sr=new Scanner(System.in);
 18             System.out.println("欢迎使用计算机");
 19             System.out.println("请你输入您家孩子的年级:");
 20             clas=sr.nextInt();
 21             
 22             while(true) {
 23             if (clas==1)
 24             {
 25                 ONE();
 26                 break;
 27             }
 28             
 29             if (clas==2)
 30             {
 31                 TWO();
 32                 break;
 33             }
 34             
 35         }    
 36     }
 37         public static void menu1() {
 38             System.out.println("1---------加法");
 39             System.out.println("2---------减法");
 40             System.out.println("3---------退出");
 41             System.out.println("请输入你的选项:");
 42         }
 43         public static void menu2() {
 44             System.out.println("1---------加法");
 45             System.out.println("2---------减法");
 46             System.out.println("3---------乘法");
 47             System.out.println("4---------除法");
 48             System.out.println("5---------混合运算");
 49             System.out.println("6---------退出");
 50             System.out.println("请输入你的选项:");
 51         }
 52         public static int ADD() {
 53             int choose,clas,n,result, x, y,score=0;
 54             
 55             Scanner sr=new Scanner(System.in);
 56             
 57             System.out.println("这里是加法运算,请你输入要做几题");
 58             n=sr.nextInt();
 59             while(n>0) {
 60                 x=(int)(Math.random()*10);
 61                 y=(int)(Math.random()*10);
 62                 System.out.print(x+"+"+y+"=");
 63                 result=sr.nextInt();
 64                 if(result==(x+y)) {
 65                     System.out.println("答案正确,你真棒!");
 66                     score++;
 67                 }else {
 68                     System.out.println("答案错误,正确答案为"+(x+y));
 69                 }
 70                 n--;
 71             }
 72             return score;
 73         }
 74         
 75         public static int SUB() {
 76             int choose,clas,n,result, x, y,score=0;
 77             
 78             Scanner sr=new Scanner(System.in);
 79             
 80             System.out.println("这里是减法运算,请你输入要做几题");
 81             n=sr.nextInt();
 82             while(n>0) {
 83                 x=(int)(Math.random()*100);
 84                 y=(int)(Math.random()*100);
 85                 if(x<y) {
 86                     System.out.print(y+"-"+x+"=");
 87                     result=sr.nextInt();
 88                     if(result==(y-x)) {
 89                         System.out.println("答案正确,你真棒!");
 90                         score++;
 91                     }else {
 92                         System.out.println("答案错误,正确答案为"+(y-x));
 93                     }
 94                 }else {
 95                     System.out.print(x+"-"+y+"=");
 96                     result=sr.nextInt();
 97                     if(result==(x-y)) {
 98                         System.out.println("答案正确,你真棒!");
 99                         score++;
100                     }else {
101                         System.out.println("答案错误,正确答案为"+(x-y));
102                     }
103                 }
104                 n--;
105             }
106             return score;
107         }
108 
109         public static int MULTI() {
110             int choose,clas,n,result, x, y,score=0;
111             
112             Scanner sr=new Scanner(System.in);
113             
114             System.out.println("这里是乘法运算,请你输入要做几题");
115             n=sr.nextInt();
116             while(n>0) {
117                 x=(int)(Math.random()*10);
118                 y=(int)(Math.random()*10);
119                 System.out.print(x+"*"+y+"=");
120                 result=sr.nextInt();
121                 if(result==(x*y)) {
122                     System.out.println("答案正确,你真棒!");
123                     score++;
124                 }else {
125                     System.out.println("答案错误,正确答案为"+(x*y));
126                 }
127                 n--;
128             }
129             return score;
130         }
131         
132         public static int DIVI() {
133             int choose,clas,n,result, x, y,score=0;
134             
135             Scanner sr=new Scanner(System.in);
136             
137             int all, max;
138             System.out.println("这里是除法运算,请你输入要做几题");
139             n=sr.nextInt();
140             while(n>0) {
141                 x=(int)(Math.random()*10);
142                 y=(int)(Math.random()*10);
143                 all=x*y;
144                 
145                 if(y!=0) {
146                     System.out.print(all+"/"+y+"=");
147                     result=sr.nextInt();
148                     if(result==(all/y)) {
149                         System.out.println("答案正确,你真棒!");
150                         score++;
151                     }else {
152                         System.out.println("答案错误,正确答案为"+(all/y));
153                     }        
154                 }
155                 n--;
156             }
157             return score;
158         }
159         
160         public static int MIX() {
161             int choose,clas,n,result, x, y,score=0;
162             
163             Scanner sr=new Scanner(System.in);
164             
165             System.out.println("这里是混合运算,请你输入要做几题");
166             n=sr.nextInt();
167             while(n>0) {
168                 int sum=0;
169                 x=(int)(Math.random()*10);
170                 y=(int)(Math.random()*10);
171                 choose=(int)(Math.random()*3);
172             switch(choose) {
173             case 0:
174                 System.out.print(x+"+"+y+"=");
175                 sum=x+y;
176                 break;
177                 
178             case 1:
179                 if(x<y) {
180                     System.out.print(y+"-"+x+"=");
181                     sum=y-x;
182                 }else {
183                     System.out.print(x+"-"+y+"=");
184                     sum=x-y;
185                 }
186                 break;
187                 
188             case 2:
189                 System.out.print(x+"*"+y+"=");
190                 sum=x*y;
191                 break;
192                 
193             case 3:
194                 int all1;
195                 all1=x*y;
196                 if(y!=0) {
197                     System.out.print(all1+"/"+y+"=");
198                     sum=all1/y;    
199                 }
200                 break;
201             }
202             
203         System.out.print("请输入答案:");
204         result=sr.nextInt();
205         if(result==sum) {
206             System.out.println("答案正确,你真棒!");
207             score++;
208         }else {
209             System.out.println("答案错误,正确答案为"+(sum));
210         }
211         n--;        
212     }
213             return score;
214   }
215         
216         public static void ONE() {
217             int choose,clas,n,result, x, y;
218             Scanner sr=new Scanner(System.in);
219             
220             while(true) {
221                 menu1();
222                 choose=sr.nextInt();
223                 
224                 switch(choose) {
225                 case 1:
226                     System.out.println("本次加法运算得分是"+ADD());
227                     break;
228                     
229                 case 2:
230                     SUB();
231                     System.out.println("本次减法运算得分是"+SUB());
232                     break;        
233                     
234                 case 3:
235                     System.exit(0);        
236                 }
237             }
238         }
239         
240         public static void TWO() {
241             int choose,clas,n,result, x, y;
242             Scanner sr=new Scanner(System.in);
243             
244             while(true) {
245                 menu2();
246                 choose=sr.nextInt();
247                 
248                 switch(choose) {
249                 case 1:
250                     System.out.println("本次加法运算得分是"+ADD());
251                     break;
252                     
253                 case 2:
254                     System.out.println("本次减法运算得分是"+SUB());
255                     break;
256                     
257                 case 3:
258                     System.out.println("本次乘法运算得分是"+MULTI());
259                     break;
260                     
261                 case 4:
262                     System.out.println("本次除法运算得分是"+DIVI());
263                     break;
264                     
265                 case 5:
266                     System.out.println("本次混合运算得分是"+MIX());
267                     break;        
268                     
269                 case 6:
270                     System.exit(0);    
271                     System.out.println("已退出");
272                 }
273             }
274             
275         }

代码规范:

    定义类时要选取合适的名字,要规范每一行代码,让每个看到这些代码的人都能清楚地了解这些代码的意思,也是为了后期修改代码时更加方便、快捷。

代码复审:

     仔细检查代码,看是否存在错误或代码不规范的,如果有要及时改正。

口算练习小程序Python代码 口算题卡小程序_口算练习小程序Python代码

口算练习小程序Python代码 口算题卡小程序_System_02

总结:

    程序已可以完成简单的四则运算。但是不能进行小数的运算。测试时需要手动进行测试。

PSP阶段

自己所花时间百分比

工程师所花时间百分比

计划

11

6

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

11

6

开发

83

88

  •  需求分析

6

10

  •  生成设计文档

5

6

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

4

6

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

5

3

  •  具体设计

9

12

  •  具体编码

36

21

  •  代码复审

6

9

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

12

21

报告

6

6

  •  测试报告

2

2

  •  计算工作量

2

1

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

2

3