📄 main1.c
字号:
{
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;
}
main1()
{
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,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);
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();
lable_xuanqu:
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)
{
int buynum=0;
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:
goto lable_reinbuy_b;
case 2:
buyend(bills[AB],bills[AB+1]);
goto lable_wait;
}
}
else
{
lable_reinbuy_a:
scanbilla(bills,resbilla);scanbillb(bills,resbillb);
buynum=inputboxbuy(resbilla,"NO");
if (buynum==-1)
{
goto lable_xuanqu;
}
if((buynum==0)||(buynum>AB/2))
{
giveerr("本区无此票号!");
goto lable_reinbuy_a;
}
if (bills[buynum-1]==1)
{
giveerr("此票已售出,无法购得!");
goto lable_reinbuy_a;
}
if (bills[buynum-1]==0)
{
bills[buynum-1]=1;
buysucc(buynum);
goto lable_wait;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -