54列志华

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
此版本,只是实验用途,可以满足用户对于 投资中的复利计算,单利计算,本金估算,投资时间估算,最佳项目利率估算,定期投资收益计算等等。
  1 #include<stdio.h>
  2 #include<math.h>
  3 #include<stdlib.h>
  4 
  5 double danli()
  6 {
  7     double P,F,i; //P是本金,F是收益,i年利率
  8     int N; //是期限
  9     double nlx;
 10     printf("请输入本金:\n");
 11     scanf("%lf",&P);
 12     printf("请输入年利率\n");
 13     scanf("%lf",&i);
 14     printf("请输入年限:\n");
 15     scanf("%d",&N);
 16     
 17     nlx = P*i;
 18     F = nlx*N + P;
 19     return F;
 20     
 21 }
 22 
 23 double fuli()
 24 {
 25     
 26     double P,F,i; //P是本金,F是收益,i年利率
 27     int N,W; //是期限
 28     printf("请输入本金:\n");
 29     scanf("%lf",&P);
 30     printf("请输入年利率\n");
 31     scanf("%lf",&i);
 32     printf("请输入年限:\n");
 33     scanf("%d",&N);
 34     printf("请输入复利次数:\n");
 35     scanf("%d",&W);
 36     
 37     i=pow(1+i/W,W)-1;
 38     F=P*pow((i+1),N);
 39     return F;
 40 }
 41 
 42 double gusuan()
 43 {
 44     double P,F,i; //P是本金,F是收益,i年利率
 45     int N,W; //是期限
 46     printf("请输入收益:\n");
 47     scanf("%lf",&F);
 48     printf("请输入年利率\n");
 49     scanf("%lf",&i);
 50     printf("请输入年限:\n");
 51     scanf("%d",&N);
 52     printf("请输入复利次数:\n");
 53     scanf("%d",&W);
 54     i = pow(1+i/W,W)-1;
 55     P = F/pow((i+1),N);
 56     return P;
 57 }
 58 
 59 double TZtime()
 60 {
 61     double year;
 62     double P,F,i; //P是本金,F是收益,i年利率
 63     int N,W; //是期限
 64     printf("请输入本金:\n");
 65     scanf("%lf",&P);
 66     printf("请输入收益:\n");
 67     scanf("%lf",&F);
 68     printf("请输入年利率\n");
 69     scanf("%lf",&i);
 70     printf("请输入复利次数:\n");
 71     scanf("%d",&W);
 72     i = pow((1+i/W),W)-1;
 73     year = log(F/P)/log(1+i);
 74     return year;
 75     
 76 }
 77 double bestProject()
 78 {
 79     double P,F,i;
 80     int N,W;
 81     printf("请输入本金:\n");
 82     scanf("%lf",&P);
 83     printf("请输入收益:\n");
 84     scanf("%lf",&F);
 85     printf("请输入年限\n");
 86     scanf("%d",&N);
 87     printf("请输入复利次数:\n");
 88     scanf("%d",&W);
 89     i = W*(pow(pow(F/P,1.0/N),1.0/W)-1.0);
 90     return i;
 91     
 92     
 93 }
 94 
 95 double sum()
 96 {
 97     double y,moon,F=0.0,i,mi;
 98     double nlx,ylx;
 99     int N,W;
100     int ch,j;
101     printf("####### 1-年投资  2-月投资 #######\n");
102     scanf("%d",&ch);
103     if(ch == 1)
104     {
105         printf("请输入年投资额:\n");
106         scanf("%lf",&y);
107     }
108     else
109     {
110         printf("请输入月投资额:\n");
111         scanf("%lf",&moon);
112     }
113     
114     printf("请输入年利率\n");
115     scanf("%lf",&i);
116     printf("请输入年限\n");
117     scanf("%d",&N);
118     //        printf("请输入复利次数:\n");
119     //        scanf("%d",&W);
120     if(ch == 1)
121     {
122         F = y;
123         for(j=0 ; j<N ; j++)
124         {
125             nlx = F*i;
126             F=y+nlx+F;
127         }
128         return F-y;
129     }
130     else
131     {
132         F = moon;
133         mi = i/12.0;
134         for(j=0 ; j<N*12 ; j++)
135         {
136             ylx = F*mi;
137             F=moon+ylx+F;
138         }
139         return F-moon;
140     }
141     
142     
143 }
144 
145 void main()
146 {
147     double F1;
148     int ch2; 
149     
150     while(1)
151     {
152         printf("***********复利计算机(3.0)**********\n");
153         
154         printf("------    1 复利                  ------\n");
155         printf("------    2 单利                  ------\n");
156         printf("------    3 本金估算              ------\n");
157         printf("------    4 投资年限估算          ------\n");
158         printf("------    5 最优投资项目利率估算  ------\n");
159         printf("------    6 定期投资收益计算      ------\n");
160         printf("------    0 退出                  ------\n");
161         printf("请选择:    ");
162         scanf("%d",&ch2);
163         switch(ch2){
164         case 1:
165             F1 = fuli(); break;
166         case 2:
167             F1 = danli(); break;
168         case 3:
169             F1 = gusuan();
170             break;
171         case 4:
172             F1 = TZtime();
173             break;
174         case 5:
175             F1 = bestProject();
176         case 6:
177             F1 = sum();
178             break;
179         case 0:
180             exit(1);
181             break;
182         }
183         
184         printf("结果为:%.2lf\n",F1);
185     }
186     
187     
188 }

 

posted on 2016-03-16 11:34  liezh  阅读(273)  评论(0编辑  收藏  举报