复利计算单元测试-软件工程

测试模块

测试输入

预期结果

运行结果

bug跟踪

计算终值

(本金,年限,利率,次数)

终值

   

1

(100,10,0.03,1)

134.39

 

2

(0,10,0.03,1)

弹出提示:请输入>0的本金

没有提示,显示0

已改进。弹出提示:请输入>0的本金

 

3

(100,0,0.03,1)

弹出提示:请输入>0的的年限

没有提示,显示100.00

已改进。弹出提示:请输入>0的年限

4

 (100,10,0,1)  弹出提示:请输入>0的利率  没有提示,显示100.00  已改进。弹出提示:请输入>0的利率

计算本金

(年限,利率,次数,终值)

 

     
 1  (10,0.03,1,134.39)  100  √  
 2  (0,0.03,1,134.39)  弹出提示:请输入>0的的年限  没有提示,显示134.39  已改进。弹出提示:请输入>0的年限
3 (10,0.03,1,0) 弹出提示:请输入>0的的终值 没有提示,显示0.00  已改进。弹出提示:请输入>0的终值
4 (10,0,1,134.39) 弹出提示:请输入>0的利率 没有提示,显示134.39 已改进。弹出提示:请输入>0的利率
计算年限 (本金,利率,次数,终值)      
1 (100,0.03,1,134.39) 10  
2 (0,0.03,1,134.39) 弹出提示:请输入>0的本金 没有提示,显示乱码 已改进。弹出提示:请输入>0的本金
3 (100,0,1,134.39)  弹出提示:请输入>0的利率 没有提示,显示乱码 已改进。弹出提示:请输入>0的利率
4 (100,0.03,1,0) 弹出提示:请输入>0的的终值 没有提示,显示乱码 已改进。弹出提示:请输入>0的终值
计算利率 (本金,年限,次数,终值)      
1 (100,10,1,134.39) 0.03  
2 (0,10,1,134.39) 弹出提示:请输入>0的本金 没有提示,显示乱码 已改进。弹出提示:请输入>0的本金
3 (100,0,1,134.39) 弹出提示:请输入>0的年限 没有提示,显示乱码 已改进。弹出提示:请输入>0的年限
4 (100,10,1,0) 弹出提示:请输入>0的终值 没有提示,显示乱码 已改进。弹出提示:请输入>0的终值
         
         
         

 

  1 #include<stdio.h>
  2 #include<math.h>
  3 int panduan(double a,double b,double c);
  4 int i;
  5 void add(){
  6 double sum,p,n,a;
  7 int s;
  8 printf("选择复利计算或单利计算1/2:");
  9 scanf("%d",&s);
 10 qq:printf("输入本金:");
 11 scanf("%lf",&a);
 12 printf("输入年利率:");
 13 scanf("%lf",&p);
 14 printf("输入年限:");
 15 scanf("%lf",&n);
 16 i=panduan(a,p,n);
 17 if(i==-1){
 18 printf("请输入正确的数。");
 19 goto qq;
 20 }
 21 else{
 22 
 23 if(s==1){
 24 sum=a*(pow(1+p,n));
 25 }
 26 else
 27 sum=a*n*p+a;
 28 printf("总利润为:%lf\n",sum);}
 29 getchar();
 30 
 31 }
 32 
 33 void benjin(){
 34 double sum,p,a;
 35 int n;
 36 qq: printf("输入总利润:");
 37 scanf("%lf",&sum);
 38 printf("输入年利率:");
 39 scanf("%lf",&p);
 40 printf("输入年限:");
 41 scanf("%d",&n);
 42 a=sum/pow(1+p,n);
 43 i=panduan(a,p,n);
 44 if(i==-1){
 45 printf("请输入正确的数。");
 46 goto qq;
 47 }
 48 else
 49 printf("本金为%lf",a);
 50 getchar();
 51 }
 52 
 53 void time(){
 54 double sum,p,a,n;
 55 
 56 qq:printf("输入本金:");
 57 scanf("%lf",&a);
 58 printf("输入年利率:");
 59 scanf("%lf",&p);
 60 printf("输入总利润:");
 61 scanf("%lf",&sum);
 62 n=log(sum/a)/log(1+p);
 63 i=panduan(a,p,n);
 64 if(i==-1){
 65 printf("请输入正确的数。");
 66 goto qq;
 67 }
 68 else
 69 printf("存款期限为:%lf",n);
 70 getchar();
 71 }
 72 
 73 void dingtou(){
 74 double sum,p,a,n;
 75 qq:printf("输入每期定投金额:");
 76 scanf("%lf",&a);
 77 printf("输入定投期数:");
 78 scanf("%lf",&n);
 79 printf("输入收益率:");
 80 scanf("%lf",&p);
 81 
 82 i=panduan(a,p,n);
 83 if(i==-1){
 84 printf("请输入正确的数。");
 85 goto qq;
 86 }
 87 
 88 sum=a*(1+p)*(-1+pow(1+p,n))/p;
 89 printf("预期收益:%lf",sum);
 90 getchar();
 91 }
 92 void lilv()
 93 {
 94 double sum,p,a,n;
 95 printf("输入本金:");
 96 scanf("%lf",&a);
 97 printf("输入年限:");
 98 scanf("%lf",&n);
 99 printf("输入总利润:");
100 scanf("%lf",&sum);
101 p=pow(sum/a,1/n)-1;
102 printf("年利率为:%lf",p);
103 getchar();
104 }
105 
106 void main(){
107 int m;
108 while(1){
109 printf("\n\n\n");
110 /*主菜单*/
111        printf("\n ***********************************************\n");
112        printf(" | 1. 总利润计算                                 |\n");
113        printf(" |-----------------------------------------------|\n");
114        printf(" | 2. 本金计算                                   |\n");
115        printf(" |-----------------------------------------------|\n");
116        printf(" | 3. 存款期限计算                               |\n");
117        printf(" |-----------------------------------------------|\n");
118        printf(" | 4. 年利率                                     |\n");
119        printf(" |-----------------------------------------------|\n");
120        printf(" | 5. 定投计算                                   |\n");
121        printf(" |-----------------------------------------------|\n");
122        printf(" | 6. 退出                                       |\n");
123        printf(" |-----------------------------------------------|\n");
124 printf("请选择:");
125 scanf("%d",&m);
126     switch (m){
127     case 1:{add();break;}
128     case 2:{benjin(); break;}
129     case 3:{time(); break;}
130     case 4:{lilv(); break;}    
131     case 5:{dingtou(); break;}    
132     case 6:exit(0);break;
133     }
134 }
135 
136 }
137 int panduan(double a,double b,double c)
138 {
139     if(a<=0||b<=0||c<=0)
140         return -1;
141     else return 1;
142 }

 

posted @ 2016-03-30 11:04  Newul  阅读(194)  评论(1编辑  收藏  举报