# include & ltstring.h & gt
# include & ltconio.h & gt
# include & ltctype.h & gt
# include & ltstdlib.h & gt
# include & ltmalloc.h & gt
# include & ltmath.h & gt//溢出
#定義ok 1
typedef結構Yidingkehu
{//單壹鏈接列表
char name[15];//已訂票的客戶的姓名。
int定票書;//預訂數量
struct Yidingkehu * next 1;//
}Yidingkehu,*鏈接;
typedef結構
{//單鏈團隊
char name[15];//預訂機票的客戶的姓名
int yudingpaoi;//要預訂的數量
struct Weidingkehu * next2//下壹個鏈接節點指針
}Weidingkehu,* Qptr
typedef結構行線
{//創建壹個包含六條信息的結構。
char hangbanhao[15];//航班號-
char feijihao[15];//飛機編號
int feixingriqi//出發時間
int chenkerenshu//座位數量
int yupiao//剩余票數
char中殿齋[15];//落地城市
struct Hangxian * next//指向下壹個鏈接點的指針
struct Yidingkehu *丁壹;//定義壹個指向預訂客戶的頭節點指針。
struct Weidingkehu * yudingqueue
}杭線,* Linklist
linklist init linklist();//01
int insert Linklist(Linklist & amp;head 1);//02
void hbhchaxun();//按航班號查詢
void mddchaxun();//通過目的地查詢
void lurugongneng();//初始化入口函數
void chaxungonnen();//查詢功能
void dingpiagonnen();//預訂功能
void tuipaogonnen();//退款功能
void main()
{
int n;
Do{ //打印主界面
printf(" \ tWelcome to the air passenger booking system \ n ");
printf(" \ t ++++++++++++++++++++++ ++ n ");
printf(" \ t = = & gt;1.輸入函數= = \ n ");
printf(" \ t = = & gt;2.查詢函數= = \ n ");
printf(" \ t = = & gt;3.預訂功能= = \ n ");
printf(" \ t = = & gt;4.退款功能= = \ n ");
printf(" \ t = = & gt;5.exit = = \ n ");
printf(" \ t ++++++++++++++++++++++ ++ n ");
printf(" \ t請選擇:");
scanf("%d ",& ampn);printf(" \ n ");
開關(n)
{
案例1:魯儒功能();//輸入功能
打破;
案例二:chaxungonnen();//查詢功能
打破;
案例三:dingpiagonnen();//預訂功能
打破;
案例四:退樸公嫩();//退款功能
打破;
默認:退出(0);//退出
}
} while(n = = 1 | | n = = 2 | | n = = 3 | | n = = 4);
}
void lurugongneng()///初始化的單鏈表* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。
{
鏈表p;
//int m,n;
如果(!p)退出(溢出);
printf(" \ t請依次輸入下列項目:\ n \ n ");//這裏的輸入是單獨輸入的,避免了隨機賦值的現象。
Printf("航班號\ n ");
獲取(p-& gt;行板號);//這裏的兩個get主要是因為Enter鍵的輸入,第壹個是接收最後壹個Enter。
獲取(p-& gt;行板號);
Printf("飛機編號\ n ");
獲取(p-& gt;費繼浩);
printf(" terminal \ n ");
獲取(p-& gt;中甸寨);
Printf("航班日期\ n ");
scanf("%d ",& ampp->;飛行日氣);
Printf("乘客總數\ n ");
scanf("%d ",& ampp->;chenke renshu);
Printf("剩余票數\ n ");
scanf("%d ",& ampp->;yupiao);
}
void chaxungonnen()/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。
{
int n;
printf(" \ t檢查航空公司信息\ n ");
printf(" \ t ++++++++++++++++++++++ ++ n ");
printf(" \ t = = & gt;1.通過目的地查詢= = \ n ");
printf(" \ t = = & gt;2.按航班號查詢= = \ n ");
printf(" \ t ++++++++++++++++++++++ ++ n ");
printf(" \ t請選擇:");
scanf("%d ",& ampn);
printf(" \ n ");//格式
開關(n)
{
案例1:mddchaxun();
打破;
案例二:hbhchaxun();
打破;
默認:break
}
}
通過目標查詢使mddchaxun()//無效
{
char c[15];
int m;
鏈表p = L;
printf(" \ t請輸入要查詢的目標:");
gets(c);
gets(c);//原因同上
做{
p = p-& gt;接下來;
如果(p)
{
m=strcmpi((*p)。中甸寨,c);//m = 0 if = =;
如果(m==0)
{
printf(" \ t光線信息:\ n ");
printf(" \ t光源號:%s\n ",p-& gt;行板號);
Printf ("\ tAircraft number: %s\n ",p-& gt;費繼浩);
printf(" \ t light time:week % d \ n ",p-& gt;飛行日氣);
printf(" \ t剩余票數:%d\n ",p-& gt;yupiao);
}
}
其他
{//不符合就做。
printf(" \ t抱歉,沒有您要找的目的地:\ n \ n ");m = 0;
}
}while(m!=0);
}
Void hbhchaxun()//通過目的地查詢
{
char c[15];
int m;
鏈表p = L;
printf(" \ t請輸入要查詢的航班號:");
gets(c);gets(c);printf(" \ n ");
做{
p = p-& gt;接下來;
如果(p)
{
m=strcmpi((*p)。hangbanhao,c);//m = 0 if = =;(*p)這裏。而p->;角色是壹樣的。
如果(m==0)
{
printf(" \ t光線信息:\ n ");
printf(" \ t光源號:%s\n ",p-& gt;行板號);
Printf ("\ tAircraft number: %s\n ",p-& gt;費繼浩);
printf(" \ t light time:week % d \ n ",p-& gt;飛行日氣);
printf(" \ t剩余票數:%d\n\n ",p-& gt;yupiao);
}
}
其他
{//不符合就做。
printf(" \ t抱歉,沒有您要找的航班號:\ n ");m = 0;
}
}while(m!=0);
}
void dingbiaogonnen()/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
{
char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
Printf("請輸入終端名稱:");gets(c);printf(" \ n ");
p = L-& gt;接下來;
如果(p) {
務必{//查壹下是否有這個航班。
如果(!p)
{
Printf("抱歉,沒有您要找的航班:\ n \ n ");
goto loop 1;
}
m = strcmpi(p-& gt;中甸寨,c);
如果(m==0)
{
Printf("航班信息:\ n ");
Printf("航班號:%s\n ",p-& gt;行板號);
Printf("飛機編號:%s\n ",p-& gt;費繼浩);
Printf("航班時間:周%d\n ",p-& gt;飛行日氣);
Printf("剩余票:%d\n ",p-& gt;yupiao);}
else p = p-& gt;接下來;
}while(m!=0);
如果(m==0)
{
做{
printf(" \ n請輸入您要預訂的票數:");scanf("%d ",& amp飄);
如果(飄& lt= p->;yupiao)
{
h = p-& gt;丁壹;
如果(h)
{
h 1 = h;
h = h-& gt;next 1;
h =(struct yiding kehu *)malloc(sizeof(yiding kehu));
Printf("請輸入您的姓名:");
獲取(h-& gt;姓名);獲取(h-& gt;姓名);
h-& gt;頂票書=票;
h-& gt;next 1 = h 1-& gt;next 1;
h 1->;next 1 = h;
p->;yupiao = p-& gt;Yu Piao-Piao;
Printf("預訂成功:\ n ");m = 2;
}
}
其他
{
Printf("剩余票:%d\n ",p-& gt;yupiao);
Printf("抱歉,剩余的%d張票不足以完成預訂\n\n ",p-& gt;yupiao);
Printf("要不要重新訂票?\ n ");
Printf("如有需要請輸入1,或按2預約請輸入3:");
scanf("%d ",& ampm);
printf(" \ n ");
if(m==3)轉到loop3
}
} while(m = = 1);
}
}
else if(!p)
{
loop 3:struct Weidingkehu * Q3;
Printf("抱歉,本次航班機票已售完\ n ");
q . front = p-& gt;yudingqueue
If(q.front==q.rear) printf("票沒人訂,要訂嗎?\ n ");
else if(q.front!票已經被預訂了。妳想預訂嗎?\ n ");
Printf("預訂請輸入1或輸入2:");
scanf("%d ",& ampn);
printf(" \ n ");
如果(n==1)
{
Printf("請輸入您的姓名");獲取(Q3-& gt;姓名);獲取(Q3-& gt;姓名);//q3不能指向名稱?
Printf("請輸入訂房號");scanf("%d ",& ampQ3->;玉鼎飄);
Q3->;next2 = NULL
q . rear-& gt;next2 = q3
q.rear = q3
Printf("您已經預訂了!\ n ");
}
}
loop 1:;
}
void tuibaogongnen()/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
{
}
/////////以下是別人的要求///////。
1.這個系統采用包含n個數據的結構數組,每個數據的結構應該包括:出發地、目的航班號、座位號、座位是否預訂、預訂人姓名、預訂人身份證號。
2.該系統顯示這樣壹個菜單:
(1)輸入航班信息。
(2)輸出航班信息
(3)查找航班信息
A.顯示空座位的數量
B.顯示空座位信息
C.顯示預訂座位的信息。
D.出發時間
(4)預約預訂
(5)刪除預訂
(6)退出系統
1.系統成功執行菜單中的每個信息。選項4)和5)將需要額外的輸入,並且它們都允許用戶收回他們的輸入。
2.按路線或目的地查找航班信息。
在兩次運行之間,當該程序被重新打開時,數據被保存在壹個文件中。
開始時,它首先從文件中讀取數據。