练习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+"
");
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+"
");
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条程序代码分别是:

1、单元测试程序;

2、计算阶乘功能程序;

3、异常处理程序;

由于在练习5.1中已经完成了四则运算的大部分功能,所以在本次练习中,就试着在练习5.1的基础上,追加了阶乘功能,并且对阶乘功能进行封装,测试等等。

-(1)黑盒子测试

测试用例输入条件 输入条件 有效等价类 无效等价类
输入有效性判断 5 5  
输入错误负数 -5 l例如:5 -5
输入错误字符 a 例如:5 a
       
测试对象 测试说明 测试数据 测试结果
计算范围 能计算的大小(<=100) 100 93326215...
       
       
       

(2)白盒子测试

测试用例 用例说明 通过途径 实际结果
负数处理 输入(-5) Line23-32 抛出异常并提示
非法字符处理 输入(a) Line33-47 抛出异常并提示
结果正确性处理 输入(5) Line12-22 120
       
       

(3)异常处理

异常说明 异常用例 异常反馈  
fsException

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

您输入的是-5,规定阶乘数不能为负数!  
NumberFormatException CalcuteRank aa=new CalcuteRank();
String s="a";
aa.rank(s);
您输入的是a,规不能输入数字以外的非法字符!  
       
       
       

本次实验代码及其测试结果截图

我们SsssB团队工作照:

  本次工作照就不在我的博客中上传啦,如果需要观看,就欢迎进入我团队另一位小伙伴的博客吧,她为自己“带盐”:http://www.cnblogs.com/mikky/

最后总结:

  因为有了第一次实验作为铺垫,所以这次实验做起来就没有了第一那么困难,感觉很多地方都能很容易的上手,同时也在第一次实验的基础上加以了完善了追加了一部分功能,及其异常处理。不过我们的实验还是存在有许多不足之处,我们团队会再接下更加努力,一点点改进完善,让我们的作业做得更加好。

原文地址:https://www.cnblogs.com/kevinkeke/p/4485783.html