复利计算单元测试

时间:2022-02-06 19:01:59

测试模块

测试输入

预期结果

运行结果

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 }