1 #include<stdio.h>
2 #include<math.h>
3 void view()
4 {
5 printf(" |---------------------------------------------|\n");
6 printf(" | 单/复利计算 |\n");
7 printf(" |---------------------------------------------|\n");
8 printf(" |1.单利计算 |\n");
9 printf(" |---------------------------------------------|\n");
10 printf(" |2.复利计算 |\n");
11 printf(" |---------------------------------------------|\n");
12 printf(" |3.求年限 |\n");
13 printf(" |---------------------------------------------|\n");
14 printf(" |4.求年利率 |\n");
15 printf(" |---------------------------------------------|\n");
16 printf(" |5.固定存钱 |\n");
17 printf(" |---------------------------------------------|\n");
18 printf(" |6.贷款 |\n");
19 printf(" |---------------------------------------------|\n");
20 printf(" |0.退出系统 |\n");
21 printf(" |---------------------------------------------|\n");
22 }
23
24
25
26 main()
27 {
28 int i,n,N=100;
29 double v,money; //本金
30 int years; //存钱年数、月数
31 double sum; //存款总额
32 double r; //年利率
33 double A,B,C,y,Money;
34 while(1)
35 {
36 la1:view();
37 printf("请选择(0-6):");
38 scanf("%d",&n);
39 switch(n)
40 {
41 case 1:
42 printf("请输入本金:");
43 scanf("%lf",&money);
44 printf("请输入存钱年数:");
45 scanf("%d",&years);
46 printf("请输入利率:");
47 scanf("%lf",&r);
48 for(i = 1 ; i<=years; i++)
49 {
50 sum = r*i*money+money;
51 printf("存入第%d年后的存款总额为:%.2lf\n\n\n",i,sum);
52 }
53 break;
54 case 2:
55 printf("请选择:\n");
56 printf("1.通过本金求存款总额\n");
57 printf("2.通过目标总额求本金\n\n");
58 scanf("%d",&n);
59 switch(n)
60 {
61 case 1:
62 printf("请输入本金:");
63 scanf("%lf",&money);
64 printf("请输入存钱年数:");
65 scanf("%d",&years);
66 printf("请输入利率:");
67 scanf("%lf",&r);
68 for(i = 1 ; i<=years; i++)
69 {
70 v=pow(1+r,i);
71 sum = v*money;
72 printf("存入第%d年后的存款总额为:%.2lf\n",i,sum);
73 }
74 goto la1;
75 case 2:
76 printf("请输入目标金钱:");
77 scanf("%lf",&sum);
78 printf("请输入存钱年数:");
79 scanf("%d",&years);
80 printf("请输入利率:");
81 scanf("%lf",&r);
82 for(i = 1 ; i<=years; i++)
83 {
84 v=pow(1+r,i);
85 }
86 money=sum/v;
87 printf("现在必须存入本金为:%.2lf\n\n\n",money);
88 goto la1;
89 }
90 case 3:
91 printf("请输入本金:");
92 scanf("%lf",&money);
93 printf("请输入目标金钱:");
94 scanf("%lf",&sum);
95 printf("请输入利率:");
96 scanf("%lf",&r);
97 C=A=1+r;
98 B=sum/money;
99 for(i=1;i<N;i++)
100 {
101 C=C*A;
102 if(C>=B)
103 {
104 break;
105 }
106 }
107 printf("所需年数为%d\n\n\n",i+1);
108 break;
109 case 4:
110 printf("请输入本金:");
111 scanf("%lf",&money);
112 printf("请输入存钱年数:");
113 scanf("%d",&years);
114 printf("请输入目标金钱:");
115 scanf("%lf",&sum);
116 B=sum/money;
117 y=1.0/years;
118 r=pow(B,y)-1;
119 printf("所求年利率为:%-.3lf\n\n\n",r);
120 break;
121 case 5:printf("1.每月定投\n");
122 printf("2.每年定投\n");
123 scanf("%d",&n);
124 switch(n)
125 {
126 case 1:
127 printf("每月投入本金:");
128 scanf("%lf",&money);
129 printf("请输入存钱年数:");
130 scanf("%d",&years);
131 printf("请输入年利率:");
132 scanf("%lf",&r);
133 money=money*12;
134 for(i=1;i<=years;i++)
135 {
136 v=pow(1+r,i);
137 }
138 Money=money*(1+r)*(-1+v)/r;
139 printf("%d年后本金和利息之和为:%lf\n\n\n",years,Money);
140 goto la1;
141 case 2:
142 printf("每年投入本金:");
143 scanf("%lf",&money);
144 printf("请输入存钱年数:");
145 scanf("%d",&years);
146 printf("请输入年利率:");
147 scanf("%lf",&r);
148 for(i=1;i<=years;i++)
149 {
150 v=pow(1+r,i);
151 }
152 Money=money*(1+r)*(-1+v)/r;
153 printf("%d年后本金和利息之和为:%lf\n\n\n",years,Money);
154 goto la1;
155 }
156 case 6:
157 printf("贷款数目:");
158 scanf("%lf",&Money);
159 printf("还钱期限(年):");
160 scanf("%d",&years);
161 printf("请输入年利率:");
162 scanf("%lf",&r);
163 for(i=1;i<=years;i++)
164 {
165 v=pow(1+r,i);
166 }
167 money=Money*r/(-1+v)/(1+r);
168 money=money/12;
169 printf("每月等额本息应还款:%lf\n\n\n",money);
170 break;
171
172 case 0:
173 return 0;
174 }
175 }
176 }