数据结构大作业(家谱管理系统).docVIP

  • 218
  • 0
  • 约7.85千字
  • 约 8页
  • 2016-03-13 发布于安徽
  • 举报
数据结构大作业(家谱管理系统).doc

序號 1 2010-2011學年度第一學期大作業 ? ? 課程名稱: 數據結構 任課教師: 李合龍 作業題目: 家譜管理系統設計與實現 姓  名: 潘應妙 學 號: 201004953013001 專 業: 計算機科學與技術 教學中心: 珠海教學辦 聯繫電話: 0085366694440 ? ? ? ? ? 評審日期__________成績_________評審教師(簽名)__________ 華南理工大學網路教育學院 一、需求分析 1. 建立輸入文件以存放最初家譜中各成員的資訊。 2. 成員的資訊中均應包含以下內容: 姓名、出生地、出生日期、性別、身高、學歷、職業、婚否、地址、健在否、死亡日期(若其已死亡) 3. 能對修改後的家譜存檔以備以後使用。 4. 能從文件中讀出已有的家譜,形成樹狀關係。 5. 家譜建立好之後,以圖形方式顯示出來。 6. 顯示第n代所有人的資訊。 7. 按照姓名查詢,輸出成員資訊(包括其本人、父親、孩子的資訊)。 8. 按照出生日期查詢成員名單。 9. 輸入兩人姓名,確定其關係。 10. 某人添加孩子。 11. 刪除某人(若其還有後代,則一併刪除)。 12. 修改某人資訊。 13. 按出生日期對家譜中所有人排序。 14. 打開一家譜時,若家譜中某人的生日在打開家譜的那一天,應給出提示。 二、概要設計 採用二叉樹進行家譜的管理、樹形控制項及列表控制項進行家譜的顯示。程式涉及以下三種類型,但基本操作均在“家譜”類型中。 1.定義“個人資訊”類型: ADT Person{ 資料物件:D={Pj | Pj={姓名、出生日期、婚否、地址、健在否(如過世,還應有其死亡日期)},j=0,1,2,……n,其中n=0} 資料關係:R={} 基本操作:無。 }ADT Person 2.定義“家譜類型文件”類型ADT FamilytreeFile{ 資料物件:D={Aj | Aj屬於Person,j=1,2,3……,n其中n=1} 資料關係:D中每個物件用換行符隔開, R={ Aj,String | Aj屬於D,j=1,3,……,n其中n=1,String屬於字串類型,爲Aj父親姓名(若String=-1,Aj無父親,若String=Aj的姓名,表示家譜文件結束)} 基本操作: 1.打開家譜類型文件,並建立兄弟、孩子二叉樹。 2.從記憶體中讀取兄弟、孩子二叉樹,並建立家譜類型文件。 }ADT FamilytreeFlie3.定義“家譜”類型 ADT Familytree{ 資料物件:D={Aj | Aj屬於Person,j=1,2,3,……,n其中n=0} 資料關係:V={Aj-1,Aj | Aj-1,Aj屬於D,j=2,3,……n其中n=2,且Aj-1與Aj爲祖先與後代關係(parent)、後代與祖先關係(child)、兄弟之間關係(sibling)} 基本操作: 1.顯示某人資訊。 2.修改某人資訊。 3.增加某人孩子。 4.刪除某人。 5.通過某人查找其雙親、孩子、兄弟。 }ADT Familytree 三、詳細設計 1.定義“個人資訊”類型: struct Info{ //一個人的有關資訊在記憶體中的存儲結構 char name[M

文档评论(0)

1亿VIP精品文档

相关文档