一、需求分析
现在的小学生数学算术能力很差,老师想要每天都随机出10道100以内的2个操作数的四则运算算式,不可以重复,让我们来实现它,提高孩子们的数学成绩。
二、功能设计
基本功能:
使用C或Java语言完成一个自动生成四则运算试题的程序。
拓展功能:
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
三、设计实现
使用java实现四则运算
四、测试运行
五、代码片段
static void WH(HashSet<String> hashSet) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入题目数量:");
int s = scanner.nextInt();
System.out.println("请选择是否包含乘除法,0是,1否");
int flag = scanner.nextInt();
System.out.println("请选择是否包含负数,0是,1否");
int f = scanner.nextInt();
System.out.println("请输入操作数范围:");
int shu = scanner.nextInt();
RANDOM(shu);
int ly = 0;
if (flag == 0) {//判断是否包含乘除法。
ly = 4;
}
else if (flag == 1) {
ly = 2;
}
SHI(shu,ly);
SYMBOL(ly);
for (int i = 0;; i++) {
if (hashSet.size() == s) {
break;
}
hashSet.add(gg(shu,ly));
}
}
static String SHI(int shu,int flag) {//十以内的加减乘除
int a = RANDOM(shu);
char b = SYMBOL(flag);
int c = RANDOM(shu);
String str = a + " " + b + " " + c + " = " + SUAN(a, b, c);
return str;
}
六、总结
代码过于简单,仅仅能实现功能。完成时间过长还有很多不熟,不会语句,接下来会好好熟悉,掌握,学习更多程序代码。
七、PSP
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 60 | 40 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 200 | 240 |
Development | 开发 | 30 | 22 |
Analysis | 需求分析 (包括学习新技术) | 20 | 10 |
Design Spec | 生成设计文档 | 12 | 12 |
Design Review | 设计复审 (和同事审核设计文档) | 20 | 25 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 25 |
Design | 具体设计 | 20 | 20 |
Coding | 具体编码 | 80 | 72 |
Code Review | 代码复审 | 15 | 12 |
Test | 测试(自我测试,修改代码,提交修改) | 10 | 8 |
Reporting | 报告 | 30 | 25 |
Test Report | 测试报告 | 12 | 8 |
Size Measurement | 计算工作量 | 15 | 9 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 20 | 10 |