任务03——简单程序测试及 GitHub Issues 的使用

测试程序:

  根据任务三表格的分配, 我测试的是王燕同学的程序。

  经过简单的查看和测试后发现有2个问题,其他问题由于其程序原因无法测试。

  

修改程序:

  查看自己的项目中别人提交的ISSUE,存在5个问题


 

 修改程序

  1.对于程序不能根据用户输入的字符结束生成实则运算题目的问题

  对输入数据增加了一个判断是否为指定字符 代码如下:

    if (strinput.equals("exit")) {

      System.out.println("程序已退出!欢迎再次使用!");

      System.exit(0);

    }

  2.对于用户输入除数字及 / 之外的其他字符(含空格、小数点等),程序是否不会拒绝输入

    添加一个函数验证用户输入的数据是否含有除数字及 / 之外的其他字符(含空格、小数点等)代码如下:

    

boolean checked(String string){ //检测字符串是否含有除 数字0123456789 空格 和 。(点) 和 / 之外的字符
  int length=0;
  for(int i=0;i<string.length();i++){
    char charat=string.charAt(i);
    if(i==0&&charat=='-'){

      length++;

    }       if(charat=='0'||charat=='1'||charat=='2'||charat=='3'||charat=='4'||charat=='5'||charat=='6'||charat=='7'||charat=='8'||charat=='9'||charat=='/'||charat==' '||charat=='.'){

        length++;
    }
  }
  if(length==string.length()){
  return true;
  }else{
    return false;
  }
}

如果不含其他字符 则返货true 否则返回false

   3.对于分母为0不会拒绝输入的问题 代码如下

//检查字符串是否为分数
if (strinput.indexOf("/") != -1) {
  String strinputarr[]= strinput.split("/");
  //检查分数是否合法(粗略检测格式是否合法 判断 分母是否存在 或 分子为空)
  if(strinputarr.length>1&&!strinputarr[0].equals("")){
    //检查分数是否合法(仔细检测分母是否为0 如果为0则重新输入 否则对数据和答案进行比较)
    if (strinputarr[1].equals("0")) {
      System.out.print("输入数据不合法请重新输入:");
      strinput = strin.nextLine();

    }

  }
}

  4.对于拒绝输入后用户不能重新输入的问题 在各重情况位置添加用户输入语句来解决此问题

  5.对于不能避免生成重复算式的问题 添加了一个List来保存算式  并添加一个函数来判断算式是否重复 代码如下:

  

void CheckFormulaRepeated(String []num1,String [] num2,int operator){
  boolean repeated=false;
  String ope=checkoperator(operator);
  while(true){
    if(ope.equals("+")||ope.equals("*")){
      for (int i = 0; i < Formula.size(); i++) {
        if (Formula.get(i).equals(num1[0] + ope + num2[0]) || Formula.get(i).equals(num2[0] + ope + num1[0])) {
          repeated = true;
        }
      }
    }else{
      for(int i=0;i<Formula.size();i++){
        if(Formula.get(i).equals(num1[0]+ope+num2[0])){
          repeated=true;
        }
      }
    }
    if(!repeated){
      ope=checkoperator(operator);
      if(ope.equals("")){
        System.out.print("运算符随机错误!!!运算符未找到!!!");
        System.exit(0);
      }
      Formula.add(num1[0]+ope+num2[0]);
      calculation(num1,num2,operator);
      break;
    }else{
      num1=randomnum();
      num2=randomnum();
      operator=(int)(Math.random()*4)+1;
    }
  }
}


第二次测试程序

  

 

posted on 2017-04-06 14:00  WenTiBD  阅读(256)  评论(2)    收藏  举报

导航