复利计算-4
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("|-----------------------------------------|\n"); 9 printf(" 请输入你所存入的本金:"); 10 scanf("%lf",&P); 11 printf("|-----------------------------------------|\n"); 12 printf(" 请输入你所存的年利率比:"); 13 scanf("%f",&i); 14 printf("|-----------------------------------------|\n"); 15 printf(" 请输入你所存的年限:"); 16 scanf("%d",&n); 17 printf("|-----------------------------------------|\n"); 18 printf(" 请输入你所存的复利次数:"); 19 scanf("%d",&k); 20 printf("|-----------------------------------------|\n"); 21 F=P*pow(i/k+1,k*n); 22 printf("\n通过复利存款,你所获得的金额为:%.4lf\n\n",F); 23 } 24 25 void Simple_Interested(){ 26 int n; 27 double F,P; 28 float i; 29 printf("|-----------------------------------------|\n"); 30 printf(" 请输入你所存入的本金:"); 31 scanf("%lf",&P); 32 printf("|-----------------------------------------|\n"); 33 printf(" 请输入你所存的周期利息:"); 34 scanf("%f",&i); 35 printf("|-----------------------------------------|\n"); 36 printf(" 请输入你所存的周期数:"); 37 scanf("%d",&n); 38 printf("|-----------------------------------------|\n"); 39 F=P*(1+i*n); 40 printf("\n通过单利存款,你所获得的金额为:%.4lf\n\n",F); 41 } 42 43 void Comparison(){ 44 printf("\t\t<复利计算器>\n"); 45 Compounding(); 46 printf("\t\t<单利计算器>\n"); 47 Simple_Interested(); 48 } 49 50 void Count_Deposit(){ 51 double F,P; 52 float i; 53 int n,k,a; 54 printf("\n请输入你希望获得的最终金额为:"); 55 scanf("%lf",&F); 56 printf("\n请输入你选的存款方式(1、复利;2、单利):"); 57 scanf("%d",&a); 58 switch(a) 59 { 60 case 1: 61 printf("\n请输入<<复利>>存款的信息!!!!!\n"); 62 printf("|-----------------------------------------|\n"); 63 printf(" 请输入<<复利>>你所存的年利率比:"); 64 scanf("%f",&i); 65 printf("|-----------------------------------------|\n"); 66 printf(" 请输入<<复利>>你所存的年限:"); 67 scanf("%d",&n); 68 printf("|-----------------------------------------|\n"); 69 printf(" 请输入<<复利>>你所存的复利次数:"); 70 scanf("%d",&k); 71 printf("|-----------------------------------------|\n"); 72 P=F/pow(i/k+1,k*n); 73 printf("\n通过复利存款,你所需要的存款金额为:%lf\n\n",P); 74 break; 75 case 2: 76 printf("请输入<<单利>>存款的信息!!!!!\n"); 77 printf("|-----------------------------------------|\n"); 78 printf(" 请输入<<单利>>你所存的周期利息:"); 79 scanf("%f",&i); 80 printf("|-----------------------------------------|\n"); 81 printf(" 请输入<<单利>>你所存的周期数(年份):"); 82 scanf("%d",&n); 83 printf("|-----------------------------------------|\n"); 84 P=F/(1+i*n); 85 printf("\n通过单利存款,你所需要的存款金额为:%lf\n\n",P); 86 break; 87 } 88 } 89 90 void Count_Year(){ 91 double n,F,P; 92 float i; 93 int k,a; 94 printf("\n请输入你所存的金额为:"); 95 scanf("%lf",&P); 96 printf("\n请输入你希望获得的最终金额为:"); 97 scanf("%lf",&F); 98 printf("\n请输入你选的存款方式(1、复利;2、单利):"); 99 scanf("%d",&a); 100 switch(a) 101 { 102 case 1: 103 printf("\n请输入<<复利>>存款的信息!!!!!\n"); 104 printf("|-----------------------------------------|\n"); 105 printf(" 请输入<<复利>>你所存的年利率比:"); 106 scanf("%f",&i); 107 printf("|-----------------------------------------|\n"); 108 printf(" 请输入<<复利>>你所存的复利次数:"); 109 scanf("%d",&k); 110 printf("|-----------------------------------------|\n"); 111 n=log(F/P)/log(i/k+1)/k; 112 printf("\n通过复利存款,你所需要的存款年限为:%lf\n\n",n); 113 break; 114 case 2: 115 printf("请输入<<单利>>存款的信息!!!!!\n"); 116 printf("|-----------------------------------------|\n"); 117 printf(" 请输入<<单利>>你所存的周期利息:"); 118 scanf("%f",&i); 119 printf("|-----------------------------------------|\n"); 120 n=(F/P-1)/i; 121 printf("\n通过单利存款,你所需要的存款年限为:%lf\n\n",n); 122 break; 123 } 124 } 125 126 void Count_Interest(){ 127 double F,P,b,i; 128 int k,a,n; 129 printf("\n请输入你所存的金额为:"); 130 scanf("%lf",&P); 131 printf("\n请输入你希望获得的最终金额为:"); 132 scanf("%lf",&F); 133 printf("\n请输入你所存款的年限:"); 134 scanf("%d",&n); 135 printf("\n请输入你选的存款方式(1、复利;2、单利):"); 136 scanf("%d",&a); 137 switch(a) 138 { 139 case 1: 140 printf("\n请输入<<复利>>存款的信息!!!!!\n"); 141 printf("|-----------------------------------------|\n"); 142 printf(" 请输入<<复利>>你所存的复利次数:"); 143 scanf("%d",&k); 144 printf("|-----------------------------------------|\n"); 145 b=(double)1/(k*n); 146 i=(pow(F/P,b)-1)*k; 147 printf("\n通过复利存款,你所需要的存款的利率为:%lf\n\n",i); 148 break; 149 case 2: 150 i=(F/P-1)/n; 151 printf("\n通过单利计算,你所需要的存款的利率为:%lf\n\n",i); 152 break; 153 } 154 } 155 156 void Count_Money(){ 157 int n,a; 158 double F,P; 159 float i; 160 printf("请输入存款的信息!!!!!\n"); 161 printf("\n|-----------------------------------------|\n"); 162 printf(" 请输入你每次所投入的本金:"); 163 scanf("%lf",&P); 164 printf("|-----------------------------------------|\n"); 165 printf(" 请输入你所投本金的利息:"); 166 scanf("%f",&i); 167 printf("|-----------------------------------------|\n"); 168 printf(" 请输入你所存款的年限:"); 169 scanf("%d",&n); 170 printf("|-----------------------------------------|\n"); 171 printf("\n请输入你选的存款方式(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("\n存款%d年,你所获得的金额为:%.4lf\n\n",n,F); 183 } 184 185 186 187 188 void Count_Refunt(){ 189 int n,a; 190 double F,P; 191 float i; 192 printf("请输入借款的信息!!!!!\n"); 193 printf("\n|-----------------------------------------|\n"); 194 printf(" 请输入你所借的金额:"); 195 scanf("%lf",&F); 196 printf("|-----------------------------------------|\n"); 197 printf(" 请输入你借款的利息(年):"); 198 scanf("%f",&i); 199 printf("|-----------------------------------------|\n"); 200 printf(" 请输入你借款的年限:"); 201 scanf("%d",&n); 202 printf("|-----------------------------------------|\n"); 203 printf("\n请输入你选的借款方式(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("\n你每年要还的金额为:%.4lf\n\n",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("\n你每月要还的金额为:%.4lf\n\n",P); 216 break; 217 } 218 219 } 220 221 void menu(){ 222 printf("|-----------------------------------------|\n"); 223 printf("| 0、退出系统 |\n"); 224 printf("|-----------------------------------------|\n"); 225 printf("| 1、复利存款 |\n"); 226 printf("|-----------------------------------------|\n"); 227 printf("| 2、单利存款 |\n"); 228 printf("|-----------------------------------------|\n"); 229 printf("| 3、输出复利存款、单利存款的结果 |\n"); 230 printf("|-----------------------------------------|\n"); 231 printf("| 4、输入终值求存款 |\n"); 232 printf("|-----------------------------------------|\n"); 233 printf("| 5、输入终值、存款求所需年份 |\n"); 234 printf("|-----------------------------------------|\n"); 235 printf("| 6、输入终值、存款、年份求利率 |\n"); 236 printf("|-----------------------------------------|\n"); 237 printf("| 7、输每年(月)投入本金,求几年后的终值 |\n"); 238 printf("|-----------------------------------------|\n"); 239 printf("| 8、输入贷款,求年(月)还款 |\n"); 240 printf("|-----------------------------------------|\n"); 241 } 242 243 void main(){ 244 char t; 245 int a; 246 menu(); 247 loop: 248 printf("\n请输入你的选择:"); 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)\n"); 297 goto loop; 298 } 299 } 300 else{ 301 system("cls"); 302 t=getchar(); 303 printf("\n输入有误!请重新输入!(目前功能选项只有1~8)\n\n"); 304 main(); 305 } 306 }
1、年还款
2、月还款
posted on 2016-03-21 17:38 Glp_Moliny 阅读(137) 评论(0) 编辑 收藏 举报