⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fix_pay.ec

📁 这是一个使用 informix esql/c 技术开发的银行程序的部分代码。
💻 EC
📖 第 1 页 / 共 5 页
字号:
                    case 'U':                      printf("US$");                      break;                    case 'J':                      printf("Jap¥");                      break;                    case 'H':                      printf("HK$");                      break;                    case 'M':                      printf("DM");                      break;                    case 'P':                      printf("£");                      break;                    case 'F':                      printf("FF");                      break;                    case 'C':                      printf("Can$");                  }                printf("\n\n%c%c",27,'[');                addspacef(32);                prtf_upper(amoun,toupper(cu_type[0]));                printf("%c%c\n\n\n",27,']');                addspacef(70);                prtf_dnum(amoun,13);                printf("\n\n\n");                addspacef(20);                if(ter[0]<12) printf("%1d月",ter[0]);                else printf("%1d年",ter[0]/12);                if(pas!=0) printf("(密)");                else addspacef(4);                if(cu_type[0]>'Z') printf("(转)");                else addspacef(4);                addspacef(26);                printf("%6.4f\n\n\n",interes*1.2);                addspacef(23);                printf("%4d-%2d-%2d\n",year2,month2,day1);                printf("%c%c%c%c%c%c%c%c%c%c",12,                  27,'%','9',1,20,27,'[','4','i');              }            move(20,20);            addspace(40);            move(20,20);            addstr("重新开户已完成, ");          }        if(flag==0)          {            $ commit work;          }        else          {            $ rollback work;          }        mess((short)3);        getch();      }  }$ close database;endwin();#include </u/ebcsav/include/end>double get_inte(k,dat,amount,maint)long k,dat;double amount,*maint;{$double rat,dat1,bl;$long k1;$int y,m,sy,sm,sd,wy,wm,wd;char c3;double ll1,ll2,ll3;double lx=0,am,lx1=0,lx2=0,lx3=0,lx4=0;short year,month,day;long tzbz,yy,mm,mm1,dd,zx,t1,t2,t3,t4,dat2,dat3,dat4,ts,ts1,m1,m2,m3,yer,da2;long i,j,lz[3]={360,1080,1800},dq[6]={90,180,360,720,1080,1800},    de[5]={30,90,180,270,360},    tz[16]={15,30,60,90,120,150,180,210,240,270,300,330,360,720,1080,0};num_date(&year,&month,&day);yy=dat/10000;/*t1=amount;amount=t1;*/mm=(dat%10000)/100;dd=dat%100;t1=k/100;if(day>=dd)ts=(year-yy)*360+(month-mm)*30+day-dd;else   {                       if(month==1){yer=year-1;                                   mm1=12;                                   }                       else{  mm1=month-1;                              yer=year;                            }                       m1=yer%400;                       m2=yer%100;                       m3=yer%4;                       if(mm1==1||mm1==3||mm1==5||mm1==7||mm1==8||mm1==10||mm1==12) da2=31;                       else if(mm1!=2) da2=30;                            else if(m1==0||m2!=0&&m3==0) da2=29;                                 else da2=28;              ts=(yer-yy)*360+(mm1-mm)*30+da2+day-dd;   }tzbz=0;if(t1==1807){             if(ts<tz[0])              {               tzbz=1;               k=180200;              }             else              {             i=0;                    do{                      i++;                      }while(ts>=tz[i]&&i<15);                      k=t1*100+i;              }            }t1=k/10000;t2=k%10000;t3=t2/100;t4=t2%100*30;if(t1>32&&t1!=50){        t1-=32;        t3=3;        k-=320000;         }if(t1==50){          t1=18;          t3=8;        k-=320000;          }k1=k;$ declare read1 scroll cursor for select ll,rq into $rat,$dat1 from inter_rate where syh=$k1;    if(sqlca.sqlcode!=0)      {        move(21,20);        addstr("申请");        mess((short)9);        printw("(%d), ",sqlca.sqlcode);        mess((short)3);        getch();        return;      } $ open read1; if(sqlca.sqlcode !=0)  {    printw("** %d 错误 1: 打开利率表出错 **",sqlca.sqlcode);   getch();   return;   }$fetch first read1;dat2=0;dat3=0;do{   if(dat1>=dat2)               {                dat2=dat1;                ll2=rat;               }    if(dat1<=dat&&dat1>=dat3)               {                dat3=dat1;                ll1=rat;               }   $fetch next read1;  }while(sqlca.sqlcode!=SQLNOTFOUND);$close read1;if(t1==18)k1=t1*10000+200;else k1=t1*10000+1200;$ declare read2 scroll cursor for select ll,rq into $rat,$dat1 from inter_rate where syh=$k1;    if(sqlca.sqlcode!=0)      {        move(21,20);        addstr("申请");        mess((short)9);        printw("(%d), ",sqlca.sqlcode);        mess((short)3);        getch();        return;      } $ open read2; if(sqlca.sqlcode !=0)  {    printw("** %d 错误 2: 打开利率表出错 **",sqlca.sqlcode);   getch();   return;   }$fetch first read2;dat4=0;do{   if(dat1>=dat4)               {                dat4=dat1;                ll3=rat;               }    $fetch next read2;  }while(sqlca.sqlcode!=SQLNOTFOUND);$close read2;   if(t1==18)    {    switch(t3)          {           case 2:                  lx=(long)amount*ts*ll3/30/1000;                  break;           case 3:                  if(day>=dd)                  ts=(year-yy)*12+month-mm;                  else                   ts=(year-yy)*12+month-mm-1;                  if(ts<(t4/30))ts=t4/30;                  lx=(long)amount*(1+ts)/2*ll1/1000;                  break;           case 1:                  if(t4>ts)                              {                       lx=(long)amount*ts*ll3/30/1000;                              }                  else {                        if(t4>=1080)                       {if(t4==1080) y=yy+3;                        else y=yy+5;                         m=mm;                        $ select bl,sy,sm,sd,wy,wm,wd into $bl,$sy,$sm,$sd,$wy,$wm,$wd from maint_rate where y=$y and m=$m;                        if(t4==1080){                                 if(sy!=0&&sm!=0&&sd!=0)                                                {                                   if(sy<yy||sy==yy&&sm<mm||sy==yy&&sm==mm&&sd<=dd)                                                   {                                             ts1=t4;                                                      }                                        else                                             ts1=(y-sy)*360+(m-sm)*30+dd-sd;                                                 }                                     else                                            ts1=0;                                           }                                  else    {                                 if(wy!=0&&wm!=0&&wd!=0)                                                {                                   if(wy<yy||wy==yy&&wm<mm||wy==yy&&wm==mm&&wd<=dd)                                                   {                                             ts1=t4;                                                      }                                        else                                             ts1=(y-wy)*360+(m-wm)*30+dd-sd;                                                 }                                     else                                            ts1=0;                                           }                     lx1=(long)amount*bl/10000*ts1;                        }                 else                     lx1=0;               lx=(long)amount*t4*ll1/30/1000;               lx2=(long)amount*(ts-t4)*ll3/30/1000;                        }                  break;           case 6:                  lx=(long)amount*t4*ll1/30/1000;                   break;           case 7:                  if(tzbz==0)                  lx=(long)amount*ts*ll1/30/1000;                  else lx=(long)amount*ts*ll3/30/1000;                  break;           case 8:                  if(t4>ts)                              {                              lx=(long)amount*ts*ll3/30/1000;                              }                  else {                       am=amount;                       j=ts/t4;                        y=yy;                        lx=0;                        lx1=0;                       for(i=1;i<=j;i++)                         {                        if(t4>=1080)                       {if(t4==1080) y=y+3;                        else y=y+5;                         m=mm;                        $ select bl,sy,sm,sd,wy,wm,wd into $bl,$sy,$sm,$sd,$wy,$wm,$wd from maint_rate where y=$y and m=$m;                        if(t4==1080){                                 if(sy!=0&&sm!=0&&sd!=0)                                                {                                   if(sy<yy||sy==yy&&sm<mm||sy==yy&&sm==mm&&sd<=dd)                                                   {                                             ts1=t4;                                                      }                                        else                                             ts1=(y-sy)*360+(m-sm)*30+dd-sd;                                                 }                                     else                                            ts1=0;                                           }                                  else    {                                 if(wy!=0&&wm!=0&&wd!=0)                                                {                                   if(wy<yy||wy==yy&&wm<mm||wy==yy&&wm==mm&&wd<=dd)                                                   {                                             ts1=t4;                                                      }                                        else                                             ts1=(y-wy)*360+(m-wm)*30+dd-sd;                                                 }                                     else                                            ts1=0;                                           }                     lx1+=(long)am*bl/10000*ts1;                    lx4=(long)am*bl/10000*ts1;                    if(t4==1080)yy+=3;                    else                        yy+=5;                        }                 else                     lx1=0;                          lx3=(long)am*t4*ll1/30/1000;                          lx+=(long)lx3+(long)((lx3-(long)lx3)*100+0.5000001)/100.0;                          am+=(long)lx3+(long)((lx3-(long)lx3)*100+0.5000001)/100.0;                          am+=(long)lx4+(long)((lx4-(long)lx4)*100+0.5000001)/100.0;k1=k; $ open read1; if(sqlca.sqlcode !=0)  {    printw("** %d 错误 1: 打开利率表出错 **",sqlca.sqlcode);   getch();   return;   }$fetch first read1;dat3=0;dd=dat%100;yy=dat/10000;mm=(dat%10000)/100+t4/30;if((mm%12)!=0)dat=(yy+mm/12)*10000+(mm%12)*100+dd;elseif((mm/12)>0)dat=(yy+mm/12-1)*10000+1200+dd;elsedat=yy*10000+1200+dd;do{   if(dat1<=dat&&dat1>=dat3)               {                dat3=dat1;                ll1=rat;               }   $fetch next read1;  }while(sqlca.sqlcode!=SQLNOTFOUND);$close read1;                          }                        lx2=(long)am*(ts%t4)*ll3/30/1000;                        }                  break;           }     }    else    {       switch(t3)           {           case 12:                  lx=(long)amount*ts*ll3/30/1000;                  if(t1==10)lx=(long)lx;                  break;           case 3:                  if(t4>ts)                              {                              lx=(long)amount*ts*ll3/30/1000;                              if(t1==10)lx=(long)lx;                              }                  else {                       am=amount;                       if(t1==10)am=(long)am;                       j=ts/t4;                       move(1,40);                        y=yy;                        lx=0;                        lx1=0;                       for(i=1;i<=j;i++)                         {                          lx3=(long)am*t4*ll1/30/1000;                              if(t1==10)lx3=(long)lx3;                          lx+=(long)lx3+(long)((lx3-(long)lx3)*100+0.5000001)/100.0;                          am+=(long)lx3+(long)((lx3-(long)lx3)*100+0.5000001)/100.0; k1=k; $ open read1; if(sqlca.sqlcode !=0)  {    printw("** %d 错误 1: 打开利率表出错 **",sqlca.sqlcode);   getch();   return;   }$fetch first read1;dat3=0;dd=dat%100;yy=dat/10000;mm=(dat%10000)/100+t4/30;if((mm%12)!=0)dat=(yy+mm/12)*10000+(mm%12)*100+dd;elseif((mm/12)>0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -