freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告用二叉樹(shù)實(shí)現(xiàn)家譜管理系統(tǒng)(已修改)

2025-09-20 14:54 本頁(yè)面
 

【正文】 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 題目:用二叉樹(shù)實(shí)現(xiàn)家譜管理系統(tǒng) 姓名:郭志超 學(xué)號(hào): 031010151554042 完成日期: 一、需求分析 ?? 建立輸入文件以存放最刜家譜中各成員的信息。 ?? 成員的信息中均應(yīng)包含以下內(nèi)容: 姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡) 也可附加其它信息、但不是必需的。 ?? 能對(duì)修改后的家譜存盤(pán)以備以后使用。 ?? 能從文件中讀出已有的家譜,形成樹(shù)狀關(guān)系。 ?? 家譜建立好之后,以圖形方式顯示出來(lái)。 ?? 顯示第 n 代所有人的信息。 ?? 按照姓名查詢(xún),輸出成員信息 (包括其本人、父親、孩子的信息)。 ?? 按照出生日期查詢(xún)成員名單。 ?? 輸入兩人姓名,確定其關(guān)系。 ?? 某人添加孩子。 ?? 初除某人(若其還有后代,則一并初除)。 ?? 修改某人信息。 ?? 按出生日期對(duì)家譜中所有人排序。 ?? 打開(kāi)一家譜時(shí),若家譜中某人的生日在打開(kāi)家譜的那一天,應(yīng)給出提示。 二 、概要設(shè)計(jì) 采用二叉樹(shù)迚行家譜的管理、樹(shù)形控件及列表控件迚行家譜的顯示。程序涉及以下三種類(lèi) 型,但基本操作均在“家譜”類(lèi)型中。 1.定義“個(gè)人信息”類(lèi)型: ADT Person{ 數(shù)據(jù)對(duì)象: D={Pj | Pj={姓名、 出生日期、婚否、地址、健在否(如過(guò)世,還應(yīng)有其死亡日 期) }, j=0,1,2,??n,其中 n=0} 數(shù)據(jù)關(guān)系: R={} 基本操作: 無(wú)。 }ADT Person “家譜類(lèi)型文件”類(lèi)型 ADT FamilytreeFile{ 數(shù)據(jù)對(duì)象: D={Aj | Aj 屬于 Person,j=1,2,3??,n 其中 n=1} 數(shù)據(jù)關(guān)系: D 中每個(gè)對(duì)象用換行符隔開(kāi) , R={ Aj,String | Aj 屬于 D,j=1,3,??,n 其中 n=1,String 屬于字符串類(lèi)型,為 Aj 父親姓名 (若 String=1,Aj 無(wú)父親,若 String=Aj 的姓名 ,表示家譜文件結(jié)束 )} 基本操作: 1. 打開(kāi)家譜類(lèi)型文件,并建立兄弟、孩子二叉樹(shù)。 2. 從內(nèi)存中讀取兄弟、孩子二叉樹(shù),并建立家譜類(lèi)型文件。 }ADT FamilytreeFlie 3.定義“家譜”類(lèi)型 ADT Familytree{ 數(shù)據(jù)對(duì)象: D={Aj | Aj 屬于 Person,j=1,2,3,??,n 其中 n=0} 數(shù)據(jù)關(guān)系: V={Aj1,Aj | Aj1,Aj 屬于 D,j=2,3,??n 其中 n=2,且 Aj1 與 Aj 為祖先與 后 代關(guān)系( parent)、后代與祖先關(guān)系 (child)、兄弟之間關(guān)系( sibling) } 基本操作: 1. 顯示某人信息。 2. 修改某人信息。 3. 增加某人孩子。 4. 初除某人。 5. 通過(guò)某人查找其雙親、孩子、兄弟。 }ADT Familytree 三、詳細(xì)設(shè)計(jì) 1.定義“個(gè)人信息”類(lèi)型: struct Info{ //一個(gè)人的有關(guān)信息在內(nèi)存中的存儲(chǔ)結(jié)構(gòu) char name[MAX_CHARNUM]。 //姓名 Date birthday。 //出生日期 int marry。 //婚否 char addr[MAX_CHARNUM]。 //住址 int live。 //健在否 Date deathday。 //死亡日期 }。 “家譜類(lèi)型文件”類(lèi)型 { //一個(gè)人的有關(guān)信息在磁盤(pán)文件中存儲(chǔ)結(jié)構(gòu) char name[MAX_CHARNUM]。 //姓名 int 。 //出生年份 int 。 //出生月份 int 。 //出生日期 int marry。 //婚否 char addr[MAX_CHARNUM]。 //住址 int live。 //健在否 int 。 //死亡年份 int 。 //死亡月份 int 。 //死亡日期 char fathername。 //父親名字 }。 3.定義“家譜”類(lèi)型 struct PersonNode{ //一個(gè)人的信息和與其他人關(guān)系的存儲(chǔ) 結(jié)構(gòu) Info info。 //自己的信息 PersonNode* parent。 //指向父親的指針 PersonNode* child。 //指向孩子的指針 PersonNode* sibling。 //指向兄弟的指針 }*Person。 4. 用結(jié)構(gòu) Date 存儲(chǔ)日期 struct Date{ //年、月、日存儲(chǔ)結(jié)構(gòu) int year。 //年 int month。 //月 int day。 //日 }。 5.用結(jié)構(gòu) QuickSortNode 存儲(chǔ)快速排序數(shù)組值(為快速排序而設(shè)) struct QuickSortNode{ //為以出生日期大小快速排序建立的存儲(chǔ)結(jié)構(gòu) Date birthday。 //出生日期 Person oneself。 //指向自己的指針 }。 6. 根據(jù)家譜的特點(diǎn),采用孩子 兄弟的二叉樹(shù)鏈表表示法(鏈表的基本單位為以結(jié)構(gòu)P ersonNode 表示的結(jié)點(diǎn)),各種操作以 COperationFamilytree 類(lèi)來(lái)實(shí)現(xiàn)。 以下是 CoperationFamilytree 類(lèi)包含的數(shù)據(jù)成員及基本操作 class COperationFamilytree { public: COperationFamilytree()。 //構(gòu)造函數(shù) virtual ~COperationFamilytree()。 //析構(gòu)函數(shù) void NewFamilytree()。 //新建一空家譜 int CreateFamilytree(CString filename)。 //從輸入文件 filename 中讀取數(shù)據(jù)建立家譜 void DestroyFamilytree()。 //初除家譜 int SaveFamilytree(CString filename)。 //保存家譜 void PreOrderTraverse(FILE* fp,Personamp。 T ,void (*Visit)(FILE* fp,Personamp。 T))。 //先序遍歷 (為保存家譜而做 ) void PostOrderTraverse(Personamp。 T,void (*Visit)(Personamp。 T))。 //后序遍歷 (為初除家譜而做 ) void Find(Personamp。 T,Pers
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1