测试模块 |
测试输入 |
预期结果 |
运行结果 |
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 ",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(" "); 110 /*主菜单*/ 111 printf(" *********************************************** "); 112 printf(" | 1. 总利润计算 | "); 113 printf(" |-----------------------------------------------| "); 114 printf(" | 2. 本金计算 | "); 115 printf(" |-----------------------------------------------| "); 116 printf(" | 3. 存款期限计算 | "); 117 printf(" |-----------------------------------------------| "); 118 printf(" | 4. 年利率 | "); 119 printf(" |-----------------------------------------------| "); 120 printf(" | 5. 定投计算 | "); 121 printf(" |-----------------------------------------------| "); 122 printf(" | 6. 退出 | "); 123 printf(" |-----------------------------------------------| "); 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 }