一年级小学生100以内正整数加减法的口算题卡系统——计应193彭鸽

100以内加减法的个人项目

一、 计划

1、使用随机函数产生一组(10个)的算数题

2、显示算题界面,开始、完成界面,同步计时(秒)

3、显示对错,统计正确率以及得分,并且统计时间

二、开发

1、需求分析:

作为一个一年级小学生的家长,我希望制作一个出题软件,完成100以内的正整数的加减法题随机产生,以便减轻我的家庭负担。

2、生成设计文档:

①首先创建一个测试类,

②<1>第一步先获得当前时间的毫秒数

<2>然后定义算式以及数值为int类型,并初始化题目

<3>使用Scanner来接受用户输入的数值。

<4>使用Random来产生100以内随机数组成的算式。

使用while循环来循环一组(10道)算数题,将随机获得的100以内数字分别赋值,用+(-)号来连接。

④使用if语句来判断表达式结果是否正确,正确的话输出“恭喜你!回答正确”,错误的话则输出“回答错误,正确答案为。。。”,最后10道算术题做完之后显示正确率以及统计时间。

3、代码规范

要注意命名规则,不要随意命名,大括号的对应。

4、具体设计

编写一个名为For的测试类,然后在main方法里面写关于这个项目的所有方法,运行测试类查看结果。

 

5、具体编码:

package program;

import java.sql.Date;
import java.util.Scanner;

public class For {
public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);
int num = 654321;
int pass;
int sum1 = 0,sum2 = 0;//总题数,对题数
//int i;
int x,y,i = 1;
int z,j,choice;
int num1;
System.out.println("<<欢迎使用小学一年级100以内正整数的口算题卡系统>>");
System.out.println("密码只能输入三次");
while(i <= 3)
{
System.out.println("请输入密码:");
pass = input.nextInt();

if(pass == num)
{
System.out.println("恭喜你,登陆成功");
System.out.println("题目写完后,退出系统即可查看正确率和所用时间!!!");
Date start = new Date(System.currentTimeMillis());
long starttime=start.getTime();
while(true)
{
System.out.println("1,加法运算");
System.out.println("2,减法运算");
System.out.println("3,退出系统");
System.out.print("请输入你的选择:");
choice = input.nextInt();

switch(choice)
{
case 1:

System.out.print("请输入你要完成的题目数:");
num = input.nextInt();
for(i = 1;i <= num;i ++)
{
x = (int)(Math.random() * 101);
y = (int)(Math.random() * 101);
System.out.print(x + "+" + y + "=");
z = input.nextInt();
if(z == (x + y))
{
System.out.println("恭喜你,回答正确");
sum2 ++;
}
else
{
System.out.println("答案错误,正确答案为:" + x + "+" + y + "=" + (x + y));
}
sum1 ++;

}
break;
case 2:
System.out.print("请输入你要完成的题目数:");
num1 = input.nextInt();
for(i = 1;i <= num1;)
{

x = (int)(Math.random() * 101);
y = (int)(Math.random() * 101);
if(x > y)
{
System.out.print(x + "-" + y + "=");
z = input.nextInt();
if(z == (x - y))
{
System.out.println("恭喜你,回答正确");
sum2 ++;
}
else
{
System.out.println("答案错误,正确答案为:" + x + "-" + y + "=" + (x - y));
}
sum1 ++;
i ++;

}

}
break;
case 3:
System.out.println("总题数:" + sum1 + "答对的题数:" + sum2);
Date end = new Date(System.currentTimeMillis());
long endtime=end.getTime();
int time = (int) ((endtime - starttime)/(1000));
System.out.println(time+"秒");
System.out.println("系统已退出,欢迎下次使用");
System.exit(0);
break;

default:

System.out.println("选择错误。请重新选择");
}
}
}
else
{
System.out.println("密码输入错误");

}
i ++;
}
System.out.println("密码错误三次。请明天再来");
}

}

 

6、代码复审

没有明显的编译错误,个别代码需要反复测试它的局限性。

7、测试

 

报告

1、测试报告

测试结果能达到最初的预期效果,随机产生10个100以内的算术题,并显示出来最后还能判断对错,并统计得分,以及统计所用时间。测试成功,还未发现其他bug。

2、计算工作量

口算题卡开发阶段

雾岛风起时所用时间

工程师所用时间

计划

 

 

•明确需求和其他相关因素,估计每个阶段的时间成本

8

6

开发

 

 

•需求分析

5

10

•生成设计文档

8

6

•设计复审(和同事审核设计文档)

8

6

•代码规范(为目前的开发制定合适的规范)

3

3

•具体设计

11

12

•具体编码

22

21

•代码复审

10

9

•测试(自测,修改代码,提交修改)

21

21

报告

 

 

•测试报告

2

2

•计算工作量

1

1

•事后总结

3

3

3、事后总结

个人代码过程中有许多问题,需要不断修改不断完善,一直不停的测试才可以是程序一步一步达到自己的预期,复审以及测试过程中会有许多不明白的问题,需要和伙伴商量探讨。

 

posted @ 2021-05-23 19:43  雾岛风起时  阅读(521)  评论(0)    收藏  举报