一個(gè)簡(jiǎn)單的火車票售票管理系統(tǒng)_第1頁(yè)
一個(gè)簡(jiǎn)單的火車票售票管理系統(tǒng)_第2頁(yè)
一個(gè)簡(jiǎn)單的火車票售票管理系統(tǒng)_第3頁(yè)
一個(gè)簡(jiǎn)單的火車票售票管理系統(tǒng)_第4頁(yè)
一個(gè)簡(jiǎn)單的火車票售票管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論