信用卡分期付款利息明细算法

来源:互联网 发布:无锡市骏铭网络 编辑:程序博客网 时间:2024/05/17 03:36
信用卡分期付款,最低还款额下的利息明细算法(vc++,AppWizard,singledocument,OnDraw())
    const totalnum=48000,N=12,M=24;//you can modify the  num

    const num=totalnum/N;
    double newbalance[M],balance[M],lowbalance[M],interest[M],rest[M];
    double totallowbalance=0,totalinterest=0;
    newbalance[0]=num;
    balance[0]=num;
    lowbalance[0]=num/10;
    interest[0]=0;
    rest[0]=totalnum;
    for(int i=1;i<=M-1;i++)
    {
        balance[i]=num+balance[i-1]-lowbalance[i-1];
        newbalance[i]=num+balance[i-1]-lowbalance[i-1]+(balance[i-1]-lowbalance[i-1])*0.0005*30;
        lowbalance[i]=newbalance[i]/10;
        interest[i]=(balance[i-1]-lowbalance[i-1])*0.0005*30;
        rest[i]=rest[i-1]-lowbalance[i];
    }
         CString str5,str6;
        pDC->TextOut(20,0 ,"Newbalance");
        pDC->TextOut(120,0 ,"Balance");
        pDC->TextOut(220,0 ,"Lowbalance");
        pDC->TextOut(320,0 ,"Interest");
        pDC->TextOut(420,0 ," pay");
    for(int j=0;j<M-1;j++)
    {   
        if(rest[j]>0)
        {
            totallowbalance+=lowbalance[j];
            totalinterest+=interest[j];

            CString str0,str1,str2,str3,str4,str44;
        
            str0.Format("%d",j+1);

            str1.Format("%lf",newbalance[j]);
            str2.Format("%lf",balance[j]);
            str3.Format("%lf",lowbalance[j]);
            str4.Format("%lf",interest[j]);
            str44.Format("%lf",rest[j]);
            pDC->TextOut(0,j*15+30,str0);
            pDC->TextOut(30,j*15+30,str1);
            pDC->TextOut(130,j*15+30,str2);
            pDC->TextOut(230,j*15+30,str3);
            pDC->TextOut(330,j*15+30,str4);
            pDC->TextOut(430,j*15+30,str44);
            
            str5.Format("%lf",totallowbalance);
            str6.Format("%lf",totalinterest);

            pDC->TextOut(230,M*15+30,str5);
            pDC->TextOut(340,M*15+30,str6);
            //if(totallowbalance-totalinterest>totalnum)
        }
        else
            break;    
    }
原创粉丝点击