zoukankan      html  css  js  c++  java
  • 0406复利计算——结队

    组员:216 张裕发  

             博客地址:http://home.cnblogs.com/u/eaver/

            213陈楷淇      

    代码: 

    #include<stdio.h>
    #include<math.h>
    void touzi();
    
    void bijiao(int q,double number[4]);
    
    double danli(double i,int N,double P)//单利计算
    {
    double nlx,F;
    nlx = P*i;
    F = nlx*N + P;
    return F;
    
    }
    
    double fuli(double i,int W,int N,double P)//复利计算
    {
    double F;
    i=pow(1+i/W,W)-1;
    F=P*pow((i+1),N);
    return F;
    }
    
    double gusuan(double i,int W,int N,double F)//估算
    {
    double P;
    i = pow(1+i/W,W)-1;
    P = F/pow((i+1),N);
    return P;
    }
    double shijian(double P,double i,double F)//时间
    {
    double N,x;
    x=F/P;
    N=(log(x))/(log(i+1));
    return N;
    
    }
    double nianxian(double P,double N,double F)//年限
    {
    double i;
    i = pow(F/P,1.0/N)-1.0;
    return i;
    }
    double sum()
    {
    double y,yue,F=0.0,i,mi;
    double nl,yl;
    int N;
    int ch,j;
    printf("****** 1-年投资 2-月投资 ******
    ");
    scanf("%d",&ch);
    if(ch == 1)
    {
    printf("请输入年投资额:
    ");
    scanf("%lf",&y);
    }
    else
    {
    printf("请输入月投资额:
    ");
    scanf("%lf",&yue);
    }
    
    printf("请输入年利率
    ");
    scanf("%lf",&i);
    printf("请输入年限
    ");
    scanf("%d",&N);
    
    if(ch == 1)
    {
    F = y;
    for(j=0 ; j<N ; j++)
    {
    nl = F*i;
    F=y+nl+F;
    }
    return F-y;
    }
    else
    {
    F = yue;
    mi = i/12.0;
    for(j=0 ; j<N*12 ; j++)
    {
    yl = F*mi;
    F=yue+yl+F;
    }
    return F-yue;
    }
    
    
    }
    double refund()
    {
    double P,i,month_amount;
    int N,month;
    printf("************您进入本息还款计算************
    ");
    printf("请输入贷款金额:
    ");
    scanf("%lf",&P); 
    printf("请输入年利率:
    ");
    scanf("%lf",&i); 
    printf("请输入归还年限:
    ");
    scanf("%d",&N); 
    
    //每月还款额=[贷款本金×月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]
    
    i = i/12;
    month = N*12;
    month_amount = P*i*pow((1.0+i),month)/(pow(1.0+i,month)-1);
    return month_amount;
    
    }
    void main()
    {
    double P,F1,F,i; //P是本金,F是收益,i年利率
    int N,W,ch2; //是期限
    while(1)
    {
    printf("		--------------复利计算器-------------
    
    ");
    printf("		| -----1:复利---------------- |
    
    ");
    printf("		| -----2:单利---------------- |
    
    ");
    printf("		| ------3:估算---------------- |
    
    ");
    printf("		| -------4:年限---------------- |
    
    ");
    printf("		| ------5:年利率-------------- |
    
    ");
    printf("		| ------6:月年收益------------ |
    
    ");
    printf("		| ------7:等额本息还款-------- |
    
    ");
    printf("		| ------8:投资计算----------------|
    
    ");
    printf("		| ------0:为退出---------------- |
    
    ");
    printf("		-----------请选择想要的功能-----------
    ");
    scanf("%d",&ch2);//控制选择
    switch(ch2){
    case 1:
    printf("请输入本金:
    ");
    scanf("%lf",&P);
    printf("请输入年利率
    ");
    scanf("%lf",&i);
    printf("请输入年限:
    ");
    scanf("%d",&N);
    printf("请输入复利次数:
    ");
    scanf("%d",&W);
    F1 = fuli(i,W,N,P); break;
    case 2:
    printf("请输入本金:
    ");
    scanf("%lf",&P);
    printf("请输入年利率
    ");
    scanf("%lf",&i);
    printf("请输入年限:
    ");
    scanf("%d",&N);
    F1 = danli(i,N,P); break;
    case 3:
    printf("请输入本利
    ");
    scanf("%lf",&F);
    printf("请输入年利率
    ");
    scanf("%lf",&i);
    printf("请输入年限:
    ");
    scanf("%d",&N);
    printf("请输入复利次数:
    ");
    scanf("%d",&W);
    F1 = gusuan(i,W,N,F);
    break;
    
    case 4:
    printf("请输入本金
    ");
    scanf("%lf",&P);
    printf("请输入年利率
    ");
    scanf("%lf",&i);
    printf("请输入本利
    ");
    scanf("%lf",&F);
    F1=shijian(P,i,F);
    break;
    case 5:
    
    printf("请输入本金:
    ");
    scanf("%lf",&P);
    printf("请输入本利:
    ");
    scanf("%lf",&F);
    printf("请输入年限
    ");
    scanf("%d",&N);
    F1=nianxian(P,N,F);
    
    break;
    case 6:
    F1=sum();
    break;
    case 7:
    F1=refund();
    break;
    case 8:
    touzi();
    case 0:break;
    default:
    printf("输入不合法!!
    ");
    continue ;
    }
    if(ch2==0)
    break;
    printf("结果为:%.2lf
    ",F1);
    }
    }
    void touzi()//计算
    
    {
    
    int n,q=0;
    
    double i,p;
    
    double temp;
    
    double number[4];
    
    printf("	*请输入存储金额:");
    
    while(scanf("%lf",&p)!=1||p<=0)
    
    {
    
    printf("	输入错误,请重新输入:");
    
    getchar();
    
    }
    
    printf("	*请输入年利率:");
    
    while(scanf("%lf",&i)!=1||i<=0)
    
    {
    
    printf("	输入错误,请重新输入:");
    
    getchar();
    
    } 
    printf("	*请输入t投资时间(年):");
    
    while(scanf("%d",&n)!=1||n<=0||n>100)
    
    {
    
    printf("	输入错误,请重新输入:");
    
    getchar();
    
    }
    number[0]=p*pow((1+i),n);//复利
    
    bijiao(0,number);
    
    number[1]=p*12*(pow(1+i,n)-1)/i;//等额月投
    
    bijiao(1,number);
    
    number[2]=(p*pow((1+i),n)-1)/i;//等额年投
    
    bijiao(2,number);
    
    number[3]=p*(1+i*n);//单利
    
    bijiao(3,number);
    
    temp=number[0];
    
    for(int j=1;j<4;j++)
    
    {
    if(number[j]>temp)
    
    {
    temp=number[j];
    
    q=j;
    }
    
    }
    printf("	建议:
    ");
    
    bijiao(q,number);
    }
    
    void bijiao(int q,double number[4])//判断最大的利益投资
    
    {
    switch (q)
    
    {
    case 0:printf("	选择复利投资,本利和为%.2lf
    ",number[0]);break;
    
    case 1:printf("	选择等额月投资,本利和为%.2lf
    ",number[1]);break;
    
    case 2:printf("	选择等额年投资,本利和为%.2lf
    ",number[2]);break;
    
    case 3:printf("	选择等单利投资,本利和为%.2lf
    ",number[3]);break;
    
    }
    }

  • 相关阅读:
    Struts2的原理,配置和使用
    tomcat启动异常之----A child container failed during start
    Oracle两表关联更新其中一张表的数据
    jsp隐藏字符串中间部分信息,只显示前后字段
    浏览器会缓存js文件
    tomcat启动项目很快,且不报错,访问报404,项目实际上没起来,起的是空tomcat
    jd-eclipse插件的安装
    Junit4使用总结
    json中dump()与dumps()里的参数解释
    python时间函数和常用格式化
  • 原文地址:https://www.cnblogs.com/chenkaiqi/p/5361384.html
Copyright © 2011-2022 走看看