C语言家谱管理程序,课内资源 - 基于C语言实现的家谱管理系统
一、項(xiàng)目簡(jiǎn)介
家譜是一種以表譜形式,記載一個(gè)以血緣關(guān)系為主體的家族世襲繁衍和重要任務(wù)事跡的特殊圖書體裁。家譜是中國(guó)特有的文化遺產(chǎn),是中華民族的三大文獻(xiàn)(國(guó)史,地志,族譜)之一,屬于珍貴的人文資料,對(duì)于歷史學(xué),民俗學(xué),人口學(xué),社會(huì)學(xué)和經(jīng)濟(jì)學(xué)的深入研究,均有其不可替代的獨(dú)特功能。本項(xiàng)目?jī)秾?duì)家譜管理進(jìn)行簡(jiǎn)單的模擬,以實(shí)現(xiàn)查看祖先和子孫個(gè)人信息,插入家族成員,刪除家族成員的功能。
二、項(xiàng)目功能要求
本項(xiàng)目的實(shí)質(zhì)是完成兌家譜成員信息的建立,查找,插入,修改,刪除等功能,可以首先定義家族成員數(shù)據(jù)結(jié)構(gòu),然后將每個(gè)功能作為一個(gè)成員函數(shù)來(lái)完成對(duì)數(shù)據(jù)的操作,最后完成主函數(shù)以驗(yàn)證各個(gè)函數(shù)功能并得到運(yùn)行結(jié)果。
三、具體實(shí)現(xiàn)
3.1 數(shù)據(jù)結(jié)構(gòu):樹、鏈表
四、算法分析
本項(xiàng)目要求構(gòu)造一個(gè)家庭樹,家庭樹需要非常方便地進(jìn)行插入和刪除節(jié)點(diǎn),所以該項(xiàng)目的數(shù)據(jù)結(jié)構(gòu)用鏈表來(lái)實(shí)現(xiàn),鏈表可以靈活地操作,如果使用數(shù)組來(lái)存儲(chǔ)這道題的數(shù)據(jù)會(huì)非常難。
當(dāng)需要添加家庭成員使,先執(zhí)行搜索函數(shù)查找某個(gè)人。找到之后將需要添加的鏈表加在該節(jié)點(diǎn)下方。兄弟節(jié)點(diǎn)連在brother_Next指針后,孩子則連在child后,添加孩子時(shí)需要檢測(cè)孩子指針是否為空,如果不是空就將操作指針移動(dòng)到最后一個(gè)孩子,然后對(duì)brother_Next進(jìn)行操作,如果沒(méi)有孩子,直接將該節(jié)點(diǎn)接在child節(jié)點(diǎn)上。
刪除節(jié)點(diǎn)比較麻煩,需要使用后綴遍歷的方法遍歷該節(jié)點(diǎn)的子樹,然后將所有的子樹全部都刪除掉并將空間釋放掉。
五、程序截圖
開始界面
完善家庭
添加家庭成員
刪除家庭成員
更改家庭成員姓名
查看成員信息
六、程序優(yōu)點(diǎn)這個(gè)程序我自定義地增加了查看成員信息的功能,能夠在輸入姓名之后給出該節(jié)點(diǎn)的信息,包括父節(jié)點(diǎn)、兄弟節(jié)點(diǎn)、第一代子節(jié)點(diǎn)
搜索函數(shù)對(duì)于查找失敗有很好的容錯(cuò)性,不會(huì)因?yàn)椴檎沂?dǎo)致程序崩潰,以上程序運(yùn)行圖已經(jīng)給出相應(yīng)的展示
七、體會(huì)
這個(gè)項(xiàng)目讓我更好地認(rèn)識(shí)了樹這個(gè)數(shù)據(jù)結(jié)構(gòu)。這個(gè)項(xiàng)目中的樹是一種普通的樹,不是二叉樹等特殊的樹。這種樹中每個(gè)節(jié)點(diǎn)可以有任意個(gè)子節(jié)點(diǎn),更加復(fù)雜,特別是在節(jié)點(diǎn)的刪除上。樹是一種非常有用的數(shù)據(jù)結(jié)構(gòu),樹使得很多數(shù)據(jù)有了條理,二分搜索樹等更是給搜索提供了非常方便的方法。
總結(jié)
以上是生活随笔為你收集整理的C语言家谱管理程序,课内资源 - 基于C语言实现的家谱管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎么还贷款 贷款如何还
- 下一篇: 其他手机有机会用鸿蒙,即将发布的荣耀50