复利计算4.0

  1 #include<stdio.h>
  2 #include<math.h>
  3 #include<conio.h>
  4 void tip()//计算公式和一些变量的介绍
  5 {
  6     printf("复利计算软件\n");
  7     printf("    复利计算公式:F=P*pow((1+i/m),N*m)\n");
  8     printf("    单利计算公式:L=P*N*i;H=L+P\n");
  9     printf("\tF:复利终值|年金终值\n");
 10     printf("\tP:本金\n");
 11     printf("\ti:利率\n");
 12     printf("\tH:本利和\n");
 13     printf("\tN:利率获取时间的整数倍\n");
 14     printf("\tm:年复利次数(一年当中的滚利次数)\n");
 15 }
 16 void menu()//菜单
 17 {
 18     printf("\t\t|-----------------------------------|\n");
 19     printf("\t\t|             welcome               |\n");
 20     printf("\t\t|-----------------------------------|\n");
 21     printf("\t\t|           1:计算本金              |\n");
 22     printf("\t\t|           2:计算年复利终值        |\n");
 23     printf("\t\t|           3:单利计算              |\n");
 24     printf("\t\t|           4:计算年份              |\n");
 25     printf("\t\t|           5:计算年利率            |\n");
 26     printf("\t\t|           6:等额定投(年|月)       |\n");
 27     printf("\t\t|           7:等额还款              |\n");
 28     printf("\t\t|           0:结束                  |\n");
 29     printf("\t\t|-----------------------------------|\n");
 30     printf("请输入你要选择的功能(0~7):");
 31     
 32 }
 33 void benjin()//计算本金
 34 {
 35     int N,m;
 36     double i,F,P;
 37     printf("复利终值:");
 38     scanf("%lf",&F);
 39     printf("年利率:");
 40     scanf("%lf",&i);
 41     printf("存入年限:");
 42     scanf("%d",&N);
 43     printf("年复利次数:");
 44     scanf("%d",&m);
 45     P=F/pow((1+i/m),N*m);
 46     printf("年复利终值为%.4lf需要本金为:%.4lf\n",F,P);
 47 }
 48 void fuli()//计算复利终值
 49 {
 50     int N,m;
 51     double i,F,P;
 52     printf("存入本金:");
 53     scanf("%lf",&P);
 54     printf("年利率:");
 55     scanf("%lf",&i);
 56     printf("存入年限:");
 57     scanf("%d",&N);
 58     printf("年复利次数:");
 59     scanf("%d",&m);
 60     F=P*pow((1+i/m),N*m);
 61     printf("复利终值:%.4lf\n",F);
 62 }
 63 void danli()//单利计算
 64 {
 65     int N;
 66     double i,H,P,L;
 67     printf("存入本金:");
 68     scanf("%lf",&P);
 69     printf("年利率:");
 70     scanf("%lf",&i);
 71     printf("存入年限:");
 72     scanf("%d",&N);
 73     L=P*N*i;
 74     H=L+P;
 75     printf("本息和为:%.4lf\n",H);
 76 }
 77 void years()//求年份
 78 {
 79     int N,m;
 80     double i,F,P;
 81     printf("复利终值:");
 82     scanf("%lf",&F);
 83     printf("存入本金:");
 84     scanf("%lf",&P);
 85     printf("年利率:");
 86     scanf("%lf",&i);
 87     printf("年复利次数:");
 88     scanf("%d",&m);
 89     N=(int)(log(F/P)/log(1+i/m)/m);
 90     printf("从%.4lf到%.4lf需要%d年\n",P,F,N);
 91 }
 92 void annual_int_rate()//计算年利率
 93 {
 94     int N,m;
 95     double i,F,P;
 96     printf("复利终值:");
 97     scanf("%lf",&F);
 98     printf("存入本金:");
 99     scanf("%lf",&P);
100     printf("存入年限:");
101     scanf("%d",&N);
102     printf("年复利次数:");
103     scanf("%d",&m);
104     i=m*(pow(F/P,1.0/(N*m))-1);
105     printf("从%.4lf到%.4lf需要%.4lf\n",P,F,i);
106 }
107 void YM_Equal_cast_final()//计算年金终值
108 {
109     int N,n;
110     double i,F,P;
111     printf("存入本金:");
112     scanf("%lf",&P);
113     printf("存入年限:");
114     scanf("%d",&N);
115     printf("年利率:");
116     scanf("%lf",&i);
117     printf("\t\t1:按年投资\n\t\t2:按月投资\n");
118 A:printf("请选择你要的功能<1|2>:");
119   scanf("%d",&n);
120   if(n==1)
121   {
122       F=P*(pow(1+i,N)-1)/i;
123       
124   }
125   else if(n==2)
126   {
127       F=P*12*(1+i)*(pow(1+i,N)-1)/i;
128   }
129   else
130   {
131       printf("输入有误!请重新输入\n");
132       goto A;
133   }
134   printf("%d年后的总产值:%.4lf\n",N,F);
135   
136 }
137 void Average_capital_plus_interest()
138 {
139     int N;
140     double i,F,P;
141     printf("贷款金额:");
142     scanf("%lf",&F);
143     printf("存入年限:");
144     scanf("%d",&N);
145     printf("年利率:");
146     scanf("%lf",&i);
147     P=F*i/(12*(1+i)*(pow(1+i,N)-1));
148     printf("贷款%.4lf每月需要还款%.4lf\n",F,P);
149 }
150 void main()
151 {
152     int n;
153     while(1)
154     {
155         tip();
156         menu();
157 B:scanf("%d",&n);
158   if(n>=0&&n<=7)
159   {
160       if(n==0)
161           break;
162       switch(n)
163       {
164       case 1:
165           benjin();break;
166       case 2:
167           fuli();break;
168       case 3:
169           danli();break;
170       case 4:
171           years();break;
172       case 5:
173           annual_int_rate();break;
174       case 6:
175           YM_Equal_cast_final();break;
176       case 7:
177           Average_capital_plus_interest();break;
178       case 0:n=0;break;    
179           
180       }
181   }
182   else
183   {
184       printf("输入超出范围,请重新输入:");
185       goto B;
186   }
187   getch();
188     }
189 }

posted @ 2016-03-18 09:48  douidoui  阅读(347)  评论(0编辑  收藏  举报