计应193第四组张慧慧


一、 计划

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

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

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

二、开发

1、需求分析

完成100以内的正整数的加减法题随机产生

2、用户故事

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

3、生成设计文档

①首先创建一个测试类,

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

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

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

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

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

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

类名和方法名要做到见名知意 

5、具体编码

package zhh;

import java.sql.Date;

import java.util.Scanner;

public class suanshu {

public static void main(String[] args) {

// TODO Auto-generated method stub

 

Scanner input = new Scanner(System.in);

int num = 123456;

int pass;

int sumall = 0,sumright = 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("很棒哦!");

sumright ++;

}

else

{

System.out.println("啊哦,正确答案为:" + x + "+" + y + "=" + (x + y));

}

sumall ++;

 

}

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("很棒哦!");

sumright ++;

}

else

{

System.out.println("啊哦,正确答案为:" + x + "-" + y + "=" + (x - y));

}

sumall ++;

i ++;

 

}

 

}

break;

case 3:

System.out.println("总共题数:" + sumall + "答对的题数是:" + sumright);

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、代码复审

小组人员代码复审

报告

9、测试报告

  运行成功程序不报错

10、事后总结
  在写程序的过程中也是一次的改错的过程

11、提出过程改进计划

  1>提升自己写代码的功力

2>学会优化代码,不要写的非常繁杂

PSP阶段所花时间

PSP阶段

咸菜爱吃糖(张慧慧)的所花时间百分比

工程师所花时间百分比

计划

 

 

  • 明确相关需求和其他因素

10

10

开发

 

 

  • 需求分析

11

8

  • 生成设计文档

10

12

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

12

7

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

8

3

  • 具体设计

20

13

  • 具体编码

25

22

  • 代码复审

8

10

报告

 

 

  • 测试报告

3

3

  • 计算工作量

2

1

  • 事后总结,并提出过程改进计划

2

1

posted @ 2021-04-10 14:43  雾岛风起时  阅读(83)  评论(0)    收藏  举报