zoukankan      html  css  js  c++  java
  • 0316 复利计算总结(0330 更新)

    1.客户说:帮我开发一个复利计算软件。

    按照这个要求完成了。

    演示。 

    计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30

    客户提出:

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

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

    完成23功能,并成功PUSH到github上。

    截止时间:3.12晚11点之前

    记得更新进度条。

    另外,是否预感到客户会有进一步的要求,而在下次会面演示之前有所准备呢?

    客户又想:

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

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

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

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

        相互观赏程序运行情况。

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

    名称:复利计算

    使用语言:c语言。

    工具:VC++。

    1:           预计完成时间(小时):0.5    实际用时(小时):0.3                      预计工作量(代码行数): 45               实际工作量:30

    2,3:        预计完成时间(小时):2       实际用时(小时):2.5                      预计工作量(代码行数): 100             实际工作量:110

    4,5,6:     预计完成时间(小时):2       实际用时(小时):4                         预计工作量(代码行数): 140             实际工作量:125

    8      预计完成时间(小时):1      实际用时(小时):0.5                        预计工作量(代码行数): 15           实际工作量:10

    提交至github地址:https://github.com/caijinghang666/first-code.git

    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <string.h>
     
        double p ; //现值
        double f ; //终值
        double i ; //利率
        int n;  //周数
        int m;
        int j;
    
        window()             //进入界面
        {
            printf("   ╔══════════════╗
    ");
            printf("   ║                            ║
    ");
            printf("   ║  欢迎使用~                 ║
    ");
            printf("   ║                            ║
    ");
            printf("   ║                            ║
    ");
            printf("   ║                            ║
    ");
            printf("   ║         ——单复利查询系统 ║
    ");
            printf("   ║                            ║
    ");
            printf("   ║                            ║
    ");  
            printf("   ╚══════════════╝
    
    
    
    
    ");
            system("pause");
        }
    
        int menu()         //计算选择界面
        {
            char c;
            do{
                system("cls");
                printf("	 ╭──────╮
    ");
                printf("	│1.单利查询  	│
    ");
                printf("	│2.复利查询  	│
    ");
                printf("	│0.退出程序  	│
    ");
                printf("	╰───────╯	
    ");
                printf("	 请你选择查询方式(0~2): ");
                c=getchar();
                }while(c<'0'||c>'2');
                return (c-'0');
        }
    
        void danlia()            //求终值(单利)
        {
            printf("
    	请输入现值:");
            scanf("%lf",&p);
            if(p>0)
            {
                printf("	请输入利率:");
                scanf("%lf",&i);
                if(i>0 && i<1)
                {
                    printf("	请输入周数:");
                    scanf("%d",&n);
                    if(n>0)
                    {
                        f=p*i*n+p;
                        printf("
    	终值为:%0.2lf
    
    ",f);
                    }
                    else printf("	请输入大于0的值!
    ");
                    return ;
                }
                else printf("	请输入大于0且小于1的值!
    ");
                return ;
            }
            else printf("	请输入大于0的值!
    ");
            return ;
            
            
    
        }
    
        void danlib()         //求现值(单利)
        {
            printf("
    	请输入终值:");
            scanf("%lf",&f);
            if(f>0)
            {
                printf("	请输入利率:");
                scanf("%lf",&i);
                if(i>0 && i<1)
                {
                    printf("	请输入周数:");
                    scanf("%d",&n);
                    if(n>0)
                    {
                        p=f/(1+i*n);
                        printf("
    	现值为:%0.2lf
    
    ",p);
                    }
                    else printf("	请输入大于0的值!
    ");
                    return ;
                }
                else printf("	请输入大于0且小于1的值!
    ");
                return ;
            }
            else printf("	请输入大于0的值!
    ");
            return ;
    
        }
    
        void fulia()              //求终值(复利)
        {
            printf("
    	请输入现值:");
            scanf("%lf",&p);
            if(p>0)
            {
                printf("	请输入利率:");
                scanf("%lf",&i);
                if(i>0 && i<1)
                {
                    printf("	请输入周数:");
                    scanf("%d",&n);
                    if(n>0)
                    {
                        f=p*pow(1+i,n);
                        printf("
    	终值为:%0.2lf
    
    ",f);    
                    }
                    else printf("	请输入大于0的值!
    ");
                    return ;
                }
                else printf("	请输入大于0且小于1的值!
    ");
                return ;
            }
            else printf("	请输入大于0的值!
    ");
            return ;
        }
    
        void fulib()           //求现值(复利)
        {
            printf("
    	请输入终值:");
            scanf("%lf",&f);
            if(f>0)
            {
                printf("	请输入利率:");
                scanf("%lf",&i);
                if(i>0 && i<1)
                {
                    printf("	请输入周数:");
                    scanf("%d",&n);
                    if(n>0)
                    {
                        p=f/pow(1+i,n);
                        printf("
    	现值为:%0.2lf
    
    ",p);
                    }
                    else printf("	请输入大于0的值!
    ");
                    return ;
                }
                else printf("	请输入大于0且小于1的值!
    ");
                return ;
            }
            else printf("	请输入大于0的值!
    ");
            return ;
         
        }
    
        void fulic()            //求周数(复利)
        {
            printf("
    	请输入现值:");
            scanf("%lf",&p);
            if(p>0)
            {
                printf("	请输入终值:");
                scanf("%lf",&f);
                if(f>0 && p<f)
                {
                    printf("	请输入利率:");
                    scanf("%lf",&i);
                    if(i>0 && i<1)
                    {
                        n=log(f/p)/log(1+i);
                        printf("
    	周数为:%d
    
    ",n);
                    }
                    else printf("	请输入大于0且小于1的值!
    ");
                    return ;
                }
                else printf("	请输入大于0且大于现值的值!
    ");
                return ;
            }
            else printf("	请输入大于0的值!
    ");
            return ;
       
        }
    
        void fulid()            //求利率(复利)
        {
            printf("
    	请输入现值:");
            scanf("%lf",&p);
            if(p>0)
            {
                printf("	请输入终值:");
                scanf("%lf",&f);
                if(f>0 && f>p)
                {
                    printf("	请输入周数:");
                    scanf("%d",&n);
                    if(n>0)
                    { 
                        i=pow(f/p,1.0/n)-1;
                        printf("
    	利率应大于等于:%0.2lf
    
    ",i);
                        
                    }
                    else printf("	请输入大于0的值!
    ");
                    return ;
                }
                else printf("	请输入大于0且大于现值的值!
    ");
                return ;
            }
            else printf("	请输入大于0的值!
    ");
            return ;
    
    
           
        }
    
        void fulie()               //求年金终值(复利)
        {
            system("cls");
            printf("
    	 ╭───────╮
    ");
            printf("	│1.月投资        │
    ");
            printf("	│2.年投资        │
    ");
            printf("	╰────────╯
    ");
            printf("	请选择投资方式:");
            scanf("%d",&m);
            if(m!=1 && m!=2)
            {  
                printf("
    	输入错误!
    ");  
                
            }
    
            else if(m==1)                    //月投
                    {    
                        system("cls");
                        printf("
    	请输入每月投入金额:");
                        scanf("%lf",&p);
                        if(p>0)
                        {
                            printf("	请输入年利率:"); 
                            scanf("%lf",&i);
                            if(i>0 && i<1)
                            {
                                printf("	请输入周数(年):");
                                scanf("%d",&n);
                                if(n>0)
                                {
                                    f=0;
                                    f=p*(1+i/12)*(-1+pow(1+i/12,n*12))/(i/12);
                                    printf("
    	年金终值为:%0.2lf
    
    ",f);
                                }
                                else printf("	请输入大于0的值!
    ");
                                return ;
                            }
                            else printf("	请输入大于0且小于1的值!
    ");
                            return ;
                        }
                        else printf("	请输入大于0的值!
    ");
                        return ;
        
                    }
                    
            else if(m==2)                   //年投
                    {
                        system("cls");
                        printf("
    	请输入每年投入金额:");
                        scanf("%lf",&p);
                        if(p>0)
                        {
                            printf("	请输入年利率:");
                            scanf("%lf",&i);
                            if(i>0 && i<1)
                            {
                                printf("	请输入周数(年):");
                                scanf("%d",&n);
                                if(n>0)
                                {
                                    f=0;
                                    f=p*(1+i)*(-1+pow(1+i,n))/i;
                                    printf("
    	年金终值为:%0.2lf
    
    ",f);
                                }
                                else printf("	请输入大于0的值!
    ");
                                return ;
                            }
                            else printf("	请输入大于0且小于1的值!
    ");
                            return ;
                        }
                        else printf("	请输入大于0的值!
    ");
                        return ;
                     }
        }
    
        void fulif()            //求每期应还款额
        {    
            double v;
            printf("
    	请输入贷款数额:");
            scanf("%lf",&p);
            if(p>0)
            {
                printf("	请输入年利率:");
                scanf("%lf",&i);
                if(i>0 && i<1)
                {
                    printf("	请输入期限(年):");
                    scanf("%d",&n);
                    if(n>0)
                    {
                        v=p*i/12*pow((1+i/12),n*12)/(pow((1+i/12),n*12)-1); 
                        printf("
    	每期应还款额:%0.2lf
    
    ",v);    
                    }
                    else printf("	请输入大于0的值!
    ");
                    return ;
                }
                else printf("	请输入大于0且小于1的值!
    ");
                return ;
            }
            else printf("	请输入大于0的值!
    ");
            return ;
        }
    
        int main()
        {
            window();
            switch(menu())
            {
                case 1:
                    system("cls");
                    printf("
    		单利
    ");
                    printf("	 ╭───────╮
    ");
                    printf("	│1.现值查终值	  │
    ");
                    printf("	│2.终值查现值	  │
    ");
                    printf("	╰────────╯
    ");
                    printf("	请选择计算方式: ");
                    scanf("%d",&m);
                    if(m!=1 && m!=2)  
                    {  
                        printf("
    	输入错误!
    
    ");  
                        break;
                    }
                    
                    else if(m==1)
                    {
                        system("cls");
                        danlia();
                        break;
                    }
                    
                    else if(m==2)
                    {
                        system("cls");
                        danlib();
                        break;
                    }
         
                case 2:
                    system("cls");
                    printf("
    		复利");
                    printf("	
    	 ╭────────╮
    ");
                    printf("	│1.现值查终值	    │
    ");
                    printf("	│2.终值查现值	    │
    ");
                    printf("	│3.查询周数  	    │
    ");
                    printf("	│4.查询利率  	    │
    ");
                    printf("	│5.查询年金终值    │
    ");
                    printf("	│6.贷款每期应还款额│
    ");
                    printf("	╰─────────╯
    ");
                    printf("	请选择计算方式:");
                    scanf("%d",&m);
                    if( m<1 || m>6 )  
                    {  
                        printf("输入错误!
    ");  
                        break;
                    }
        
                    else if(m==1)
                    {
                        system("cls");
                        fulia();
                        break;
                    }
    
                    else if(m==2)
                    {
                        system("cls");
                        fulib();
                        break;
                    }
    
                    else if(m==3)
                    {
                        system("cls");
                        fulic();
                        break;
                    }
    
                    else if(m==4)
                    {
                        system("cls");
                        fulid();
                        break;
                    }
    
                    else if(m==5)
                    {
                        system("cls");
                        fulie();
                        break;
                    }
    
                    else if(m==6)
                    {
                        system("cls");
                        fulif();
                        break;
                    }
    
                case 0:
                    printf("
    		see you!
    ");
                    printf("
    		");
                    system("pause");
                    exit(0);
            }
        }

     运行结果:

     选择界面:

     

    单利计算:

     

    复利计算:

    a.求终值:

    b.求现值

    c.求周期

    d.求利率

    e.求年金终值

    (月投)

     

    (年投)

    f.求每月等额本息还款

  • 相关阅读:
    eclipse导入web项目报错 Cannot find the class file for javax.servlet.ServletContext.
    项目检出JRE问题(Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'idweb')
    eclipse添加web项目报错“Target runtime Apache Tomcat v7.0 is not defined.”
    Mysql(Navicat for Mysql)怎么添加数据库
    Jmeter线程ramp-up period (in seconds)如何取值
    JMeter基础使用方法
    loadrunner中回放log看不到参数替代后具体数值
    Luogu P2490「JSOI2016」黑白棋
    LOJ #2026「JLOI / SHOI2016」成绩比较
    LOJ#2127「HAOI2015」按位或
  • 原文地址:https://www.cnblogs.com/cjh123/p/5282498.html
Copyright © 2011-2022 走看看