完整版數(shù)據(jù)結(jié)構(gòu)-家譜管理系統(tǒng)文檔良心出品_第1頁
完整版數(shù)據(jù)結(jié)構(gòu)-家譜管理系統(tǒng)文檔良心出品_第2頁
完整版數(shù)據(jù)結(jié)構(gòu)-家譜管理系統(tǒng)文檔良心出品_第3頁
完整版數(shù)據(jù)結(jié)構(gòu)-家譜管理系統(tǒng)文檔良心出品_第4頁
完整版數(shù)據(jù)結(jié)構(gòu)-家譜管理系統(tǒng)文檔良心出品_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、信息工程學(xué)院課設(shè) 計 報 告工程名稱:家譜查詢系統(tǒng)工程組長:白桂琦工程成員:徐程凱、徐海域、項鴻偉班級名稱:10計科1班專業(yè)名稱:計算機科學(xué)與技術(shù)完成時間:2021年12月1日信息工程學(xué)院制、案例描述-3 -1、總體描述-3 -2、模塊描述-3 -二、設(shè)計思路-3 -三、程序設(shè)計-4 -1、數(shù)據(jù)結(jié)構(gòu)描述 -4 -2、主函數(shù)及其流程圖 -4 -3、源程序-5 -四、調(diào)試與分析-5 -1、主菜單-10 -2、顯小家譜信息-11 -3、顯示家譜中第n代人所有信息 -11 -4、按姓名查找某人并相應(yīng)輸出 -11 -5、按出生日期查找家譜成員信息錯誤!未定義書簽.6、為家譜中成員添加孩子信息 -12 -

2、7、為家譜中成員添加妻子信息錯誤!未定義書簽.8、刪除家譜中成員及其后代信息 錯誤!未定義書簽.9、修改家譜中成員信息 -12 -10、確定家譜中兩個成員關(guān)系 錯誤!未定義書簽.11、按出生年月排序家譜 錯誤!未定義書簽.五、設(shè)計總結(jié)-13 -1、完成情況-13 -2、心得體會-13 -、案例描述1、總體描述家譜治理系統(tǒng)是查詢家譜信息必不可少的一局部,利用家譜治理系統(tǒng)可 以清楚的查詢到家族成員的詳細(xì)信息.該家譜治理系統(tǒng)是通過樹來實現(xiàn)的. 本程序具有插入、查找等功能,可以實現(xiàn)存放家譜中各成員的信息.程序的 操作界面簡潔美觀,易于操作.本程序運用了函數(shù)、循環(huán)、樹等知識來進行 設(shè)計,實現(xiàn)系統(tǒng)和數(shù)據(jù)結(jié)

3、構(gòu)設(shè)計.2、模塊描述1) .輸入文件以存放最初家譜中各成員的信息,成員的信息中均應(yīng)包含以下內(nèi)容:姓名、出生日期、婚否、地址、健在否、死亡日期(假設(shè)其已死亡),也可附加其它信息、但不是必需的.2) .實現(xiàn)數(shù)據(jù)的存盤和讀盤.3) .以圖形方式顯示家譜.4) .顯示第n代所有人的信息.5) .根據(jù)姓名查詢,輸出成員信息(包括其本人、父親、孩子的信息) .6) .根據(jù)出生日期查詢成員名單.7) .輸入兩人姓名,確定其關(guān)系.8) .某成員添加孩子.9) .刪除某成員(假設(shè)其還有后代,那么一并刪除).10) .修改某成員信息.11) .按出生日期對家譜中所有人排序.12) .翻開一家譜時,提示當(dāng)天生日的健

4、在成員.主程序模塊*菜單項選擇擇模塊樹操作模塊圖1模塊調(diào)用示意圖二、設(shè)計思路本程序要求模塊化治理,分成菜單函數(shù)、創(chuàng)立函數(shù)、添加函數(shù)、查找函 數(shù)、限制各個局部從而將程序簡單化出來分析.本程序的主要功能是:創(chuàng)立數(shù)據(jù):創(chuàng)立各相關(guān)數(shù)據(jù),例如創(chuàng)立家譜信息.添加數(shù)據(jù):增加家譜成員孩子 信息.查詢信息:根據(jù)姓名來查詢成員信息,還可以通過輸入出生日期來查詢該家譜信息.退出系統(tǒng):程序編譯結(jié)束后退出系統(tǒng)三、程序設(shè)計1、數(shù)據(jù)結(jié)構(gòu)描述本程序首先定義了結(jié)構(gòu)體,定義了 lc , rc兩個指針域;定義如下:typedef struct BiTNodeint mark;/標(biāo) t己int level;char name50;/

5、 姓名char birthday50;/ 生日char addressMAXN;/ 住址int marriage;/ 婚否true表示結(jié)婚,false 表示沒結(jié)婚int live;/ 建在true表示活著,false 表示過世int sex;/ 性別true表示男,false 表示女char livemassage50;/ 死亡日期如果其已經(jīng)死亡Elemtype data;/struct BiTNode *lc,*rc;BiTNode,*BiTree;2、主函數(shù)及其流程圖圖3家譜治理流程圖圖4創(chuàng)立家譜流程圖3、源程序#include#include#include#include typede

6、f struct pnode (char male10;char female10;int n;struct pnode *fchild,*brother; pnode,*ptree;void creatfamily(ptree ,FILE);void preorder(ptree p);void show(ptree p);int Menu()system(color 1f);system(mode con:cols=76 lines=35);int i;printf(*printf(請選擇:n);printf( printf( printf( printf( printf( printf(

7、 printf( printf( printf( printf( printf( printf( printf( printf( printf(歡迎使用愛新覺羅家族治理系統(tǒng)*坨坨);n);1 .讀取一個家庭關(guān)系n);n);2 .顯示一個家庭關(guān)系n);n);3 .查找成員n);n);4 .添加新成員n);n);5 .修改成員n);n);6 .保存 n);n);7 .退出系統(tǒng)nnn);n);nn);printf(輸入16之間的數(shù)字選擇相應(yīng)功能:); scanf(%d,&i);return i;ptree creatfamily(FILE *fp)if(!feof(fp)ptree p;p=(ptr

8、ee)malloc(sizeof(pnode);char fname10,mname10;int i;fscanf(fp,%s %s %dn, fname,mname,&i);if(strcmp(fname,n)=0) & (strcmp(mname,n)=0) &(i=0)p=NULL; return p;elsestrcpy(p-male,fname); strcpy(p-female,mname);p-n=i;printf(讀取成功 n);p-fchild=creatfamily(fp);p-brother=creatfamily(fp);return p;void PreOrder(p

9、tree p)if(p)show(p);PreOrder(p-fchild);PreOrder(p-brother);void show(ptree p)printf(名字 配偶 第幾代n);printf(%2s %6s %dn,p-male,p-female,p-n);void search(ptree p,char name)if(p)if(strcmp(p-male,name)=0)show(p);getchar();getchar();search(p-fchild,name);search(p-brother,name);void add(ptree p,char name)char

10、 fname10,mname10;int i;if(p)if(strcmp(p-male,name)=0) printf(名字配偶第幾代n);scanf(%s %s %d,fname,mname,&i);p-fchild=(ptree)malloc(sizeof(pnode);strcpy(p-fchild-male,fname);strcpy(p-fchild-female,mname);p-fchild-n=i;p-fchild-fchild=NULL;p-fchild-brother=NULL;add(p-fchild,name);add(p-brother,name);void gai

11、(ptree p,char name)(char fname10,mname10;int i;if(p)(if(strcmp(p-male,name)=0)(printf(名字配偶第幾代n);scanf(%s %s %d,fname,mname,&i);strcpy(p-male,fname);strcpy(p-female,mname);p-n=i;gai(p-fchild,name);gai(p-brother,name);void save(ptree p,FILE *stream)(if(p)(fprintf(stream,%s %s %d,p-male,p-female,p-n);s

12、ave(p-fchild,stream);save(p-brother,stream);else(char out20 = n n 0;fprintf(stream,%sn,out);int main() int status;char name10;ptree p;FILE *fp= fopen(lmx.txt,r+);while(1)status=Menu();switch(status)case 1:p=creatfamily(fp);getchar();getchar();break;case 2:PreOrder(p);getchar();getchar();break;case 3

13、:printf(請輸入搜索的名字n);scanf(%s,name);search(p,name);break;case 4:printf(請輸入要孩子的人n);scanf(%s,name);add(p,name);break;case 5:printf(請輸入要修該的人n);scanf(%s,name);gai(p,name);break;case 6:save(p,fp);getchar();getchar();break;case 7: printf(n感謝使用本系統(tǒng)n);fclose(fp);fclose(fp);exit(0);如果選擇5,那么退出循環(huán)終止程序break;default

14、 :printf(n您選擇有誤n);getchar();四、調(diào)試與分析1、主菜單-N:學(xué)習(xí)瞰據(jù)結(jié)構(gòu)家族治理-白*總部代碼田藕蔓W.JeQm* 歡迎使用愛新覺羅家和盧壬里系統(tǒng)蕤MH.HWKXK.MWQTHt 請選擇*工讓的一個家庭關(guān)系2 .顯示一個家庭關(guān)系3 .查找成員耳添加新成員5 .修改成員6 .保存九退出系統(tǒng)*;看葛茶餐菁胃安胃安署餐薜*薛餐片蕭看著餐菁村黃菁皆加餐寄胃署胃葛觸蕭融著神*荏薜*膂*峰背餐署看黃熱薄*聲總修著看著SB 輸入1R之間的數(shù)字選相應(yīng)功能,.家譜治理系統(tǒng)的主界面2、顯示家譜信息入取取取取 讀、叱功功功功 成讀取家譜信息3、顯示家譜中第n代人所有信息的偶偶2禺3偶2 間

15、黑酣里酣嗪酣無之爾舍假設(shè)1%博赫a后二十室一禧字祖匕匕 言顯示家譜中第n代人所有信息4、按姓名查找某人并相應(yīng)輸出查詢家譜成員信息的界面5、為家譜中成員添加孩子信息數(shù)字選擇相應(yīng)功能,4孩子的配偶第幾代 富察氏41H為家譜中成員添加孩子信息6、修改家譜中成員信息豺41選字代幾4 第荷 偶雨 En-_A1輸歷字歷修改家譜中成員信息五、設(shè)計總結(jié)1、完成情況進程第1次課第2次課第3次課第4次課負(fù)責(zé)人工程方案全體成員總體方案全體成員編寫代碼徐程凱實驗報告徐海域視頻制作白鈕琦整體完善辯論1JL全體成員全體成員2、心得體會白桂琦:從這個工程中,我懂得了代碼編寫水平的提升不是一天兩天的事,而是一個日積月累的過程.在不斷地編寫調(diào)試,是在提出問題解決問題的過程中慢慢 提升起來的.所以,自己決定向編程高手看齊,多編程多提問多思考.在今后的 時間里更加努力地學(xué)習(xí).徐程凱:在這個工程里我做了對家譜治理的系統(tǒng)分析. 剛開始我們從網(wǎng)上下載好 了我們需要的資料,通過取其精華去其糟粕,本來是想把系統(tǒng)整合的很完美,可 是由于我c語言根底不太扎實,未能完成.也向同學(xué)請教,只能做到現(xiàn)在這個地 步.通過這次課程設(shè)計,我對這個樹的操作有了深刻的了解, 對C語言也有了更 深刻的了解.但我們需要更深刻地思考其實質(zhì)是什么.了解實驗所需的根本程序, 并用所學(xué)知識實現(xiàn)它.徐海

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論