一、需求分析
本程序设计的初衷是减轻父母的负担,使孩子能够熟练掌握四则运算。本程序可以生成100以内的加、减、乘、除四则运算,采用随机出题的机制,确保十道题中的每一题都不重复。
二、功能设计
1、100以内的加、减、乘、除计算题,要求运算结果也在100以内;
2、可以对出题的数量进行快速的选择;
3、生成的运算题存储到外部文件result.txt中;
4、程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和26 + 19= 是重复的题目,7 × 9= 和9 × 7 = 也是重复的题目。
三、设计实现
1、利用for循环剔除重复算式;
2、利用printf和scanf控制题目数量和相关参数;
3、利用random产生随机不重复函数
四、测试运行
五、代码片段
public boolean FS() {// 是否存在负数
int flag;
flag = S.nextInt();
if (1 == flag)
return true;
else
return false;
}
public boolean BaoCun() {// 是否保存
int flag;
flag = S.nextInt();
if (1 == flag)
return true;
else
return false;
}
public int Number() { // 出题个数
int n;
n = S.nextInt();
return n;
}
public int oppNumber() {// 是否存在乘除
int oppn;
oppn = S.nextInt();
if (1 == oppn)
return 4;
else
return 2;
}
public int selectNumber() {// 操作数的范围
int sel;
sel = S.nextInt();
if (1 == sel)
return 101;
else
return 1001;
}
public void MENU() {
int inputNumber, oppNumber, selectNumber;
boolean isNegative, ifSave;
System.out.println("《学生计算题出题系统欢迎您的到来》");
System.out.println("**输入要打印的题目数:");
inputNumber = this.inputNumber();
System.out.println("**题中是否出现乘除计算,输入1出现,输入其他数字不出现");
oppNumber = this.oppNumber();
System.out.println("**选择打印操作数数值范围,输入1打印100以内,输入其他数字打印1000以内");
selectNumber = this.selectNumber();
System.out.println("**操作数是否含负数,输入1出现负号,输入其他数字不出现");
isNegative = this.isNegative();
System.out.println("**是否将结果存到计算机中,输入1存,输入其他数字不存");
ifSave = this.isSave();
this.opptt(inputNumber, oppNumber, selectNumber, isNegative, ifSave);
}
}
六、最后总结
从本次作业中我发现自己编程基础还有待提高,代码只能实现一些基本功能,缺乏拓展功能,希望在课下继续夯实基础。虽然在实现功能的过程中遇到一些困难,但同时也丰富了编程经验。
七、PSP撰写
PSP | 预估时间 | 实际时间 |
---|---|---|
计划 | 1 | 1.5 |
需求分析 | 0.5 | 0.5 |
生成设计文档 | 0.5 | 1 |
代码规范 | 0.5 | 0.5 |
具体设计 | 1 | 1 |
具体编码 | 2 | 4 |
代码复审 | 1 | 2 |
测试 | 1 | 2 |
总结 | 1 | 1 |
总共花费时间 | 8.5 | 13.5 |