复利计算3

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

原文地址:https://www.cnblogs.com/zzy999/p/5284925.html