计应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 |
浙公网安备 33010602011771号