數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-家譜的實現(xiàn)與設(shè)計_畢業(yè)論文.doc

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-家譜的實現(xiàn)與設(shè)計_畢業(yè)論文.doc

ID:14382521

大小:3.54 MB

頁數(shù):23頁

時間:2018-07-28

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-家譜的實現(xiàn)與設(shè)計_畢業(yè)論文.doc_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-家譜的實現(xiàn)與設(shè)計_畢業(yè)論文.doc_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-家譜的實現(xiàn)與設(shè)計_畢業(yè)論文.doc_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-家譜的實現(xiàn)與設(shè)計_畢業(yè)論文.doc_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-家譜的實現(xiàn)與設(shè)計_畢業(yè)論文.doc_第5頁
資源描述:

《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-家譜的實現(xiàn)與設(shè)計_畢業(yè)論文.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學術(shù)論文-天天文庫。

1、課程設(shè)計報告課程設(shè)計名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計系:三系學生姓名:朱強班級:13軟件學號:20130311227成績:指導教師:劉杰開課時間:2014-2015學年一學期設(shè)計題目一:家譜的實現(xiàn)與設(shè)計一、實習目的通過學習,了解并初步掌握設(shè)計、實現(xiàn)較大系統(tǒng)的完整過程,包括系統(tǒng)分析、編碼設(shè)計、編碼集成以及調(diào)試分析,熟練掌握數(shù)據(jù)結(jié)構(gòu)的選擇、設(shè)計、實現(xiàn)、以及操作方法,為進一步的開發(fā)應(yīng)用打好基礎(chǔ)。二、問題描述家譜的設(shè)計主要是實現(xiàn)對家庭成員信息的建立、查找、插入、修改、刪除等功能??伞;竟δ苋缦拢海?)家譜祖先數(shù)據(jù)的錄入(樹的根結(jié)點)。(2)

2、家庭成員的添加:即添加某一人的兒女,兒女的數(shù)目由控制臺端給出,然后輸入相應(yīng)的兒女姓名(此處兒女的姓名不能重名)。(3)家庭成員的修改:可以修改某一成員的姓名。(4)員的查詢:查詢某一成員在家族中的輩分(第幾代),并能查詢此成員的所有子女及這一輩的所有成員。(5)家庭成員的刪除:刪除此成員時,若其有后代,將刪除其所有后代成員。三、需求分析該程序所做的工作是對家族成員的的管理,為家族成員對各代成員的姓名,性別及子女情況的記錄、查詢提供方便。此程序規(guī)定:1.在姓名錄入時,姓名為10個字母以內(nèi)的字符串;性別以M/F表示;2.程序的輸

3、出信息主要為:輸出家族成員在家族中的輩分(第幾代),并能查詢此成員的所有子女及這一輩的所有成員。3.程序的功能主要包括:家譜祖先數(shù)據(jù)的錄入、家庭成員的添加、家庭成員的修改、員的查詢、家庭成員的刪除;四、概要設(shè)計系統(tǒng)用到的數(shù)據(jù)有:charname[MAX];charsex;/intgeneration;1)typedefstructnode{}//定義data存儲結(jié)構(gòu)2)typedefstructft{}//創(chuàng)建結(jié)構(gòu)體3)ft*search(ft*p,charch[])//搜索指針函數(shù)4)ft*parent(ft*p,ft*q

4、,int*flag)//通過parent函數(shù)得到雙親結(jié)點。用flag標志,-1為左孩子,1為右孩子5)intgeneration(ft*p,charch[])//獲得搜索到的成員的代目的返回值6)voidsaves(ft*p,charb[],charc,intd)//建立家譜孩子結(jié)點創(chuàng)建結(jié)點并對l賦值保存7)voidInitTree()//初始化8)voidAdd()//添加9)voidSearch()//查詢10)voidChange()//修改11)voidDelete()//刪除12)intmain()//主函數(shù)各程序

5、模塊之間的調(diào)用關(guān)系:主函數(shù)12)可以調(diào)用7)至11)。一、詳細設(shè)計#include#include#include#include#defineMAX10typedefstructnode{//定義data存儲結(jié)構(gòu)charname[MAX];//姓名charsex;//性別intgeneration;//代目}node;typedefstructft{//創(chuàng)建結(jié)構(gòu)體structnodel;//家譜中直系家屬structft*lchild;//用來指向兄

6、弟structft*rchild;//用來指向孩子}ft;ft*root;//root是結(jié)構(gòu)體ft的指針ft*search(ft*p,charch[])//搜索指針函數(shù){ft*q;if(p==NULL)returnNULL;//沒有家譜,頭指針下為空if(strcmp(p->l.name,ch)==0)returnp;//家譜不為空,頭指針下有這個人if(p->lchild){q=search(p->lchild,ch);//在兄弟中找if(q)returnq;//找到}if(p->rchild){q=search(p->r

7、child,ch);//在孩子中找if(q!=NULL)returnq;}returnNULL;//沒有找到}ft*parent(ft*p,ft*q,int*flag)//通過parent函數(shù)得到雙親結(jié)點。用flag標志,-1為左孩子,1為右孩子{if(p==NULL)returnNULL;//沒有家譜,頭指針下為空if(p->rchild==NULL){*flag=0;returnNULL;}else{if(p->lchild==q){*flag=1;returnp;}else{if(p->rchild==q){*flag

8、=-1;returnp;}else{if(p->lchild!=NULL){parent(p->lchild,q,*&flag);}if(p->rchild!=NULL){parent(p->rchild,q,*&flag);}}}}}intgeneration(ft*p,charch[]

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。