練習5.2更新——繼5.1的追加更新完善

 
 1 package ppackage;
 2 import static org.junit.Assert.*;
 3 
 4 import java.math.BigDecimal;
 5 
 6 import org.junit.Test;
 7 
 8 
 9 public class Rank {
10 
11     @Test
12     public void testrank() {
13         CalcuteRank c=new CalcuteRank();
14         try{
15         BigDecimal answer=c.rank("5");
16         assertEquals(120,answer.intValue());
17         }
18         catch(FsException e)
19         {
20             System.out.println(e.getMessage());
21         }
22     }
23     public void testfs() {
24         CalcuteRank c=new CalcuteRank();
25         try{
26         BigDecimal answer=c.rank("-5");
27         }
28         catch(FsException e)
29         {
30             System.out.println(e.getMessage());
31         }
32     }
33     public void testff() {
34         CalcuteRank c=new CalcuteRank();
35         try{
36         BigDecimal answer=c.rank("a");
37         assertEquals(120,answer.intValue());
38         }
39         catch(NumberFormatException e)
40         {
41             System.out.println(e.getMessage());
42         }
43         catch(FsException e)
44         {
45             System.out.println(e.getMessage());
46         }
47     }
48 
49 }
Junit
 1 package ppackage;
 2 
 3 import java.math.BigDecimal;
 4 import java.util.Random;
 5 
 6 public class CalcuteRank {
 7     BigDecimal rank(String a) throws FsException
 8     {
 9         int i,j=1,l;
10         BigDecimal k= new BigDecimal(1);
11         String []v=new String [10];
12         if(Integer.parseInt(a)<0)
13         {
14             throw new FsException("您輸入的是"+a+",規定階乘數不能爲負數!");
15         }
16         if(Integer.parseInt(a)==0)
17         {
18             k= new BigDecimal(1);
19             System.out.print(a+"!=");
20             System.out.print(0+"\n");
21         }
22         else
23         {
24         for(l=0;l<10;l++)
25         {
26             v[l]="";
27         }
28         l=0;
29         for(int f=0;f<1;f++)
30         {
31         BigDecimal.valueOf(j);
32         v[l]=a;
33         v[l]+="!";
34         System.out.print(a+"!=");
35         do
36         {
37             k=k.multiply(BigDecimal.valueOf(j)); 
38             j++;
39             
40         }while(j<=Integer.parseInt(a));
41         System.out.print(k+"\n");
42         l++;v[l]=String.valueOf(k);l++;
43         j=1;
44         }
45         }
46         return k;
47     }
48     public static void main(String[] args) {
49         CalcuteRank aa=new CalcuteRank();
50         String s="5";
51         try{
52         aa.rank(s);
53         }
54         catch(NumberFormatException e)
55         {
56             System.out.println("您輸入的是"+s+','+"規不能輸入數字之外的非法字符!");
57         }
58         catch(FsException e)
59         {
60             System.out.println(e.getMessage());
61         }
62     }
63         
64 }
Rank
1 package ppackage; 
2  public class FsException extends Exception{
3      public FsException(String mes)
4      {
5          super(mes);
6      }
7  }
FsException

以上3條程序代碼分別是:java

一、單元測試程序;dom

二、計算階乘功能程序;ide

三、異常處理程序;單元測試

因爲在練習5.1中已經完成了四則運算的大部分功能,因此在本次練習中,就試着在練習5.1的基礎上,追加了階乘功能,而且對階乘功能進行封裝,測試等等。測試

-(1)黑盒子測試spa

測試用例輸入條件 輸入條件 有效等價類 無效等價類
輸入有效性判斷 5 5  
輸入錯誤負數 -5 l例如:5 -5
輸入錯誤字符 a 例如:5 a
       

 

測試對象 測試說明 測試數據 測試結果
計算範圍 能計算的大小(<=100) 100 93326215...
       
       
       

 

(2)白盒子測試code

測試用例 用例說明 經過途徑 實際結果
負數處理 輸入(-5) Line23-32 拋出異常並提示
非法字符處理 輸入(a) Line33-47 拋出異常並提示
結果正確性處理 輸入(5) Line12-22 120
       
       

(3)異常處理orm

異常說明 異經常使用例 異常反饋  
fsException

CalcuteRank aa=new CalcuteRank();
String s="-5";
aa.rank(s);對象

您輸入的是-5,規定階乘數不能爲負數!  
NumberFormatException CalcuteRank aa=new CalcuteRank();
String s="a";
aa.rank(s);
您輸入的是a,規不能輸入數字之外的非法字符!  
       
       
       

本次實驗代碼及其測試結果截圖blog

 

 

咱們SsssB團隊工做照:

  本次工做照就不在個人博客中上傳啦,若是須要觀看,就歡迎進入我團隊另外一位小夥伴的博客吧,她爲本身「帶鹽」:http://www.cnblogs.com/mikky/

最後總結:

  由於有了第一次實驗做爲鋪墊,因此此次實驗作起來就沒有了第一那麼困難,感受不少地方都能很容易的上手,同時也在第一次實驗的基礎上加以了完善了追加了一部分功能,及其異常處理。不過咱們的實驗仍是存在有許多不足之處,咱們團隊會再接下更加努力,一點點改進完善,讓咱們的做業作得更加好。

相關文章
相關標籤/搜索