1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 void Compounding(){ 5 int n,k; 6 double F,P; 7 float i; 8 printf("|-----------------------------------------| "); 9 printf(" 请输入你所存入的本金:"); 10 scanf("%lf",&P); 11 printf("|-----------------------------------------| "); 12 printf(" 请输入你所存的年利率比:"); 13 scanf("%f",&i); 14 printf("|-----------------------------------------| "); 15 printf(" 请输入你所存的年限:"); 16 scanf("%d",&n); 17 printf("|-----------------------------------------| "); 18 printf(" 请输入你所存的复利次数:"); 19 scanf("%d",&k); 20 printf("|-----------------------------------------| "); 21 F=P*pow(i/k+1,k*n); 22 printf(" 通过复利存款,你所获得的金额为:%.4lf ",F); 23 } 24 25 void Simple_Interested(){ 26 int n; 27 double F,P; 28 float i; 29 printf("|-----------------------------------------| "); 30 printf(" 请输入你所存入的本金:"); 31 scanf("%lf",&P); 32 printf("|-----------------------------------------| "); 33 printf(" 请输入你所存的周期利息:"); 34 scanf("%f",&i); 35 printf("|-----------------------------------------| "); 36 printf(" 请输入你所存的周期数:"); 37 scanf("%d",&n); 38 printf("|-----------------------------------------| "); 39 F=P*(1+i*n); 40 printf(" 通过单利存款,你所获得的金额为:%.4lf ",F); 41 } 42 43 void Comparison(){ 44 printf(" <复利计算器> "); 45 Compounding(); 46 printf(" <单利计算器> "); 47 Simple_Interested(); 48 } 49 50 void Count_Deposit(){ 51 double F,P; 52 float i; 53 int n,k,a; 54 printf(" 请输入你希望获得的最终金额为:"); 55 scanf("%lf",&F); 56 printf(" 请输入你选的存款方式(1、复利;2、单利):"); 57 scanf("%d",&a); 58 switch(a) 59 { 60 case 1: 61 printf(" 请输入<<复利>>存款的信息!!!!! "); 62 printf("|-----------------------------------------| "); 63 printf(" 请输入<<复利>>你所存的年利率比:"); 64 scanf("%f",&i); 65 printf("|-----------------------------------------| "); 66 printf(" 请输入<<复利>>你所存的年限:"); 67 scanf("%d",&n); 68 printf("|-----------------------------------------| "); 69 printf(" 请输入<<复利>>你所存的复利次数:"); 70 scanf("%d",&k); 71 printf("|-----------------------------------------| "); 72 P=F/pow(i/k+1,k*n); 73 printf(" 通过复利存款,你所需要的存款金额为:%lf ",P); 74 break; 75 case 2: 76 printf("请输入<<单利>>存款的信息!!!!! "); 77 printf("|-----------------------------------------| "); 78 printf(" 请输入<<单利>>你所存的周期利息:"); 79 scanf("%f",&i); 80 printf("|-----------------------------------------| "); 81 printf(" 请输入<<单利>>你所存的周期数(年份):"); 82 scanf("%d",&n); 83 printf("|-----------------------------------------| "); 84 P=F/(1+i*n); 85 printf(" 通过单利存款,你所需要的存款金额为:%lf ",P); 86 break; 87 } 88 } 89 90 void Count_Year(){ 91 double n,F,P; 92 float i; 93 int k,a; 94 printf(" 请输入你所存的金额为:"); 95 scanf("%lf",&P); 96 printf(" 请输入你希望获得的最终金额为:"); 97 scanf("%lf",&F); 98 printf(" 请输入你选的存款方式(1、复利;2、单利):"); 99 scanf("%d",&a); 100 switch(a) 101 { 102 case 1: 103 printf(" 请输入<<复利>>存款的信息!!!!! "); 104 printf("|-----------------------------------------| "); 105 printf(" 请输入<<复利>>你所存的年利率比:"); 106 scanf("%f",&i); 107 printf("|-----------------------------------------| "); 108 printf(" 请输入<<复利>>你所存的复利次数:"); 109 scanf("%d",&k); 110 printf("|-----------------------------------------| "); 111 n=log(F/P)/log(i/k+1)/k; 112 printf(" 通过复利存款,你所需要的存款年限为:%lf ",n); 113 break; 114 case 2: 115 printf("请输入<<单利>>存款的信息!!!!! "); 116 printf("|-----------------------------------------| "); 117 printf(" 请输入<<单利>>你所存的周期利息:"); 118 scanf("%f",&i); 119 printf("|-----------------------------------------| "); 120 n=(F/P-1)/i; 121 printf(" 通过单利存款,你所需要的存款年限为:%lf ",n); 122 break; 123 } 124 } 125 126 void Count_Interest(){ 127 double F,P,b,i; 128 int k,a,n; 129 printf(" 请输入你所存的金额为:"); 130 scanf("%lf",&P); 131 printf(" 请输入你希望获得的最终金额为:"); 132 scanf("%lf",&F); 133 printf(" 请输入你所存款的年限:"); 134 scanf("%d",&n); 135 printf(" 请输入你选的存款方式(1、复利;2、单利):"); 136 scanf("%d",&a); 137 switch(a) 138 { 139 case 1: 140 printf(" 请输入<<复利>>存款的信息!!!!! "); 141 printf("|-----------------------------------------| "); 142 printf(" 请输入<<复利>>你所存的复利次数:"); 143 scanf("%d",&k); 144 printf("|-----------------------------------------| "); 145 b=(double)1/(k*n); 146 i=(pow(F/P,b)-1)*k; 147 printf(" 通过复利存款,你所需要的存款的利率为:%lf ",i); 148 break; 149 case 2: 150 i=(F/P-1)/n; 151 printf(" 通过单利计算,你所需要的存款的利率为:%lf ",i); 152 break; 153 } 154 } 155 156 void Count_Money(){ 157 int n,a; 158 double F,P; 159 float i; 160 printf("请输入存款的信息!!!!! "); 161 printf(" |-----------------------------------------| "); 162 printf(" 请输入你每次所投入的本金:"); 163 scanf("%lf",&P); 164 printf("|-----------------------------------------| "); 165 printf(" 请输入你所投本金的利息:"); 166 scanf("%f",&i); 167 printf("|-----------------------------------------| "); 168 printf(" 请输入你所存款的年限:"); 169 scanf("%d",&n); 170 printf("|-----------------------------------------| "); 171 printf(" 请输入你选的存款方式(1、年投;2、月投):"); 172 scanf("%d",&a); 173 switch(a) 174 { 175 case 1: 176 F=P*(1+i)*(pow(1+i,n)-1)/i; 177 break; 178 case 2: 179 F=P*12*(1+i)*(pow(1+i,n)-1)/i; 180 break; 181 } 182 printf(" 存款%d年,你所获得的金额为:%.4lf ",n,F); 183 } 184 185 186 187 188 void Count_Refunt(){ 189 int n,a; 190 double F,P; 191 float i; 192 printf("请输入借款的信息!!!!! "); 193 printf(" |-----------------------------------------| "); 194 printf(" 请输入你所借的金额:"); 195 scanf("%lf",&F); 196 printf("|-----------------------------------------| "); 197 printf(" 请输入你借款的利息(年):"); 198 scanf("%f",&i); 199 printf("|-----------------------------------------| "); 200 printf(" 请输入你借款的年限:"); 201 scanf("%d",&n); 202 printf("|-----------------------------------------| "); 203 printf(" 请输入你选的借款方式(1、年还;2、月还):"); 204 scanf("%d",&a); 205 switch(a) 206 { 207 case 1: 208 P=F*i*pow(1+i,n)/pow(1+i,n-1); 209 printf(" 你每年要还的金额为:%.4lf ",P); 210 break; 211 case 2: 212 i=i/12; 213 n=n*12; 214 P=F*i*pow(1+i,n)/pow(1+i,n-1); 215 printf(" 你每月要还的金额为:%.4lf ",P); 216 break; 217 } 218 219 } 220 221 void menu(){ 222 printf("|-----------------------------------------| "); 223 printf("| 0、退出系统 | "); 224 printf("|-----------------------------------------| "); 225 printf("| 1、复利存款 | "); 226 printf("|-----------------------------------------| "); 227 printf("| 2、单利存款 | "); 228 printf("|-----------------------------------------| "); 229 printf("| 3、输出复利存款、单利存款的结果 | "); 230 printf("|-----------------------------------------| "); 231 printf("| 4、输入终值求存款 | "); 232 printf("|-----------------------------------------| "); 233 printf("| 5、输入终值、存款求所需年份 | "); 234 printf("|-----------------------------------------| "); 235 printf("| 6、输入终值、存款、年份求利率 | "); 236 printf("|-----------------------------------------| "); 237 printf("| 7、输每年(月)投入本金,求几年后的终值 | "); 238 printf("|-----------------------------------------| "); 239 printf("| 8、输入贷款,求年(月)还款 | "); 240 printf("|-----------------------------------------| "); 241 } 242 243 void main(){ 244 char t; 245 int a; 246 menu(); 247 loop: 248 printf(" 请输入你的选择:"); 249 if(scanf("%d",&a)==1){ 250 switch(a) 251 { 252 case 0: 253 exit(0); 254 break; 255 case 1: 256 system("cls"); 257 t=getchar(); 258 Compounding(); 259 break; 260 case 2: 261 system("cls"); 262 t=getchar(); 263 Simple_Interested(); 264 break; 265 case 3: 266 system("cls"); 267 t=getchar(); 268 Comparison(); 269 break; 270 case 4: 271 system("cls"); 272 t=getchar(); 273 Count_Deposit(); 274 break; 275 case 5: 276 system("cls"); 277 t=getchar(); 278 Count_Year(); 279 break; 280 case 6: 281 system("cls"); 282 t=getchar(); 283 Count_Interest(); 284 break; 285 case 7: 286 system("cls"); 287 t=getchar(); 288 Count_Money(); 289 break; 290 case 8: 291 system("cls"); 292 t=getchar(); 293 Count_Refunt(); 294 break; 295 default: 296 printf("输入有误!请重新输入!(目前功能选项只有1~8) "); 297 goto loop; 298 } 299 } 300 else{ 301 system("cls"); 302 t=getchar(); 303 printf(" 输入有误!请重新输入!(目前功能选项只有1~8) "); 304 main(); 305 } 306 }
1、年还款
2、月还款