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

📄 dated_canc1.ec

📁 这是一个使用 informix esql/c 技术开发的银行程序的部分代码。
💻 EC
📖 第 1 页 / 共 2 页
字号:
/*   零整销户   */#include </u/ebcsav/include/sav.h>$include sqlca;$include sqlda;void addspace();void mess();char y_n();char fv_date();char readdv();char readst();char readch();long ac_num();double get_rate();double get_inte();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,ti,i,j=0;double x;double ba1;long k,inte1;unsigned char c,yn;char st[30],ss[11];FILE *pf;$ char s_num[2],nam[9],cu_type[2],addres[25],l_num[2];$ long a_num,pas,pas1,cr_num,ope_date,b_num;$ double amoun,inte,i_rate,bala;$ short cred_type;$ long cred_num,o_date,i_date,l_date,s_date,a_date;$ char ope_num[2],s_type[2],sta[2],r_type[2],te[2],fg[2];move(0,25);$ database saving;printw("零  存  整  取  销  户");ope_num[0]=op_num;ope_num[1]='\0';s_num[0]=op.num&0x7f;s_num[1]='\0';s_type[1]='\0';r_type[0]=8;r_type[1]='\0';nam[0]='\0';fg[1]='\0';te[1]='\0';cu_type[0]='R';cu_type[1]='\0';amoun=0.0;addres[0]='\0';pas=0;pf=fopen("/u/ebcsav/data/sav_sect.dat","r");fseek(pf,(op.num&0x7f)*34-10,0);fread(ss,10,1,pf);fclose(pf);ss[10]='\0';$ declare blot scroll cursor for select blot_num from r_blot;move(23,16);standout();mess(1);standend();move(3,10);addstr("帐    号: ");move(3,20);prt_inum(s_num[0],2);addstr("-");move(5,10);addstr("密    码: ");while(1)  {    while(1)     {      move(3,24);      c=readdv(&x,9);      if(c==10) a_num=x;      move(3,24);      prt_inum(a_num,9);      move(5,22);      c=readdv(&x,7);      if(c==10) pas=x;      move(5,20);      addspace(40);      cred_type=3;      s_type[0]=cred_type;      $ select name,pass,cur_type,term,amount,balance,address,cre_num,        open_date,inte_date,status,flag,last_date,inte_rate,interest,line_num        into $nam,$pas1,$cu_type,$te,$amoun,$bala,        $addres,$cr_num,$o_date,$i_date,$sta,$fg,$l_date,$i_rate,$inte,$l_num        from r_dated where sec_num=$s_num and acc_num=$a_num;      move(20,20);      if(sqlca.sqlcode!=0)        {          mess(19);          break;        }      else if(pas!=pas1)         {           mess(20);           break;         }     ope_date=year*10000+month*100+day;     s_date=te[0]/12*10000+o_date;     if(s_date%100<15)       if((s_date%10000)/100<2)         a_date=(s_date/10000-1)*10000+1200+30+(s_date%100)-15;       else a_date=s_date/10000*10000+((s_date%10000)/100-1)+30+(s_date%100)-15;     else a_date=s_date-15;     if(((s_date>ope_date)&&(fg[0]&1)==0)||((a_date>ope_date)&&(fg[0]&1==1)))     {      move(20,20);      mess(45);      c=y_n('Y','Y','N');      if(c=='N')break;      move(20,20);      addspace(30);      k=0;      k+=((toupper(cu_type[0])-64)*10000+200);      inte=inte+get_inte(k,i_date,bala,&ba1);      inte1=inte;      inte=inte1+(long)((inte-inte1)*100+0.50000001)/100.0;     }     else     {      k=te[0];      k+=((toupper(cu_type[0])-64)*10000+cred_type*100);/*      move(20,20);      printw("k=%d date=%d bala=%f",k,o_date,bala);      getch();*/      inte=get_inte(k,o_date,bala,&ba1);     }     move(7,10);     addstr("姓    名: ");     move(9,10);     addstr("存    期: ");     move(11,10);     addstr("金    额: ");     move(13,10);     addstr("利    息: ");     move(15,10);     addstr("地    址: ");     move(17,10);     addstr("凭 证 号: ");     move(19,10);     addstr("利    率: ");     move(7,20);     printw("%-8s",nam);     move(9,20);     prt_inum(te[0]/12,1);     printw("年");     move(11,20);     prt_dnum(bala,13);     move(13,20);     c=readdv(&x,13);     if(c==10)inte=x;     move(13,30);     prt_dnum(inte,13);     move(15,20);     printw("%-24s",addres);     move(17,20);     prt_inum(cr_num,7);     move(19,20);     prt_dnum(i_rate,13);     if(l_num[0]==0)     {      move(20,10);      addstr("存折行号: ");      move(20,34);      c=readdv(&x,2);      if(c==10) l_num[0]=x;     }     else l_num[0]++;     if(l_num[0]>40)       {         move(20,20);         mess(37);         break;       }/*更新记录开始*/           move(20,20);           if(ope_date==o_date)            {              mess(21);              break;            }           if(sta[0]!='A')            if(sta[0]=='a')              {                beep();                move(19,20);                standout();                mess(26);                standend();               }            else               if(toupper(sta[0])=='F'||toupper(sta[0])=='V')               {                   yn=fv_date(l_date,toupper(sta[0]));                   if(yn!='Y') break;                   else                    {                    move(20,20);                    mess(68);                    break;                    }               }            else              {                   mess(22);                   break;              }           move(20,20);           mess(5);           c=y_n('Y','N','C');           move(19,20);           addspace(42);           move(20,20);           addspace(42);           move(20,20);           if(c=='N')break;           else if(c=='Y')             {                     j=0;                     $ begin work;                     for(n=0;n<7;n++)                     if(op.name[n]!='\0')st[n]=op.name[n]^0xff;                     else st[n]='\0';                     ti=num_time();                     $ update r_dated                       set balance=0,interest=$inte,last_date=$ope_date,                           status='E'                       where sec_num=$s_num and acc_num=$a_num;                     if(sqlca.sqlerrd[2]!=1)                        {                            addstr("写");                            mess(14);                            j=1;                            printw("(%d), ",sqlca.sqlcode);                        }                     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,"E",$bala,0,$inte);                        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;                              }                        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,$bala,0,$inte,$r_type);                        if(sqlca.sqlcode!=0)                              {                                addstr("写");                                mess(18);                                printw("(%d), ",sqlca.sqlcode);                                j=1;                              }                        else                        {                        move(20,20);                        addspace(30);                        move(20,20);                        mess(23);                        j=0;                        }                    }                }            if(j==1)            {             $ rollback work;            }            else            {             $ commit work;            }            break;          }        break;/*更新记录结束*/      }    move(20,46);    mess(15);    c=y_n('Y','N','N');    if(c=='N') break;    move(20,20);    addspace(56);    move(3,24);    addspace(40);  }$ 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/fv_date>#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{

⌨️ 快捷键说明

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