20194655软件工程第二次作业

一.需求分析

(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /)

(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式

(3)题目数量可定制

(4)相关参数可控制

     是否包含乘法和除法

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

     操作数是否含负数    

(5)生成的运算题存储到外部文件result.txt中
二.功能设计
1.先实现随机数相加

    r1[i]=(int)(number3+Math.random()*(number4-number3));
    r2[i]=(int)(number3+Math.random()*(number4-number3));   

    S1[i]=(r1[i]+r2[i]);

  2.然后生成随机运算符

     建立了一个数组r3,将运算符存储在数组r3中

     static String[] r3={"+","-","*","/"};

  3.能够确保生成符号加减乘除计算

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

剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式

题目数量可定制

相关参数可控

是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
生成的运算题存储到外部文件result.txt中

扩展功能

(1)自动生成100以内四则运算

(2)相关参数可以控制

(3)操作数数值范围可控制

是否包括负数

是否包括乘法或者除法

(4)生成的运算题存储到外部

  1. 设计实现:
    使用构造函数PrintStream Scanner ,PrintStream ps = new PrintStream(“d:/result.txt”);

System.setOut(ps);调用此函数,可以将所有System.out.println();输出语句,打印到i我们创建的文件夹中

Scanner t=new Scanner(System.in); 控制我们从键盘输入

Math.random();产生随机不重复函数,我做了以下测试

  1. 测试运行:

5.代码片段:
//第一个操作数的选择
2 int a=(int)(Math.random()tf+1);
3
4 if(zf==1) {//有负数
5 int p=(int) (Math.random()
2);
6 switch(p) {
7 case 0:a=a*(-1);//取负数
8 System.out.print(a);break;
9 case 1:
10 System.out.print(a);break;
11 }
12 }
13 if(zf==0) {//没有负数
14 System.out.print(a);
15 }
```

运算符号的选择
```java

 1 System.out.println("请选择是否包含*或者/:2:否 4:是 ");
 2         int fu=t.nextInt();
 3 if(fu==2) {//选择两个字符‘+’‘-’
 4                 int k=(int)(Math.random()*2);
 5                 switch(k) {//随机选择运算符
 6                 case 0:System.out.print("+");
 7                        break;
 8                 case 1:System.out.print("-");
 9                        break; 
10                                                }
11 if(fu==4) {//四个字符的‘+’‘-’‘*’‘/’
12             int k=(int)(Math.random()*4+1);
13             switch(k) {//随机选择运算符
14             case 1:System.out.print("+");break;
15             case 2:System.out.print("-");break;
16             case 3:System.out.print("*");break;
17             case 4:System.out.print("/");break;
18             }

等号右侧结果

 1 //等号
 2             
 3             System.out.print("=");
 4             //运算结果
 5             if(k==1) {
 6                 c=a+b;System.out.println(c);
 7             }
 8             if(k==2) {
 9                 c=a-b;System.out.println(c);
10             }
11             if(k==3) {
12                 c=a*b;System.out.println(c);
13             }
14             if(k==4) {
15                 c=a/b;System.out.println(c);
16             }

6.总结
设计四则运算算法,在运行无误后,根据需求逐一增加代码功能,每增加一步进行测试,测试无误后,写下一个功能

7.PSP

猜你喜欢

转载自www.cnblogs.com/12yy/p/11519481.html