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

📄 flyp.c

📁 包括6个单独C源程序和一个连接这六个程序的总程序
💻 C
📖 第 1 页 / 共 3 页
字号:
                    PrintTextxy(230,220,resbilla,RED);
                    PrintTextxy(230+1,220+1,resbilla,YELLOW);
                    PrintTextxy(230,250,"非吸烟区剩余机票数量:",YELLOW);PrintTextxy(430,250,feixi,RED);
                    PrintTextxy(230,270,resbillb,RED);
                    PrintTextxy(230+1,270+1,resbillb,YELLOW);
                    Down_sbutton(280,350,120,25,2,"确定");
                    while((c=Contrkey())!=ENTER)
                    {
                    if(c==ESC)break;
                    }
                    Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                    clrkey();
                break;
                case 2:
                    Draw_swindow(200,100,300,300,"开始机票预定");
                    Down_sbutton(220,350,120,25,2,"确定");
                    Up_sbutton(360,350,120,25,2,"取消");
                    PrintTextxy(220,200,"确定后可开始购票,返回请按取消",YELLOW);
                    YN_val=1;
                    while(1)
                    {
                        c=Contrkey();
                        switch(c)
                        {
                            case ENTER:
                                movey=20;
                                movex=10;


                                switch(YN_val)
                                {
                                    case 1:
                                        clrkey();
                                        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                        scanbills(bills);
                                        if(bills[AB]==AB/2&&bills[AB+1]==AB/2)
                                        {
                                            buyend(bills[AB],bills[AB+1]);
                                            goto lable_wait;
                                        }
                                        Draw_swindow(220-movex,90+movey,300,150,"选择吸烟区与非吸烟区");
                                        PrintTextxy(220-movex+40,130+movey,"取消请按ESC键。",RED);
                                        Down_sbutton(260-movex,190+movey,100,25,2,"一区");
                                        Up_sbutton(380-movex,190+movey,100,25,2,"二区");
                                        PrintTextxy(250-movex,165+movey," 吸烟区(1)",YELLOW);
                                        PrintTextxy(250+1-movex,165+1+movey," 吸烟区(1)",RED);
                                        PrintTextxy(360-movex,165+movey," 非吸烟区(2)",YELLOW);
                                        PrintTextxy(360+1-movex,165+1+movey," 非吸烟区(2)",RED);
                                        YN_val=1;
                                        while(1)
                                        {
                                            c=Contrkey();
                                            switch(c)
                                            {
                                                case YI:
                                                goto lable_YI2;
                                                case ER:
                                                goto lable_ER2;
                                                case LEFT:
                                                    Down_sbutton(260-movex,190+movey,100,25,2,"一区");
                                                    Up_sbutton(380-movex,190+movey,100,25,2,"二区");
                                                    YN_val=1;
                                                break;
                                                case RIGHT:
                                                    Up_sbutton(260-movex,190+movey,100,25,2,"一区");
                                                    Down_sbutton(380-movex,190+movey,100,25,2,"二区");
                                                    YN_val=2;
                                                break;
                                                case ENTER:
                                                    switch(YN_val)
                                                    {
                                                        case 1:
                                                            lable_YI2:
                                                            scanbills(bills);
                                                            if(bills[AB]==AB/2&&bills[AB+1]==AB/2)
                                                            {
                                                                buyend(bills[AB],bills[AB+1]);
                                                                goto lable_wait;
                                                            }
                                                            if (bills[AB]>=AB/2&&bills[AB+1]<AB/2)
                                                            {

                                                                switch(buyfull("吸烟区","非吸烟区"))
                                                                {
                                                                    case 1:
                                                                        buysucc(buybillb(bills));
                                                                    goto lable_wait;
                                                                    case 2:
                                                                        buyend(bills[AB],bills[AB+1]);
                                                                    goto lable_wait;
                                                                }

                                                            }
                                                            else
                                                            {
                                                                buysucc(buybilla(bills));
                                                                goto lable_wait;
                                                            }
                                                        break;
                                                        case 2:
                                                            lable_ER2:
                                                            scanbills(bills);
                                                            if(bills[AB]==AB/2&&bills[AB/2+1]==AB/2)
                                                            {
                                                                buyend(bills[AB],bills[AB+1]);
                                                                goto lable_wait;
                                                            }
                                                            if (bills[AB+1]>=AB/2&&bills[AB]<AB/2)
                                                            {
                                                                switch(buyfull("非吸烟区","吸烟区"))
                                                                {
                                                                    case 1:
                                                                        buysucc(buybilla(bills));
                                                                    goto lable_wait;
                                                                    case 2:
                                                                        buyend(bills[AB],bills[AB+1]);
                                                                    goto lable_wait;
                                                                }
                                    
                                                            }
                                                            else
                                                            {
                                                                buysucc(buybillb(bills));
                                                                goto lable_wait;
                                                            }

                                                        goto lable_wait;
                                                    }
                                                break;
                                            case ESC:
                                                Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                            goto lable_wait;
                                            default:
                                            break;
                                        }
                                 }

                                return;
                                case 2:
                                    clrkey();
                                goto lable_ESC2;
                            }

                        break;
                        lable_ESC2:
                        case ESC:
                            Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                            clrkey();
                        goto lable_wait;
                        case LEFT:
                            Down_sbutton(220,350,120,25,2,"确定");
                            Up_sbutton(360,350,120,25,2,"取消");
                            YN_val=1;
                        break;
                        case RIGHT:
                            Up_sbutton(220,350,120,25,2,"确定");
                            Down_sbutton(360,350,120,25,2,"取消");
                            YN_val=2;
                        break;
                        default:
                        break;

                        }
                    }
                break;

                case 3:
                    Draw_swindow(200,100,300,300,"办理机票退换业务");
                    PrintTextxy(220,200,"退票换票业务选择",YELLOW);
                    PrintTextxy(220,240,"取消请按ESC键",RED);
                    PrintTextxy(220+1,240+1,"取消请按ESC键",YELLOW);
                    Down_sbutton(220,350,120,25,2,"退票");
                    Up_sbutton(360,350,120,25,2,"换票");
                    YN_val=1;
                    while(1)
                    {
                        int num,num2;
                        c=Contrkey();
                        switch(c)
                        {
                            case ENTER:
                                switch(YN_val)
                                {
                                    case 1:
                                        clrkey();
                                        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                        lable_rein1:
                                        num=inputbox(1);
                                        if (num==-1)
                                        {
                                            break;
                                        }
                                        if((num==0)||(num>AB))
                                        {
                                            giveerr("输入票号不存在!");
                                            goto lable_rein1;
                                        }
                                        if((checktb(num,bills))==1)
                                        {
                                            giveerr("你输入的票并未售出!");
                                            goto lable_rein1;
                                        }
                                        else
                                        {
                                            bills[num-1]=0;
                                            giveok(num);

                                        }

                                        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                    goto lable_wait;
                                    case 2:
                                        clrkey();
                                        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                        scanbills(bills);
                                        if ((bills[AB]==AB/2)&&(bills[AB+1]==AB/2))
                                        {
                                            hpfull();
                                            break;
                                        }

                                        lable_rein2_1:
                                        num=inputbox(2);
                                        if (num==-1)
                                        {
                                            break;
                                        }
                                        if((num==0)||(num>AB))
                                        {
                                            giveerr("输入票号不存在!");
                                            goto lable_rein2_1;
                                        }
                                        if((checktb(num,bills))==1)
                                        {
                                            giveerr("你输入的票并未售出!");
                                            goto lable_rein2_1;
                                        }
                                        else
                                        {
                                            scanbilla(bills,resbilla);scanbillb(bills,resbillb);
                                            lable_rein2_2:
                                            num2=inputboxhc(resbilla,resbillb);
                                            if (num2==-1)
                                            {
                                                break;
                                            }
                                            if((num2==0)||(num2>AB))
                                            {
                                                giveerr("输入票号不存在!");
                                                goto lable_rein2_2;
                                            }
                                            if (num2==num)
                                            {
                                                giveerr("不能换成同一张票!");
                                                goto lable_rein2_2;
                                            }
                                            if (bills[num2-1]==1)
                                            {
                                                giveerr("此票已售出,无法换得!");
                                                goto lable_rein2_2;
                                            }


                                            if ((num!=num2)&&(bills[num2-1]==0))
                                            {
                                                bills[num-1]=0;bills[num2-1]=1;
                                                huanok(num,num2);

                                            }


                                        }
                                    goto lable_wait;
                                    default:
                                    break;
                                }

                            case ESC:
                                Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                clrkey();
                            goto lable_wait;
                            case LEFT:
                                Down_sbutton(220,350,120,25,2,"退票");
                                Up_sbutton(360,350,120,25,2,"换票");
                                YN_val=1;
                            break;
                            case RIGHT:
                                Up_sbutton(220,350,120,25,2,"退票");
                                Down_sbutton(360,350,120,25,2,"换票");
                                YN_val=2;
                            break;

                            default:
                            break;
            
                         }
                      }

                    while((c=Contrkey())!=ENTER)
                    {
                        if(c==ESC)break;
                    }
                    Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                    clrkey();
                break;

                case 4:
                    Draw_swindow(200,100,300,300,"机票数据清零");
                    Down_sbutton(220,350,120,25,2,"确定");
                    Up_sbutton(360,350,120,25,2,"取消");
                    PrintTextxy(220,200,"此操作将清空机票数据!",YELLOW);
                    PrintTextxy(220,240,"是否确认清除?",RED);
                    PrintTextxy(220+1,240+1,"是否确认清除?",YELLOW);
                    YN_val=1;

                    while(1)
                    {
                        c=Contrkey();
                        switch(c)
                        {
                            case ENTER:
                                switch(YN_val)
                                {
                                    case 1:
                                        clrkey();
                                        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                        clrdata("data",bills);
                                    goto lable_wait;
                                    case 2:
                                        clrkey();
                                        Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                    break;
                                    default:
                                    break;
                                }
            
                
                            case ESC:
                                Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                clrkey();
                            goto lable_wait;
                            case LEFT:
                                Down_sbutton(220,350,120,25,2,"确定");
                                Up_sbutton(360,350,120,25,2,"取消");
                                YN_val=1;
                                clrkey();
                            break;
                            case RIGHT:
                                Up_sbutton(220,350,120,25,2,"确定");
                                Down_sbutton(360,350,120,25,2,"取消");
                                YN_val=2;
                                clrkey();
                            break;
                            default:
                                clrkey();
                            break;

                        }

                    }
                case 5:

                    Draw_swindow(220,120,240,120,"是否确认退出?");
                    Down_sbutton(260,190,50,25,2,"是");
                    Up_sbutton(360,190,50,25,2,"否");
                    PrintTextxy(250,165,"是(Y)",YELLOW);
                    PrintTextxy(250+1,165+1,"是(Y)",RED);
                    PrintTextxy(360,165,"否(N)",YELLOW);
                    PrintTextxy(360+1,165+1,"否(N)",RED);

                    YN_val=1;

                    while(1)
                    {       
                        c=Contrkey();
                        switch(c)
                        {
                            case YES:
                            case yES:
                                clrkey();
                                savedata("data",bills);
                            return;
                            case NO:
                            case nO:
                                Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
                                clrkey();
                            break;
                            case LEFT:
                                Down_sbutton(260,190,50,25,2,"是");
                                Up_sbutton(360,190,50,25,2,"否");
                                YN_val=1;
                            break;
                            case RIGHT:
                                Up_sbutton(260,190,50,25,2,"是");
                                Down_sbutton(360,190,50,25,2,"否");
                                YN_val=2;
                        
                            break;
                            case ENTER:
                                switch(YN_val)
                                {
                                    case 1:
                                        clrkey();
                                        savedata("data",bills);

                                    return;
                                    case 2:
                                        clrkey();
                                    goto lable_wait;
                                }
                                return;
                            case ESC:
                            goto lable_wait;
                            default:
                            break;

                        }

                    }


            }
          break;
          default:clrkey();
        }


    }
    getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
    closegr(); /* 恢复TEXT屏幕模式 */
}

⌨️ 快捷键说明

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