首页 > 代码库 > 第二次作业105032014016

第二次作业105032014016

1、测试帖链接:http://www.cnblogs.com/hsy123/p/6602191.html

2、测试人员提出的问题、发现的缺陷:

测试结果都通过,并没有什么大问题。

对代码优化提出的建议:

(1)建议规范代码,代码全都挤到一块 ,看起来既不美观,又影响代码的可读性。

(2)可以添加循环代码,在程序结束的时候,询问是否继续。

(3)应对scan进行关闭,避免占用内存。

3、修正后的代码:

import java.util.Scanner;

public class homeWork01 {

public static String triangle(String s1,String s2,String s3){

String str="abcdefghijklmnopqrstuvwxyz!@#$%^&*()_+-=";

if(str.indexOf(s1)!=-1||str.indexOf(s2)!=-1||str.indexOf(s3)!=-1){

return "输入的是非法字符";

}

//判断输入的值是否是整数

if(isNumeric(s1)&&isNumeric(s2)&&isNumeric(s3)){

 

}else{

return"输入的数字不是整数";

}

int a = 0,b=0,c=0;

a=Integer.parseInt(s1);

b=Integer.parseInt(s2);

c=Integer.parseInt(s3);

if(a>=1&&a<=100&&b>=1&&b<=100&&c>=1&&c<=100){

if((a<b+c)&&(b<a+c)&&(c<a+b)){

if(a==b&&b==c){

return "等边三角形";

}

if(a==b||a==c||b==c){

return "等腰三角形";

}

if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){

return"直角三角形";

}

return "一般三角形";

}else{

return"不构成三角形";

}

}else{

return "边的值不在范围内";

}

 

}

public static boolean isNumeric(String str1){  

  for (int i = str1.length();--i>=0;){    

   if (!Character.isDigit(str1.charAt(i))){  

    return false;  

   }  

  }  

  return true;  

}

public static void main(String []args){

System.out.println("请输入三角形的三条边:");

String s1=null;

String s2=null;

String s3=null;

Scanner scan=new Scanner(System.in);

s1=scan.next();

//如果输入的边长为0,则退出程序

     if(s1==0){

     break;

}

s2=scan.next();

s3=scan.next();

 

System.out.println(triangle(s1,s2,s3));

    Scan.close();

 

}

}

4、心得体会:

代码写的太过生硬,增加了许多注释,让人读起来更容易理解。编写的该程序没有找到比较大的毛病。个人增添了一些输入字符的判定,如输出非法字符或者小数都会提示出相应的错误。在修改的过程中,比较难以修改的就是判定数字是否为整数,上网找资料话了挺多时间,比对判定整数的方法的实用性。

 

第二次作业105032014016