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

📄 flyp.c

📁 包括6个单独C源程序和一个连接这六个程序的总程序
💻 C
📖 第 1 页 / 共 3 页
字号:
    Down_sbutton(245,260,100,25,2,"确定");
    c=Contrkey();
    switch(c)
    {
        case ENTER:
        case ESC:
        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
        clrkey();
        return;
        default:
        goto lable_wait_succ;
    }
}

void hpfull(void)
{
    char c;
    Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
    Draw_swindow(200,100,200,200,"结束");
    lable_wait_succ:
    PrintTextxy(210,150,"换票失败",RED);
    PrintTextxy(210,170,"无余票可换!",RED);
    PrintTextxy(210+1,170+1,"无余票可换!",YELLOW);
    PrintTextxy(210,210,"",RED);
    Down_sbutton(245,260,100,25,2,"返回");
    c=Contrkey();
    switch(c)
    {
        case ENTER:
        case ESC:
        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
        clrkey();
        return;
        default:
        goto lable_wait_succ;
    }
}

int buyfull(char *str1,char *str2)
{
    int x=250,y=150,w=300,h=200,YN_val=1;
    char c;
    Draw_swindow(x,y,w,h,"该区票已全售出");
    PrintTextxy(x+20,y+50,str1,RED);PrintTextxy(x+100,y+50,"的票已全售出",YELLOW);
    PrintTextxy(x+20,y+80,"是否愿意转到",YELLOW);PrintTextxy(x+130,y+80,str2,RED);PrintTextxy(x+200,y+80,"?",YELLOW);
    Down_sbutton(x+20,y+150,100,25,2,"愿意");
    Up_sbutton(x+150,y+150,100,25,2,"不愿");
    lable_wait_full:
    c=Contrkey();
    switch(c)
    {
        case LEFT:
            Down_sbutton(x+20,y+150,100,25,2,"愿意");
            Up_sbutton(x+150,y+150,100,25,2,"不愿");
            YN_val=1;
        goto lable_wait_full;
        case RIGHT:
            Up_sbutton(x+20,y+150,100,25,2,"愿意");
            Down_sbutton(x+150,y+150,100,25,2,"不愿");
            YN_val=2;
        goto lable_wait_full;
        default:
        goto lable_wait_full;
        case ENTER:
        return(YN_val);
    }
    
}

int inputbox(int tdflag)
{
    int num=0,i=0,x=320,y=270,wid=100,YN_val=1;
    char temp[2];
    char c;


    Draw_swindow(230,130,300,250,"请输入数据");
    if (tdflag==1)PrintTextxy(x-50,y-40,"请输入已购买的需要退的票号",YELLOW);
    if (tdflag==2)PrintTextxy(x-50,y-40,"请输入已购买的需要换的票号",YELLOW);
    setcolor(WHITE);
    rectangle(x,y,x+wid,y+20);
    setfillstyle(SOLID_FILL,BLUE);
    bar(x+1,y+1,x+wid-1,y+20-1);
    Down_sbutton(x-50,y+50,100,25,2,"确定");
    Up_sbutton(x+80,y+50,100,25,2,"取消");

    while (1)
    {

        c=Contrkey();
        if (c==ESC)return(-1);
        else if(c==LEFT)
        {
            YN_val=1;
            Down_sbutton(x-50,y+50,100,25,2,"确定");
            Up_sbutton(x+80,y+50,100,25,2,"取消");
            clrkey();
        }
        else if(c==RIGHT)
        {
            YN_val=2;
            Up_sbutton(x-50,y+50,100,25,2,"确定");
            Down_sbutton(x+80,y+50,100,25,2,"取消");
            clrkey();
        }
        else if (c==ENTER)
        {
            switch(YN_val)
            {
                case 1:
                    clrkey();
                return(num);
                case 2:
                return(-1);
            }
        }

        else if (c==8)
        {
            setcolor(WHITE);
            rectangle(x,y,x+wid,y+20);
            setfillstyle(SOLID_FILL,BLUE);
            bar(x+1,y+1,x+wid-1,y+20-1);
            num=0;
            i=0;
        }
        else if ((c>=48)&&(c<=57))
        {
            if (i==0)
            {
                setcolor(WHITE);
                rectangle(x,y,x+wid,y+20);
                setfillstyle(SOLID_FILL,BLUE);
                bar(x+1,y+1,x+wid-1,y+20-1);
                sprintf(temp,"%d",c-48);
                num=c-48;
            }
            if (i==1)
            {
                setcolor(WHITE);
                rectangle(x,y,x+wid,y+20);
                setfillstyle(SOLID_FILL,BLUE);
                bar(x+1,y+1,x+wid-1,y+20-1);
                sprintf(temp,"%d",num*10+c-48);
                num=num*10+c-48;
            }
            outtextxy(x+5,y+8,temp);
            i++;
        }
        else continue;
    }


}

int inputboxhc(char *xiyanqu,char *feixiyan)
{
    int num=0,i=0,x=320,y=270,wid=100,YN_val=1;
    char temp[2];
    char c;
    Draw_swindow(230,130,300,250,"请输入数据");
    PrintTextxy(x-70,y-100,"吸烟区机票状态(*号表示已售)",YELLOW);
    PrintTextxy(x-50-1,y-80-1,xiyanqu,RED);
    PrintTextxy(x-50,y-80,xiyanqu,YELLOW);
    PrintTextxy(x-70,y-60,"非吸烟区机票状态(*号表示已售)",YELLOW);
    PrintTextxy(x-50-1,y-40-1,feixiyan,RED);
    PrintTextxy(x-50,y-40,feixiyan,YELLOW);
    setcolor(WHITE);
    rectangle(x,y,x+wid,y+20);
    setfillstyle(SOLID_FILL,BLUE);
    bar(x+1,y+1,x+wid-1,y+20-1);
    Down_sbutton(x-50,y+50,100,25,2,"确定");
    Up_sbutton(x+80,y+50,100,25,2,"取消");

    while (1)
    {

        c=Contrkey();
        if (c==ESC)return(-1);
        else if(c==LEFT)
        {
            YN_val=1;
            Down_sbutton(x-50,y+50,100,25,2,"确定");
            Up_sbutton(x+80,y+50,100,25,2,"取消");
            clrkey();
        }
        else if(c==RIGHT)
        {
            YN_val=2;
            Up_sbutton(x-50,y+50,100,25,2,"确定");
            Down_sbutton(x+80,y+50,100,25,2,"取消");
            clrkey();
        }
        else if (c==ENTER)
        {
            switch(YN_val)
            {
                case 1:
                    clrkey();
                return(num);
                case 2:
                return(-1);
            }
        }

        else if (c==8)
        {
            setcolor(WHITE);
            rectangle(x,y,x+wid,y+20);
            setfillstyle(SOLID_FILL,BLUE);
            bar(x+1,y+1,x+wid-1,y+20-1);
            num=0;
            i=0;
        }
        else if ((c>=48)&&(c<=57))
        {
            if (i==0)
            {
                setcolor(WHITE);
                rectangle(x,y,x+wid,y+20);
                setfillstyle(SOLID_FILL,BLUE);
                bar(x+1,y+1,x+wid-1,y+20-1);
                sprintf(temp,"%d",c-48);
                num=c-48;
            }
            if (i==1)
            {
                setcolor(WHITE);
                rectangle(x,y,x+wid,y+20);
                setfillstyle(SOLID_FILL,BLUE);
                bar(x+1,y+1,x+wid-1,y+20-1);
                sprintf(temp,"%d",num*10+c-48);
                num=num*10+c-48;
            }
            outtextxy(x+5,y+8,temp);
            i++;
        }
        else continue;
    }


}


void giveerr(char *tdinfo)
{
    
    char c;
    Draw_swindow(220,120,250,140,"错误提示");
    PrintTextxy(230,160,tdinfo,RED);
    PrintTextxy(230,180,"请返回重新输入",RED);
    Down_sbutton(300,210,100,25,2,"返回");
    while(1)
    {
        c=Contrkey();
        if ((c==ESC)||(c==ENTER))
        {
        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
        return;
        }
    }
}

void giveok(int billnum)
{
    char temp[2]={0};
    char c;
    Draw_swindow(220,120,240,120,"操作成功");
    sprintf(temp,"%d",billnum);
    PrintTextxy(250,160,temp,RED);
    PrintTextxy(250+1,160+1,temp,YELLOW);
    PrintTextxy(270,160,"号票退票成功!",RED);

    Down_sbutton(290,200,100,25,2,"确定");
    while(1)
    {
        c=Contrkey();
        if ((c==ESC)||(c==ENTER))
        {
        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
        return;
        }
    }

}

void huanok(int numold,int numnew)
{
    char tempold[2]={0},tempnew[2]={0};
    char c;
    Draw_swindow(220,120,240,120,"操作成功");
    sprintf(tempold,"%d",numold);
    sprintf(tempnew,"%d",numnew);

    PrintTextxy(250,160,tempold,RED);
    PrintTextxy(250+1,160+1,tempold,YELLOW);
    PrintTextxy(270,160,"号票换为",RED);
    PrintTextxy(350,160,tempnew,RED);
    PrintTextxy(350+1,160+1,tempnew,YELLOW);
    PrintTextxy(370,160,"成功!",RED);

    Down_sbutton(290,200,100,25,2,"确定");
    while(1)
    {
        c=Contrkey();
        if ((c==ESC)||(c==ENTER))
        {
        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
        return;
        }
    }

}


int checktb(int billnum,int *bills)
{
    /*正常返回0*//*否则1*/
    if (bills[billnum-1]==0)return(1);
    if (bills[billnum-1]==1)return(0);
}

void scanbilla(int *bills,char *resbilla)
{
    int i;
    char temp[AB*3];
    for (i=0;i<=(AB/2-1);i++)
    {
        resbilla[i]=i+1+48;
        if (bills[i]==1)resbilla[i]='*';
    }

    for (i=0;i<=AB/2-1;i++)
    {
        if (resbilla[i]>=':')
            {
                sprintf(&temp[i*3],"%d  ",resbilla[i]-48);
                continue;
            }
        sprintf(&temp[i*3],"%c  ",resbilla[i]);

    }
    strcpy(resbilla,temp);
    return;
}

void  scanbillb(int *bills,char *resbillb)
{
    int i;
    char temp[AB*3];
    for (i=AB/2;i<=AB-1;i++)
    {
        resbillb[i-AB/2]=i+1+48;
        if (bills[i]==1)resbillb[i-AB/2]='*';
    }

    for (i=0;i<=AB/2-1;i++)
    {
        if (resbillb[i]>=':')
        {
            sprintf(&temp[i*3],"%d  ",resbillb[i]-48);
            continue;
        }
        sprintf(&temp[i*3],"%c  ",resbillb[i]);


    }
    strcpy(resbillb,temp);
    return;
}

main()
{

    int bills[AB+2]={0};
    char resbilla[AB*3]={0},resbillb[AB*3]={0};
    char xiyan[3]={0},feixi[3]={0};
    int c,YN_val,movey=20,movex=0;
    Init_graph(); /* BGI初始化 */
    clrscr();
    setfillstyle(SOLID_FILL,LIGHTGRAY);
    bar(0,0,MaxX-xxx,MaxY);
    Main_window();/* 绘制主窗口 */
    loaddata("data",bills);

    while ((c=bioskey(1))!=238)
    {
        lable_wait:
        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);

        c=Contrkey();
        switch (c)
        {
          case UP:
            clrkey();
            Ctr_old=Ctr_val;
            Ctr_val--;
            if (Ctr_val==0)Ctr_val=5;
            Butt_Chg();
          break;
          case DOWN:
            clrkey();
            Ctr_old=Ctr_val;
            Ctr_val++;
            if (Ctr_val==6)Ctr_val=1;
            Butt_Chg();
          break;
          case LEFT:
            clrkey();

          break;
          case RIGHT:
            clrkey();

          break;
          case ESC:
          break;
          case QUIT:
          return;
          case ENTER:
            switch(Ctr_val)
            {
                case 1:
                    Draw_swindow(200,100,300,300,"机票查询即时查询");
                    scanbills(bills);
                    scanbilla(bills,resbilla);
                    scanbillb(bills,resbillb);
                    /*printf("%s",resbilla);*/
                    sprintf(xiyan,"%d",AB/2-bills[AB]);
                    sprintf(feixi,"%d",AB/2-bills[AB+1]);
                    PrintTextxy(230,170,"  * ",RED);
                    PrintTextxy(230+1,170+1,"“*”号表示已经卖出的机票",YELLOW);
                    PrintTextxy(230,200,"吸烟区剩余机票数量:",YELLOW); PrintTextxy(430,200,xiyan,RED);

⌨️ 快捷键说明

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