實訓總結報告模版_第1頁
實訓總結報告模版_第2頁
實訓總結報告模版_第3頁
實訓總結報告模版_第4頁
實訓總結報告模版_第5頁
已閱讀5頁,還剩69頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.wd.wd.wd.QST青軟實訓學員學習總結班級:軟件113學號:201107257學員:陳昊轉眼間一個學期又將有完畢,我們的實訓課程也就還有一天。差不多兩個周的實訓時間不長,但感觸良多。記得上學期實訓是在軟件園,每天奔波于四方校區和軟件園之間,盡管很累但是學的很多,過的很充實。這學期實訓是在學校實驗樓,由于教室缺少問題,我們每天只上半天課,剩下的半天自己安排。所以很多問題就要自己解決,或者拖到第二天找教師。可以說這兩次實訓經歷都是壓縮時間,曲折不少。但是由于徐美嬌教師很負責,教課很認真仔細,有問必答,所以我們學的都很好。在做工程的過程中,也遇到很多的錯誤,其中有的錯誤到最后解決的時候卻是發

2、現是因為自己對知識掌握的不夠熟練所造成的,在徐教師的耐心教導和同學們的熱心幫助下,使我自身的排錯能力有了很大的提高。在我看來,實訓和平時上課最大的不同就是:自己能有時間獨立地進展編程。這一點很重要。在實訓期間,教師會教給我們解決問題的思路,領著我們整合一遍程序,然后給我們充足的時間獨立思考,解決問題,然后編寫程序。這在很大程度上彌補了自己的缺陷和缺乏,使自己的能力有了不小的進步與提高?,F在很期待下一次實訓,希望還是能由徐教師教我們,也希望實訓環境能比上兩次好,也希望時間稍微加上一點,好讓我們在專業課上有更大的進步。QST青軟實訓學員學習總結班級:軟件113班學號:201107275學員:許高博

3、時間過的好快啊,為期兩個星期的實訓生活即將完畢了,短短的兩個星期讓我們收獲很大,專業知識、編程水平都有很大的提高。剛開場三天的高強度的課程安排讓我們受益匪淺;接下來的上機實訓又讓我們可以穩固了課程。這讓我覺得實習生活充實而有意義。輔導教師配好了環境之后,我們開場了工程的制作,這次工程實訓算是自己小學期間主要完成的工程。最后,自己的努力還是有收獲的,看著電腦上記錄得滿滿的代碼,看著自己的工程最終能夠運行成功,就覺得很有成就感。在本次的實訓中,除了讓我明白工作中需要能力,素質,知識之外,更重要的是學會了如何去完成一個任務,懂得了享受工作。當遇到問題,冷靜,想方法一點一點的排除障礙,到最后獲取成功,

4、一種自信心由然而生,這就是工作的樂趣。有時候也需要虛心請教,從別人的身上真得能學習到不自己沒有的東西,每一次的挫折只能使我更接近成功。除此以外,我還學會了如何更好地與別人溝通,如何更好地去陳述自己的觀點,如何說服別人認同自己的觀點。這次所學知識與實際的應用,理論與實際的相結合,讓我大開眼界。也是對以前所學知識的一個初審吧!這次實習對于我以后學習、找工作也真是受益菲淺,在短短的一個星期中讓我初步從理性回到感性的重新認識,也讓我初步的認識這個社會,對于以后做人所應把握的方向也有所啟發!相信這些珍貴的經歷會成為我今后成功的重要的基石。 我非常感謝徐教師對我們的悉心指導以及劉剛教師對我們的照顧。七、學

5、生實訓成果工程界面學員:孫振1工程界面如下:2工程代碼如下:#include #include #include int MATEFLAG=0;typedef struct TreeNodeint Num; /記錄這個人擁有幾個兒女char Name20; /記錄這個人的姓名char Kind; /標示節點的種類有女G男Bstruct TreeNode * NextNode20; /記錄這個人的兒女struct TreeNode * Parent; /記錄這個節點的父節點TreeNode;void CreatTree(TreeNode *Tree);void OutPutAll(TreeNod

6、e *Tree);TreeNode * SearchTree(TreeNode *Tree,char name,int length);void MainMenue(TreeNode *Tree);void SubMenue1(TreeNode * Tree);void SubMenue2(TreeNode *Tree);void Change(TreeNode * Tree);void AddNew(TreeNode * Tree);void OutPutMessage(TreeNode * Tree,char name,int length);void time()/延時1for(int

7、k=1;k5000000;k+);system(cls);void end()/完畢暫停 for(int j=1;j30;j+)printf(nnnn);if(j%2=1)printf(ttn);printf(ttn);printf(ttn);printf(ttn);printf(tt O(_)O哈! n);printf(tt 歡 迎 使 用 .vcc 家 譜 系 統 ! n);printf(ttn);printf(ttn);printf(ttn);printf(ttn);printf(ttn);printf(ttn);elseprintf(ttn);printf(ttn);printf(tt

8、n);printf(ttn);printf(tt O(_)O哈! n);printf(tt 歡 迎 使 用 KOBE 家 譜 系 統 ! n);printf(ttn);printf(ttn);printf(ttn);printf(ttn);printf(ttn);printf(ttn); if(j!=29) time(); printf(tttPress ENTER to exit); fflush(stdin); getchar(); for(int i=1;i=100;i+) printf(nnnnnnntt);for(int l=1;l=i*0.2;l+)printf();printf(

9、nttttloading);for(int j=1;jParent =NULL;strcpy(Tree-Name,0);end(); MainMenue(Tree);/輸出主菜單void MainMenue(TreeNode *Tree)char c;char name20;while(1)system(cls);printf(t); printf(nnt);printf(ntA:創立家譜n);printf(ntB:在家族中查詢某人的信息n);printf(ntC:添加新的成員n);printf(ntD:輸出整個家族信息n);printf(ntE:修改某個人的信息n);printf(ntF:退

10、出整個程序nt);printf(nnt);c=getchar();switch(c)case A:case a:system(cls);printf(nnt);TreeNode * NewNode;NewNode=(TreeNode *)malloc(sizeof(TreeNode);printf(nt請輸入姓名:nt);scanf(%s,Tree-Name);printf(nt請輸入性別女G男B:nt);getchar();scanf(%c,&(Tree-Kind);Tree-Parent=NewNode;Tree-Parent=NULL;CreatTree(Tree);printf(nt(

11、 _ )不錯嘛!家譜圖已經建設成功nn);printf(nnt-請按Enter鍵繼續操作-);getchar();break;case B:case b:system(cls);printf(nnt);if(strcmp(Tree-Name,0)=0)printf(nt家譜圖的多叉樹尚未建設請先建設樹n);getchar();break;printf(nt請輸入你要查找的人的姓名:nt);scanf(%s,name);OutPutMessage(SearchTree(Tree,name,20),name,20); printf(nnt-卍-卍-卍-卍-卍-卍-卍-卍-卍-卍-nt);getch

12、ar();break;case C:case c:system(cls);printf(nnt);if(strcmp(Tree-Name,0)=0)printf(nt家譜圖的多叉樹尚未建設請先建設樹n);getchar();break;AddNew(Tree);getchar();break;case D:case d:system(cls);printf(nnt);if(strcmp(Tree-Name,0)=0)printf(nt家譜圖的多叉樹尚未建設請先建設樹n);getchar();break;printf(nnt整個家譜的主要信息如下:);OutPutAll(Tree);getcha

13、r();break;case E:case e:system(cls);printf(nnt);if(strcmp(Tree-Name,0)=0)printf(nt家譜圖的多叉樹尚未建設請先建設樹n);getchar();break;Change(Tree);getchar();break;case F:case f:system(cls);printf(nnt); printf(nn-本次服務到此完畢-);printf(nt-歡迎下次使用-);printf(nt-()b-nn);break;case n: break;default: printf(nnt-對不起!你的選擇不在服務范圍之內!

14、-);printf(nt-請您再次選擇所需的服務項!-);printf(nt$_$-謝謝合作!-$_$nt);getchar();break;if (c=F|c=f)break;getchar();/添加新的成員void AddNew(TreeNode * Tree)SubMenue2(Tree);/輸出副菜單void SubMenue2(TreeNode *Tree) char c;int num;char name20;TreeNode * NewNode;getchar();while(1)system(cls);printf(t); printf(nnt -*-請選擇你的操作-*-);

15、printf(nt-*-*-*-A:添加某個人的子女的信息-*-*-*-*-n);printf(nt-*-*-*-B:添加某個人配偶的信息-*-*-*-*-*-n);printf(nt-*-*-*-C:退出-*-*-*-*-*-*-*-*-*-nt);c=getchar();switch(c)case A:case a:system(cls);printf(-*-卍卍卍卍卍卍-*-); printf(nnt請輸入那個人的名字:nt);scanf(%s,name);Tree=SearchTree(Tree,name,20);if(Tree=NULL)printf(nnt*該家譜圖中沒有%s這個人

16、的信息請確認是否輸入錯誤*n,name);break;if(Tree-Parent=NULL&Tree-NextNode0=NULL|Tree-Parent!=NULL&Tree-Name!=Tree-Parent-NextNode0-Name)printf(nnt%s至今還沒有配偶請先添加配偶,Tree-Name);break;if(Tree-Parent=NULL&(Tree-Num20|Tree-NumNum=0;if(MATEFLAG=1) Tree=Tree-Parent;NewNode=(TreeNode *)malloc(sizeof(TreeNode);printf(nnt請輸

17、入添加人員姓名:nt);scanf(%s,NewNode-Name);printf(nnt請輸入添加人員性別女G男B:nt);scanf(%1s,&NewNode-Kind);num=Tree-Num;NewNode-NextNode0=(TreeNode *)malloc(sizeof(TreeNode);NewNode-NextNode0=NULL;NewNode-Num=0;NewNode-Parent=Tree;Tree-NextNodenum+1=NewNode;Tree-Num=Tree-Num+1; printf(nnt-子女的信息添加成功-);break;case B:case

18、 b:system(cls);printf(-*-卍卍卍卍卍卍-*-); printf(nnt請輸入那個人的名字:nt);scanf(%s,name);Tree=SearchTree(Tree,name,20);if(Tree-Parent!=NULL&strcmp(Tree-Name,Tree-Parent-NextNode0-Name)=0|Tree-NextNode0!=NULL)printf(nnt已經有了配偶);break;if(Tree=NULL)printf(nnt*該家譜圖中沒有%s這個人的信息請確認是否輸入錯誤*n,name);break;NewNode=(TreeNode

19、*)malloc(sizeof(TreeNode);printf(nnt請輸入添加人員姓名:nt);scanf(%s,NewNode-Name);printf(nnt請輸入添加人員性別女G男B:nt);scanf(%1s,&NewNode-Kind);NewNode-Parent=Tree;Tree-NextNode0=NewNode;break;case C:case c:system(cls);printf(-*-卍卍卍卍卍卍-*-); printf(nnt-本項服務到此完畢-);break; case n: break;default:system(cls);printf(-*-卍卍卍卍

20、卍卍-*-); printf(nnt-對不起!你的選擇不在服務范圍之內!-);printf(nt-請您再次選擇所需的服務項!-);printf(nt-謝謝合作!-nt);break;if (c=C|c=c)break;printf(nnt-請按Enter鍵繼續操作-);getchar();getchar();/修改某個人的信息void Change(TreeNode * Tree) char name20;TreeNode * NewNode;printf(nt請輸入你要修改的人的信息:nt); scanf(%s,name);NewNode=SearchTree(Tree,name,20);i

21、f(NewNode=NULL) printf(nnt*該家譜圖中沒有%s這個人的信息請確認是否輸入錯誤*n,name);return;else SubMenue1(NewNode);/輸出副菜單void SubMenue1(TreeNode * Tree)char c;int flag,i;char name20;char Parent220;TreeNode * NewNode;getchar();while(1)system(cls);printf(nt-*-請輸入修改的服務選項-*-);printf(nt-*-*-*-A:修改個人的信息-*-*-*-*-*-*-);printf(nt-*

22、-*-*-B:修改父母的信息-*-*-*-*-*-*-);printf(nt-*-*-*-C:修改兄弟姐妹的信息-*-*-*-*-*-);printf(nt-*-*-*-D:修改子女的信息-*-*-*-*-*-*-);printf(nt-*-*-*-E:修改配偶的信息-*-*-*-*-*-*-);printf(nt-*-*-*-F:退出-*-*-*-*-*-*-*-*-*-nt);c=getchar();switch(c)case A:case a:system(cls);printf(t); printf(nnt請輸入修改的姓名:如果不需要修改就輸入0然后按Enter鍵繼續nt);scanf

23、(%s,name);if(strcmp(name,0)!=0) strcpy(Tree-Name,name);printf(nnt是否要修改性別:如果需要就輸入1不需要修改就輸入0然后按Enter鍵繼續nt); scanf(%d,&flag); if (flag=1)if(Tree-Kind=G|Tree-Kind=g)Tree-Kind=B;else Tree-Kind=G;printf(nnt個人信息修改成功);break;case B:case b:system(cls);printf(t);if(Tree-Parent=NULL) /判斷是不是頭節點printf(nt是這個家譜圖里最頂

24、端的人沒有父母信息!,name); break;if (MATEFLAG=1) /判斷是不是入贅或參加此間的if(Tree-Kind=G|Tree-Kind=g) printf(nnt她是嫁入此間的所以父母信息不在家譜內包括);elseprintf(nnt他是入贅此間的所以父母信息不在家譜內包括);break;if(Tree-Parent-Kind=G|Tree-Parent-Kind=g)strcpy(Parent0,母親);strcpy(Parent1,父親);else strcpy(Parent0,父親);strcpy(Parent1,母親);printf(nnt請輸入%s要修改的姓名:

25、如果不需要修改就輸入0然后按Enter鍵繼續nt,Parent0);scanf(%s,name);if(strcmp(name,0)!=0)strcpy(Tree-Parent-Name,name);printf(nnt請輸入%s要修改的姓名:如果不需要修改就輸入0然后按Enter鍵繼續nt,Parent1);scanf(%s,name);if(strcmp(name,0)!=0)strcpy(Tree-Parent-NextNode0-Name,name); printf(nnt-父母的信息修改成功-);break;case C:case c:system(cls);printf(t);Ne

26、wNode=Tree-Parent;if(NewNode=NULL) /判斷是不是頭節點printf(nt是這個家譜圖里最頂端的人沒有兄弟姐妹信息!,name); break;if (MATEFLAG=1) /判斷是不是入贅或參加此間的if(Tree-Kind=G|Tree-Kind=g) printf(nnt她是嫁入此間的所以兄弟姐妹信息不在家譜內包括);elseprintf(nnt他是入贅此間的所以兄弟姐妹信息不在家譜內包括);break;if(NewNode-Num=1)printf(nnt沒有兄弟姐妹);break;elsefor(i=1;iNum;i+)if(NewNode-Next

27、Nodei-Name!=Tree-Name)printf(nnt請輸入%s修改的姓名:如果不需要修改就輸入0然后按Enter鍵繼續nt,NewNode-NextNodei-Name);scanf(%s,name);if(strcmp(name,0)!=0)strcpy(NewNode-NextNodei-Name,name);printf(nnt是否要修改性別:如果需要就輸入1不需要修改就輸入0然后按Enter鍵繼續nt);scanf(%d,&flag);if (flag=1)if(NewNode-NextNodei-Kind=G|NewNode-NextNodei-Kind=g)NewNod

28、e-NextNodei-Kind=B;else NewNode-NextNodei-Kind=G; printf(nnt-兄弟姐妹的信息修改成功-);break;case D:case d:system(cls);printf(t);if(Tree-Num=0)printf(nnt至今還沒有子女);break;if (Tree-Parent !=NULL)if (strcmp(Tree-Name,Tree-Parent-NextNode0-Name)=0) /如果他是入贅或者是嫁入的就需用配偶節點完成修改Tree=Tree-Parent;for(i=1;iNum;i+)printf(nnt請輸

29、入%s修改的姓名:如果不需要修改就輸入0然后按Enter鍵繼續nt,Tree-NextNodei-Name);scanf(%s,name);if(strcmp(name,0)!=0)strcpy(Tree-NextNodei-Name,name);printf(nnt是否要修改性別:如果需要就輸入1不需要修改就輸入0然后按Enter鍵繼續nt);scanf(%d,&flag);if (flag=1)if(Tree-NextNodei-Kind=G|Tree-NextNodei-Kind=g)Tree-NextNodei-Kind=B;else Tree-NextNodei-Kind=G; pr

30、intf(nnt-子女的信息修改成功-);break;case E:case e:system(cls);printf(t);if(Tree-Parent!=NULL)if (Tree-NextNode0=NULL&strcmp(Tree-Name,Tree-Parent-NextNode0-Name)!=0)printf(nnt至今還沒有配偶);break;if (strcmp(Tree-Name,Tree-Parent-NextNode0-Name)=0)printf(nnt請輸入%s修改的姓名:如果不需要修改就輸入0然后按Enter鍵繼續nt,Tree-Parent-Name);scan

31、f(%s,name);if(strcmp(name,0)!=0)strcpy(Tree-Parent-Name,name);elseprintf(nnt請輸入%s修改的姓名:如果不需要修改就輸入0然后按Enter鍵繼續nt,Tree-NextNode0-Name);scanf(%s,name);if(strcmp(name,0)!=0)strcpy(Tree-NextNode0-Name,name);elseif(Tree-NextNode0=NULL)printf(nnt至今還沒有配偶);elseprintf(nnt請輸入%s修改的姓名:如果不需要修改就輸入0然后按Enter鍵繼續nt,Tr

32、ee-NextNode0-Name);scanf(%s,name);if(strcmp(name,0)!=0)strcpy(Tree-NextNode0-Name,name); printf(nnt-配偶的信息修改成功-);break;case F:case f: printf(nnt-本項服務到此完畢-);break; case n: break;default: printf(nnt-對不起!你的選擇不在服務范圍之內!-);printf(nt-請您再次選擇所需的服務項!-);printf(nt-謝謝合作!-nt);break;if (c=F|c=f)break; printf(nnt-請按

33、Enter鍵繼續操作-);getchar();getchar();/創立樹void CreatTree(TreeNode *Node)int i;TreeNode *NewNode;NewNode=(TreeNode *)malloc(sizeof(TreeNode); Node-NextNode0=NewNode;Node-NextNode0=NULL;/Node-Parent =NULL;printf(nt請輸入%s的子女的數目:nt,Node-Name); scanf(%d,&(Node-Num);printf(nt請輸入%s的配偶的姓名:nt,Node-Name);scanf(%s,N

34、ewNode-Name);if(Node-Num)=0&strcmp(NewNode-Name,0)=0)return ;if (Node-Kind=G|Node-Kind=g)NewNode-Kind=B;else NewNode-Kind=G;NewNode-Num=0;NewNode-NextNode0=NULL;Node-NextNode0=NewNode;Node-NextNode0-Parent=Node;for(i=1;iNum;i+)NewNode=(TreeNode *)malloc(sizeof(TreeNode);printf(nt請輸入%s的第%d子女的名字nt,Nod

35、e-Name,i);scanf(%s,NewNode-Name);printf(nt請輸入%s的第%d子女的性別女G男B:nt,Node-Name,i);getchar();scanf(%c,&NewNode-Kind);NewNode-Num=0;NewNode-Parent=Node;Node-NextNodei=NewNode;CreatTree(Node-NextNodei);/遍歷并輸出樹中的內容void OutPutAll(TreeNode *Tree)int i, flag=0;printf(nt-*-*-*-*-*-*-*-*-*-);printf(nt姓名:%s 性別:,Tr

36、ee-Name);if (Tree-Kind=G|Tree-Kind=g)flag=1;printf(女);else printf(男);if (!(Tree-NextNode0) printf(nt至今沒有配偶和子女n);return; if(flag=1)printf(nt丈夫 姓名:%s,Tree-NextNode0-Name);elseprintf(nt妻子 姓名:%s,Tree-NextNode0-Name);for(i=1;iNum;i+)printf(nt第%d個子女的姓名:%s 性別:,i,Tree-NextNodei-Name,Tree-NextNodei-Kind);if

37、(Tree-NextNodei-Kind=G|Tree-NextNodei-Kind=g)printf(女);else printf(男);printf(nt);for(i=1;iNum;i+)OutPutAll(Tree-NextNodei);/在樹中經過遍歷查找某個人TreeNode * SearchTree(TreeNode *Tree,char name,int length)int i;TreeNode *NewNode; if(strcmp(Tree-Name,name)=0)if(length=0) MATEFLAG=1;else MATEFLAG=0;return Tree;i

38、f(Tree-NextNode0=NULL)return NULL;for(i=0;iNum;i+)if (i=0) NewNode=SearchTree(Tree-NextNodei,name,0);else NewNode=SearchTree(Tree-NextNodei,name,20);if (NewNode!=NULL) return NewNode; return NULL;/輸出已經查找到的人的信息void OutPutMessage(TreeNode * Tree,char name,int length) int flag=0,i;TreeNode *NewNode;if(

39、Tree=NULL)printf(nnt*該家譜圖中沒有%s這個人的信息請確認是否輸入錯誤*n,name); return;printf(nnt您所要找的人已經找到信息如下所示:);printf(nnt姓名:%st性別:,name); if (Tree-Kind=G|Tree-Kind=g) flag=1; /標記他(她)的性別printf(女);else printf(男); NewNode=Tree-Parent;if (MATEFLAG=1)if(flag=1) printf(nnt她是嫁入此間的所以父母信息不在家譜內包括);printf(nt丈夫 姓名:%s,NewNode-Name)

40、;elseprintf(nnt他是入贅此間的所以父母信息不在家譜內包括);printf(nt妻子 姓名:%s,NewNode-Name);if (NewNode-Num)0) /判斷他(她)是否有孩子printf(nt的孩子的信息如下:); /輸出他(她)的孩子的信息for(i=1;iNum;i+)printf(nt姓名:%s 性別:,NewNode-NextNodei-Name);if (NewNode-NextNodei-Kind=G|NewNode-Kind=g) printf(女);else printf(男);return;if(NewNode=NULL)/判斷它是不是根節點如果是的

41、話就沒有父母兄弟信息printf(nt是這個家譜圖里最頂端的人沒有父母和兄弟姐妹信息!,name);elseif (NewNode-Kind=G|NewNode-Kind=g) /判斷父親節點是父親還是母親 /輸出他她的父母親的信息printf(nt母親 姓名:%s,NewNode-Name);printf(nt父親 姓名:%s,NewNode-NextNode0-Name);else printf(nt母親 姓名:%s,NewNode-NextNode0-Name);printf(nt父親 姓名:%s,NewNode-Name);if (NewNode-Num1) /判斷他(她)是否有兄弟姐

42、妹/輸出他(她)的兄弟姐妹的信息printf(nt%s的兄弟姐妹信息如下:,name);for(i=1;iNum;i+)if(NewNode-NextNodei)printf(nt%s姓名:%s 性別:,NewNode-NextNodei-Name,NewNode-NextNodei-Name);if (NewNode-NextNodei-Kind=G|Tree-Kind=g)printf(女);else printf(男);elseprintf(nt%s沒有兄弟姐妹!,Tree-Name);if(Tree-NextNode0!=NULL) /判斷他(她)是否有配偶 /輸出他(她)的配偶的信息

43、if(flag=1)printf(nt丈夫 姓名:%s,Tree-NextNode0-Name);elseprintf(nt妻子 姓名:%s,Tree-NextNode0-Name);if (Tree-Num0) /判斷他(她)是否有孩子printf(nt的孩子的信息如下:); /輸出他(她)的孩子的信息for(i=1;iNum;i+)printf(nt姓名:%s 性別:,Tree-NextNodei-Name);if (Tree-NextNodei-Kind=G|Tree-Kind=g) printf(女);else printf(男);elseprintf(nt%s至今還沒有孩子,name

44、);else printf(nt%s至今還沒有配偶和孩子n,Tree-Name);學員:陳昊1工程界面如下:2工程代碼如下:#include#include#include#include#include/樹的構造體定義typedef struct TreeNodechar name20; /姓名char sex3; /性別int num; /孩子個數struct TreeNode *nextNode20; /記錄兒女struct TreeNode *parent; /記錄上一級結點TreeNode;int MATEFLAG;/構建家譜樹函數void createTree(TreeNode *

45、t)TreeNode *NewNode=(TreeNode*)malloc(sizeof(TreeNode);NewNode-nextNode0=NULL;if(strcmp(t-name,0)=0) /0表示沒有return; printf(請輸入%s的孩子個數,t-name);scanf(%d,&t-num); /建設配偶結點printf(請輸入%s的配偶的姓名(輸入0表示沒有配偶): ,t-name);fflush(stdin);gets(NewNode-name);if(strcmp(NewNode-name,0)=0)t-nextNode0=NULL;/沒有配偶 return; /跳

46、出if(strcmp(t-sex,男)=0)strcpy(NewNode-sex,女);if(strcmp(t-sex,女)=0)strcpy(NewNode-sex,男);NewNode-num=0;/將配偶連接到上一級相互連結NewNode-parent=t;t-nextNode0=NewNode;/建設孩子結點for(int i=1; inum;i+) NewNode=(TreeNode*)malloc(sizeof(TreeNode); /重新分配 printf(請輸入第%d個孩子的姓名,i); fflush(stdin); gets(NewNode-name); printf(請輸入

47、第%d個孩子的性別,i); fflush(stdin); gets(NewNode-sex); /將孩子與上一級相互連結 NewNode-parent=t; t-nextNodei=NewNode; /遞歸創立孩子結點的孩子 createTree(t-nextNodei); /先序遞歸遍歷并輸出樹中的內容void output(TreeNode *t) int flag=0; int i;printf(n n);printf(nt姓名:%s 性別:%s,t-name,t-sex);/flag為1表示女if(strcmp(t-sex,女)=0) flag=1; if (!(t-nextNode0

48、) printf(nt至今沒有配偶和子女n);return;if(flag=1)printf(nt丈夫 姓名:%s,t-nextNode0-name);elseprintf(nt妻子 姓名:%s,t-nextNode0-name); /輸出孩子for(i=1;inum;i+) printf(nt%s的第%d個子女的姓名:%s 性別:%s,t-name,i,t-nextNodei-name,t-nextNodei-sex); /遞歸輸出子女信息for(i=1;inum;i+) printf(n); output(t-nextNodei); /查找信息TreeNode * SearchTree(T

49、reeNode *t,char name,int length)int i; TreeNode *NewNode; if(strcmp(t-name,name)=0) /比較查找姓名/MATEFLAG為0表示是子女,是1表示是配偶if(length=0)MATEFLAG=1; else MATEFLAG=0;return t;/ifif(t-nextNode0=NULL)return NULL;/遞歸比較配偶和子女for(i=0;inum;i+)if (i=0)NewNode=SearchTree(t-nextNodei,name,0); else NewNode=SearchTree(t-n

50、extNodei,name,20);if (NewNode!=NULL)return NewNode; /for return NULL;/輸出查找到的信息void OutPutMessage(TreeNode * t) int flag=0,i; TreeNode *NewNode; printf(nnt-);if(t=NULL) printf(nnt-該家譜圖中沒有這個人的信息請確認是否輸入錯誤-n); return; printf(nnt*您所要找的人已經找到信息如下所示*); printf(nnt姓名:%st性別:%s,t-name,t-sex); if(strcmp(t-sex,女)

51、=0) flag=1; NewNode=t-parent;if (MATEFLAG=1) if(flag=1) printf(nnt她是嫁入此間的所以父母信息不在該家譜內);printf(nt丈夫 姓名:%s,NewNode-name);/ifelseprintf(nnt他是入贅此間的所以父母信息不在該家譜內);printf(nt妻子 姓名:%s,NewNode-name);/elseif (NewNode-num)0) /判斷他(她)是否有孩子printf(nt的孩子的信息如下:); /輸出他(她)的孩子的信息for(i=1;inum;i+)printf(nt姓名:%s 性別:%s,NewN

52、ode-nextNodei-name,NewNode-nextNodei-sex);return;if(NewNode=NULL) /判斷它是不是根節點如果是的話就沒有父母兄弟信息printf(nt是這個家譜圖里最頂端的人沒有父母和兄弟姐妹信息!,t-name);else if(strcmp(NewNode-sex,女)=0) /判斷父親節點是父親還是母親 /輸出他她的父母親的信息printf(nt母親 姓名:%s,NewNode-name);printf(nt父親 姓名:%s,NewNode-nextNode0-name);else printf(nt母親 姓名:%s,NewNode-nex

53、tNode0-name);printf(nt父親 姓名:%s,NewNode-name);if (NewNode-num1) /判斷他(她)是否有兄弟姐妹 /輸出他(她)的兄弟姐妹的信息printf(nt%s的兄弟姐妹信息如下:,t-name);for(i=1;inum;i+)if(strcmp(NewNode-nextNodei-name,t-name)!=0)printf(nt姓名:%s 性別:%s,NewNode-nextNodei-name,NewNode-nextNodei-sex);/for/ifelseprintf(nt%s沒有兄弟姐妹!,t-name);if(t-nextNod

54、e0!=NULL) /判斷他(她)是否有配偶 /輸出他(她)的配偶的信息if(flag=0)printf(nt丈夫 姓名:%s,t-nextNode0-name);elseprintf(nt妻子 姓名:%s,t-nextNode0-name);if (t-num0) /判斷他(她)是否有孩子printf(nt的孩子的信息如下:); /輸出他(她)的孩子的信息for(i=1;inum;i+) printf(nt姓名:%s 性別%s:,t-nextNodei-name,t-nextNodei-sex);/for/ifelseprintf(nt%s至今還沒有孩子,t-name);else print

55、f(nt%s至今還沒有配偶和孩子n,t-name);/輸出副菜單void SubMenue2(TreeNode *t)char c; /承受選擇char name20; /記錄添加姓名TreeNode * NewNode;while(1) system(cls); /清楚屏幕先前的顯示內容printf(nnt * 請選擇你的操作 *nt);printf(nt A:添加某個人的子女的信息 nt);printf(nt B:添加某個人配偶的信息 nt);printf(nt C:退出 nt); scanf(%c,&c);switch(c)case A:case a:printf(nnt請輸入那個人的名

56、字:nt);fflush(stdin); gets(name);t=SearchTree(t,name,20);if(t=NULL)printf(nnt-該家譜圖中沒有%s這個人的信息,請確認是否輸入錯誤-n,name);return;if(MATEFLAG=0&t-nextNode0=NULL)/判斷是否有配偶printf(nnt%s至今還沒有配偶請先添加配偶,t-name);return;/if(Tree-parent=NULL&(Tree-num20|Tree-numnum=0;if(MATEFLAG=1)t=t-parent;return; /添加子女信息NewNode=(TreeNo

57、de*)malloc(sizeof(TreeNode);printf(nnt請輸入添加人員姓名:nt);scanf(%s,NewNode-name);printf(nnt請輸入添加人員性別:nt);fflush(stdin);gets(NewNode-sex);NewNode-nextNode0=(TreeNode *)malloc(sizeof(TreeNode);NewNode-nextNode0=NULL;NewNode-num=0;NewNode-parent=t;t-nextNodet-num+1=NewNode;t-num=t-num+1; printf(nnt-子女的信息添加成功

58、-);break; case B: case b: printf(nnt請輸入那個人的名字:nt);scanf(%s,name); t=SearchTree(t,name,20);if(t-parent!=NULL&strcmp(t-name,t-parent-nextNode0-name)=0|t-nextNode0!=NULL)printf(nnt已經有了配偶);break;if(t=NULL)printf(nnt -該家譜圖中沒有%s這個人的信息請確認是否輸入錯誤-n,name);break;NewNode=(TreeNode *)malloc(sizeof(TreeNode);prin

59、tf(nnt請輸入添加人員姓名:nt);scanf(%s,NewNode-name);printf(nnt請輸入添加人員性別:nt);fflush(stdin);gets(NewNode-sex);NewNode-parent=t;t-nextNode0=NewNode;break; case C: case c: printf(nnt-本項服務到此完畢-);break;/switch if (c=C|c=c) break; printf(nnt-請按Enter鍵繼續操作-); getchar();/while/main/添加成員信息void AddNew(TreeNode *t) SubMe

60、nue2(t);/輸出副菜單void SubMenue1(TreeNode *t)char c;int flag,i;char name20;char Parent220;TreeNode * NewNode;while(1)system(cls); /清楚屏幕先前的顯示內容printf(t);printf(nnt -請選擇你的操作- );printf(nt A 修改個人的信息 n);printf(nt B 修改父母的信息 n);printf(nt C 修改兄弟姐妹的信息 n);printf(nt D 修改子女的信息 n);printf(nt E修改配偶的信息 n);printf(nt F退出

溫馨提示

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

評論

0/150

提交評論