include typedef struct zuowei { int a;//車座 int b;//車廂 }seat; typedef struct Tmess{//定義一個結構體存儲火車訂票的信息 char tnum8;//火車車次 char time18;//發(fā)車時間 char station18;//出發(fā)站 char station28;//終點站 char tujingstation8;//途經(jīng)站 char time28;//到站時間 char money5;//票價 }tmess; typedef struct in{//定義一個結構體存儲火車座位信息 tmess data;//調(diào)用火車的信息 int reseat;//剩余票 seat seatnum; struct in next;//定義next指針 }in; typedef struct pmess{//定義一個結構體存儲乘客信息 char name10;//姓名 char tel15;//電話 char id20;//身份證 char booknum3;//訂票數(shù)目 char checi8;//車次 }pmess; typedef struct people{//乘客信息 pmess m;//調(diào)用pmess結構體 struct people next;//定義next指針 }people; struct dingdan{ int danhao; char tnum8;//火車車次 char time18;//發(fā)車時間 char station18;//出發(fā)站 char station28;//終點站 char tujingstation8;//途經(jīng)站 char time28;//到站時間 char money5; char name10;//姓名 char tel15;//電話 char id20;//身份證 char booknum3;//訂票數(shù)目 char seat10; char seatnum10; }dingdan100; void end; void admin; void bookin h;people k; void cancel; void chaxuntrainin h; in fangshiin h;char findmess;char numorcity; void print; void passenger; void putoutticketin p; void putticketin h; void widows; int main { forint i=0;i<100;i++ {dingdani.danhao=i+1000; } in h;p; people k;v; int wp; h=inmallocsizeofin; h->next=NULL; k=peoplemallocsizeofpeople; k->next=NULL; p=h; v=k; while1 { system\"cls\"; widows; scanf\"%d\";℘ fflushstdin; system\"cls\"; switchwp { case 1: putticketh;break; case 2: chaxuntrainp;break; case 3: bookp;v;break; case 4: print;break; case 5: cancel;break; default:break; } printf\"\\n請按任何鍵結束\\n\"; getch; } return 0; } void end {//結束頁面函數(shù) puts\"\"; printf\" 謝謝使用\\n\"; } void widows {//初始頁面函數(shù); printf\"\\n\"; printf\" printf\" printf\" ;; ; \\n\" \\n\" \\n\" printf\" \\n\"; printf\" \\n\"; printf\" \\n\"; printf\" \\n\"; printf\" \\n\"; printf\" \\n\"; printf\" \\n\"; printf\" ☆1;輸入車次信息 \\n\"; printf\" ☆2;查詢車次 \\n\"; printf\" ☆3;訂票 \\n\"; printf\" ☆4;訂單查詢 \\n\"; printf\" ☆5;退票 \\n\"; printf\" ☆6;退出系統(tǒng) \\n\"; printf\" \\n\"; printf\"\\n\"; printf\" 請輸入選擇:\"; } void putticketin h {//輸入車次信息 in p;l;s;//定義了三個指針變量 char num8;//定義了數(shù)組 p=h;//p指向尾節(jié)點 l=h->next;//l指針遍歷火車信息 whilep->next { p=p->next; } while1 { printf\"請輸入要添加的火車車次按0退出\\n\"; scanf\"%s\";# fflushstdin; ifstrcmpnum;\"0\"==0 } break; whilel { ifstrcmpl->data.tnum;num==0 {//比較的輸入車次與之前存在車次 printf\"該車次已經(jīng)存在\\n\"; return ; } l=l->next;//l++ } s=in mallocsizeofin; strcpys->data.tnum;num;//復制函數(shù);加入新的車次 printf\"請輸入出發(fā)時間:\\n\"; scanf\"%s\";&s->data.time1; fflushstdin; printf\"請輸入出發(fā)城市:\\n\"; scanf\"%s\";&s->data.station1; fflushstdin; printf\"請輸入到達時間:\\n\"; scanf\"%s\";&s->data.time2; fflushstdin; printf\"請輸入到達城市:\\n\"; scanf\"%s\";&s->data.station2; fflushstdin; printf\"請輸入途徑大站:\\n\"; scanf\"%s\";&s->data.tujingstation; fflushstdin; printf\"請輸入票價:\\n\"; scanf\"%s\";&s->data.money; fflushstdin; s->seatnum.a=1; s->seatnum.b=1; s->reseat=-1; s->next=NULL; p->next=s; p=s; } void putoutticketin p {//打印火車信息 printf\"\\n下面是火車信息\\n\"; printf\"車次:%s\\n\";p->data.tnum; printf\"出發(fā)時間:%s\\n\";p->data.time1; printf\"始發(fā)站:%s\\n\";p->data.station1; printf\"到達時間:%s\\n\";p->data.time2; printf\"終點站:%s\\n\";p->data.station2; printf\"途經(jīng)站:%s\\n\";p->data.tujingstation; printf\"票價:%s\\n\";p->data.money; printf\"剩余票數(shù):%d\";1000-p->reseat; } in fangshiin h;char findmess;char numorcity {//查詢方式 in p; ifstrcmpnumorcity;\"num\"==0 {//按車次查詢 p=h->next; whilep { ifstrcmpp->data.tnum;findmess==0{//查到與車次信息相符的 return p;//返回所查到的信息 } p=p->next; } } ifstrcmpnumorcity ;\"city\"==0{//按城市查詢 p=h->next; whilep{ ifstrcmpp->data.station2;findmess==0{//查到與城市信息相符的 return p;//返回所查到的信息 } p=p->next; } } return 0; } void chaxuntrainin h{//信息查詢 in p; char str110; int sel; ifh->next==NULL{ printf\"沒有任何火車信息\\n\"; return ; } printf\"\\n請選擇查詢方式\\n1.車次查詢 2.城市查詢\\n\"; scanf\"%d\";&sel; fflushstdin; ifsel==1{ printf\"請輸入車次\\n\"; scanf\"%s\";str1; fflushstdin; p=fangshih;str1;\"num\"; ifp{ putoutticketp; } else { printf\"\\n沒有找到\\n\"; } } else ifsel==2{ printf\"請輸入到達城市\(zhòng)\n\"; scanf\"%s\";str1; fflushstdin; p=fangshih;str1;\"city\"; ifp{ putoutticketp; } else { printf\"\\n沒有找到\\n\"; } } } void bookin h;people k{//訂票輸入乘客信息;訂票數(shù) in p;l;//定義兩個in結構體下的指針變量 people v;s;//定義兩個people結構體下的指針變量 int i=0;t=0;wp;i2=1; char str110;str210;//定義兩個數(shù)組分別用來存儲到達城市和車次信息 l=h; v=k; extern int o; whilev->next v=v->next;//v指針遍歷火車信息 printf\"請輸入想要達到的城市\(zhòng)\n\"; scanf\"%s\";&str1; fflushstdin; p=fangshil;str1;\"city\";//按城市搜索的查詢方式 printf\"請輸入想要的車次\\n\"; scanf\"%s\";&str2; fflushstdin; p=fangshil;str2;\"num\";//按車次搜索的查詢方式 ifp{ printf\"\\n沒有找到到達該城市的車次\\n\"; return ; } else { putoutticketp;//調(diào)用outoutticket函數(shù) printf\"是否要訂這個車次<0/1>\\n\"; scanf\"%d\";℘ fflushstdin; ifwp{ s=peoplemallocsizeofpeople; printf\"請輸入姓名:\"; scanf\"%s\";&s->m.name; fflushstdin; printf\"請輸入電話:\"; scanf\"%s\";&s->m.tel; fflushstdin; printf\"請輸入身份證號:\"; scanf\"%s\";&s->m.id; fflushstdin; printf\"請輸入要訂的票數(shù):\"; scanf\"%s\";&s->m.booknum; fflushstdin; s->next=NULL; v->next=s; v=s; strcpys->m.checi;p->data.tnum; p->reseat=p->reseat+intatofs->m.booknum; ifp->seatnum.a<8 { sprintfdingdano.seatnum;\"%d/%d\";p->seatnum.a;p->seatnum.b; p->seatnum.a=p->seatnum.a+1; } else ifp->seatnum.b<8 { sprintfdingdano.seatnum;\"%d/%d\";p->seatnum.a;p->seatnum.b; p->seatnum.b=p->seatnum.b+1; p->seatnum.a=1; } printf\"\\nOK訂票成功\\n\"; strcpydingdano.tnum;p->data.tnum; strcpydingdano.time1;p->data.time1; strcpydingdano.station1;p->data.station1; strcpydingdano.station2;p->data.station2; strcpydingdano.tujingstation;p->data.tujingstation; strcpydingdano.time2;p->data.time2; strcpydingdano.money;p->data.money; strcpydingdano.name;s->m.name; strcpydingdano.tel;s->m.tel; strcpydingdano.id;s->m.id; strcpydingdano.booknum;s->m.booknum; printf\"訂單號為:%d\\n\";dingdano.danhao; printf\"座位號為:%s座位號/車廂號\\n\";dingdano.seatnum; o++; getch; } } } void cancel { int count=0; extern int o; char q5=\"失效\"; int p; int s=0; char passname20; printf\"請輸入乘客姓名:\"; scanf\"%s/n\";passname; forint i=0;i printf\"\\n\"; printf\" 這是訂單號為%d的訂單信息 \\n\";dingdani.danhao; printf\"\\n\"; printf\" 火車車次:%s \\n\";dingdani.tnum; printf\" 發(fā)車時間:%s \\n\";dingdani.time1; printf\" 出發(fā)站:%s \\n\";dingdani.station1; printf\" 終點站:%s \\n\";dingdani.station2; printf\" 途徑站:%s \\n\";dingdani.tujingstation; printf\" 到站時間:%s \\n\";dingdani.time2; printf\" 票價:%s \\n\";dingdani.money; printf\" 姓名:%s \\n\";dingdani.name; printf\" 電話:%s \\n\";dingdani.tel; printf\" 身份證:%s \\n\";dingdani.id; printf\" 訂票數(shù)目:%s \\n\";dingdani.booknum; printf\" 座位號:%s<座位號/車廂號> \\n\";dingdani.seatnum; printf\"\\n\"; printf\"----------------------------------------------------------------------------\\n\"; count++; } } ifcount==0 { printf\"未找到該乘客的訂票信息\\n\"; goto low; } printf\"請輸入要刪除的訂單編號:\"; scanf\"%d\\n\";&p; fors=0;s { strcpydingdans.tnum;q; strcpydingdans.time1;q; strcpydingdans.station1;q; strcpydingdans.station2;q; strcpydingdans.tujingstation;q; strcpydingdans.time2;q; strcpydingdans.money;q; strcpydingdans.name;q; strcpydingdans.tel;q; strcpydingdans.id;q; strcpydingdans.booknum;q; printf\"\\n\"; printf\" 這是訂單號為%d的訂單信息 \\n\";dingdans.danhao; printf\"\\n\"; printf\" 火車車次:%s \\n\";dingdans.tnum; printf\" 發(fā)車時間:%s \\n\";dingdans.time1; printf\" 出發(fā)站:%s \\n\";dingdans.station1; printf\" 終點站:%s \\n\";dingdans.station2; printf\" 途徑站:%s \\n\";dingdans.tujingstation; printf\" 到站時間:%s \\n\";dingdans.time2; printf\" 票價:%s \\n\";dingdans.money; printf\" 姓名:%s \\n\";dingdans.name; printf\" 電話:%s \\n\";dingdans.tel; printf\" 身份證:%s \\n\";dingdans.id; printf\" 訂票數(shù)目:%s \\n\";dingdans.booknum; printf\" 座位號:%s<座位號/車廂號> \\n\";dingdani.seatnum; printf\"\\n\"; printf\"----------------------------------------------------------------------------\\n\"; } } low:; } void admin { int password=1; extern int o; int n; printf\"請輸入管理員密碼:\"; scanf\"%d\\n\";&n; fflushstdin; ifpassword==n { forint i=0;i printf\" 這是訂單號為%d的訂單信息 \\n\";dingdani.danhao; printf\"\\n\"; printf\" 火車車次:%s \\n\";dingdani.tnum; printf\" 發(fā)車時間:%s \\n\";dingdani.time1; printf\" 出發(fā)站:%s \\n\";dingdani.station1; printf\" 終點站:%s \\n\";dingdani.station2; printf\" 途徑站:%s \\n\";dingdani.tujingstation; printf\" 到站時間:%s \\n\";dingdani.time2; printf\" 票價:%s \\n\";dingdani.money; printf\" 姓名:%s \\n\";dingdani.name; printf\" 電話:%s \\n\";dingdani.tel; printf\" 身份證:%s \\n\";dingdani.id; printf\" 訂票數(shù)目:%s \\n\";dingdani.booknum; printf\" 座位號:%s<座位號/車廂號> \\n\";dingdani.seatnum; printf\"\\n\"; printf\"----------------------------------------------------------------------------\\n\"; } } } void passenger { char passname20; printf\"請輸入乘客姓名:\"; scanf\"%s/n\";passname; fflushstdin; forint i=0;i printf\"\\n\"; printf\" 這是訂單號為%d的訂單信息 \\n\";dingdani.danhao; printf\"\\n\"; printf\" 火車車次:%s \\n\";dingdani.tnum; printf\" 發(fā)車時間:%s \\n\";dingdani.time1; printf\" 出發(fā)站:%s \\n\";dingdani.station1; printf\" 終點站:%s \\n\";dingdani.station2; printf\" 途徑站:%s \\n\";dingdani.tujingstation; printf\" 到站時間:%s \\n\";dingdani.time2; printf\" 票價:%s \\n\";dingdani.money; printf\" 姓名:%s \\n\";dingdani.name; printf\" 電話:%s \\n\";dingdani.tel; printf\" 身份證:%s \\n\";dingdani.id; printf\" 訂票數(shù)目:%s \\n\";dingdani.booknum; printf\" 座位號:%s<座位號/車廂號> \\n\";dingdani.seatnum; printf\"\\n\"; printf\"----------------------------------------------------------------------------\\n\"; } } } void print { printf\"\\n\"; printf\" 1:管理員登陸需管理員密碼 printf\" 2:乘客登陸 \\n\" printf\"\\n\"; printf\"請選擇登錄方式:\"; int m; scanf\"%d\\n\";&m; fflushstdin; switchm {case 1:admin;break; case 2:passenger;break; default:break; } } ; ; \\n\" 因篇幅問題不能全部顯示,請點此查看更多更全內(nèi)容
Copyright ? 2019- 91gzw.com 版權所有 湘ICP備2023023988號-2
違法及侵權請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬商天勤律師事務所王興未律師提供法律服務