家譜管理系統(tǒng)設(shè)計(jì)報(bào)告材料_第1頁(yè)
家譜管理系統(tǒng)設(shè)計(jì)報(bào)告材料_第2頁(yè)
家譜管理系統(tǒng)設(shè)計(jì)報(bào)告材料_第3頁(yè)
家譜管理系統(tǒng)設(shè)計(jì)報(bào)告材料_第4頁(yè)
家譜管理系統(tǒng)設(shè)計(jì)報(bào)告材料_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)用標(biāo)準(zhǔn)文案目 錄第一章緒論2第二章需求分析 42.1題目42.2設(shè)計(jì)任務(wù)42.3數(shù)據(jù)測(cè)試4第三章概要設(shè)計(jì)53.1 設(shè)計(jì)思想53.2 實(shí)現(xiàn)方法5第四章詳細(xì)設(shè)計(jì)64.1功能構(gòu)想64.2界面設(shè)計(jì)64.3增加成員84.3.1添加子女84.3.2添加配偶84.4修改成員94.4.1修改個(gè)人信息94.4.2修改父母信息94.4.3修改兄弟姐妹的信息 1.04.4.4 修改子女的信息 1.1第五章調(diào)試分析1.2第六章測(cè)試結(jié)果14致謝14參考文獻(xiàn)16附 錄16第一章 緒論目前,很多家庭家譜丟失,家庭一些關(guān)系混亂,為了避免這一問(wèn)題,制定一家譜程序。家譜用于記錄某家族歷代家族成員的情況與關(guān)系,實(shí)現(xiàn)對(duì)一個(gè)家族所有

2、的資料進(jìn)行收集整理。支持對(duì)家譜的存儲(chǔ)、更新、查詢、統(tǒng)計(jì)等操作。并用計(jì)算機(jī)永久儲(chǔ)存家族數(shù)據(jù),方便隨 時(shí)調(diào)用。精彩文檔第二章需求分析2.1題目家譜管理系統(tǒng)2.2設(shè)計(jì)任務(wù)系統(tǒng)總體說(shuō)明:以樹形結(jié)構(gòu)存儲(chǔ)家族信息,只考慮三代(祖父,父親,叔叔,姑姑,自己,兄弟姐妹, 堂兄弟姐妹),只考慮每個(gè)人有 o或者1個(gè)兄弟姐妹的情況。注意每個(gè)結(jié)點(diǎn)結(jié)構(gòu)。統(tǒng)計(jì)統(tǒng)計(jì) 家族成員人數(shù),查詢家族成員輩份。完成功能的詳細(xì)說(shuō)明:1. 輸入家族成員情況,建立樹結(jié)構(gòu)(涉及創(chuàng)建二叉樹);2 統(tǒng)計(jì)家族成員人數(shù)和每一個(gè)家庭成員人數(shù)(涉及樹的遍歷);3 查詢家族成員輩份情況(任意輸入兩個(gè)家庭成員,查詢他們的關(guān)系,父子,祖孫,兄弟,堂兄弟,共同的

3、祖先)。4.選做,考慮每個(gè)人有多個(gè)兄弟姐妹的情況。2.3數(shù)據(jù)測(cè)試測(cè)試的數(shù)據(jù)有:田迎新 陳瑞英 田紫藤 田紫恒 孫超 李美霖第三章概要設(shè)計(jì)3.1 設(shè)計(jì)思想創(chuàng)建一棵樹,存儲(chǔ)家庭關(guān)系,數(shù)據(jù)類型有int Num;char Name20;char Sex;struct TreeNode * NextNode20;struct TreeNode * Pare nt;/記錄這個(gè)人擁有幾個(gè)兒女/記錄這個(gè)人的姓名/標(biāo)示節(jié)點(diǎn)的種類有女(0)男(1)/記錄這個(gè)人的兒女/記錄這個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)3.2 實(shí)現(xiàn)方法完成功能的函數(shù)有void CreatTree(TreeNode *Tree)創(chuàng)建樹void OutPutAII(

4、TreeNode *Tree);遍歷并輸出樹中的內(nèi)容void firstoftxt()寫入文件的開始信息void ofAII(TreeNode *Tree);寫入文件函數(shù)讀取文件的函數(shù)len gth); 查找結(jié)點(diǎn)的函王采單TreeNode * SearchTree(TreeNode *Tree,char n ame,i ntvoid Mai nMen ue(TreeNode *Tree)void SubMenue1(TreeNode* Tree);/ 修改成員信息的菜單void SubMe nu e2(TreeNode *Tree); 添加新成員菜單void Cha nge(TreeNode

5、* Tree);/ 修改成員信息void AddNew(TreeNode * Tree);/ 添加新成員void OutPutMessage(TreeNode * Tree,char name,i nt len gth);/輸出已經(jīng)查找到的 人的信息第四章詳細(xì)設(shè)計(jì)4.1功能構(gòu)想構(gòu)想好總體規(guī)劃之后,便開始設(shè)計(jì)程序中需要用到的各個(gè)功能函數(shù),初步構(gòu)想是要先 實(shí)現(xiàn)最基本的幾項(xiàng)功能,其中數(shù)據(jù)操作的有:增加成員,修改成員資料,刪除成員;數(shù)據(jù)存 取的有:打開家譜,新建家譜,保存家譜;數(shù)據(jù)查詢的有:查看某代信息,按姓名查找,查 看成員關(guān)系,等等。4.2界面設(shè)計(jì)cout<<"nnt*請(qǐng)選擇

6、你的操作-*-"cout<<"nt1:輸入家譜信息建立多叉樹 "cout<<"nt2:在家族中查找某人并輸出他或(她)的相應(yīng)信息-"cout<<"nt3:添加新的成員 "cout<<"nt4:輸出整個(gè)家譜信息cout<<"nt5:修改某個(gè)人的信息cout<<"nt6:家譜信息存入文件cout<<"nt7:讀取家譜信息文件cout<<"nt8:退出整個(gè)程序nt";if(選擇

7、1) CreatTree(TreeNode *Tree); Else if (選擇 2) OutPutMessage(TreeNode * Tree,char name,i nt le ngth);Else if (選擇 3) AddNew(TreeNode * Tree);Else if (選擇 4) OutPutAll(TreeNode *Tree);Else if (選擇 5) Cha nge(TreeNode * Tree);Else if (選擇 6) ofAll(TreeNode *Tree);Else if (選擇 7) ifAll();Elseexit (0);4.3增加成員4

8、.3.1添加子女NewNode=new TreeNode;cout<<"nnt請(qǐng)輸入添加人員姓名:"cin>> NewNode->Name;cout<<"nnt請(qǐng)輸入添加人員性別女 (0)男(1):"cin>> NewNode->Sex;num=Tree->Num;NewNode->NextNode0=new TreeNode;NewNode->NextNode0=NULL;NewNode->Num=0;NewNode->Pare nt=Tree;Tree->

9、NextNode num+1=NewNode;Tree->Num=Tree->Num+1;cout<<"nnt 子女的信息添加成功 14.3.2添加配偶NewNode=new TreeNode;cout<<"nnt請(qǐng)輸入添加人員姓名:"cin>> NewNode->Name;cout<<"nnt請(qǐng)輸入添加人員性別女 (0)男(1):"cin>> NewNode->Sex;NewNode->Pare nt=Tree;Tree->NextNode0=Ne

10、wNode;4.4修改成員4.4.1修改個(gè)人信息cout<<"nnt請(qǐng)輸入修改的姓名(如果不需要修改就輸入'0',然后按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"O")!=O)strcpy(Tree->Name ,n ame);cout<<"nnt是否要修改性別:(如果需要就輸入'1',不需要修改就輸入'0'然后按Enter鍵繼續(xù)):n"cin> >flag;if (flag=1)if(Tree-&g

11、t;Sex='0')Tree->Sex='1'else Tree->Sex='0'請(qǐng)輸入"<<ParentO<<" 要修改的姓名(如果不需要修改就輸入0',然后4.4.2修改父母信息cout<<"nnt按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"O")!=O)strcpy(Tree->Pare nt->Name, name);cout<<"nnt請(qǐng)輸入&

12、quot;<<Parent1<<"要修改的姓名(如果不需要修改就輸入'0',然后按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"0")!=0)strcpy(Tree->Pare nt->NextNode0->Name ,n ame);443修改兄弟姐妹的信息cout<<"nnt 請(qǐng)輸入"<<NewNode->NextNodei->Name<<"修改的姓名(如果不需要修改就輸入&#

13、39;0',然后按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"0")!=0)strcpy(NewNode->NextNodei->Name ,n ame);cout<<"nnt是否要修改性別(如果需要就輸入'1'不需要修改就輸入'0'然后按Enter鍵繼續(xù)):n"cin> >flag;if (flag=1)if(NewNode->NextNodei->Sex='0')NewNode->Next

14、Nodei->Sex='1:else NewNode->NextNodei->Sex='0:444修改子女的信息cout<<"nnt請(qǐng)輸入"<<Tree->NextNodei->Name<<"修改的姓名(如果不需要修改就輸入'0',然后按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"O")!=O)strcpy(Tree->NextNodei->Name, name);cout<&

15、lt;"nnt是否要修改性別(如果需要就輸入'1',不需要修改就輸入'0'然后按Enter鍵繼續(xù)):n"cin> >flag;if (flag=1)if(Tree->NextNodei->Sex='0')Tree->NextNodei->Sex='1'elseTree->NextNodei->Sex='0:第五章 調(diào)試分析1.進(jìn)入系統(tǒng)亠二口一一她C二或一他F樹岀一 § 操-人 量某 你息找US1B的人息序i±諸.,R'八丿冃心背

16、八整 一人家加岀曙齧 ms1234_b_&782. 建立家譜請(qǐng)輸入吐請(qǐng)輸入姓名二田迎新請(qǐng)輸入性別女男“卄1請(qǐng)輸入田迎新的配偶的姓名;陳瑞英請(qǐng)輸入田迎新的子女的數(shù)目:2請(qǐng)輸入田迎新的第1子女的名字二田紫藤請(qǐng)輸入田迎新的第1子女的性別女個(gè))男0 請(qǐng)輸入田紫藤的配偶的姓名:0請(qǐng)輸入田紫藤的子女的數(shù)目:0請(qǐng)輸入田迎新的第2子女的名字:田紫恒請(qǐng)輸入田迎新的第2子女的性別女佃男“沢1 請(qǐng)輸入田紫恒的配偶的姓名二0請(qǐng)輸入田紫恒的子女的數(shù)目:0家譜圖已經(jīng)建立成功3. 查看信息請(qǐng)輸入:<整個(gè)家譜的主要信息如下乙-1*另另田田新書 迎名子子 田姓*名子12 姓書第鼠£豐蠢豐羸子女,箜疊懇鬻

17、!漏子女 En鈕尸鍵繼綾擬作4. 添加成員一十科_請(qǐng)選你的操作一_«M一M1 :添加某個(gè)人的十女的信息-一«-«-M - 一«-«一-«-2 =逐加某個(gè)人配偶的信息-一-* 餐H普3 :追出一 «*f«W«W«* 請(qǐng)輸入曲請(qǐng)輸入那個(gè)人的名字:田紫恒請(qǐng)輸入添加人員姓名:李美霖5. 修改信息請(qǐng)輸人次 請(qǐng)輸入修改.的姓名£如果不需要修改就輸入洱然右按上旗冷鍵繼續(xù)卄是否要修改性別=興果需要就輸人/1' 環(huán)需要修改就領(lǐng);v 01然冶按皿“確M續(xù)=第六章測(cè)試結(jié)果父親姓名 田迎新 母親姓名

18、陳瑞英姐姐田紫藤姐夫?qū)O超 本人田紫恒李美霖感謝孫紅艷老師辛苦教導(dǎo)與教誨,讓我學(xué)到了很多知識(shí),提高了很大的能力。與此同時(shí),也感謝老師為我辛苦驗(yàn)收課設(shè),耐心講解,讓我也受益匪淺。今后,我一定會(huì)努力學(xué)習(xí),用我的實(shí)際行動(dòng)來(lái)回報(bào)家長(zhǎng),感謝我的老師,為學(xué)校爭(zhēng)光, 努力為我們的國(guó)家,貢獻(xiàn)出一份微薄的貢獻(xiàn)!參考文獻(xiàn)1 數(shù)據(jù)結(jié)構(gòu)C +語(yǔ)言版嚴(yán)蔚敏吳偉民編著清華大學(xué)出版社 20112 數(shù)據(jù)庫(kù)數(shù)據(jù)結(jié)構(gòu)軟件工程課程設(shè)計(jì)指導(dǎo)及習(xí)題解答徐志才方賢文劉士喜編北京師范大學(xué)出版社 20113 C+語(yǔ)言程序設(shè)計(jì)何欽銘顏暉主編高等教育出版社2008附 錄#in elude <iostream.h>#in elude &

19、lt;stri ng.h>#in clude<stdio.h>/getchar可以將鍵入的信息存到緩沖區(qū),按Enter鍵將進(jìn)行輸入#in elude <stdlib.h>/system的頭文件,exit的頭文件#in elude <fstream.h>int MATEFLAG=O;typedef struct TreeNode int Num;/記錄這個(gè)人擁有幾個(gè)兒女/記錄這個(gè)人的姓名char Name20;char Sex;/標(biāo)示節(jié)點(diǎn)的種類有女(0)男/記錄這個(gè)人的兒女struct TreeNode * NextNode20;struct TreeN

20、ode * Pare nt;/記錄這個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)創(chuàng)建樹遍歷并輸出樹中的內(nèi)容寫入文件的開始信息寫入文件函數(shù)查找結(jié)點(diǎn)的函數(shù)王采單修改成員信息的菜單TreeNode;void CreatTree(TreeNode *Tree)void OutPutAll(TreeNode *Tree);/-void firstoftxt();/void ofAll(TreeNode *Tree);/讀取文件的函數(shù)TreeNode * SearchTree(TreeNode *Tree,char n ame,i nt le ngth);/void MainMenu e(TreeNode *Tree);/void S

21、ubMe nu e1(TreeNode * Tree);/void SubMe nu e2(TreeNode *Tree); 添加新成員菜單void Cha nge(TreeNode * Tree);/ 修改成員信息void AddNew(TreeNode * Tree);/ 添加新成員void OutPutMessage(TreeNode * Tree,char name,i nt le ngth);/-輸出已經(jīng)查找到的人的信息/主函數(shù)void mai n() TreeNode *Tree;Tree=new TreeNode;Tree->Pare nt =NULL; strcpy(Tr

22、ee->Name,"O");Mai nMen ue(Tree);/添加新的成員void AddNew(TreeNode * Tree) SubMe nu e2(Tree); /輸出副菜單void SubMe nue2(TreeNode *Tree) char c;int num;char n ame20;TreeNode * NewNode;實(shí)用標(biāo)準(zhǔn)文案II.II.while(1)system("cls");cout<<"t"cout<<"nnt*請(qǐng)選擇你 的操作-*cout<<&q

23、uot;nt-*-1:添加某個(gè)人的子女的信息-*-*-*-*cout<<"nt-*-*-*-2:添加某個(gè)人配偶的信息-*-*-*-*-*II.cout<<"nt-*-*-*-3:退出-*-*-*-*-*-*-*-*-*-nt"cout<<"請(qǐng)輸入:"cin»c;switch(c) case '1':cout<<"nnt請(qǐng)輸入那個(gè)人的名字:"cin»n ame;Tree=SearchTree(Tree ,n ame,20);if(Tree=NU

24、LL)cout<<"nnt*該家譜圖中沒有 "<< name<<"這個(gè)人的信息,請(qǐng)確認(rèn)是否輸入錯(cuò)誤*n"break; if(Tree->Pare nt=NULL&&Tree->NextNode0=NULL|Tree->Pare nt!=NULL&&Tr ee->Name!=Tree->Pare nt->NextNode0->Name)偶!";break;if(Tree->Pare nt=NULL&&(Tree-&g

25、t;Num>20|Tree->Num<0)Tree->Num=O;if(MATEFLAG=1)Tree=Tree->Pare nt;NewNode=new TreeNode;cout<<"nnt請(qǐng)輸入添加人員姓名:"cin>> NewNode->Name;cout<<"nnt請(qǐng)輸入添加人員性別女 (0)男(1):"cin>> NewNode->Sex;num=Tree->Num;NewNode->NextNode0=new TreeNode;NewNod

26、e->NextNode0=NULL;NewNode->Num=0;NewNode->Pare nt=Tree;Tree->NextNode num+1=NewNode;Tree->Num=Tree->Num+1;cout<<"nnt 子女的信息添加成功 1break;case '2':精彩文檔實(shí)用標(biāo)準(zhǔn)文案cout<<"nnt請(qǐng)輸入那個(gè)人的名字 :"cin»n ame;Tree=SearchTree(Tree ,n ame,20);if(Tree->Pare nt!=NULL

27、&&strcmp(Tree->Name,Tree->Pare nt->NextNode0->Name)=0|Tree->NextNode0!=NULL)cout<<"nnt已經(jīng)有了配偶"break;if(Tree=NULL)這個(gè)人的信息cout<<"nnt*該家譜圖中沒有"<<n ame<<"請(qǐng)確認(rèn)是否輸入錯(cuò)誤*n"break;NewNode=new TreeNode;cout<<"nnt請(qǐng)輸入添加人員姓名:"

28、cin>> NewNode->Name;cout<<"nnt請(qǐng)輸入添加人員性別女 (0)男(1):"cin>> NewNode->Sex;NewNode->Pare nt=Tree;Tree->NextNode0=NewNode;break;case 3:break;cout<<"nnt 本項(xiàng)服務(wù)到此結(jié)束-II.精彩文檔實(shí)用標(biāo)準(zhǔn)文案case 'n':break;default:cout<<"nnt 對(duì)不起!你的選擇不在服務(wù)范圍之內(nèi)!II.5cout<

29、<"nt 請(qǐng)您再次選擇所需的服務(wù)項(xiàng)! ”;cout<<"nt 謝謝合作!nt"break;if (c=3)break;/修改某個(gè)人的信息void Chan ge(TreeNode * Tree) char n ame20;TreeNode * NewNode;cout<<"nt請(qǐng)輸入你要修改的人的信息:"cin»n ame;NewNode=SearchTree(Tree ,n ame,20);if(NewNode=NULL)入錯(cuò)誤 *n" return; elseSubMe nu el(NewN

30、ode);/輸出副菜單 void SubMe nu e1(TreeNode * Tree) char c;int flag,i;char n ame20;char Pare nt220;TreeNode * NewNode;while(1)system("cls");cout<<"t"II.cout<<"nnt*請(qǐng)選擇你的操作-cout<<"nt-*-1:修改個(gè)人的信息-*-*-*-*-*-*.II.cout<<"nt-*-*-*-2:修改父母的信息-*-*-*-*-*-*.I

31、I.cout<<"nt-*-*-*-3:修改兄弟姐妹的信息-*-*-*-*-*II.cout<<"nt-*-*-*-4:修改子女的信息-*-*-*-*-*-*II.cout<<"nt-*-5:修改配偶的信息-*-*-*-*-*-*.II.cout<<"nt-*-*-*-6:退出-*-*-*-*-*-*-*-*-*-nt"cout<<"請(qǐng)輸入:"cin> >c;switch(c) case '1':cout<<"nnt

32、請(qǐng)輸入修改的姓名(如果不需要修改就輸入'0',然后按Enter 鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"O")!=O)strcpy(Tree->Name, name);cout<<"nnt是否要修改性別:(如果需要就輸入1',不需要修改就輸入'0'然后按Enter鍵繼續(xù)):n"cin> >flag;if (flag=1)if(Tree->Sex='O')Tree->Sex='1:else Tree-&g

33、t;Sex='0'cout<<"nnt個(gè)人信息修改成功!";cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;case 2:精彩文檔實(shí)用標(biāo)準(zhǔn)文案精彩文檔if(Tree->Pare nt=NULL)/判斷是不是頭節(jié)點(diǎn)cout<<"nt是這個(gè)家譜圖里最頂端的人沒有父母信息!"<<e ndl;cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();if

34、 (MATEFLAG=1)break;/判斷是不是入贅或加入此間的 if(Tree->Sex='O') cout<<"nnt她是嫁入此間的所以父母信息不在家譜內(nèi)包括r:括r:cout<<"n按Enter鍵繼續(xù)操作."<<endl;getchar();elsecout<<"nnt他是入贅此間的所以父母信息不在家譜內(nèi)包c(diǎn)out<<"n按Enter鍵繼續(xù)操作."<<endl;getchar();break;if(Tree->Pare nt-&

35、gt;Sex='0') strcpy(ParentO,"母親");strcpy(Parent1,"父親");else strcpy(ParentO,"父親”);strcpy(Parent1,"母親");cout<<"nnt 請(qǐng)輸入"<<ParentO<<"要修改的姓名(如果不需要修改就輸入'0',然后按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"O")!=

36、O)strcpy(Tree->Pare nt->Name, name);cout<<"nnt 請(qǐng)輸入"<<Parent1<<"要修改的姓名(如果不需要修改就輸入'0',然后按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"0")!=0)strcpy(Tree->Pare nt->NextNode0->Name ,n ame);cout<<"nnt 父母 的信息修改成 功"<&l

37、t;e ndl;cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;case 3:NewNode=Tree->Pare nt;節(jié)點(diǎn)cout<<"nt是這個(gè)家譜圖里最頂端的人沒有兄弟姐妹信息!"<<e ndl;cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;if (MATEFLAG=1)/判斷是不是入贅或加入此間的 if(Tree->Sex='O') co

38、ut<<"nnt她是嫁入此間的所以兄弟姐妹信息不在家譜內(nèi)包括r:cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();elsecout<<"nnt他是入贅此間的所以兄弟姐妹信息不在家譜內(nèi)包括r:cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;if(NewNode->Num=1) cout<<"nnt 沒有兄弟姐妹r:cout<<"n 按 Ente

39、r 鍵繼續(xù)操作"<<endl;實(shí)用標(biāo)準(zhǔn)文案getchar();elsebreak; for(i=1;i<=NewNode->Num;i+) if(NewNode->NextNodei->Name!=Tree->Name) cout<<"nnt請(qǐng)輸"<<NewNode->NextNodei->Name<<"修改的姓名(如果不需要修改就輸入按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"0")!=0

40、) strcpy(NewNode->NextNodei->Name ,n ame);cout<<"nnt是否要修改性別(如果需要就輸入修改就輸入'0'然后按Enter鍵繼續(xù)):n"cin> >flag;if (flag=1) if(NewNode->NextNodei->Sex='0')NewNode->NextNodei->Sex='1:else NewNode->NextNodei->Sex='0:入'O',然后'1'不

41、需要cout<<"nnt 兄弟姐妹的信息修改成功"<<e ndl;cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;case '4':if(Tree->Num=O) cout<<"nnt至今還沒有子女!"cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;if (Tree->Parent !=NULL)if(strcmp(T

42、ree->Name,Tree->Parent->NextNode0->Name)=0)/ 如果他是入贅或者是嫁入的就需用配偶節(jié)點(diǎn)完成修改 Tree=Tree->Pare nt;for(i=1;i<=Tree_>Num;i+)cout<<"nnt請(qǐng)輸入"<<Tree->NextNodei->Name<<"修改的姓名(如果不需要修改就輸入'0',然后按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"0&q

43、uot;)!=0)strcpy(Tree->NextNodei->Name, name);cout<<"nnt是否要修改性別(如果需要就輸入'1',不需要修改就輸入'0'然后按Enter鍵繼續(xù)):n"cin> >flag;if (flag=1) if(Tree->NextNodei->Sex='0')Tree->NextNodei->Sex='1:elseTree->NextNodei->Sex='0:cout<<"n

44、nt 子女的信息修改成功"<<e ndl;cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;case '5':if(Tree->Pare nt!=NULL) if(Tree->NextNode0=NULL&&strcmp(Tree->Name,Tree->Pare nt->NextNode0->Name)!=0)cout<<"nnt至今還沒有配偶!";cout<<"n

45、 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break; if(strcmp(Tree->Name,Tree->Pare nt->NextNode0->Name)=0)精彩文檔實(shí)用標(biāo)準(zhǔn)文案修改入然后按cout<<"nnt請(qǐng)輸入cout<<"nnt請(qǐng)輸入"<<Tree->Pare nt->Name<<"的姓名(如果不需要修改就輸入0',然后按Enter鍵繼續(xù)):n"cin»n ame;if(strcmp(

46、 name,"0")!=0)strcpy(Tree->Pare nt->Name, name);elsecout<<"nnt請(qǐng)輸"<<Tree->NextNode0->Name<<"修改的姓名(如果不需要修改就輸入'0',Enter 鍵繼續(xù)):n"cin»n ame;if(strcmp( name,"0")!=0) strcpy(Tree->NextNode0->Name ,n ame);else if(Tree-&g

47、t;NextNode0=NULL)cout<<"nnt至今還沒有配偶!";else"<<Tree->NextNode0->Name<<"修改的姓名(如果不需要修改就輸入'0'然后按精彩文檔Enter 鍵繼續(xù)):n"實(shí)用標(biāo)準(zhǔn)文案cin»n ame;if(strcmp( name,"O")!=O) strcpy(Tree->NextNode0->Name ,n ame);cout<<"nnt 配偶的信息修改成功"

48、<<e ndl;cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;case '6':cout<<"nnt 本項(xiàng)服務(wù)至U此結(jié)束 "break;default:cout<<"nnt 對(duì)不起!你的選擇不在服務(wù)范圍之內(nèi)!"cout<<"nt 請(qǐng)您再次選擇所需的服務(wù)項(xiàng)!"cout<<"nt 謝謝合作!"<<e ndl;cout<<"

49、n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;if (c='6') break;cout<<"nt請(qǐng)輸入姓名:"精彩文檔/輸出主菜單void Mai nMen ue(TreeNode *Tree) char c;char n ame20;while(1) system("cls");cout<<"t"cout<<"nnt*請(qǐng)選擇你的操作-*"cout<<"nt1:輸入家譜信息建立多叉樹 &

50、quot;cout<<"nt2:在家族中查找某人并輸出他或(她)的相應(yīng)信息-"cout<<"nt3:添加新的成員 "cout<<"nt4:輸出整個(gè)家譜信息 "cout<<"nt5:修改某個(gè)人的信息 "cout<<"nt6:家譜信息存入文件"cout<<"nt7:讀取家譜信息文件 "cout<<"nt8:退出整個(gè)程序nt"cout<<"請(qǐng)輸入:"

51、; cin>>c;switch(c)case '1':/輸入家譜信息建立多叉樹TreeNode * NewNode;NewNode=new TreeNode;cin> >Tree->Name;cout«"nt請(qǐng)輸入性別女(0)男:”;cin> >Tree->Sex;Tree->Pare nt=NewNode;Tree->Pare nt=NULL;CreatTree(Tree);cout<<"nt 家譜圖已經(jīng)建立成功 nn"cout<<"n 按 E

52、nter 鍵繼續(xù)操作"<<endl;getchar();break;case '2':/在家族中查找某人并輸出他或(她)的相應(yīng)信息if(strcmp(Tree->Name,"0")=0)cout<<"nt家譜圖的多叉樹尚未建立請(qǐng)先建立樹n"cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break; cout<<"nt請(qǐng)輸入你要查找的人的姓名:"cin»n ame;OutPutMes

53、sage(SearchTree(Tree, name,20), name,20);cout<<"nnt*-*-*-*-*-*-*-*-*-*-nt"cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;case '3':/添加新的成員if(strcmp(Tree->Name,"0")=0)實(shí)用標(biāo)準(zhǔn)文案cout<<"nt*家譜圖的多叉樹尚未建立請(qǐng)先建立樹* n"cout<<"n 按 Ent

54、er 鍵繼續(xù)操作"<<endl;getchar();break;AddNew(Tree);cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl; getchar();break;case '4':/輸出整個(gè)家譜信息if(strcmp(Tree->Name,"O")=O)cout<<"nt*家譜圖的多叉樹尚未建立請(qǐng)先建立樹* n"cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();

55、break;cout<<"nnt整個(gè)家譜的主要信息如下:";OutPutAll(Tree);cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;case '5':/修改某個(gè)人的信息if(strcmp(Tree->Name,"0")=0)cout<<"nt*家譜圖的多叉樹尚未建立請(qǐng)先建立樹*n"cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getcha

56、r();break;Chan ge(Tree);cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;精彩文檔實(shí)用標(biāo)準(zhǔn)文案break;getchar();case '6':/家譜信息存入文件if(strcmp(Tree->Name,"O")=O)cout<<"nt*家譜圖的多叉樹尚未建立請(qǐng)先建立樹* n"II.cout<<"n按Enter鍵繼續(xù)操作"<<endl;getchar();break;firstoftxt();ofAl

57、l(Tree);cout<<"n按Enter鍵繼續(xù)操作"<<endl;getchar();break;case '7':/讀取家譜信息文件ifAll();cout<<"n請(qǐng)按Enter鍵繼續(xù)操作"<<endl;getchar();break;case '8':/退出整個(gè)程序cout<<"nnt本次服務(wù)到此結(jié)束II.cout<<"nt歡迎下次使用II.cout<<"nt謝謝nn"exit(0);brea

58、k;default:cout<<"nnt對(duì)不起!你的選擇不在服務(wù)范圍之精彩文檔實(shí)用標(biāo)準(zhǔn)文案cout<<"nt 請(qǐng)您再次選擇所需的服務(wù)項(xiàng)!”;cout<<"nt 謝謝合作!nt"cout<<"n 按 Enter 鍵繼續(xù)操作"<<endl;getchar();break;創(chuàng)建樹void CreatTree(TreeNode *Node) int i;int flag;TreeNode *NewNode;NewNode=new TreeNode;Node->NextNode0

59、=NewNode;Node->NextNode0=NULL;cout<<"nt請(qǐng)輸入"<<Node->Name<<"的配偶的姓名cin>> NewNode->Name;cout<<"nt請(qǐng)輸入"<<Node->Name<<"的子女的數(shù)目cin>> Node->Num;if(Node->Num)=0&&strcmp(NewNode->Name,"0")=0)retu

60、rn ;if (Node->Sex='0)NewNode->Sex='1:elseNewNode->Sex='0:NewNode->Num=0;NewNode->NextNode0=NULL;Node->NextNode0=NewNode;Node->NextNode0->Pare nt=Node;for(i=1;i<=Node_>Num;i+) NewNode=new TreeNode;cout<<"nt 請(qǐng)輸入"<<Node->Name<<&qu

61、ot;的第"<<i<<" 子女的名字:"cin>> NewNode->Name;cout<<"nt 請(qǐng)輸入"<<Node->Name<<"的第"<<i<<" 子女的性別女(0)男(1):"cin>> NewNode->Sex;NewNode->Num=0;NewNode->Pare nt=Node;Node->NextNodei=NewNode;CreatTree

62、(Node->NextNodei);/遍歷并輸出樹中的內(nèi)容void OutPutAII(TreeNode *Tree) int i, fIag=O;cout<<"nt- * * * * * * * * * "cout<<"nt 姓名:"<<Tree->Name<<" 性別:";if (Tree->Sex='O') flag=1;cout<<" 女"elsecout<<"男"if (!(Tre

63、e->NextNode0)cout<<"nt*至今沒有配偶和子女 *n" return; if(flag=1)cout<<"nt丈夫姓名:"<<Tree->NextNode0->Name;elsecout<<"nt妻子姓名:"<<Tree->NextNode0->Name;for(i=1;i<=Tree_>Num;i+) cout<<"nt 第"<<i<<"個(gè)子女的姓名:"<<Tree->NextNodei->Name<<"性別:"if (Tree->NextNodei->Sex='0')cout<<"女"elsecout<<"男"cout<<"nt"

溫馨提示

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

評(píng)論

0/150

提交評(píng)論