數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-家譜的實(shí)現(xiàn)與設(shè)計(jì)

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-家譜的實(shí)現(xiàn)與設(shè)計(jì)

ID:25658541

大?。?.54 MB

頁(yè)數(shù):23頁(yè)

時(shí)間:2018-11-21

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

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

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

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

3、一輩的所有成員。3.程序的功能主要包括:家譜祖先數(shù)據(jù)的錄入、家庭成員的添加、家庭成員的修改、員的查詢、家庭成員的刪除;四、概要設(shè)計(jì)系統(tǒng)用到的數(shù)據(jù)有:charname[MAX];charsex;/intgeneration;1)typedefstructnode{}//定義data存儲(chǔ)結(jié)構(gòu)2)typedefstructft{}//創(chuàng)建結(jié)構(gòu)體3)ft*search(ft*p,charch[])//搜索指針函數(shù)4)ft*parent(ft*p,ft*q,int*flag)//通過(guò)parent函數(shù)得到雙親結(jié)點(diǎn)。用flag標(biāo)志,-1為左孩子,1為右孩子5)intgenera

4、tion(ft*p,charch[])//獲得搜索到的成員的代目的返回值6)voidsaves(ft*p,charb[],charc,intd)//建立家譜孩子結(jié)點(diǎn)創(chuàng)建結(jié)點(diǎn)并對(duì)l賦值保存7)voidInitTree()//初始化8)voidAdd()//添加9)voidSearch()//查詢10)voidChange()//修改11)voidDelete()//刪除12)intmain()//主函數(shù)各程序模塊之間的調(diào)用關(guān)系:主函數(shù)12)可以調(diào)用7)至11)。一、詳細(xì)設(shè)計(jì)#include#include#include

5、ing>#include#defineMAX10typedefstructnode{//定義data存儲(chǔ)結(jié)構(gòu)charname[MAX];//姓名charsex;//性別intgeneration;//代目}node;typedefstructft{//創(chuàng)建結(jié)構(gòu)體structnodel;//家譜中直系家屬structft*lchild;//用來(lái)指向兄弟structft*rchild;//用來(lái)指向孩子}ft;ft*root;//root是結(jié)構(gòu)體ft的指針ft*search(ft*p,charch[])//搜索指針函數(shù){ft*q;if(p==NULL

6、)returnNULL;//沒有家譜,頭指針下為空if(strcmp(p->l.name,ch)==0)returnp;//家譜不為空,頭指針下有這個(gè)人if(p->lchild){q=search(p->lchild,ch);//在兄弟中找if(q)returnq;//找到}if(p->rchild){q=search(p->rchild,ch);//在孩子中找if(q!=NULL)returnq;}returnNULL;//沒有找到}ft*parent(ft*p,ft*q,int*flag)//通過(guò)parent函數(shù)得到雙親結(jié)點(diǎn)。用flag標(biāo)志,-1為左孩子,1為

7、右孩子{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=-1;returnp;}else{if(p->lchild!=NULL){parent(p->lchild,q,*&flag);}if(p->rchild!=NULL){parent(p->rchild,q,*&flag);}}}}}intgeneration(ft*p,cha

8、rch[]

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

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

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