测试模块 |
测试输入 |
预期结果 |
运行结果 |
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 }