任务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;
}
}
}
第二次测试程序

浙公网安备 33010602011771号