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

📄 tran_acc.ec

📁 这是一个使用 informix esql/c 技术开发的银行程序的部分代码。
💻 EC
📖 第 1 页 / 共 3 页
字号:
#include </u/ebcsav/include/sav.h>$include sqlca;$include sqlda;short menu();short menusel();void addspace();void addspacef();void mess();char y_n();char readdv();char readst();void prt_inum();void prt_dnum();void prtf_inum();void prtf_dnum();#include </u/ebcsav/include/begin>$ char s_num[2],nam[9];$ long a_num;short num_c,i,j,l,sec_num,pa,t,bz;long d,d1,d2;double x,sum;char c;char s1[11],s2[11],s[36],sn[36];FILE *pf,*pf1,*pf2;static char *title[13]={"0. 退    出 ","1. 增加单位 ","2. 删除单位 ",  "3. 列 单 位 ","4. 帐号磁盘输入 ","5. 键盘输入 ","6. 列 帐 户 ",  "7. 打印帐户 ","8. 编码磁盘输入 ","9. 编码对照输入 ","a. 编码对照修改 ",  "b. 编码对照删除 ","c. 列编码对照表 ",};static char *remind[13]={"  退出本程序  ","  增加转存储蓄的单位  ",  "  删除转存储蓄的单位  ","  显示转存储蓄的单位  ",  "  从软磁盘装入转存的帐户信息  ","  从键盘输入、或修改转存的帐户信息  ",  "  显示转存的帐户信息  ","  打印转存的帐户信息  ",   "  从软磁盘以编码方式装入转存的帐户信息  ",   "  从键盘输入转存的编码帐户对照信息  ",    "  从键盘修改转存的编码帐户对照信息  ",    "  删除转存的编码帐户对照信息  ",   "  显示转存的编码信息  "};static short menu_row[13]={3,3,3,3,4,4,4,4,5,5,5,6,6},  menu_col[13]={12,29,41,53,12,29,41,53,12,29,49,12,29};$ database saving;s_num[1]='\0';move(0,25);printw("转  存  帐  户  信  息  管  理");num_c=0;while(1)  {    move(2,0);    clrtobot();    block(1,0,22,80);    block(2,10,6,58);    num_c=menu(title,remind,menu_row,menu_col,12,num_c);    num_c=menusel(title,remind,menu_row,menu_col,12,num_c,0);    move(2,0);    clrtobot();    block(1,0,22,80);    switch(num_c)      {        case 0:          endwin();          $ close database;          return;        case 1:          move(2,25);          addstr("增  加  新  的  转  存  单  位");          move(3,25);          addstr("==============================");          pf=fopen("/u/ebcsav/data/tran_sec.dat","r+");          i=0;          while(1)            {              fread(s,24,1,pf);              if(feof(pf)) break;              i++;            }          while(1)            {              move(5,10);              printw("请输入单位编号( ≤%3d , 0 返回)              ",i+1);              scanw("%d",&sec_num);              move(20,30);              if(sec_num<1)                {                  fclose(pf);                  break;                }              if(sec_num>i+1)                {                  printw("编号太大, ");                  mess((short)2);                }              else if(sec_num<=i)                {                  fseek(pf,(sec_num-1)*24,0);                  fread(s,24,1,pf);                  if(s[0]!='\0')                    {                      printw("该单位已存在, ");                      mess(2);                    }                  else break;                }              else break;            }          if(sec_num==0) break;          addspace(28);          move(7,10);          addstr("请输入单位名称(最多24个字节): ");          readst(s,24);          fseek(pf,(sec_num-1)*24,0);          fwrite(s,24,1,pf);          fclose(pf);          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");          d=0;          fwrite(&d,4,1,pf);          x=0.0;          fwrite(&x,8,1,pf);          fclose(pf);          break;        case 2:          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("%d",&sec_num);              move(20,30);              if(sec_num<1)                {                  fclose(pf);                  break;                }              fseek(pf,(sec_num-1)*24,0);              fread(s,24,1,pf);              if(feof(pf)||s[0]=='\0')                {                  printw("该单位不存在, ");                  mess(2);                }              else break;            }          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')            {              s[0]='\0';              fseek(pf,(sec_num-1)*24,0);              fwrite(s,24,1,pf);              strcpy(s,"rm /u/ebcsav/data/tran001.dat");              s[22]=sec_num/100+48;              s[23]=(sec_num%100)/10+48;              s[24]=(sec_num%10)+48;              system(s);            }          fclose(pf);          break;        case 3:          move(2,29);          addstr("转  存  单  位  目  录");          move(3,29);          addstr("======================");          pf=fopen("/u/ebcsav/data/tran_sec.dat","r");          i=0;          l=5;          j=4;          move(4,4);          printw("编号      单 位 名 称               编号      单 位 名 称");          while(1)            {              fread(s,24,1,pf);              if(feof(pf)) break;              i++;              if(s[0]=='\0') continue;              move(l,j);              s[24]='\0';              printw("%3d  %-24s",i,s);              l++;              if(j==4&&l==22)                {                  j=40;                  l=5;                }              else if(j==40&&l==22)                {                  move(23,30);                  addstr("暂停显示, ");                  mess((short)4);                  getch();                  l=5;                  j=4;                  move(5,0);                  clrtobot();                  block(1,0,22,80);               }            }          move(23,30);          printw("全部显示, ");          mess((short)3);          getch();          fclose(pf);          break;        case 4:          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);          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,"%ld%lf",&d,&x);                  if(feof(pf1)) break;                  fwrite(&d,4,1,pf);                  fwrite(&x,8,1,pf);                  i++;                  sum+=x;                }              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 5:          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/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+");          i=0;          while(1)            {              fread(&d,4,1,pf);              fread(&x,8,1,pf);              if(feof(pf)) break;              i++;            }          while(1)            {              move(9,10);              printw("请输入序号(≤%3d, 按 0 返回)",i);

⌨️ 快捷键说明

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