zoukankan      html  css  js  c++  java
  • 复利计算器

      1 //F=P*(1+i)^N
      2 //F=A((1+i)^N-1)/i
      3 //I=P*i*N
      4 //每月还款额=[贷款本金×月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]
      5 #include<stdio.h>
      6 #include<math.h>
      7 #include<stdlib.h>
      8 #define warn1   while(0 == 
      9 #define warn2   ){    while('
    ' != getchar())    {    }    printf("		输入不合法!
    		请重新输入:");        }
     10 double fuli()
     11 {
     12     double P,i,F;//F:复利终值 P:本金 i:利率
     13     int N,M;//N:利率获取时间的整数倍 M:复利次数
     14     printf("		本金:");
     15     warn1    scanf("%lf",&P)    warn2;
     16     printf("		年利率(%%):");
     17     warn1    scanf("%lf",&i)    warn2;
     18     printf("		存入年限:");
     19     warn1    scanf("%d",&N)    warn2;
     20     printf("		年复利次数:");
     21     warn1    scanf("%d",&M)    warn2;
     22     F=P*pow(1+i/M*0.01,M*N);
     23     printf("		复利终值:%lf
    ",F);
     24     return F;
     25 }
     26 double danli()
     27 {
     28     double P,i,F;//F:复利终值 P:本金 i:利率
     29     int N;//N:利率获取时间的整数倍
     30     printf("		本金:");
     31     warn1    scanf("%lf",&P)    warn2;
     32     printf("		年利率(%%):");
     33     warn1    scanf("%lf",&i)    warn2;
     34     printf("		存入年限:");
     35     warn1    scanf("%d",&N)    warn2;
     36     F=P+(P*i*0.01*N);
     37     printf("		终值:%lf
    ",F);
     38     return F;
     39 }
     40 double benjings()
     41 {
     42     double P,i,F;//F:复利终值 P:本金 i:利率
     43     int N,M;//N:利率获取时间的整数倍 M:复利次数
     44     printf("		复利终值:");
     45     warn1    scanf("%lf",&F)    warn2;
     46     printf("		年利率(%%):");
     47     warn1    scanf("%lf",&i)    warn2;
     48     printf("		存入年限:");
     49     warn1    scanf("%d",&N)    warn2;
     50     printf("		年复利次数:");
     51     warn1    scanf("%d",&M)    warn2;
     52     P=F/pow(1+i/M*0.01,M*N);
     53     printf("		本金:%lf
    ",P);
     54     return P;
     55 }
     56 double nianxian()
     57 {
     58     double P,i,F;//F:复利终值 P:本金 i:利率
     59     int N,M;//N:利率获取时间的整数倍 M:复利次数
     60     printf("		本金:");
     61     warn1    scanf("%lf",&P)    warn2;
     62     printf("		年利率(%%):");
     63     warn1    scanf("%lf",&i)    warn2;
     64     printf("		年复利次数:");
     65     warn1    scanf("%d",&M)    warn2;
     66     printf("		复利终值:");
     67     warn1    scanf("%lf",&F)    warn2;
     68     N=log(F/P)/log(1+i/M*0.01)/M;
     69     printf("		年限:%d
    ",N);
     70     return N;
     71 }
     72 double lilv()
     73 {
     74     double P,i,F;//F:复利终值 P:本金 i:利率
     75     int N,M;//N:利率获取时间的整数倍 M:复利次数
     76     printf("		本金:");
     77     warn1    scanf("%lf",&P)    warn2;
     78     printf("		存入年限:");
     79     warn1    scanf("%d",&N)    warn2;
     80     printf("		年复利次数:");
     81     warn1    scanf("%d",&M)    warn2;
     82     printf("		复利终值:");
     83     warn1    scanf("%lf",&F)    warn2;
     84     i=(pow(F/P,1.0/(M*N))-1)*M/0.01;
     85     printf("		年利率:%lf
    ",i);
     86     return i;
     87 }
     88 double dingqi()
     89 {
     90     double P,i,F;//F:复利终值 P:本金 i:利率
     91     int N,M;//N:利率获取时间的整数倍 M:复利次数
     92     int m;//月数
     93     int ch;
     94     printf("		1.按年投资  2.按月投资
    ");
     95     printf("		");
     96     warn1    scanf("%d",&ch)    warn2;
     97     if(ch==1){
     98         printf("		年投资金额:");
     99         warn1    scanf("%lf",&P)    warn2;
    100         printf("		年利率(%%):");
    101         warn1    scanf("%lf",&i)    warn2;
    102         printf("		定投年数:");
    103         warn1    scanf("%d",&N)    warn2;
    104         F=P*(1+(i*0.01))*(-1+pow(1+(i*0.01),N))/(i*0.01);
    105         printf("		复利终值:%lf
    ",F);
    106     }
    107     if(ch==2){
    108         printf("		月投资金额:");
    109         warn1    scanf("%lf",&P)    warn2;
    110         printf("		年利率(%%):");
    111         warn1    scanf("%lf",&i)    warn2;
    112         printf("		定投月数:");
    113         warn1    scanf("%d",&m)    warn2;
    114         F=P*(1+(i*0.01/12))*(-1+pow(1+(i*0.01/12),m))/(i*0.01/12);
    115         printf("		终值:%lf
    ",F);
    116     }
    117     return F;
    118 }
    119 double refund()
    120 {
    121     double P,i,mp;//mp每月还款额
    122     int N,M;
    123     printf("		贷款金额:");
    124     warn1    scanf("%lf",&P)    warn2
    125     printf("		年利率:");
    126     warn1    scanf("%lf",&i)    warn2
    127     printf("		年限:");
    128     warn1    scanf("%d",&N)    warn2  
    129     printf("		年复利次数:");
    130     warn1    scanf("%d",&M)    warn2;
    131     mp = P*i*0.01/12*pow((1.0+i/M*0.01/12),M*N*12)/(pow(1.0+i*0.01/M/12,M*N*12)-1);
    132     return mp;
    133 
    134 }
    135 
    136 
    137 
    138 void main()
    139 {
    140     double F1;
    141     int ch2;
    142     while(1)
    143     {
    144         printf("		****************复利计算器****************
    ");  
    145         printf("		|                1 复利                  |
    ");
    146         printf("		|                2 单利                  |
    ");
    147         printf("		|              3 本金估算                |
    ");
    148         printf("		|            4 投资年限估算              |
    ");
    149         printf("		|            5 投资利率估算              |
    ");
    150         printf("		|           6 定期投资收益计算           |
    ");
    151         printf("		|           7 等额本息还款计算           |
    ");
    152         printf("		|                0 退出                  |
    ");
    153         printf("		******************************************
    "); 
    154         printf("		请选择:");
    155          warn1    scanf("%d",&ch2)    warn2
    156          switch(ch2){
    157          case 1:
    158              F1 = fuli(); 
    159              break;
    160          case 2:
    161              F1 = danli(); 
    162              break;
    163          case 3:
    164              F1 = benjings();
    165              break;
    166          case 4:
    167              F1 = nianxian();
    168              break;
    169          case 5:
    170              F1 = lilv();
    171              break;
    172          case 6:
    173              F1 = dingqi();
    174              break;
    175          case 7:
    176              F1 = refund();
    177              break;
    178          case 0:
    179              exit(1);
    180              break;
    181          default:
    182              printf("输入不合法!!
    ");
    183              continue ;
    184          }
    185  
    186              printf("		结果约为:%.2lf
    ",F1);
    187  
    188      }
    189 }
    View Code

    功能分为7部分
    1.复利   2.单利  3.本金估算  4.投资年限估算  5.投资利率估算   6.定期投资收益计算  7.等额本息还款计算

    首先选择查询的功能,然后按值输入。

    本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:

    如果按照单利计算,本息又是多少呢?

    假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢?

    4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 

    5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率就应至少为多少才行呢?

    6.如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少?如果换成每月定投3000呢?

    (定额定投收益计算办法)

    7. 你写的程序能让客户随意操作吗?误输入数据、不小心做了非常规的操作程序是什么反应? 

        相互观赏程序运行情况。

    8. 如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额)

  • 相关阅读:
    对数线性模型与线性链条件随机场
    25匹马,5个跑道,每个跑道最多能有1匹马进行比赛,最少比多少次能比出前3名?前5名?
    SVM 与 LR的异同
    EM算法简易推导
    K-means算法的优缺点
    自助采样包含训练集里63.2%的样本?
    指数加权移动平均
    oracle 对于用户的相关操作
    docker 安装 maven 私有库 nexus3
    idea 自动注入@Autowired 警告 Field injection is not recommended 关闭
  • 原文地址:https://www.cnblogs.com/alfredzhu/p/5272594.html
Copyright © 2011-2022 走看看