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

📄 tran_acc.ec

📁 这是一个使用 informix esql/c 技术开发的银行程序的部分代码。
💻 EC
📖 第 1 页 / 共 3 页
字号:
              scanw("%hd",&j);              if(j<1) break;              move(20,28);              if(j>i)                {                  printw("序号太大, ");                  mess((short)2);                  continue;                }              else if(j==i)                {                  i++;                  d=0;                  x=0.0;                }              else                {                  fseek(pf,j*12,0);                  fread(&d,4,1,pf);                  fread(&x,8,1,pf);                }              addspace(20);              move(11,10);              addstr("帐    号:");              move(11,48);              prt_inum(d,9);              move(13,10);              addstr("金    额:");              move(13,48);              prt_dnum(x,16);              move(11,22);              c=readdv(&sum,9);              if(c==10) d=sum;              move(11,22);              addspace(10);              move(11,48);              prt_inum(d,9);              move(13,22);              c=readdv(&sum,13);              if(c==10) x=sum;              move(13,22);              addspace(14);              move(13,48);              prt_dnum(x,16);              fseek(pf,j*12,0);              fwrite(&d,4,1,pf);              fwrite(&x,8,1,pf);            }          fseek(pf,12,0);          sum=0.0;          while(1)            {              fread(&d,4,1,pf);              fread(&x,8,1,pf);              if(feof(pf)) break;              sum+=x;            }          fseek(pf,4,0);          fwrite(&sum,8,1,pf);          fclose(pf);          break;        case 6:          move(2,29);          addstr("转  存  帐  户  目  录");          move(3,29);          addstr("======================");          pf=fopen("/u/ebcsav/data/tran_sec.dat","r");          while(1)            {              move(5,10);              addstr("请输入单位编号( 0 返回)              ");              scanw("%hd",&sec_num);              move(20,30);              if(sec_num<1) break;              fseek(pf,(sec_num-1)*24,0);              fread(s,24,1,pf);              if(feof(pf)||s[0]=='\0')                {                  printw("该单位不存在, ");                  mess(2);                }              else break;            }          fclose(pf);          if(sec_num==0) break;          move(7,10);          addstr("请输入营业部门编号( 0 返回)          ");          scanw("%hd",&i);          s_num[0]=i;          if(i<1) break;          move(9,10);          addstr("请输入储蓄类型( 0-返回, 1-人民币活期, 2-人民币零存整取): ");          scanw("%hd",&t);          if(t<1) break;          move(4,0);          clrtobot();          block(1,0,22,80);          move(4,15);          s[24]='\0';          printw("单位编号: %3d 单位名称: %s",sec_num,s);          strcpy(s,"/u/ebcsav/data/tran001.dat");          s[19]=sec_num/100+48;          s[20]=(sec_num%100)/10+48;          s[21]=(sec_num%10)+48;           pf=fopen(s,"r");          fseek(pf,4,0);          fread(&sum,8,1,pf);          i=0;          l=6;          j=2;          move(5,2);          printw("序号   帐 号    户 名      金  额     序号   帐 号    户 名      金  额  ");          while(1)            {              fread(&d,4,1,pf);              fread(&x,8,1,pf);              if(feof(pf)) break;              a_num=d;              if(t==1)                {                  $ select name into $nam from r_demand                    where sec_num=$s_num and acc_num=$a_num;                }              else                {                  $ select name into $nam from r_dated                    where sec_num=$s_num and acc_num=$a_num;                }              if(sqlca.sqlcode!=0) strcpy(nam,"(不存在)");              i++;              move(l,j);              printw("%3d  ",i);              prt_inum(d,9);              printw(" %-8s ",nam);              prt_dnum(x,13);              l++;              if(j==2&&l==22)                {                  j=40;                  l=6;                }              else if(j==40&&l==22)                {                  move(23,30);                  addstr("暂停显示, ");                  mess((short)4);                  getch();                  l=6;                  j=2;                  move(6,0);                  clrtobot();                  block(1,0,22,80);               }            }          move(23,23);          addstr("全部显示, 合计");          prt_dnum(sum,16);          addstr("元. ");          mess((short)3);          getch();          fclose(pf);          break;        case 8:          move(2,16);          addstr("从 软 盘 以 编 码 方 式 装 入 转 存 帐 户 信 息");          move(3,16);          addstr("===============================================");          pf=fopen("/u/ebcsav/data/tran_sec.dat","r");          while(1)            {              move(5,10);              addstr("请输入单位编号( 0 返回)              ");              scanw("%d",&sec_num);              move(20,30);              if(sec_num<1) break;              fseek(pf,(sec_num-1)*24,0);              fread(s,24,1,pf);              if(feof(pf)||s[0]=='\0')                {                  printw("该单位不存在, ");                  mess(2);                }              else break;            }          fclose(pf);          if(sec_num==0) break;          addspace(28);          move(7,10);          s[24]='\0';          printw("单位名称:   %s",s);          move(20,20);          printw("是否装入 (Y/N)? ");          c=y_n('Y','N','N');          if(c=='Y')            {              strcpy(s,"doscp b:tran001.txt /u/ebcsav/tmp");              s[12]=sec_num/100+48;              s[13]=(sec_num%100)/10+48;              s[14]=(sec_num%10)+48;              move(20,20);              addstr("请将软盘片插入 B: 驱动器, ");              mess((short)4);              getch();              move(20,20);              addspace(40);              if(system(s)!=0)                {                  addstr("读软盘出错, ");                  mess((short)3);                  getch();                  break;                }              strcpy(s,"/u/ebcsav/data/tran001.dat");              s[19]=sec_num/100+48;              s[20]=(sec_num%100)/10+48;              s[21]=(sec_num%10)+48;               pf=fopen(s,"w");              strcpy(s,"/u/ebcsav/tmp/tran001.txt");              s[18]=sec_num/100+48;              s[19]=(sec_num%100)/10+48;              s[20]=(sec_num%10)+48;               pf1=fopen(s,"r");              fseek(pf,12,0);              i=0;              sum=0.0;              while(1)                {                  fscanf(pf1,"%10s%lf",s2,&x);                      move(10,10);                      printw("编号: %10s  金额: %f",s2,x);                  if(feof(pf1)) break;                  strcpy(s,"/u/ebcsav/data/num_acc001.dat");                  s[22]=sec_num/100+48;                  s[23]=(sec_num%100)/10+48;                  s[24]=(sec_num%10)+48;                   if((pf2=fopen(s,"r"))==NULL)                      {                       move(15,15);                       printw("无 %d 单位编码对照表!",sec_num);                       getch();                       move(15,15);                       printw("                             ");                       break;                      };                  bz=0;                  while(1)                    {                      fread(s1,10,1,pf2);                      fread(&d2,4,1,pf2);                    /*  fscanf(pf2,"%10s%ld",s1,&d2);*/                      if(feof(pf2))                        {                        bz=1;                        break;}                      move(15,15);                      if((d=strcmp(s1,s2))==0) break;                       /*  printw(" s1=%10s ",s1);                      printw(" s2=%10s d=%d",s2,d);                      getch();*/                     }                  fclose(pf2);                  if(bz==1)                     {                      move(15,15);                      printw("无编码 %10s 对照关系",s2);                      getch();                      move(15,15);                      printw("                              ");                     }                  if(bz==0)                  {                  fwrite(&d2,4,1,pf);                  fwrite(&x,8,1,pf);                  sum+=x;                  i++;                  }                  bz=0;                }              fseek(pf,4,0);              fwrite(&sum,8,1,pf);              fclose(pf);              fclose(pf1);              move(20,10);              printw("装入完成, 共有%3d个帐户, 合计",i);              prt_dnum(sum,16);              addstr("元. ");              mess((short)3);              getch();            }          break;        case 9:        case 10:          move(2,19);          addstr("从 键 盘 输 入 转 存 帐 户 编 码 对 照 表");          move(3,19);          addstr("==========================================");          pf=fopen("/u/ebcsav/data/tran_sec.dat","r");          while(1)            {              move(5,10);              addstr("请输入单位编号( 0 返回)              ");              scanw("%d",&sec_num);              move(20,30);              if(sec_num<1) break;              fseek(pf,(sec_num-1)*24,0);              fread(s,24,1,pf);              if(feof(pf)||s[0]=='\0')                {                  printw("该单位不存在, ");                  mess(2);                }              else break;            }          fclose(pf);          if(sec_num==0) break;          addspace(28);          move(7,10);          s[24]='\0';          printw("单位名称:   %s",s);          strcpy(s,"/u/ebcsav/data/num_acc001.dat");          s[22]=sec_num/100+48;          s[23]=(sec_num%100)/10+48;          s[24]=(sec_num%10)+48;           bz=0;          if(num_c==9)          pf=fopen(s,"w");          else          if((pf=fopen(s,"r+"))==NULL)bz=1;          i=1;           if(num_c==10&&bz==1)break;          if(num_c==10)          while(1)            {              fread(s1,10,1,pf);              fread(&d,4,1,pf);              if(feof(pf)) break;              i++;            }          while(1)            {              move(9,10);              printw("请输入序号(≤%3d, 按 0 返回)",i);              scanw("%hd",&j);

⌨️ 快捷键说明

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