复利计算-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编辑  收藏  举报

导航