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

📄 sections.c

📁 这是一个使用 informix esql/c 技术开发的银行程序的部分代码。
💻 C
字号:
/*   sections     */
#include </u/ebcsav/include/sav.h>
short menu();
short menusel();
void addspace();
char readst();
char readdv();
void mess();
char y_n();
#include </u/ebcsav/include/begin>
short num_c,i,l,sec_num;
double x;
char c;
char s[25];
FILE *pf;
static char *title[4]={"0. 退      出  ","1. 增加营业所  ","2. 删除营业所  ",
  "3.列营业所目录 "};
static char *remind[4]={"  退出本程序  ","  输入新增设的营业所的名称和简称  ",
  "  删除营业所的名称和简称  ","  显示营业所的名称和简称  "};
static short menu_row[4]={3,3,3,3},menu_col[4]={10,25,40,55};
move(0,25);
printw("营  业  部  门  名  称  管  理");
num_c=0;
s[24]='\0';
while(1)
  {
    move(2,0);
    clrtobot();
    block(1,0,22,80);
    block(2,3,3,74);
    num_c=menu(title,remind,menu_row,menu_col,3,num_c);
    num_c=menusel(title,remind,menu_row,menu_col,3,num_c,0);
    move(2,0);
    clrtobot();
    block(1,0,22,80);
    switch(num_c)
      {
        case 0:
          endwin();
          return;
        case 1:
          move(2,25);
          addstr("增  加  新  的  营  业  部  门");
          move(3,25);
          addstr("==============================");
          pf=fopen("/u/ebcsav/data/sav_sect.dat","r+");
          while(1)
            {
              move(5,10);
              addstr("请输入营业部门编号( 0 返回)              ");
              readdv(&x,2);
              sec_num=x;
              move(20,30);
              if(sec_num<1)
                {
                  fclose(pf);
                  break;
                }
              if(sec_num>99)
                {
                  printw("编号太大, ");
                  mess((short)2);
                }
              else
                {
                  fseek(pf,(sec_num-1)*34,0);
                  fread(s,24,1,pf);
                  if(s[0]!='\0')
                    {
                      printw("该部门已存在, ");
                      mess(2);
                    }
                  else break;
                }
            }
          if(sec_num==0) break;
          addspace(28);
          fseek(pf,(sec_num-1)*34,0);
          move(7,10);
          addstr("请输入营业部门名称(最多24个字节): ");
          readst(s,24);
          fwrite(s,24,1,pf);
          move(9,10);
          addstr("请输入营业部门简称(最多10个字节): ");
          readst(s,10);
          fwrite(s,10,1,pf);
          fclose(pf);
          break;
        case 2:
          move(2,29);
          addstr("删  除  营  业  部  门");
          move(3,29);
          addstr("======================");
          pf=fopen("/u/ebcsav/data/sav_sect.dat","r+");
          while(1)
            {
              move(5,10);
              addstr("请输入营业部门编号( 0 返回)              ");
              readdv(&x,2);
              sec_num=x;
              move(20,30);
              if(sec_num<1)
                {
                  fclose(pf);
                  break;
                }
              fseek(pf,(sec_num-1)*34,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);
          printw("营业部门名称:   %s",s);
          fread(s,10,1,pf);
          s[10]='\0';
          move(9,10);
          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)*34,0);
              fwrite(s,24,1,pf);
              fwrite(s,10,1,pf);
            }
          fclose(pf);
          break;
        case 3:
          move(2,29);
          addstr("营  业  部  门  目  录");
          move(3,29);
          addstr("======================");
          pf=fopen("/u/ebcsav/data/sav_sect.dat","r");
          i=0;
          l=5;
          move(4,10);
          printw("编号                单 位 名 称                    简  称");
          while(1)
            {
              fread(s,24,1,pf);
              if(feof(pf)) break;
              i++;
              if(s[0]=='\0')
                {
                  fread(s,10,1,pf);
                  continue;
                }
              move(l,11);
              printw("%2d           %-24s",i,s);
              fread(s,10,1,pf);
              s[10]='\0';
              printw("           %-10s",s);
              l++;
              if(l==22)
                {
                  move(23,30);
                  addstr("暂停显示, ");
                  mess((short)4);
                  getch();
                  l=5;
                  move(5,0);
                  clrtobot();
                  block(1,0,22,80);
               }
            }
          move(23,30);
          printw("全部显示, ");
          mess((short)3);
          getch();
          fclose(pf);
          break;
      }
  }

#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/readst>
#include </u/ebcsav/include/readdv>
#include </u/ebcsav/include/menu>
#include </u/ebcsav/include/menusel>

⌨️ 快捷键说明

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