复利计算3.0


1
#include "hao3.h" 2 3 int main(void) 4 { 5 lixi user; 6 int key = 0; 7 8 printf(" |---------------------------------------------| "); 9 printf(" |--------- 1. 复利计算 ----------------| "); 10 printf(" |--------- 2. 单利计算 ----------------| "); 11 printf(" |--------- 3. 本金计算 ----------------| "); 12 printf(" |--------- 4. 时间计算 ----------------| "); 13 printf(" |--------- 5. 利率计算 ----------------| "); 14 printf(" |--------- 6. 定投计算 ----------------| "); 15 printf(" |--------- 7. 退出程序 ----------------| "); 16 printf(" |---------------------------------------------| "); 17 18 19 printf(" 选择所需要的功能:"); 20 while(scanf("%d", &key) == 1) 21 { 22 switch(key) 23 { 24 case 1: 25 user.input(); 26 user.calculate_fuli(); 27 break; 28 case 2: 29 user.input(); 30 user.calculate_danli(); 31 break; 32 case 3: 33 user.calculate_benjin(); 34 case 4: 35 user.calculate_time(); 36 break; 37 case 5: 38 user.calculate_rate(); 39 break; 40 case 6: 41 user.calculate_invest(); 42 break; 43 case 7: 44 exit(0); 45 break; 46 } 47 printf(" 选择所需要的功能:"); 48 } 49 50 return 0; 51 }
 1 #include "hao3.h"
 2 
 3 void lixi::input()
 4 {
 5     printf("
请输入本金:");
 6     scanf("%lf", &p);
 7     printf("请输入年利率:");
 8     scanf("%lf", &i);
 9     printf("请输入利率获取时间(年):");
10     scanf("%d", &n);
11 }
12 
13 void lixi::calculate_fuli()
14 {
15 //    printf("%f %f %d
", p, i, n);
16     f = p * pow(1+i, n);
17 
18     printf("
%d年后本息和为:%0.2f.
", n, f);
19 
20     return;
21 }
22 
23 void lixi::calculate_danli()
24 {
25     d = p * i * n;
26     f = p + d;
27 
28     printf("
本金%0.2f 经过%d年后单利计算利息为:%0.2f.
", p, n, d);
29     printf("本息和为:%0.2f
", f);
30 
31     return;
32 }
33 
34 void lixi::calculate_benjin()
35 {
36      printf("请输入总金额:");
37      scanf("%lf", &f);
38      printf("请输入年利率:");
39      scanf("%lf", &i);
40      printf("请输入利率获取时间(年):");
41      scanf("%d", &n);
42 
43      d = f / (1 + i * n);
44      p = f / pow(1 + i, n);
45 
46      printf("
经计算,单利所需本金为:%0.2f.
复利所需本金为:%0.2f.
", d, p);
47 }
48 
49 void lixi::calculate_time()
50 {
51     printf("
请输入本金:");
52     scanf("%lf", &p);
53     printf("请输入年利率:");
54     scanf("%lf", &i);
55     printf("请输入总金额:");
56     scanf("%lf", &f);
57 
58     double time = log(f / p) / log(1 + i);
59 
60     printf("
所需的时间为:%f年.
", time);
61 }
62 
63 void lixi::calculate_rate()
64 {
65     printf("
请输入本金:");
66     scanf("%lf", &p);
67     printf("请输入利率获取时间(年):");
68     scanf("%d", &n);
69     printf("请输入总金额:");
70     scanf("%lf", &f);
71 
72     i = (pow(f / p, (double)1 / n) - 1) * 100;
73     
74     printf("
所需的利率为:%0.2f%%.
", i);
75 }
76 
77 void lixi::calculate_invest()
78 {
79     printf("
请输入每年存入的金额:");
80     scanf("%lf", &p);
81     printf("请输入年利率:");
82     scanf("%lf", &i);
83     printf("请输入利率获取时间(年):");
84     scanf("%d", &n);
85 
86     double sum = 0;
87     f = p;
88     for(int j = 0; j < n; j++)
89     {
90         sum = f * (1 + i);
91         f = sum + p;
92     }
93 
94     printf("
%d年后资产总值变为:%0.2f.
", n, sum);
95 
96 }
 1 #ifndef HAO_3
 2 #define HAO_3
 3 
 4 #include <stdio.h>
 5 #include <stdlib.h>
 6 #include <math.h>
 7 
 8 class lixi
 9 {
10 private:
11     double p;  // 本金
12     double i;    // 利率
13     int n;    // 利率获取时间的整数倍
14     double f;    // 复利终值
15     double d;    // 单利终值
16 public:
17     void input();
18     void calculate_fuli();
19     void calculate_danli();
20     void calculate_benjin();
21     void calculate_time();
22     void calculate_rate();
23     void calculate_invest();
24 };
25 
26 #endif HAO_3

根据提示选择相应的功能,输入数据并计算得到结果:

原文地址:https://www.cnblogs.com/shuaibi/p/5282980.html