1.測試帖連結:http://www.cnblogs.com/leezoey/p/6579928.html
2.測試人員提出的問題、發現的缺陷:
對於邊值得界定,應該單獨優化出一個函式,防止後面又對邊值得界定做出改變。
3.修正後的程式碼清單:因為測試人員提出不足的地方並且在之後貼上了修改後的程式碼,所以我就在此基礎上執行發現他新增的bool函式true與false值寫反了並根據評論,在if語句加了大括號。
1 package triangle; 2 3 import java.util.Scanner; 4 5 public class main2 { 6 public static void main(String[] args) { 7 // TODO Auto-generated method stub 8 int a=0,b=0,c=0; 9 //設計可判斷十組邊 10 for(int i=0;i<10;i++) 11 { 12 System.out.println("請輸入三角形的三條邊(用逗號隔開):"); 13 //輸入三角形三條邊 14 Scanner sr = new Scanner(System.in); 15 String sc = sr.next(); 16 //以逗號隔開三條邊 17 String[] sourceStrArray = sc.split(","); 18 if(sourceStrArray.length==3){ 19 //輸入是否為純整數判斷 20 try{ 21 a = Integer.parseInt(sourceStrArray[0]); 22 b = Integer.parseInt(sourceStrArray[1]); 23 c = Integer.parseInt(sourceStrArray[2]); 24 }catch(Exception e){ 25 System.out.println("輸入錯誤!"); 26 continue; 27 } } 28 else{ 29 System.out.println("輸入錯誤"); 30 continue;} 31 //呼叫方法 32 String result = triangle(a, b, c); 33 System.out.println(result); 34 35 } 36 } 37 38 //判斷三角形 39 public static String triangle(int a, int b,int c) 40 { 41 //值的範圍 42 if(charge(a,b,c)){ 43 return "邊的值不在範圍內";} 44 //能否構成三角形 45 else if(a>=b+c||b>=a+c||c>=a+b){ 46 return "不構成三角形";} 47 else{ 48 //等邊三角形 49 if(a==b&&b==c){ 50 return "等邊三角形";} 51 //等腰三角形 52 else if(a==b||b==c||a==c){ 53 return "等腰三角形";} 54 //直角三角形 55 else if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==b*b+a*a){ 56 return "直接三角形";} 57 //一般三角形 58 else{ 59 return"一般三角形";} 60 } 61 } 62 public static boolean charge(int a, int b,int c){ 63 if(a<1||a>100||b<1||b>100||c<1||c>100) 64 return true; 65 else 66 return false; 67 } 68 }
4.修正後心得體會:
- 介紹自己程式碼做了怎樣的變更:增加了三角形三條邊的邊界值限定的bool型函式
- 分析出現缺陷的原因:通過,並沒有找出缺陷,只有不足的地方
- 對這部分教材內容的學習心得:對判定覆蓋的定義和條件覆蓋有點混亂,對畫流程圖深惡痛絕!if條件太多了,畫的很亂。