20194663 自动生成四则运算题第一版报告(第二次作业)

一、需求分析

老师让家长每天出10道100以内的四则运算发的题,给孩子做。想通过一个小程序来做这件事。

(1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

(2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

          操作数数值范围可控(如操作数 在100以内   还是1000以内)

          操作数是否含负数    

  (5)生成的运算题存储到外部文件result.txt中

二、功能设计

1、基本功能

(1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

(2)剔除重复算式。  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

          是否包含乘法和除法

          操作数数值范围可控(如操作数 在100以内   还是1000以内)

          操作数是否含负数    

  (5)生成的运算题存储到外部文件result.txt中

2、扩展功能

(1)可对做题情况打分

(2)可以指出做错的题目编号,并给出正确答案

 三、 设计实现

设计只用了一个类、一个主方法。所有的功能都在主方法里编写。

四、测试运行

五、

实现加减乘除四则运算,并且记录对错的数量,做错的题给出正确答案

```

switch (oper) {
case 0:
{
System.out.print(i + 1 + ". " + first + "+" + last + "=");
result1 = input.nextInt();
result2 = first + last;
if(first+last>100)
break;
if (result1 == result2)
right++;
else {
error[j] = result2;
errorId[k] = i + 1;
j++;
k++;
}
break;
}
case 1:
{
while (first < last) {
first = random.nextInt(100);
last = random.nextInt(100);
}
System.out.print(i + 1 + ". " + first + "-" + last + "=");
result1 = input.nextInt();
result2 = first - last;
if (result1 == result2)
right++;
else {
error[j] = result2;
errorId[k] = i + 1;
j++;
k++;
}
break;
}
case 2:
{
System.out.print(i + 1 + ". " + first + "*" + last + "=");
result1 = input.nextInt();
result2 = first * last;
if(first*last>100)
break;
if (result1 == result2)
right++;
else {
error[j] = result2;
errorId[k] = i + 1;
j++;
k++;
}
break;
}
case 3:
{
if (last == 0) {
last = random.nextInt(99) + 1;
}
while (first % last != 0) {
first = random.nextInt(100);
last = random.nextInt(99) + 1;
}
System.out.print(i + 1 + ". " + first + "/" + last + "=");
result1 = input.nextInt();
result2 = first / last;
if (result1 == result2)
right++;
else {
error[j] = result2;
errorId[k] = i + 1;
j++;
k++;
}
break;
}
}
}```

 六、总结

通过while语句和if语句实现系统的模块化,让用户选择。

七.PSP撰写

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)
计划 10 15
开发 127 161
 .需求分析 (包括学习新技术) 6 10
 .生成设计文档 15 20
 .设计复审 6 6
 .代码规范 10 10
 .具体设计 30 40
 .具体编码 40 50
 .代码复审 10 15
 .测试 10 10
报告 30 33
 .测试报告 10 12
 .计算工作量 10 11
 .事后总结 10 10
posted @ 2019-09-15 15:35  常恒*&&  阅读(157)  评论(1编辑  收藏  举报