小学生100以内的正整数的加减法——计应193王争
一.计划
1.随机产生一组(10个)算数题——产生算式,剔除不够减,循环产生。
2.显示一组算题,选择解答界面,同步计时(秒)。
3.显示对错,统计正确率,统计时间。
二.开发
1.需求分析
作为一名一年级小学生的家长,我希望制作一个出题软件,完成100以内的正整数的加减法题随机产生。以便减轻我的家庭负担。
2.生成设计文档
3.设计复审
4.代码规范
注意大小写,注意缩进,括号一定要配对,注意要分行。
5.具体设计
系统开始,随机产生10道加法或者减法,计算完成后,统计做了多少道题,正确率,以及用了多少时间,系统结束。
6.具体编码
package math;
import java.awt.Toolkit;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Count {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int sum1 = 0;// 总题数
int sum2 = 0;// 对题数
double sum3 = 0;// 正确率
int time;// 所用时间
long startMili = System.currentTimeMillis();// 当前时间对应的毫秒数
System.out.println("开始 ");
while (true) {
System.out.println("1,加法运算");
System.out.println("2,减法运算");
System.out.println("0,退出系统");
System.out.print("请输入你的选择");
int choice = input.nextInt();
if (choice == 1) {
for (int i = 1; i <= 10; i++) {
int x = (int) (Math.random() * 100);
int y = (int) (Math.random() * 100);
System.out.print(x + "+" + y + "=");
int z = input.nextInt();
if (z == (x + y)) {
System.out.println("恭喜你,回答正确");
sum2++;
} else {
System.out.println("答案错误,正确答案为:" + x + "+" + y + "=" + (x + y));
}
sum1++;
}
} else if (choice == 2) {
for (int i = 1; i <= 10;) {
int x = (int) (Math.random() * 100);
int y = (int) (Math.random() * 100);
if (x > y) {
System.out.print(x + "-" + y + "=");
int z = input.nextInt();
if (z == (x - y)) {
System.out.println("恭喜你,回答正确");
sum2++;
} else {
System.out.println("答案错误,正确答案为:" + x + "-" + y + "=" + (x - y));
}
sum1++;
i++;
}
}
} else if (choice == 0) {
sum3 = (sum2 * 1.0 / sum1 * 1.0) * 100;
System.out.println("总题数:" + sum1 + "答对的题数:" + sum2 + "正确率:" + sum3 + "%");
long endMili = System.currentTimeMillis();
System.out.println("总耗时为:" + (endMili - startMili) / 1000 + "秒");
System.out.println("系统结束,欢迎下次使用");
System.exit(0);
} else {
System.out.println("没有此选项!请重新选择");
}
}
}
}
7.代码复审
8.测试
总结
此项目看似简单但实际上要考虑很多问题,起初看到题目时,感觉这不就是加减运算嘛,有什么难的。但是,当具体设计的时候发现困难重重,必须思路清晰,逻辑缜密,写代码时才不会东一下西一下,最后一团乱,连自己都搞不明白自己在干嘛了,所以,拿到任何一个题时都要学会分析问题,理清思路。
口算题卡 |
实际花费时间 |
估计花费时间 |
计划 |
10 |
6 |
明确需求和其他相关因素,估计每个阶段的时间成本 |
10 |
6 |
开发 |
82 |
88 |
|
8 |
10 |
|
5 |
6 |
|
5 |
6 |
|
3 |
3 |
|
12 |
12 |
|
32 |
21 |
|
5 |
9 |
|
12 |
21 |
报告 |
8 |
6 |
|
3 |
2 |
|
2 |
1 |
|
3 |
3 |