首页 > 代码库 > 第二次作业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