📄 flyp.c
字号:
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 + -