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

📄 dated_open1.ec

📁 这是一个使用 informix esql/c 技术开发的银行程序的部分代码。
💻 EC
字号:
/*   零整开户   */#include </u/ebcsav/include/sav.h>$include sqlca;$include sqlda;void addspace();void mess();char y_n();char readdv();char readst();char readch();long ac_num();double get_rate();void prt_inum();void prt_dnum();void addspacef();void prtf_inum();void prtf_dnum();short num_time();void delay();#include </u/ebcsav/include/begin>short n=1,flag,ti,i,j=0;double x;long k;unsigned char c;char st[30];$ char s_num[2],nam[9],cu_type[2],addres[25],statu[2],l_num[2];$ long a_num,pas,cr_num,ope_date,int_date,las_date,l_mon;$ double amoun,i_rate;$ short cred_type;$ long cred_num,b_num;$ char ope_num[2],s_type[2],te[2],fg[2],r_type[2];move(0,25);$ database saving;printw("零  存  整  取  开  户");s_num[0]=op.num&0x7f;s_num[1]='\0';s_type[1]='\0';l_num[0]=1;l_num[1]='\0';te[1]='\0';fg[1]='\0';r_type[0]=9;r_type[1]='\0';nam[0]='\0';cu_type[0]='R';cu_type[1]='\0';amoun=0.0;addres[0]='\0';statu[1]='\0';pas=0;$ declare blot scroll cursor for select blot_num from r_blot;move(23,16);standout();mess(1);standend();amoun=0.0;move(3,10);addstr("帐    号: ");move(3,20);c==readdv(&x,9);if(c==10)a_num=x;move(3,48);prt_inum(s_num[0],2);addstr("-");move(3,52);a_num=85;prt_inum(a_num,9);move(5,10);addstr("姓    名: ");move(7,10);addstr("密    码: ");move(9,10);addstr("币    种: ");move(9,48);addstr("人民币");move(11,10);addstr("金    额: ");move(13,10);addstr("地    址: ");move(15,10);addstr("凭 证 号: ");move(17,10);addstr("年    限: ");move(19,10);addstr("是否集体户(Y/N):");while(1)  {    $ begin work;    j=0;    while(1)      {        switch(n)          {            case 1:              move(5,20);              c=readst(st,8);              if(c==10) strcpy(nam,st);              move(5,20);              addspace(10);              move(5,48);              printw("%-8s",nam);              if(c==10||c==13||c==25) n=2;              else if(c==5) n=8;              else if(c==4) n=10;              break;            case 2:              move(7,20);              c=readdv(&x,7);              if(c==10) pas=x;              move(7,20);              addspace(10);              move(7,48);              printw("%d",pas);              if(c==10||c==13||c==25) n=3;              else if(c==24) n=1;              else if(c==5) n=8;              else if(c==4) n=10;              break;            case 3:              move(11,20);              c=readdv(&x,11);              if(c==10) amoun=x;              if((amoun-(long)amoun)>0.005)               {                move(20,20);                mess(67);                mess(4);                getch();                move(20,20);                addspace(30);                break;               }              move(11,20);              addspace(12);              move(11,48);              prt_dnum(amoun,13);              if(c==10||c==13||c==25) n=4;              else if(c==24) n=2;              else if(c==5) n=8;              else if(c==4) n=10;              break;            case 4:              move(13,20);              c=readst(st,24);              if(c==10) strcpy(addres,st);              move(13,20);              addspace(26);              move(13,48);              printw("%-24s",addres);              if(c==10||c==13||c==25) n=5;              else if(c==24) n=3;              else if(c==5) n=8;              else if(c==4) n=10;              break;            case 5:              move(15,20);              c=readdv(&x,7);              if(c==10) cr_num=x;              move(15,20);              addspace(10);              move(15,48);              prt_inum(cr_num,7);              if(c==10||c==13||c==25) n=6;              else if(c==24) n=4;              else if(c==5) n=8;              else if(c==4) n=10;              break;            case 6:              move(20,2);              addstr("请选择: 1 - 一年 3 - 三年 5 - 五年");              move(17,20);              c=y_n('1','3','5');              te[0]=c-48;              move(20,2);              addspace(44);              if(c==10||c==13||c==25||c=='1'||c=='3'||c=='5') n=7;              else if(c==24) n=5;              else if(c==5) n=8;              else if(c==4) n=10;              break;            case 7:              move(19,26);              c=y_n('Y','Y','N');              if(c=='Y')fg[0]=1;              else fg[0]=0;              if(c==10||c==13||c==25||c=='Y'||c=='N') n=8;              else if(c==24) n=6;              else if(c==5) n=8;              else if(c==4) n=10;              break;            case 8:              move(20,20);              mess(5);              c=y_n('Y','N','C');              move(20,20);              addspace(42);              if(c=='C') n=1;              else if(c=='Y')                {                  ope_num[0]=op_num;                  ope_num[1]='\0';                  cred_type=3;                  s_type[0]=cred_type;                  move(20,20);                      {                        move(20,20);                        ope_date=int_date=las_date=year*10000+month*100+day;                        l_mon=year*100+month;                        k=te[0]*12;                        te[0]=k;                        k+=((toupper(cu_type[0])-64)*10000+cred_type*100);                        i_rate=get_rate(k,int_date);                        statu[0]='A';                        for(n=0;n<7;n++)                        if(op.name[n]!='\0')st[n]=op.name[n]^0xff;                        else st[n]='\0';                        ti=num_time();                        $ insert into r_dated                           values                           ($s_num,$a_num,$nam,$pas,$cu_type,$te,$amoun,$amoun,                            $addres,$cr_num,$ope_date,$int_date,$statu,$fg,                            $las_date,$i_rate,0,$l_mon,$l_num);                        if(sqlca.sqlcode!=0)                          {                            addstr("写");                            mess(14);                            printw("(%d), ",sqlca.sqlcode);                            j=1;                            n=10;                          }                        else                          {                             for(n=0;n<5;n++)                             {                                $ insert into r_blot                                  values                                  (0,$ope_num,$s_num,$a_num,$nam,$s_type,                                  $cu_type,$te,$cr_num,"O",$amoun,$amoun,0);                                if(sqlca.sqlcode!=-271) break;                                printw("*");                                refresh();                                delay(5l);                              }                            if(sqlca.sqlcode==-271)                              { mess((short)73);                                j=1;                                break;                              }                            else if(sqlca.sqlcode!=0)                              {                                addstr("写");                                mess(16);                                printw("(%d), ",sqlca.sqlcode);                                j=1;                                n=10;                              }                            else                             {                                $ open blot;                                $ fetch last blot into $b_num;                                $ close blot;                                $ insert into r_dated_sch                                  values                                  ($s_num,$a_num,$ope_date,$b_num,                                   $nam,$cu_type,$amoun,$amoun,0,$r_type);                            if(sqlca.sqlcode!=0)                              {                                addstr("写");                                mess(18);                                printw("(%d), ",sqlca.sqlcode);                                j=1;                                n=10;                              }                            else                              {                                $ insert into open_acc                                  values                                  ($s_num,$s_type,$cu_type,$te,$a_num,$nam,                                  $addres,$amoun,$ope_num);                                if(sqlca.sqlcode!=0)                                  {                                    addstr("写");                                    mess(17);                                    printw("(%d), ",sqlca.sqlcode);                                    j=1;                                    n=10;                                    break;                                  }                                move(20,20);                                addspace(30);                                move(20,20);                                mess(13);                           }                        }                     }                  }                 n=10;             }           else n=10;          }        if(n==10) break;      }   if(j==1)     {      $ rollback work;     }   else     {      $ commit work;     }    move(20,46);    mess(15);    c=y_n('Y','N','N');    if(c=='N') break;    move(20,20);    addspace(56);    n=1;  }$ close database;#include </u/ebcsav/include/end>#include </u/ebcsav/include/mess>#include </u/ebcsav/include/addspace>#include </u/ebcsav/include/y_n>#include </u/ebcsav/include/prt_inum>#include </u/ebcsav/include/prt_dnum>#include </u/ebcsav/include/readch>#include </u/ebcsav/include/readdv>#include </u/ebcsav/include/readst>#include </u/ebcsav/include/ac_num>#include </u/ebcsav/include/num_time>#include </u/ebcsav/include/addspacef>#include </u/ebcsav/include/prtf_inum>#include </u/ebcsav/include/prtf_dnum>#include </u/ebcsav/include/delay>double get_rate(k,dat)long k,dat;{$double rat;$long k1,dat1;double ll2;int dat2;long tz[16]={15,30,60,90,120,150,180,210,240,270,300,330,360,720,1080,0};short year,month,day;long i,yy,mm,mm1,dd,t1,ts,m1,m2,m3,yer,da2;num_date(&year,&month,&day);yy=dat/10000;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;   }if(t1==1807){             if(ts<15)k=180200;             else              {             i=0;                    do{                      i++;                      }while(ts>=tz[i]&&i<15);                      k=t1*100+i;              }            }k1=k;$ declare read3 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 read3; if(sqlca.sqlcode !=0)  {    printw("** %d 错误 1: 打开利率表出错 **",sqlca.sqlcode);   getch();   return;   }$fetch first read3;dat2=0;do{   if(dat1<=dat&&dat1>=dat2)               {                dat2=dat1;                ll2=rat;               }    $fetch next read3;  }while(sqlca.sqlcode!=SQLNOTFOUND);$close read3;return(ll2);}

⌨️ 快捷键说明

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