首页 > 技术文章 > 20194655软件工程第二次作业

12yy 2019-09-14 16:34 原文

一.需求分析

(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 }
```

运算符号的选择


     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

![](https://img2018.cnblogs.com/blog/1791095/201909/1791095-20190914163356956-598304163.png)

推荐阅读