复利计算-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("|-----------------------------------------|
");
  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、月还款

原文地址:https://www.cnblogs.com/moliny/p/5302876.html