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

📄 dem_depo1.ec

📁 这是一个使用 informix esql/c 技术开发的银行程序的部分代码。
💻 EC
📖 第 1 页 / 共 2 页
字号:
/*   活期续存   */#include </u/ebcsav/include/sav.h>$include sqlca;$include sqlda;void addspacef();void addspace();void mess();char y_n();char readdv();char readst();char readch();long ac_num();short num_time();double get_inte();void prt_inum();void prt_dnum();void prtf_inum();void prtf_dnum();void delay();#include </u/ebcsav/include/begin>double x,am1=0.0;long k,j=0,i,n,ti,p=0;unsigned char c;char st[30];$ char s_num[2],nam[9],cu_type[2];$ long a_num,cr_num,ope_date,b_num,b_num2,l_date,pas;$ double amoun,inte,amou,amo,balan;$ short cred_type;$ long cred_num,i_date,o_date;$ char ope_num[2],s_type[2],sta[2],l_num[2],r_type[2],stat[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';l_num[1]='\0';r_type[0]=9;r_type[1]='\0';s_type[1]='\0';sta[1]='\0';stat[1]='\0';nam[0]='\0';cu_type[0]=((op.type&1)==1)?'R':'F';cu_type[1]='\0';amoun=0.0;amou=0.0;$ declare blot scroll cursor for select blot_num from r_blot;$ declare blot1 scroll cursor for select blot_num from f_blot;move(23,16);standout();mess(1);standend();move(3,10);addstr("帐    号: ");move(3,20);prt_inum(s_num[0],2);addstr("-");while(1)  {    $ begin work;    p=0;    while(1)     {      move(3,24);      c=readdv(&x,9);      if(c==10) a_num=x;      move(3,24);      prt_inum(a_num,9);      if((op.type&3)==1)cred_type=2;      else if((op.type&3)==2)cred_type=12;      else        {         move(5,10);         addstr("人民币/外币:(R/F)");         move(5,30);         c=y_n('R','R','F');         if(isprint(c)) cu_type[0]=c;         if(toupper(cu_type[0])=='R')cred_type=2;         else cred_type=12;         move(7,10);         addspace(40);        }      s_type[0]=cred_type;      if(cred_type==2)      $ select name,pass,cur_type,amount,cre_num,open_date,inte_date,status,        interest,line_num into $nam,$pas,$cu_type,$amoun,$cr_num,$o_date,        $i_date,$sta,$inte,$l_num from r_demand         where sec_num=$s_num and acc_num=$a_num;      else      $ select name,pass,cur_type,amount,cre_num,open_date,inte_date,status,        interest,line_num into $nam,$pas,$cu_type,$amoun,$cr_num,$o_date,        $i_date,$sta,$inte,$l_num from f_demand         where sec_num=$s_num and acc_num=$a_num;         if(sqlca.sqlcode!=0)           {              move(20,20);              mess(19);              p=1;              break;            }      ope_date=year*10000+month*100+day;      if(ope_date!=i_date)        {           k=0;           k=((toupper(cu_type[0])-64)*10000+cred_type*100);           inte=inte+get_inte(k,i_date,amoun,&am1);           i_date=ope_date;         }      if(sta[0]=='E')        {           mess(24);           p=1;           break;         }       move(5,10);       addstr("姓    名: ");       move(7,10);       addstr("币    种: ");       move(9,10);       addstr("金    额: ");       move(11,10);       addstr("余    额: ");       move(13,10);       addstr("凭 证 号: ");       move(5,20);       printw("%-8s",nam);       move(7,20);       switch(toupper(cu_type[0]))              {                   case 'R':                    printw("%-10s","人民币");                     break;                   case 'U':                    printw("%-10s","美元");                     break;                   case 'J':                     printw("%-10s","日元");                     break;                   case 'H':                     printw("%-10s","港元");                     break;                   case 'M':                     printw("%-10s","德国马克");                     break;                   case 'P':                     printw("%-10s","英镑");                     break;                   case 'F':                     printw("%-10s","法国法郎");                     break;                   case 'C':                     printw("%-10s","加拿大元");               }      move(11,20);      prt_dnum(amoun,13);      move(13,20);      prt_inum(cr_num,7);      move(9,20);      c=readdv(&x,11);      if(c==10) amou=x;      move(9,20);      prt_dnum(amou,13);      amoun+=amou;      move(11,20);      prt_dnum(amoun,13);      l_num[0]++;      if(l_num[0]>50)       {         move(20,20);         mess(37);         p=1;         break;        }/*更新记录开始*/           move(20,20);           mess(5);           c=y_n('Y','N','C');           move(20,20);           addspace(42);           if(c=='N')break;           else if(c=='Y')             {              move(20,20);              for(n=0;n<7;n++)              if(op.name[n]!='\0')st[n]=op.name[n]^0xff;              else st[n]='\0';              ti=num_time();              for(n=0;n<5;n++)              {                if(cred_type==2)                    $ insert into r_blot                      values                      (0,$ope_num,$s_num,$a_num,$nam,$s_type,                       $cu_type,0,$cr_num,"C",$amou,$amoun,$inte);                else                    $ insert into f_blot                      values                      (0,$ope_num,$s_num,$a_num,$nam,$s_type,                       $cu_type,0,$cr_num,"C",$amou,$amoun,$inte);                if(sqlca.sqlcode!=-271) break;                printw("*");                refresh();                delay(5l);              }              if(sqlca.sqlcode==-271)                { mess((short)73);                  p=1;                  break;                }              else if(sqlca.sqlcode!=0)                  {                    addstr("写");                    mess(16);                    printw("(%d), ",sqlca.sqlcode);                    p=1;                    break;                  }              if(cred_type==2)                  {                    $ open blot;                    $ fetch last blot into $b_num;                    $ close blot;                    $ insert into r_dem_sch                      values                      ($s_num,$a_num,$ope_date,$b_num,                       $nam,$cu_type,$amou,$amoun,$inte,$r_type);                  }              else                  {                     $ open blot1;                     $ fetch last blot1 into $b_num;                     $ close blot1;                     $ insert into f_dem_sch                       values                       ($s_num,$a_num,$ope_date,$b_num,                        $nam,$cu_type,$amou,$amoun,$inte,$r_type);                   }              if(sqlca.sqlcode!=0)                   {                     addstr("写");                     mess(18);                     printw("(%d), ",sqlca.sqlcode);                    p=1;                     break;                    }              if(cred_type==2)                 $ update r_demand                   set amount=$amoun,interest=$inte,                   inte_date=$i_date,line_num=$l_num                   where sec_num=$s_num and acc_num=$a_num;              else                 $ update f_demand                   set amount=$amoun,interest=$inte,                   inte_date=$i_date,line_num=$l_num                   where sec_num=$s_num and acc_num=$a_num;              if(sqlca.sqlerrd[2]!=1)                 {                    addstr("写");                    mess(14);                    printw("(%d), ",sqlca.sqlcode);                    p=1;                    break;                  }              move(20,20);              addspace(30);              move(20,20);              mess(25);         }       break;/*更新记录结束*/      }   if(p==1)     {      $ rollback work;     }   else     {      $ commit work;     }    p=0;    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/addspacef>#include </u/ebcsav/include/y_n>#include </u/ebcsav/include/prt_inum>#include </u/ebcsav/include/prt_dnum>#include </u/ebcsav/include/prtf_inum>#include </u/ebcsav/include/prtf_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/delay>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;

⌨️ 快捷键说明

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