數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)旅游管理系統(tǒng)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)旅游管理系統(tǒng)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)旅游管理系統(tǒng)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)旅游管理系統(tǒng)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)旅游管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 課程設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 學(xué) 號(hào): 姓 名:張燦 指導(dǎo)教師:曹春萍 專 業(yè):計(jì)算機(jī) 完成日期: 目錄 A篇:旅游信息管理系統(tǒng) 、題目要求 1、題目?jī)?nèi)容1 、程序設(shè)計(jì)目標(biāo) 1、題目分析1 2 、功能簡(jiǎn)介2 3 、數(shù)據(jù)結(jié)構(gòu)2 、概要簡(jiǎn)述 2、模塊分析3 四、詳細(xì)設(shè)計(jì) 1、結(jié)構(gòu)體定義3 2 、程序流程圖 5 五、源程序代碼 1、源程序 C+實(shí)現(xiàn)代碼6 六、調(diào)試分析及測(cè)試結(jié)果 1、運(yùn)行結(jié)果截 14 七、附錄 1、補(bǔ)充說明19 八、程序小結(jié) 1、報(bào)告總結(jié)19 B篇:B-樹手工題 一、題目要求 1、題目?jī)?nèi)容20 、運(yùn)行過程 1從空樹插入20 2 、插入完成25 3 、依次刪除要求點(diǎn) 26 4 、最

2、終結(jié)果28 C篇:附加題 、題目 1題目?jī)?nèi)容29 、程序設(shè)計(jì)目標(biāo) 1功能簡(jiǎn)介29 2、數(shù)據(jù)結(jié)構(gòu)29 二、設(shè)計(jì)思路 1、結(jié)構(gòu)體定義29 2 、功能結(jié)構(gòu)圖30 3 、程序流程圖30 四、實(shí)現(xiàn)代碼 1程序代碼32 五、程序調(diào)試以及運(yùn)行結(jié)果 1調(diào)試結(jié)果及截圖 43 六、報(bào)告總結(jié) 1報(bào)告總結(jié)44 A 篇:旅游信息管理系統(tǒng) 一、題目要求 1、題目?jī)?nèi)容 旅游信息管理系統(tǒng) 1)數(shù)據(jù)結(jié)構(gòu) (1)、二叉排序樹加單鏈表 (2)、二叉排序樹 說明:1、用二叉排序樹表示旅游地點(diǎn),用單鏈表表示游客 2、用二叉排序樹表示旅游地點(diǎn)和游客。 2 )、功能 (1)、旅游地點(diǎn)的插入 (2)、游客報(bào)名 建議游客該選其 建議游客改選

3、(3)、當(dāng)某地的旅游人數(shù)少于三個(gè)人時(shí), 取消次旅游地, 他旅游點(diǎn) (4)、當(dāng)某旅游地旅游人數(shù)等于六個(gè)時(shí),不允許在報(bào)名。 其它旅游地。 二、程序設(shè)計(jì)目標(biāo) 1、題目分析 讀題可知,需完成兩方面的編程以對(duì)旅游系統(tǒng)進(jìn)行操作。一方面是旅游公司 管理人員,主要是旅游景點(diǎn)的添加與刪除,對(duì)旅游人員的錄入與刪除,對(duì)旅游人 數(shù)的統(tǒng)計(jì),把游客所需信息打印等等;第二方面是游客對(duì)于旅游地的選、改、刪, 以及個(gè)人信息的輸入、確認(rèn)等等。 2 、功能簡(jiǎn)介 由以上分析可得:本設(shè)計(jì)程序功能主要有: ?、 旅游公司管理人員對(duì)旅游人員和旅游地點(diǎn)的操作,用二叉排序樹管理 旅游地點(diǎn)。主要有地點(diǎn)的變更,插入、刪除、游客的信息存儲(chǔ)及及時(shí)提醒

4、等功能。 其中二叉樹每一個(gè)結(jié)點(diǎn)包括旅游地點(diǎn)的區(qū)號(hào)(area_node)、名稱(area)、該旅 游地的游客人數(shù)(count )、以及一個(gè)指向游客信息結(jié)構(gòu)的指針(list ),還有二 叉樹結(jié)點(diǎn)的左孩子和右孩子指針(Ichild ,rchild )。 ?、游客可以登陸旅游公司界面進(jìn)行報(bào)名、選擇旅游地點(diǎn)和輸入個(gè)人信息。 游客結(jié)構(gòu)采用單鏈表,其中包括單鏈表的初始化、插入、刪除、計(jì)數(shù)功能。其中 每一個(gè)單鏈表結(jié)點(diǎn)包括游客的編號(hào)(id)、姓名(name)性別(sex )、和鏈接鏈 表的指針(next )。 3 、數(shù)據(jù)結(jié)構(gòu) 用到的數(shù)據(jù)結(jié)構(gòu)有:?jiǎn)捂湵恚判蚨鏄?,?shù)組 、概要簡(jiǎn)述 1 、功能結(jié)構(gòu)圖 主菜單 程序

5、員 1 游客q 1 1 1 2、模塊分析 本程序包括三個(gè)模塊: 主程序模塊、二叉排序樹模塊、單鏈表模塊,工作 區(qū)選擇模塊。如圖: *二叉排序樹模塊 主程序模塊 單鏈表模塊 四、詳細(xì)設(shè)計(jì) 1 、結(jié)構(gòu)體定義 1)、鏈表結(jié)點(diǎn)結(jié)構(gòu)體 typedef struct tourist stri ng n ame; int id; stri ng sex; struct tourist *n ext; Trist,*li nklist; 2 )、二叉排序樹結(jié)點(diǎn)結(jié)構(gòu)體 typedef struct Tree_Place int area_code;/ stri ng area;/ int count;/ 旅游地

6、區(qū)號(hào) 旅游地名稱 記錄該旅游地報(bào)名游客人數(shù) struct Tree_Place *lchild,*rchild; 指向游客所在單鏈表的指針 Trist *list;/ Place,*TPlace; 2、程序流程圖 三菜單(1、程序員,2、游客) 入 可 錯(cuò)誤 T 可 f 退 、,超 所 旅. 輸 五、源程序代碼 1、源程序C+實(shí)現(xiàn)代碼 #in clude #i nclude #in clude #i ncludevioma nip using n amespace std; #defi ne MAX 50 #defi ne SIZE 12 typedef struct tourist char

7、 n ameSIZE; int id; char sex5; struct tourist *n ext; Trist,*li nklist; typedef struct Tree_Place int code;/旅游地區(qū)號(hào) char areaSIZE; / 旅游地名 / 記錄該旅游地報(bào) int count; 名游客人數(shù) struct Tree_Place *lchild,*rchild; Trist *list;/指向游客所 在單鏈表的指針 Place,*TPlace; void Search_T(TPlace void Main list(TPIace void Tour_1(TPlac

8、e void Tour_2(TPlace void Destory(TPlace void In it_L(li nklist void In sert_L (TPIace char c; int i=1,co,id; while(t-cou nt6 tr=(li nklist)malloc(sizeof(Trist); tr-id =id; cout輸入姓名,性別: tr- n ametr-sex; tr-n ext=head; head=tr; t-co un t+; coutvv繼續(xù)報(bào)名請(qǐng)按1,按0退出! vvendl; cin i; if(t-co un t=6) coutvv此旅游地

9、人數(shù)已滿,按y選擇其他旅游地,其他鍵退出! c; if(c=y|c=Y)coutvv請(qǐng)重 新 輸入 區(qū) co;Search_T(tree,co); else Tour_2(tree); void Delet_L (li nklist pro=head; while(pro) p=pro ;pro=p-n ext ;free(p); 在二叉排序樹中插 void Insert_T(TPIace else if(p-codecode) In sert_T(tree-lchild,p); else if(p-codetree-code) In sert_T(tree-rchild,p); void S

10、earch_T(TPlace TPIace p; int code; p=tree; while(p else p=p-rchild ; if(!p)cout此 旅 游 地 點(diǎn) 還 未 co un t=6) coutvv此旅游地人數(shù)已滿,按y選擇其他旅游地,其他鍵退出! e ndl;ci nc; if(c=y|c=Y)cout請(qǐng) 重新輸入 區(qū)號(hào) code;Search_T(tree,code);else Tour_2(tree); elsecout可 以 報(bào) 名 list);Tour_2(tree); TPlace Delete_T(TPIace /pare nt指向要?jiǎng)h除的節(jié)點(diǎn)的雙親,p指向

11、要?jiǎng)h除的 節(jié)點(diǎn) p=t; pare nt=NULL; while(p) if(p-code=co) break; pare nt=p; if(p-codeco) p=p-lchild; else p=p-rchild; if(p=NULL)/不存在該樹節(jié)點(diǎn) return t; if(p-lchild=NULL) /無左子樹,右子樹可有可無 if(pare nt=NULL) t=p-rchild; else if(pare nt-lchild=p) pare nt-lchild=p-rchild; else pare nt-rchild=p-rchild; Delet_L (p-list); f

12、ree(p); else /有左子樹,右子樹可有可無 q=p; s=q-lchild; / while(s-rchild) q=s; s=s-rchild; if(q=p) / 其左孩子沒有右子樹 q-lchild=s-lchild; else q-rchild=s-lchild; p-code=s-code; Delet_L (s-list); free(s); return t; void Fun 1(TPIace int n; TPlace p; cout請(qǐng)輸入插入地點(diǎn)個(gè)數(shù):endl; cinn; coutvv依次輸入各個(gè)旅游地點(diǎn)的區(qū)號(hào)和地名:endl; for(i nt i=0;i n

13、 ;i+) p=(TPIace)malloc(sizeof(Place); coutvv請(qǐng)輸入第i+1個(gè)地點(diǎn): p-codep-area ; p-lchild =p-rchild =NULL; p-list=NULL; p-co unt =0; In sert_T(tree,p); coutvv輸入完成,輸入y或者丫繼續(xù)操作,其他鍵退出! cin c; if(c=y|c=Y) Fun 1(tree); else system(cls);Tour_1(tree); void Fun 2(TPlace TPlace p,sMAX; p=tree; while(p|top0) while(p) st

14、op+=p; p=p-lchild; if(top0) p=s-top;coutcodevsetw(10)vv 地 名:areasetw(10) 人數(shù):co un trchild; e ndl; if(tree=NULL)cout 還未錄入旅游地!請(qǐng)稍后查詢! coutvv按任意鍵返回上一級(jí)菜單!0) while(p) stop+=p; p=p-lchild; if(top0) p=s-top; if(p-cou nt3n 1+; if(p-cou nt6; n2+; p=p-rchild; if(x=1)cout 共有n1各旅游景點(diǎn)人數(shù)少于三個(gè)endl;cout 刪除旅游地請(qǐng)輸入D或者d,其

15、他鍵返回菜單! c; if(c=d|c=D)for(i nti=0;i n1;i+) Delete_T(tree,elemi);cout刪 除 完 成! e ndl; system(pause);Tour_1(tree); if(x=2)cout 一共有n2個(gè)旅游景點(diǎn)仍可報(bào)名endl;cout按任 意鍵返回上一級(jí)菜單!e ndl;system(pause);Tour_2(tree); void Fun 4(TPIace TPlace p; li nklist l,pre; p=tree; coutvv輸入要退出旅游地的區(qū)號(hào)和自己的身份證號(hào): coid; while(p else p=p-rch

16、ild ; if(!p)cout此 旅 游 地 點(diǎn) 還 未 存 在! list;pre=l; while(l-id!=id) pre=l; l=l-n ext; pre-next=l-next;free(l);p-count-;cout輸入要報(bào)名 的地點(diǎn) 區(qū)號(hào): co; Search_T(tree,co); void Mai nlist(TPIace cout e ndle ndl; *、 cout 歡迎登陸旅游購(gòu)票系統(tǒng)endl; cout請(qǐng)選擇登錄身份:e ndl; cout1 cout2 cout3 、旅游公司管理人員endl; 、游客e ndl; 、退出程序e ndl; *、 cout

17、int n, key,i=1; cinn; switch( n) case 3: Destory(tree);exit(0); case 1:docout key;i+; while(key!=12345 if(key=12345) Tour_1(tree);else Mai nlist(tree);break; case 2: Tour_2(tree);break; default :cout輸入錯(cuò)誤,請(qǐng)重新 選擇! endl;system(pause); Mai nl ist(tree); void Tour_1(TPlace int n; cout *、 e ndle ndl; cout

18、1 cout2 cout3 cout4 、輸入旅游地點(diǎn)endl; 、查詢各旅游地游客人數(shù)endl; 、顯示不足三人的旅游地endl; 、退出endl; cout *、 e ndle ndl; cinn; switch( n) case 1: Fun 1(tree);break; case 2: Fun 2(tree,1);break; case 3: Fun 3(tree,1);break; case 4: Main list(tree);break; default :cout輸入錯(cuò)誤 請(qǐng)重新輸入! e ndl;system(pause);Tour_1(tree); void Tour_2(

19、TPIace system(cls); int n; cout e ndle ndl; *、 cout1 cout2 cout3 cout4 cout5 、輸入旅游地區(qū)號(hào)endl; 、顯示所有旅游地endl; 、查詢可報(bào)名地endl; 、修改旅游地點(diǎn)endl; 、退出endl; cout *、 cinn; switch( n) case1:cout請(qǐng) 輸 入 區(qū) 號(hào) code;Search_T(tree,code);break; case 2: Fun 2(tree,2);break; case 3: Fun 3(tree,2);break; case 4: Fun 4(tree);break; case 5:Ma in list(tree);break; default:cout輸入錯(cuò)誤, 請(qǐng)重新輸 e ndl;system(pause);Tour_2(tree); /銷毀二叉樹 void Destory(TPlace if(tree coutvcodevvsetw(5)vvtree-areavve ndl; Delet_L (tree-list); free(tree); void mai n() TPlace T=NULL; Mai nlist(T); 六、調(diào)試分析及測(cè)試結(jié)果 1運(yùn)行結(jié)果截圖 七、附

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論