版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、()#include#include#define MAX 100#define N 50typedef struct time / 時(shí)間類型 int x,y,z;/ 分別對(duì)應(yīng)年,月,日TIME;int id;/ 購(gòu)票人證件號(hào)TIME date;購(gòu)票日期CNODE;typedef struct tnode / 車次信息類型 char data;/ 車次編號(hào)struct tnode *lchild,*rchild;CNODE *head;TNODE;void create();/ 按車次建立二叉排序樹(shù)void insert(int );/ 增加新的車次(二叉排序樹(shù)的插入)void del();/
2、 取消車次(二叉排序樹(shù)節(jié)點(diǎn)刪除)void inorder(TNODE *);/ 中序遍歷車次二叉排序樹(shù)(僅顯示車次信息)voidinorder_all(TNODE *);/中序遍歷車次二叉排序樹(shù)(顯示車次及售票信息)voidpreorder(TNODE *);/先序遍歷車次二叉排序樹(shù)(僅顯示車次信息) TNODE *search();/ 按車次編號(hào)搜索CNODE *insert_c(CNODE *);/插入新的售票信息(單張)/CNODE *insert_c_more(CNODE *);/插入新的售票信息(批量)/CNODE *del_c(CNODE *,CNODE *);退票處理(刪除售票信
3、息)/CNODE *search_c(CNODE *,int);股票號(hào)查詢void search_c_id(CNODE *,int);/股購(gòu)票人證件號(hào)搜索(限定某車次)void search_c_id_all(TNODE *,int);/般購(gòu)票人證件號(hào)搜索(所有車次)void search_date(CNODE *,TIME);儂購(gòu)票日期搜索(限定某車次)void search_date_all(TNODE *,TIME);/按購(gòu)票日期搜索(所有車次)void print_c(CNODE *);/輸出售票紀(jì)錄(單張)void print_c_all(CNODE *);/輸出售票紀(jì)錄(批量)TN
4、ODE *root=NULL;void main()int i,func,no,ok;TNODE *t;CNODE *c;TIME d;printf(nnn);for(i=0;i15;i+) printf(=);printf( 列車售票信息管理系統(tǒng));for(i=0;i15;i+) printf(=);printf(n);printf(t TOC o 1-5 h z . 車次信息管理n);printf(t.售票記錄管理n);printf(t.售票記錄查詢n);printf(t.售票記錄一覽n);printf(t.退出系統(tǒng)n);for(i=0;in);for(i=0;iN;i+) printf(
5、=);printf(nt. 增加新的車次);printf(nt.取消車次 );printf(nt.返回上級(jí)菜單n);for(i=0;in);for(i=0;iN;i+) printf(=);printf(nt. 增加新的售票記錄 );printf(nt.退票 );printf(nt.返回上級(jí)菜單n);for(i=0;ihead=insert_c_more(t-head);break;t=search();printf( 需要退票的票號(hào):);scanf(%d,&no);t-head=del_c(t-head,search_c(t-head,no);break;case 3:main();brea
6、k;default:printf(n 錯(cuò)誤 功能號(hào)輸入有誤!請(qǐng)重新輸入!);break;printf(nn 售票記錄查詢n);for(i=0;iN;i+) printf(=);printf(nt TOC o 1-5 h z . 按票號(hào)搜索);printf(nt.按購(gòu)票者證件號(hào)搜索);printf(nt.按購(gòu)票日期搜索);printf(nt.返回上級(jí)菜單n);for(i=0;ihead,no);if(c=NULL)printf(錯(cuò)誤沒(méi)有該票號(hào)的紀(jì)錄!該票還未售出或?yàn)閺U票!自動(dòng)返n.);break;printf(n 請(qǐng)輸入您所要查詢的購(gòu)票者證件號(hào):);scanf(%d,&no);search_c_
7、id_all(root,no);printf( 搜索完畢 ! 自動(dòng)返回上級(jí)菜單n.);break;doprintf(n 請(qǐng)輸入您所要查詢的日期(格式:yy-mm-dd):);scanf(%d-%d-%d,&d.x,&d.y,&d.z);if(d.y0)if(d.y=1|d.y=3|d.y=5|d.y=7|d.y=8|d.y=10|d.y=12)if(d.z0) ok=1;else if(d.z=2)if(d.z0) ok=1;elseif(d.z0) ok=1;else ok=0;if(!ok) printf(n 錯(cuò)誤 日期輸入有誤!請(qǐng)重新輸入!);while(!ok);printf(n 指定
8、車次嗎?(1-是,0-否):);scanf(%d,&ok);if(ok) search_date(search()-head,d);else search_date_all(root,d);break;case 4:main();break;default:printf(n 錯(cuò)誤 功能號(hào)輸入有誤! 自動(dòng)返回上級(jí)菜單n.);break;printf(nn 售票記錄一覽n);for(i=0;iN;i+) printf(=);printf(nt TOC o 1-5 h z . 僅瀏覽車次);printf(nt.指定車次已售票記錄);printf(nt.所有車次已售票記錄);printf(nt.測(cè)試:
9、先序遍歷車次);printf(nt.返回上級(jí)菜單n);for(i=0;ihead);printf(n);break;printf(n+ 所有車次已售票記錄 n);if(root=NULL) printf(錯(cuò)誤無(wú)車次紀(jì)錄!”);elseinorder_all(root);printf(n);break;printf(n+ 測(cè)試:先序遍歷車次n);if(root=NULL) printf(錯(cuò)誤無(wú)車次紀(jì)錄!);elsepreorder(root);printf(n);break;case 5:main();break;default:printf(n 錯(cuò)誤功能號(hào)輸入有誤! 自動(dòng)返回上級(jí)菜單n.);b
10、reak;case 5:exit(0);default:printf(n 錯(cuò)誤 功能號(hào)輸入有誤! 請(qǐng)重新輸入 !);main();voidinorder_all(TNODE *ptr)if(ptr!=NULL)inorder_all(ptr-lchild);printf(%d:n,ptr-data);print_c_all(ptr-head);printf(n);inorder_all(ptr-rchild);void inorder(TNODE *ptr)if(ptr!=NULL)inorder(ptr-lchild);printf(%dt,ptr-data);inorder(ptr-rch
11、ild);void preorder(TNODE *ptr)if(ptr!=NULL)printf(%dt ,ptr-data);preorder(ptr-lchild);preorder(ptr-rchild);void print_c(CNODE *tkt)if(tkt!=NULL)printf(t%dt%dt%d-%d-%dn,tkt-no,tkt-id,tkt-date.x,tkt-date.y,tkt-dat e.z);void print_c_all(CNODE *head)int i=0,j=0;if(head=NULL)printf(n 記錄為空 !n);return;for(
12、i=0;iN;i+) printf(=);printf(nNOt票號(hào)t購(gòu)票者證件號(hào)t購(gòu)票日期 件-月-日)n);for(i=0;inext;printf(n);for(i=0;iN;i+) printf(-);printf(n 總計(jì) %d 條記錄 n,j);for(i=0;iN;i+) printf(=);printf(n);void create()int n,i;int kMAX;printf(n 您所希望增加車次的數(shù)量:);scanf(%d,&n);for(i=0;in;i+)printf( 新增第 %d 列車次 :,i+1);scanf(%d,&ki);for(i=0;idata=m;
13、root-lchild=root-rchild=NULL;root-head=NULL;else p1=root;while(m!=p1-data)if(mdata)&(p1-lchild!=NULL)p1=p1-lchild;else if(mp1-data)&(p1-rchild!=NULL)p1=p1-rchild;else if(mdata)&(p1-lchild=NULL)p2=(TNODE*)malloc(sizeof(TNODE);p2-data=m;p2-lchild=p2-rchild=NULL;p2-head=NULL;p1-lchild=p2;return;else if
14、(mp1-data)&(p1-rchild=NULL)p2=(TNODE*)malloc(sizeof(TNODE);p2-data=m;p2-lchild=p2-rchild=NULL;p2-head=NULL;p1-rchild=p2;return;printf(n錯(cuò)誤未能成功增加車次 d,車次號(hào)d已存在!,m,m);TNODE *search()int key;TNODE *p;p=root;printf(n 輸入您所要查找的車次編號(hào):);scanf(%d,&key);while(p!=NULL&p-data!=key)if(keydata)p=p-lchild;else if(keyp
15、-data)p=p-rchild;if(p=NULL) printf(n 該車次不存在!);return(p);void del()int key;TNODE *p1,*p2,*p3,*temp;p1=p2=root;p3=temp=NULL;printf(n 請(qǐng)輸入您想要取消的車次編號(hào):);scanf(%d,&key);while(p2!=NULL&p2-data!=key)if(keydata)p1=p2;p2=p2-lchild;else if(keyp2-data)p1=p2;p2=p1-rchild;if(p2=NULL)printf(n住昔誤該車 次不存在 !返回上級(jí)菜單n.);r
16、eturn;else if(p2-lchild=NULL&p2-rchild=NULL)if(p1-lchild=p2) p1-lchild=NULL;if(p1-rchild=p2) p1-rchild=NULL;temp=p2;if(root=p2) temp=root;root=NULL;elseif(p2-rchild=NULL)temp=p2-lchild;p2-data=temp-data;p2-lchild=temp-lchild;p2-rchild=temp-rchild;else if(p2-lchild=NULL)temp=p2-rchild;p2-data=temp-da
17、ta;p2-lchild=temp-lchild;p2-rchild=temp-rchild;elsep3=p2;temp=p2-lchild;while(temp-rchild!=NULL)p3=temp;temp=temp-rchild;p2-data=temp-data;if(p3=p2) p3-lchild=temp-lchild;else p3-rchild=temp-lchild;free(temp);printf( 車次 %d 已取消 !nn,key);CNODE *insert_c(CNODE *head) CNODE *k,*p;k=(CNODE *)malloc(sizeo
18、f(CNODE);doprintf(n 車票編號(hào) :);scanf(%d,&k-no);p=search_c(head,k-no);if(p!=NULL) printf(n 錯(cuò)誤 該票已被購(gòu)買!請(qǐng)重新選擇!n);while(p!=NULL);printf( 購(gòu)票者證件號(hào):);scanf(%d,&k-id);printf( 購(gòu)票日期 (格式 :yy-mm-dd):);scanf(%d-%d-%d,&k-date.x,&k-date.y,&k-date.z);k-next=head;head=k;return(head);CNODE *insert_c_more(CNODE *head)int n
19、,i;printf(n 請(qǐng)輸入批量新增售票記錄數(shù):);fflush(stdin);scanf(%d,&n);for(i=0;iid!=id)s=temp;temp=temp-next;print_c(temp);if(temp!=NULL) return(s);else return NULL;void search_c_id(CNODE *head,int id)CNODE *s,*head_s;s=head_s=NULL;if(head=NULL) printf(無(wú)該證件號(hào)紀(jì)錄!n);while(head!=NULL)if(head-id=id)s=(CNODE *)malloc(sizeof(CNODE);s-no=head-no;s-id=head-id;s-date=head-date;s-next=head_s;head_s=s;head=head-next;print_c_all(head_s);printf(n);void search_c_id_all(TNODE *ptr,int id)if(ptr!=NULL)search_c_id_all(ptr-lchild,id);printf(n 車次 :%dn,ptr-data);search_c_id(ptr-he
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版:特許連鎖經(jīng)營(yíng)合同
- 2025年度虛擬現(xiàn)實(shí)娛樂(lè)項(xiàng)目合作協(xié)議范本3篇
- 2024年環(huán)保項(xiàng)目委托合同:廢氣處理設(shè)施建設(shè)與運(yùn)營(yíng)
- 2024版智能語(yǔ)音識(shí)別系統(tǒng)研發(fā)合同
- 2024年私借私還轉(zhuǎn)賬借款協(xié)議
- 2024年度債務(wù)轉(zhuǎn)移及債務(wù)清償監(jiān)督合同范本3篇
- 2025年度智能建筑項(xiàng)目監(jiān)理合同補(bǔ)充協(xié)議書3篇
- 2024年綠色制造生產(chǎn)車間承包與環(huán)保責(zé)任承諾書3篇
- 2024年環(huán)保設(shè)備采購(gòu)與安裝承包合同
- 2025年度櫥柜安裝與售后服務(wù)標(biāo)準(zhǔn)合同范本3篇
- 【A公司人力資源招聘管理問(wèn)題及優(yōu)化建議分析13000字(論文)】
- 鋼結(jié)構(gòu)牛腿計(jì)算
- 泌尿外科內(nèi)鏡診療技術(shù)質(zhì)量保障措施及應(yīng)急預(yù)案
- 華北電力大學(xué)(保定)
- Unity3D游戲開(kāi)發(fā)PPT完整全套教學(xué)課件
- 腎內(nèi)科學(xué)篇病例分析1
- unit5overcomingobstacles公開(kāi)課一等獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件
- 玻璃安裝應(yīng)急預(yù)案
- 五十音圖+あ行+課件【高效備課精研+知識(shí)精講提升】 初中日語(yǔ)人教版第一冊(cè)
- 早爆、拒爆事故預(yù)防與處理
- 七年級(jí)美術(shù)上冊(cè)-向日葵-湘教版優(yōu)秀PPT
評(píng)論
0/150
提交評(píng)論