一.需求分析
为了节省出题人的时间,能够给学生们带来更多随机性的练习,提高学习效率,所以设计了自动生成四则运算题程序。
二. 功能设计
(1)基本功能
自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)拓展功能
1.剔除重复算式
2.题目数量可定制
3.相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
4.生成的运算题存储到外部文件result.txt中
三. 设计实现
使用了Scanner和Random类用于输入、输出和生成随机数,使用FileWriter类存储文件
方法FuHao, XuanZe100or1000, FuShu, CunChu分别控制各个功能
四. 测试运行
五. 代码片段
public int XuanZe100or1000() { // 运算结果是100还是1000以内
int XuanZe;
XuanZe = S.nextInt();
if (1 == XuanZe)
return 101;
else
return 1001;
}
public int FuHao() { // 判断是否有乘除符号
int fuhao;
fuhao = S.nextInt();
if (1 == fuhao)
return 4;
else
return 2;
}
public boolean FuShu() { // 判断是否有负数
int temp;
temp = S.nextInt();
if (1 == temp)
return true;
else
return false;
}
public boolean CunChu() { // 是否存到文件result.txt中
int temp;
temp = S.nextInt();
if (1 == temp)
return true;
else
return false;
}
public void CaiDan() {
int DaYinShu, FuHao, XuanZe100or1000;
boolean FuShu,CunChu;
System.out.println("输入打印题目数量:");
DaYinShu = this.DaYinShu();
System.out.println("需要乘除吗?输入1出现,输入其他不出现");
FuHao = this.FuHao();
System.out.println("输入1打印100以内题目,输入其他打印1000以内");
XuanZe100or1000 = this.XuanZe100or1000();
System.out.println("是否有负号,输入1有,输入其他不出现");
FuShu = this.FuShu();
System.out.println("是否存到d:/result.txt中,1是,输入其他否");
CunChu = this.CunChu();
this.Kz(DaYinShu, FuHao, XuanZe100or1000, FuShu, CunChu);
}
六. 总结
可以将每个功能分别用其他函数构造方法表示,方便修改。
PSP
PSP | 预估时间 | 实际时间 |
---|---|---|
计划 | 1 | 1.5 |
需求分析 | 0.5 | 0.5 |
生成设计文档 | 0.5 | 1 |
代码规范 | 0.5 | 0.5 |
具体设计 | 1 | 1 |
具体编码 | 2 | 4 |
代码复审 | 1 | 2 |
测试 | 2 | 3 |
总结 | 1 | 1 |
总共花费时间 | 9.5 | 14.5 |