一、需求分析
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内。
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式。
(3)题目数量可定制。
(4)相关参数可控制。
是否包含乘法和除法。
操作数数值范围可控(如操作数 在100以内 还是1000以内)。
操作数是否含负数。
(5)生成的运算题存储到外部文件result.txt中。
二、功能设计
基本功能:自动生成四则运算试题
扩展功能:(1)算出答案
(2)用户可以自己选择用加减,乘除,正负.
三、设计实现
Java语言实现,软件myeclipse,其中随机生成数字需使用到Math.random()函数,并通过for,switch等控制语句实现条件的各种选择问题。
四、测试运行
一、需求分析
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
二、功能设计
基本功能:自动生成四则运算试题
扩展功能:(1)算出答案
(2)用户可以自己选择用加减,乘除,正负.
三、设计实现
Java语言实现,软件myeclipse,其中随机生成数字需使用到Math.random()函数,并通过for,switch等控制语句实现条件的各种选择问题。
四、测试运行
只是加减法,并且么有负数。
加减法和有负数
包括负数和乘法和除法
么有负数,包括乘法和除法
五、代码
for(int i=0;i<tg;i++) {//循环控制题目个数
//第一个操作数的选择
int a=(int)(Math.random()*tf+1);
if(zf==1) {//有负数
int p=(int) (Math.random()*2);
switch(p) {
case 0:a=a*(-1);//取负数
System.out.print(a);break;
case 1:
System.out.print(a);break;
}
}
if(zf==0) {//没有负数
System.out.print(a);
}
if(fu==2) {//选择两个字符‘+’‘-’
int k=(int)(Math.random()*2);
switch(k) {//随机选择运算符
case 0:System.out.print("+");
break;
case 1:System.out.print("-");
break;
}
int b=(int)(Math.random()*tf+1);
if(zf==1) {//有负数
int p=(int) (Math.random()*2);
switch(p) {
case 0:b=b*(-1);//取负数
System.out.print(b);break;
case 1:
System.out.print(b);break;
}
}
if(zf==0) {//没有负数
System.out.print(b);
}
System.out.print("=");
//运算结果
if(k==0) {c=a+b;System.out.println(c);}
if(k==1){c=a-b; System.out.println(c);}
}
if(fu==4) {//四个字符的‘+’‘-’‘*’‘/’
int k=(int)(Math.random()*4+1);
switch(k) {//随机选择运算符
case 1:System.out.print("+");break;
case 2:System.out.print("-");break;
case 3:System.out.print("*");break;
case 4:System.out.print("/");break;
}
int b=(int) (Math.random()*tf+1);
if(zf==1) {//有负数
int p=(int) (Math.random()*2);
switch(p) {
case 0:b=b*(-1);//取负数
System.out.print(b);break;
case 1:
System.out.print(b);break;
}
}
if(zf==0) {//没有负数
System.out.print(b);
}
//等号
System.out.print("=");
//运算结果
if(k==1) {
c=a+b;System.out.println(c);
}
if(k==2) {
c=a-b;System.out.println(c);
}
if(k==3) {
c=a*b;System.out.println(c);
}
if(k==4) {
c=a/b;System.out.println(c);
}
六、总结
只有通过实践才能知道自己的能力与不足,自己的知识差的不是一点半点,有些知识都忘记了,但基本程序所需要的功能都实现了,设定了多个if条件语句,通过用户所选择输出方式的不同进入到用户所定义相应的程序块,以此来实现此程序的功能。自己编码能力差的太多了,在学习的道路上还任务重、道路还远。尽管有很多不懂的知识,但是自己依然会尽力自己最大的努力来学习。
七、PSP
计划 |
计划完成时间(min) |
实际完成时间(min) |
估计这个任务需要多少时间,并规划大致工作步骤 |
10 |
20 |
开发 |
210 |
320 |
需求分析 |
50 |
80 |
生成设计文档 |
30 |
30 |
设计复审 |
20 |
40 |
代码规范 |
10 |
15 |
具体设计 |
30 |
50 |
具体编码 |
60 |
90 |
代码复审 |
10 |
15 |
报告 |
30 |
40 |
测试报告 |
15 |
20 |
计算工作量 |
5 |
5 |
事后总结 |
10 |
15 |