?? flyp.c
字號(hào):
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<string.h>
#include "myinclu\Mychars.h"
#include "myinclu\Myprchar.h"
#include "myinclu\Mydefine.h"
#define AB 10
FILE *fp;
int MaxX,MaxY,Ctr_val,Ctr_old,xxx=0;
/********************************************/
/* */
/* 屏幕圖像函數(shù)列表 */
/* */
/********************************************/
void Init_graph(void); /* BGI初始化 */
void Main_window(void);/*主窗口*/
void Draw_window(int sx,int sy,int ww,int hh,char *str);/*窗口外沿*/
void Draw_swindow(int sx,int sy,int ww,int hh,char *str);/*小窗口*/
void Draw_menu(int x_start,int y_start,int ww,int hh);/*矩形*/
void Down_menu(int x_start,int y_start,int ww,int hh,int deep);/*凹*/
void Up_menu(int x_start,int y_start,int ww,int hh,int deep);/* 凸 */
void Draw_mat(char *mat,int matsize,int x,int y,int color); /*打印字模*/
void Up_button(int butt_lft,int butt_top,int butt_wd,int butt_Ht,int deep,char *str);/*主按鈕彈七*/
void Down_button(int butt_lft,int butt_top,int butt_wd,int butt_Ht,int deep,char *str);/*主按鈕按下*/
void Up_sbutton(int butt_lft,int butt_top,int butt_wd,int butt_Ht,int deep,char *str);/*小按鈕彈起*/
void Down_sbutton(int butt_lft,int butt_top,int butt_wd,int butt_Ht,int deep,char *str);/*小按鈕按下*/
void Butt_Chg(void);/*重畫按鈕狀態(tài)*/
void Clr_scr(int butt_lft,int butt_top,int butt_wd,int butt_Ht);/*清除部分屏幕*/
/********************************************/
/* */
/* 數(shù)據(jù)操作函數(shù)列表 */
/* */
/********************************************/
void scanbills(int *bills); /*檢測(cè)票況*/
int buybilla(int *bills);/*購(gòu)買有煙區(qū)票*/
int buybillb(int *bills);/*購(gòu)買無煙區(qū)票*/
int buysucc(int bnumber);/*購(gòu)買成功提示*/
int buyend(int ba,int bb);/*購(gòu)買結(jié)束提示*/
int buyfull(char *str1,char *str2);/*因滿無法購(gòu)買提示*/
void giveok(int billnum);/*退票成功提示*/
void giveerr(char *tdinfo); /*退票失敗提示*/
int inputbox(int tdflag);/*輸入數(shù)據(jù)窗口*/
int checktb(int billnum,int *bills);/*檢測(cè)被退票*/
void scanbilla(int *bills,char *resbills);/*輸出有煙區(qū)票況*/
void scanbillb(int *bills,char *resbills);/*輸出無煙區(qū)票況*/
void hpfull(void);/*滿票無法換*/
int inputboxhc(char *xiyanqu,char *feixiyan);/*換成數(shù)據(jù)*/
void huanok(int numold,int numnew);/*換成功信息*/
/********************************************/
/* */
/* 文件操作函數(shù)列表 */
/* */
/********************************************/
void loaddata(char *filename,int *bills); /*讀取數(shù)據(jù)文件*/
void savedata(char *filename,int *bills); /*存儲(chǔ)數(shù)據(jù)文件*/
void clrdata(char *filename,int *bills); /*清楚數(shù)據(jù)文件*/
/********************************************/
/* */
/* 其它函數(shù)列表 */
/* */
/********************************************/
void clrkey(void);/*清內(nèi)存按鍵*/
int Contrkey(void);/*返回控制按鍵*/
void Clr_scr(int butt_lft,int butt_top,int butt_wd,int butt_Ht)
{
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(butt_lft,butt_top,butt_lft+butt_wd,butt_top+butt_Ht);
}
void Init_graph(void)
{
int gd=DETECT,gm=0; /* 和gd=VGA,gm=VGAHI是同樣效果 */
registerbgidriver(EGAVGA_driver);/* 注冊(cè)BGI驅(qū)動(dòng)后可以不需要.BGI文件的支持運(yùn)行 */
initgraph(&gd,&gm,"");
MaxX=getmaxx();
MaxY=getmaxy()-xxx;
}
void Main_window(void)
{
int ButWd=80,ButHt=50,ButLft=15,ButTp=35+80,Jg=70;
Draw_window(0+1,0+1,MaxX-1,MaxY-1,"");
Down_menu(5,35,100,MaxY-35-10,1); /*左菜單*/
Down_menu(5+100+10,35,MaxX-115-5,MaxY-45,1);/*右窗體*/
PrintTextxy(MaxX/2-100,8,"飛機(jī)訂票管理系統(tǒng)",RED);
PrintTextxy(MaxX/2-100+1,8+1,"飛機(jī)訂票管理系統(tǒng)",YELLOW);
Up_button(ButLft,ButTp,ButWd,ButHt,2,"機(jī)票查詢");
Up_button(ButLft,ButTp+Jg,ButWd,ButHt,2,"機(jī)票預(yù)定");
Up_button(ButLft,ButTp+Jg*2,ButWd,ButHt,2,"機(jī)票退換");
Up_button(ButLft,ButTp+Jg*3,ButWd,ButHt,2,"系統(tǒng)重置");
Up_button(ButLft,ButTp+Jg*4,ButWd,ButHt,2,"退出系統(tǒng)");
Ctr_val=1;
Bd_1;
}
void Draw_window(int sx,int sy,int ww,int hh,char *str )
{
int TitleH=22;
Draw_menu(sx,sy,ww,hh);
Down_menu(sx+3,sy+3,ww-6,TitleH,1);
setfillstyle(SOLID_FILL,BLUE);
bar(sx+4,sy+4,sx+ww-5,sy+2+TitleH);
setcolor(WHITE);
outtextxy(sx+ww/2-textwidth(str)/2,sy+8,str);
}
void Draw_swindow(int sx,int sy,int ww,int hh,char *str )
{
int TitleH=22;
Clr_scr(sx,sy,ww,hh);
Up_menu(sx,sy,ww,hh,1);
Down_menu(sx+3,sy+3,ww-6,TitleH,1);
Down_menu(sx+3,sy+3+TitleH+2,ww-6,hh-TitleH-5-3,1);
setfillstyle(SOLID_FILL,BLUE);
bar(sx+4,sy+4,sx+ww-5,sy+2+TitleH);
setcolor(WHITE);
PrintTextxy(sx+ww/2-textwidth(str)/1.5-1,sy+8-1,str,GREEN);
PrintTextxy(sx+ww/2-textwidth(str)/1.5,sy+8,str,YELLOW);
}
void Draw_menu(int x_start,int y_start,int ww,int hh) /*矩形*/
{
int i;
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(x_start,y_start+ww,x_start+ww,y_start+hh);
setcolor(WHITE);
rectangle(x_start-1,y_start-1,x_start+ww+1,y_start+hh+1);
Up_menu(x_start,y_start,ww,hh,0);
}
void Up_menu(int x_start,int y_start,int ww,int hh,int deep)
{
int i;
for (i=1;i<=deep;i++)
{
setcolor(WHITE);
line(x_start+i,y_start+i,x_start+ww-i,y_start+i);/*橫*/
line(x_start+i,y_start+i,x_start+i,y_start+hh-i);/*豎*/
setcolor(DARKGRAY);
line(x_start+ww-i,y_start+hh-i,x_start+i,y_start+hh-i);/*橫*/
line(x_start+ww-i,y_start+hh-i,x_start+ww-i,y_start+i);
}
}
void Down_menu(int x_start,int y_start,int ww,int hh,int deep)
{
int i;
for (i=1;i<=deep;i++)
{
setcolor(DARKGRAY);
line(x_start+i,y_start+i,x_start+ww-i,y_start+i);/*橫*/
line(x_start+i,y_start+i,x_start+i,y_start+hh-i);/*豎*/
setcolor(WHITE);
line(x_start+ww-i,y_start+hh-i,x_start+i,y_start+hh-i);/*橫*/
line(x_start+ww-i,y_start+hh-i,x_start+ww-i,y_start+i);
}
}
void Up_button(int butt_lft,int butt_top,int butt_wd,int butt_Ht,int deep,char *str)
{
Clr_scr(butt_lft,butt_top,butt_wd,butt_Ht);
if (strcmp("clr",str)==0)
{
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(butt_lft,butt_top,butt_lft+butt_wd,butt_top+butt_Ht);
return;
}
Up_menu(butt_lft,butt_top,butt_wd,butt_Ht,deep);
PrintTextxy(butt_lft+butt_lft/3,butt_top+butt_Ht/4+2,str,BLUE);
PrintTextxy(butt_lft+butt_lft/3+1,butt_top+butt_Ht/4+2+1,str,YELLOW);
}
void Down_button(int butt_lft,int butt_top,int butt_wd,int butt_Ht,int deep,char *str)
{
Clr_scr(butt_lft,butt_top,butt_wd,butt_Ht);
Down_menu(butt_lft,butt_top,butt_wd,butt_Ht,deep);
PrintTextxy(butt_lft+butt_lft/3+2,butt_top+butt_Ht/4+2+2,str,BLUE);
PrintTextxy(butt_lft+butt_lft/3+1+2,butt_top+butt_Ht/4+2+1+2,str,YELLOW);
}
void Up_sbutton(int butt_lft,int butt_top,int butt_wd,int butt_Ht,int deep,char *str)
{
if (strcmp("clr",str)==0)
{
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(butt_lft,butt_top,butt_lft+butt_wd,butt_top+butt_Ht);
return;
}
Clr_scr(butt_lft,butt_top,butt_wd,butt_Ht);
Up_menu(butt_lft,butt_top,butt_wd,butt_Ht,deep);
PrintTextxy(butt_lft+butt_wd/3,butt_top+butt_Ht/5+2-3,str,BLUE);
PrintTextxy(butt_lft+butt_wd/3+1,butt_top+butt_Ht/5+2+1-3,str,YELLOW);
}
void Down_sbutton(int butt_lft,int butt_top,int butt_wd,int butt_Ht,int deep,char *str)
{
Clr_scr(butt_lft,butt_top,butt_wd,butt_Ht);
Down_menu(butt_lft,butt_top,butt_wd,butt_Ht,deep);
PrintTextxy(butt_lft+butt_wd/3+2,butt_top+butt_Ht/5+2+2-4,str,BLUE);
PrintTextxy(butt_lft+butt_wd/3+1+2,butt_top+butt_Ht/5+2+1+2-4,str,YELLOW);
}
void clrkey()
{
union REGS r;
r.h.ah=0x0c;
intdos(&r,&r);
}
void Butt_Chg(void)
{
int ButWd=80,ButHt=50,ButLft=15,ButTp=35+80,Jg=70;
switch(Ctr_old)
{
case 1:
Bu_1;
break;
case 2:
Bu_2;
break;
case 3:
Bu_3;
break;
case 4:
Bu_4;
break;
case 5:
Bu_5;
break;
}
switch(Ctr_val)
{
case 1:
Bd_1;
break;
case 2:
Bd_2;
break;
case 3:
Bd_3;
break;
case 4:
Bd_4;
break;
case 5:
Bd_5;
break;
}
}
int Contrkey()
{
int prskey;
while(bioskey(1)==0);
prskey=bioskey(0);
prskey=prskey&0xff?prskey&0xff:prskey>>8;
/* printf("%d key\n",prskey);*/
return(prskey);
}
void savedata(char *filename,int *bills)
{
int i;
if((fp=fopen(filename,"w"))==NULL)
{
printf("\n cannot open database.") ;
getch();
exit(0);
}
for (i=0;i<=AB-1;i++)
{
fprintf(fp,"%d ",bills[i]);
}
fclose(fp);
return;
}
void loaddata(char *filename,int *bills)
{
int i;
if((fp=fopen(filename,"r"))==NULL)
{
printf("\n cannot open database.") ;
getch();
exit(0);
}
for (i=0;i<=AB-1;i++)
{
fscanf(fp,"%d\n",&bills[i]);
}
fclose(fp);
return;
}
void clrdata(char *filename,int *bills)
{
int i;
if((fp=fopen(filename,"w"))==NULL)
{
printf("\n cannot open database.") ;
getch();
exit(0);
}
for (i=0;i<=AB-1;i++)
{
bills[i]=0;
fprintf(fp,"%d\n",bills[i]);
}
fclose(fp);
return;
}
void scanbills(int *bills)
{
int i;
bills[AB]=0;bills[AB+1]=0;
for (i=0;i<=AB/2-1;i++)
{
if (bills[i]==1)bills[AB]++;
}
for (i=(AB/2);i<=AB-1;i++)
{
if (bills[i]==1)bills[AB+1]++;
}
}
int buybilla(int *bills)
{
int i;
for (i=0;i<=AB/2-1;i++)
{
if (bills[i]==0)
{
bills[i]=1;
return(i+1);
}
}
}
int buybillb(int *bills)
{
int i;
for (i=AB/2;i<=AB-1;i++)
{
if (bills[i]==0)
{
bills[i]=1;
return(i+1);
}
}
}
int buysucc(int bnumber)
{
char c;
char temp[50];
Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
Draw_swindow(200,100,200,200,"購(gòu)買成功");
if (bnumber<=AB/2) sprintf(temp,"吸煙區(qū)%d座 %d號(hào)機(jī)票",bnumber,bnumber);
if (bnumber>AB/2) sprintf(temp,"非吸煙區(qū)%d座 %d號(hào)機(jī)票",bnumber-AB/2,bnumber);
PrintTextxy(210,150,"您購(gòu)買的是",RED);
PrintTextxy(210,170,temp,RED);
PrintTextxy(211,171,temp,YELLOW);
PrintTextxy(210,210,"下一航班三小時(shí)后起飛",RED);
lable_wait_succ:
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 buyend(int ba,int bb)
{
char c;
Clr_scr(5+100+10+5,35+5,MaxX-115-5-15,MaxY-45-15);
Draw_swindow(200,100,200,200,"結(jié)束");
lable_wait_succ:
PrintTextxy(210,150,"購(gòu)買結(jié)束",RED);
PrintTextxy(210+1,150+1,"購(gòu)買結(jié)束",YELLOW);
if ((ba==AB/2)&&(bb==AB/2))
{
PrintTextxy(210,170,"所有機(jī)票全部售出!",RED);
PrintTextxy(210+1,170+1,"所有機(jī)票全部售出!",YELLOW);
}
PrintTextxy(210,210,"下一航班三小時(shí)后起飛",RED);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -