第二次软件工程作业

一、需求分析

 

需要自动生成四则运算试题的程序,取值范围在100以内,操作数是否含负数,剔除重复算式,显示在txt文件中

 

二、功能设计

 

基本功能:自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内

扩展功能:1. 剔除重复算式。2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式

                  2. 题目数量可定制

                  3. 相关参数可控制

                      是否包含乘法和除法

                      操作数数值范围可控(如操作数 在100以内   还是1000以内)

                      操作数是否含负数    

                   4. 生成的运算题存储到外部文件result.txt中

三、代码片段

1.实现输入数量,产生随机的整数加减乘除算式

(1)实现100以内的固定数量的随机加

      
    

r1[i]=(int)(1+Math.random()*100);
r2[i]=(int)(1+Math.random()*100);

 

 

 

(2)实现随机的(“+”,“-”,“*”,“\”)

建立储存运算符的char组

static String[] r3={"+","-","*","/"};//存储运算符

用随机的c=random(),实现4以内的数字(0,1,2,3),就能随机产生运算符

 

int a=(int)(0+Math.random()*4);//用0,1,2,3来代表四个运算符
s1[i]=r3[a];

 

 

 

(3)实现可定制数量

 

System.out.println("请输入出题数量:");
Scanner reader2 =new Scanner(System.in);
int number =reader2.nextInt();
r1=new int[number];
r2=new int[number];

 

 (4)避免算式重复(最满意的代码片段)

for(int j=0;j<i;j++)

{

if(r1[i]==r1[j]&&r1[i]==r1[j]&&s1[i].equals(s1[j]))//判断两个运算的数字是否相同

{

            r1[i]=(int)(1+Math.random()*100);

r2[i]=(int)(1+Math.random()*100);

j=0;

}

}for(int j=0;j<i;j++)

{

if(r1[i]==r1[j]&&r1[i]==r1[j]&&s1[i].equals(s1[j]))

{

            r1[i]=(int)(1+Math.random()*100);

r2[i]=(int)(1+Math.random()*100);

j=0;

}

}

 (5)生成的运算题存储在外部文件test.txt中

PrintWriter out;//定义变量 
try{ out= new PrintWriter(" e:/ test. txt");//输出的路径和文件名}
 catch( FileNotFoundException e){ throw new RuntimeException( e);}
 out. println("第"+( i+1)+"题r1[i]+"/"+r2[i]+"÷"+n3[i]+"/"+n4[i]+"=");//输出算式 
out. close();//关闭

 

(6)程序运行结果截图

 

 

 四、总结

自己在程序编写的过程中还是需要依赖上网查很多的资料,自己缺乏独立思考的能力,没有基本的构图,还有许多错误,需要不断调试,运算结果重复输出的错误还没调试出来,

今后应该先在脑子里形成具体思路完成基本框架搭建,再去做题。

五、psp

 

PSP2.1

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

10

20

   Estimate

·  估计这个任务需要多少时间,并规划大致工作步骤

10

20

Development

开发

90

120

Analysis

  需求分析 (包括学习新技术)

6

10

Design Spec

·  生成设计文档

5

6

 Design Review

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

4

6

 Coding Standard

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

3

3

Design

  具体设计

10

12

  Coding

  具体编码

30

60

 Code Review

·  代码复审

7

9

 Test

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

13

21

Reporting

报告

20

30

 Test Report

·总结改进 

10

20

 

posted on 2019-09-16 08:01  Zy钰  阅读(189)  评论(1编辑  收藏  举报

导航