




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、洛阳理工学院课程设计报告课程名称数据结构课程设计设计题目家谱管理系统专 业计算机科学与技术班级B150405学号B15080822姓名宋土龙完成日期 2016年12月30日课程设计任务书设计题目:家谱管理系统设计内容与要求:【问题描述】:实现具有下列功能的家谱管理系统1) .输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容: 姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。2) .实现数据的存盘和读盘。3) .显示家谱。4) .按照出生日期查询成员名单。5) .按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。6) .修改
2、某成员信息。【基本要求】:界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功 能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据 文件中。测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证 程序的稳定。测试数据及测试结果请在上交的资料中写明。指导教师:年 月 日课程设计评语成绩:指导教师:年 月 日、算法思想本程序是一个管理家谱的系统,通过这个系统可以对家族成员进行创建、显示、查找 、修改、以及保存家谱和读取家谱功能。该系统分为以下几个模块,分别是:创建家谱,显 示家谱、按姓名和生日查找家庭成员、修改家谱、存盘、读盘以
3、及退出系统。本程序用到的 存储形式为多叉树,因为家谱中每个人既有父母又有孩子,而且孩子的个数并不确定,所以 用多叉树来存储最为合适。用多叉树来存储,就用用到多叉树的递归创建及递归遍历。因为 是多叉树,所以遍历时用广度优先搜索合适。本函数最主要的思想就是递归调用,每个子函 数中都会用到递归。定义结构体时给定指针数组的最大容量,来规定家谱中最多可以存多少 人。定义一个家族树的指针变量用来当每个子函数的参数,从而将其返回到主函数中。以下时算法思想流程图:、模块划分1. int main():主函数2. void CreatTree(TreeNode *Tree) :创建家族树3. void OutP
4、utAll(TreeNode *Tree) :显示家谱4. void Menue(TreeNode *Tree):主菜单5. void SubMenue1(TreeNode * Tree):副菜单(修改选项菜单)6. void Change(TreeNode * Tree):修改家谱7. TreeNode * SearchTree(TreeNode *Tree,char name,int length): 按照姓名查找家谱成员8. TreeNode * SearchTree1(TreeNode *Tree,char birth,int length):按照生日查找家谱成员9. void Out
5、PutMessage(TreeNode * Tree,char name,int length):输出按姓名查找到的家谱成员10. void OutPutMessage1(TreeNode * Tree,char birth,int length):输出按生日查找到的家谱成员11. void SaveFamily(TreeNode *root) :保存家谱12. void ReadFamily(TreeNode *root) :读取家谱三、数据结构typedef struct TreeNode(int ChildNum; / 记录这个人拥有几个儿女char Name20;/记录这个人的姓名ch
6、ar birthday20;/ 生日int marriage;/ 婚否(1表示结婚,0表示没结婚)int death;/ 生死(1表示活着,0表示过世)char Kind;/ 标示节点的种类有女G男Bchar address100;/ 住址char livemassage50;/死亡日期(如果其已经死亡)struct TreeNode *NextNode20; /记录这个人的儿女struct TreeNode *Parent; /记录这个节点的父节点TreeNode,*tree;四、测试第一组数据为:爷爷,奶奶,爸爸,妈妈,我,二叔,二婶,姐姐,三叔,三婶,弟弟一共 三代11个人。其中爷爷是根
7、节点,奶奶为爷爷的配偶,同时也是爷爷的第一个后继节点。 爸爸,二叔,三叔为爷爷的子女。爸爸的配偶是妈妈,爸爸的子女是我。二叔的 配偶是二婶,子女是姐姐。三叔的的配偶是三婶,三叔的的子女是弟弟。进入程序之后,首先进行创建家谱,然后进行存盘,之后进行修改和查询等 步骤。退出程序在进入程序时,进行读盘。之后在进行其他操作,程序完成之后 退出即可。图1家族树第一组数据测试截图为:, C 初 FEVdminMXsktopWshEng.exL-*=&*-*-4=*一-* *4=* * *-*-*一一-姓名:爷爷出生日期:德4立。史郡 塞塞住址:山东省嘀沂市 性别:B用妻子姓名:蛇奶 是否健在U-健在.卜主
8、世,0第14子女的姓苗;黄普 出主日期:1965.况.骐 家庭住址:山东省临沂市 性别E男第2个子女的姓名:二叔 出生日期:19印一呢55家庭住址:山东省临沂市 性别R用第34子女的姓名;三叔 出生日期;1并二期姑.室庭住址:山东省隘沂市 性别B里是否健在Q-健在.Q-去世i: 0是否注在口-健在.是否健任n-建在,是否巷在门一餐在.。一去世: 00-言曲:0(Fiffii 0是否博在。一健在.0-去世 : 1是否健在。-健在.0-壬世h 1是否健在。-曼在.0-去世 : 1M靠*中*-*-*松东枕申*姓名:二料出生日期:19了。.口良。5哀庭住址:山东置隘沂市妻子 姓名;二婶 是否健在n-健
9、在,卜去世L 1第1个子玄的姓名:姐姐出生日期:1的1一0工厘京庭住始:山东省临沂市性别:E男性别白女是否赞在口 ,健在.小去世.】是否健在(卜健在.。-去版:I-1*虹 目*-* -*求#2* “H* -1* *#一姓名:爸爸出生日期:1965.03,鲍宗庭住址:山舂省崎沂市 性别;R男妻子 姓名:妈妈 是否健在n-健在,0去世卜1第14子女的姓名;我 出生日期;1菊6, M. 23家庭住址;山东省临沂市 性别B男tt* - - *- - n=*- * *-*- -* *-* 姓名:我出生日期:1的员:1空李庭住址:山东省临沂市 性别二E男至今没有配偶和子女W*-W*标*-*-*松 W* *
10、-是否嚏在口嗖在.小去世.】域名:姐姐出生日期:199122, 14壶庭住th山东省施沂市性别:G女至今没有配阎和子女4*#*=t*鼻*-*是否健在(1-矍在.0-去世J: 1是否健在。-更在.0-去世 : 1姓名二三叔出生臼期:1977. 02. 14遍 家庭住址:山东省临沂市 性别:E第妻子孙名:一.蜂 是否健在1健在.上去世L 1第14子女的姓名;弟弟 出生百询:如0L期.25鸵虹住出 山东省临斫市 性别E男-一行* *-4*一- * * *-!* *一一-荣就拼普半;死那出笠H期二加0 1.陶跖鑫霆住址:山茅餐临近布性别:口男.是否健在口-翌在.0-去世11图2显示家谱 , CUser
11、sWi fninDesktopkecheng.exe*+ 迎使用家族管建系统*样七福人窸谱信息建立树日:端出空个家嘈信息仁技出生日期苴找其人D:按姓名杳找某人E:修改菜个人的信息F;春史 由营盘 H;退出整个程序请新人你要笠找的人的姓名:弟弟您所要找的人已经找到信息如下所示:姓名:第弟出生三期T0口 1一兆.就 家露住址:山奉省幅沂市 性别:B男 毋亲姓名:三属 父亲姓名;三眼弟弟至今近没有里偶和核子是杳苴在n-宜在,。-去世:1用堂*4*4*4*4微软桢者半:图3按照姓名查找家族成员 C:U5FrsadminDe3ktcipicechcngBexe视卡率率域事*率欲迎使用京族首理.系统*也*
12、百:输入贰谱信息崖立序E;输出国小家谱信息D;技姓名查找某人E:修改某个人的信息F:存盘G;读盘U:退出整个理序*限存家谱*输入文件名册保存位置% ; DLmpM. txt) : D; WJI,FI;. tst 新建文件成功,文件及其就程为:D AJIAPLr. txt图4存盘第二组数据为:刘老第二组数据测试截屏为:微勃拼音丰二图4王家家族树 C :UsersadminDe5ktopkecheng.exe必:退出-*一一*一,*率一fc:悠 西子女 的 信宇漕率*#塞*A!修改个人的信.息*-*R:?手父的信息 3* 吉一一-请选择你的操作-1*-图5修改家族成员的信息*4* 请选择你的操作-
13、丰丰2- C MKersVadminXDesktopMcechefig.eKe-*-*#A!修改个人的信.且*4*-*-*-*三=*=1-;修改父母的后,息=1一*充三三一*一一*-=,*一_B一-*一-t事C ;修改子 女的信 本T-+1字1?一-一*D!退 出-*-*=*请粉人修放的姓名;如果不需要修戌就就入-0,然后接Em也谯雉臻 王小二是否要修或性别:如果需要就物人不需要像选就徜入力然后按Enter罐缝续 0诗新人脩改的出生日期;如果不需要修改就输入 守 然后按EMhi诺蒙洪清就人修改的家睡地址:如果不需塞修改就曲入,T然后按Enter键处段个人信息修改成功微软拼音先:图6修改某个人的
14、具体信息*4*44欢迎使用家底管理系势*松九输入家谱信息建立树E;输出整个冢谙信息口住改某个人的信息F:存盘G;读盘中退出整个程序请输入林要宜找的出生三期:E的 E您所要找的人己经找到信息如下所示:姓名:王小二出生日期:为(组 家庭住址:洛阳 性别:B男图7按照生日查找某人 C ;05ersMadminDe5ktopMtecheng.exe*t迎使用家族管理系St*G*A:输入谱信息建立树 火给出整竹察港信息C:按出生三期查找某大D:按姓名有找某人E:修改某个人的信息F:存盘G二送卷H:退出整个程序耕人文件名及其路径,以便从中谈取家谱:文fi=老及其路径加国:D:mhp1b. tit) : E
15、:JIA- tit图8读盘五、源程序#include #include #include #ifdef WIN32#define CLEAR system(cls)#define TipForSaveFilePosition printf(ttD:Wexample.txt):)#define TipForReadFilePosition printf(tt)#else#define CLEAR system(clear)#define TipForSaveFilePosition printf(tt/home/xiong/example.txt):)#define TipForReadFile
16、Position printf(tt/home/xiong/example.txt):)#endif#define maxFileNameLen 50 / int FLAG=0;int a=1;typedef struct TreeNode输入文件名及保存位置(eg文件名及其路径(eg: D:Wexample.txt):输入文件名及保存位置(eg文件名及其路径(eg保存的文件名的最大长度int ChildNum; /记录这个人拥有几个儿女char Name20;/记录这个人的姓名char birthday20;/ 生日int marriage;/ 婚否(1表示结婚,0表示没结婚)int dea
17、th;/ 生死(1表示活着,0表示过世)char Kind;/标示节点的种类有女 G男Bchar address100;/ 住址char livemassage50;/ 死亡日期(如果其已经死亡) struct TreeNode *NextNode20; /记录这个人的儿女struct TreeNode *Parent; /记录这个节点的父节点TreeNode,*tree;void CreatTree(TreeNode *Tree);void OutPutAll(TreeNode *Tree);void Menue(TreeNode *Tree);void SubMenue1(TreeNode
18、 * Tree);void SubMenue2(TreeNode *Tree);void Change(TreeNode * Tree);void AddNew(TreeNode * Tree);TreeNode * SearchTree(TreeNode *Tree,char name,int length);TreeNode * SearchTree1(TreeNode *Tree,char birth,int length); void OutPutMessage(TreeNode * Tree,char name,int length); void OutPutMessage1(Tre
19、eNode * Tree,char birth,int length); void SaveFamily(TreeNode *root);void ReadFamily(TreeNode *root);int main()/ 主函数TreeNode *Tree;/TreeNode *Tree1;/Tree1=&(*Tree);Tree=(TreeNode *)malloc(sizeof(TreeNode);Tree-Parent =NULL;strcpy(Tree-Name,0);Menue(Tree);return 0;void Menue(TreeNode *Tree)/ 输出主菜单/*T
20、reeNode *Tree1;Tree1=&Tree;*/char c;char name20;char birth20;while(1)system(cls);欢迎使用家族管系统 *坨坨”);printf(t);printf(nntt*printf(nttA:输入家谱信息建立树)printf(nttB:输出整个家谱信息);printf(nttC:按出生日期查找某人);printf(nttD:按姓名查找某人);printf(nttE:修改某个人的信息);printf(nttF:存盘);printf(nttG:);printf(nttH:退出整个程序nt);c=getchar(); switch
21、(c) case A:TreeNode * NewNode;NewNode=(TreeNode *)malloc(sizeof(TreeNode);printf(ntscanf(%s,Tree-Name);printf(ntgetchar();请输入性别女G男 B:);scanf(%c,&(Tree-Kind);Tree-Parent=NewNode;家谱图已经建立成功- 请按Enter键继续操作nn);-);Tree-Parent=NULL;/ CreatTree(Tree); / printf(ntprintf(nntgetchar(); break;case B:if(strcmp(Tr
22、ee-Name,0)=0) printf(nt家谱图的多叉树尚未建立请先建立树n);getchar();break;)printf(nnt整个家谱的主要信息如下:);OutPutAll(Tree);getchar();break;case C:if(strcmp(Tree-birthday,0)=0)printf(nt家谱图的多叉树尚未建立请先建立树n);getchar();break;)printf(nt请输入你要查找的出生日期:);scanf(%s,birth);OutPutMessage1(SearchTree1(Tree,birth,20),birth,20);*-*-nt);prin
23、tf(nnt*-*-*-*-* getchar();break;case D:if(strcmp(Tree-Name,0)=0)printf(nt家谱图的多叉树尚未建立请先建立树n);getchar();break;)printf(nt请输入你要查找的人的姓名:nt);scanf(%s,name);OutPutMessage(SearchTree(Tree,name,20),name,20);*-*-nt);printf(nnt*-*-*-*-* getchar();break;case E:if(strcmp(Tree-Name,0)=0)printf(nt家谱图的多叉树尚未建立请先建立树n
24、);getchar();break;)Change(Tree);getchar();break;case F:if(strcmp(Tree-Name,0)=0)printf(nt家谱图的多叉树尚未建立请先建立树n);getchar();break;)SaveFamily(Tree);getchar();break;case G:/*if(strcmp(Tree-Name,0)=0)(printf(nt家谱图的多叉树尚未建立请先建立树n);getchar();break;*/ReadFamily(&Tree);getchar();break;case H:printf(nnt 本次服务到此结束-
25、);printf(nt 欢 迎 下 次 使 用);printf(nt 谢谢nn); break; case n:break;default:printf(nnt对不起!你的选择不在服务范围之内!);printf(nt请您再次选择所需的服务项!);printf(nt 谢谢nt);getchar();break;if (c=H|c=f) break; getchar(); void CreatTree(TreeNode *Node) / 创建树(int i;TreeNode *NewNode;NewNode=(TreeNode *)malloc(sizeof(TreeNode);Node-Next
26、Node0=NewNode;Node-NextNode0=NULL;printf(nt请输入出生日期:);scanf(%s,Node-birthday);printf(nt请输入家庭住址:);getchar();scanf(%s,Node-address);printf(nt请输入是否建在(1-是或0-否):);scanf(%d,&(Node-death);if(Node-death=0) printf(nt请输入去世日期:);scanf(%s,Node-livemassage); else if(Node-death=1) printf(nt仍然建在);printf(nt请输入%s的配偶的姓
27、名(输入0代表没结婚):,Node-Name);scanf(%s,NewNode-Name); if(strcmp(NewNode-Name,0)!=0) printf(t请输入配偶的出生日期:);scanf(%s,NewNode-birthday); printf(nt请输入家庭住址:);getchar();scanf(%s,NewNode-address); printf(nt请输入是否建在(1-是或0-否):);scanf(%d,&(NewNode-death); if(NewNode-death=0) printf(nt请输入去世日期:);scanf(%s,NewNode-livema
28、ssage); else if(NewNode-death=1) printf(nt仍然建在);printf(nt 请输入s的子女的数目(当子女输入 0时便停止输入该成员有关信 息):,Node-Name);scanf(%d,&(Node-ChildNum);if(Node-ChildNum)=0&strcmp(NewNode-Name,0)=0) return ;if(Node-Kind=G|Node-Kind=g) NewNode-Kind=B; else NewNode-Kind=G;NewNode-ChildNum=0;NewNode-NextNode0=NULL;Node-NextN
29、ode0=NewNode;Node-NextNode0-Parent=Node;/孩子的父母for(i=1;iChildNum;i+) NewNode=(TreeNode *)malloc(sizeof(TreeNode);a+; printf(nt 请输入 s的第 d子女的名字:,Node-Name,i); scanf(%s,NewNode-Name);printf(nt 请输入s的第d子女的性别女 G男B:,Node-Name,i);getchar();scanf(%c,&NewNode-Kind);NewNode-ChildNum=-1;NewNode-Parent=Node;Node-
30、NextNodei=NewNode;CreatTree(Node-NextNodei); /从子女的数目开始void OutPutAll(TreeNode *Tree)int i, flag=0;printf(nt-* * * * * * * * nprintf(nt 姓名:s出生日期:%s家庭住址:%s 性另1J: %c,Tree-Name,Tree-birthday,Tree-address,Tree-Kind);if (Tree-Kind=G|Tree-Kind=g) flag=1;printf(女);elseprintf(男);printf(t 是否健在(1-健在,0-去世):);if
31、(Tree-death=1) printf(1);else if(Tree-death=0) printf(0);if (!(Tree-NextNode0)printf(nt至今没有配偶和子女n);return;if(flag=1)printf(nt丈夫姓名:s,Tree-NextNode0-Name);elseprintf(nt妻子姓名:s,Tree-NextNode0-Name);printf(t 是否健在(1-健在,0-去世):”);if(Tree-death=1) printf(1);else if(Tree-death=0) printf(0);for(i=1;iChildNum;i
32、+)printf(nt 第d个子女的姓名:%s 出生日期:s 家庭 住址:%s 性 另1J %c,i,Tree-NextNodei-Name,Tree-NextNodei-birthday,Tree-NextNodei-a ddress,Tree-NextNodei-Kind);if (Tree-NextNodei-Kind=G|Tree-NextNodei-Kind=g) printf(女);elseprintf(男);printf(t是否健在(1-健在,0-去世):”);if(Tree-death=1) printf(1);else if(Tree-death=0) printf(0);p
33、rintf(nt);for(i=1;iChildNum;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)FLAG=1;elseFLAG=0;return Tree;if(Tree-NextNode0=NULL)return NULL;for(i=0;iChildNum;i+)if (i=0)NewNode=SearchTree(Tree-Nex
34、tNodei,name,0);elseNewNode=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;printf(nnt* );if(Tree=NULL)该家谱图中没有s这个人的信息请确认是否输入错误*n,name);return;)printf(nnt您所要找的人已经找到信息如下所示:);printf(nn
35、t姓名:s出生日期:s 家庭住址:%s 性另1J:%c,name,Tree-birthday,Tree-address,Tree-Kind);if (Tree-Kind=G|Tree-Kind=g) flag=1; /标记他(她)的性别printf(女);) else printf(男); printf(t 是否健在(1-健在,0-去世):”); if(Tree-death=1) printf(1); else if(Tree-death=0) printf(0);NewNode=Tree-Parent;if (FLAG=1) if(flag=1) printf(nnt她是嫁入此家族的所以亲生
36、父母信息不在家谱内包括);printf(nt 丈夫姓名:s,NewNode-Name); ) else printf(nnt他是入赘此家族的所以亲生父母信息不在家谱内包括);printf(nt妻子姓名:s,NewNode-Name);)if (NewNode-ChildNum)0) / 判断他(她)是否有孩子printf(nt的孩子的信息如下:); 输出他(她)的孩子的信息for(i=1;iChildNum;i+) printf(nt姓名:%s 性另1J :,NewNode-NextNodei-Name);if (NewNode-NextNodei-Kind=G|NewNode-Kind=g)
37、 printf(女);elseprintf(男);printf(t 是否健在(1-健在,0-去世):”);if(Tree-death=1) printf(1);else if(Tree-death=0) printf(0);) return;)if(NewNode=NULL)/判断它是不是根节点如果是的话就没有父母兄弟信息 printf(nt 是这个家谱图里最年长的人 ,name); else if (NewNode-Kind=G|NewNode-Kind=g) /判断父亲节点是父亲还是母亲 printf(nt母亲姓名:s,NewNode-Name);/输出他(她)的父母亲的信息 printf
38、(nt父亲姓名:s,NewNode-NextNode0-Name);) else printf(nt母亲姓名:s,NewNode-NextNode0-Name);printf(nt父亲姓名:s,NewNode-Name);) if(Tree-NextNode0!=NULL) / 判断他(她)是否有配偶 if(flag=1)/ 输出他(她)的配偶的信息 printf(nt丈夫姓名:s,Tree-NextNode0-Name);else printf(nt妻子姓名:s,Tree-NextNode0-Name);if (Tree-ChildNum0) / 判断他(她)是否有孩子 printf(nt的
39、孩子的信息如下:); 输出他(她)的孩子的信息for(i=1;iChildNum;i+) printf(nt 姓名:s 性另h,Tree-NextNodei-Name); if (Tree-NextNodei-Kind=G|Tree-Kind=g) printf(女);else printf(男);printf(t是否健在(1-健在,0-去世):”);if(Tree-death=1) printf(1); else if(Tree-death=0) printf(0);) elseprintf(nt%s至今还没有孩子,name);else printf(nt%s至今还没有配偶和孩子 n,Tre
40、e-Name);) )TreeNode * SearchTree1(TreeNode *Tree,char birth,int length) ( int i;TreeNode *NewNode;if(strcmp(Tree-birthday,birth)=0) ( if(length=0) FLAG=1;elseFLAG=0;return Tree; )if(Tree-NextNode0=NULL) return NULL;for(i=0;iChildNum;i+) (if (i=0)NewNode=SearchTree1(Tree-NextNodei,birth,0); elseNewNo
41、de=SearchTree1(Tree-NextNodei,birth,20); if (NewNode!=NULL) return NewNode;) return NULL; ) void OutPutMessage1(TreeNode * Tree,char birth,int length) (int flag=0,i;TreeNode *NewNode;printf(nnt-*-*-*-*-*-*-*-*-*-*-); if(Tree=NULL) (printf(nnt* 该家谱图中没有出生日期为 %s这个人的信息请确认是否输入 错误 *n,birth); return; ) pri
42、ntf(nnt您所要找的人已经找到信息如下所示:);printf(nnt姓名:s 出生日期:s家庭住址:%s 性另1J :%c,Tree-Name,Tree-birthday,Tree-address,Tree-Kind);if (Tree-Kind=G|Tree-Kind=g)flag=1; /标记他(她)的性别printf(女);elseprintf(男);void Change(TreeNode * Tree) /修改某个人的信息char name20;TreeNode * NewNode;printf(nt请输入你要修改的人的姓名:nt);scanf(%s,name);NewNode=
43、SearchTree(Tree,name,20);if(NewNode=NULL)printf(nnt* 该家谱图中没有s这个人的信息请确认是否输入错误 *n,name);return;elseSubMenuel(NewNode);void SubMenue1(TreeNode * Tree) /输出副菜单char c;int flag,i;char name20;char birth20;char address150;char Parent220;TreeNode * NewNode;getchar();while(1) system(cls); printf(t);printf(nnt-
44、*- 请选择 你的操作-*-);printf(nt-*-*-*H.-*-A:修改个人的信息);printf(nt-*-*-*H.-*-B:修改父母的信息);printf(nt-*-*-*H.-*-C:修改子女的信息);printf(nt-*-*-*-D:退出c=getchar(); switch(c) case A:printf(nnt续 nt);请输入修改的姓名:如果不需要修改就输入0然后按Enter键继*-*-*-*-*-*-*-*-*-nt);scanf(%s,name);if(strcmp(name,0)!=0) strcpy(Tree-Name,name);printf(nnt是否要
45、修改性别:如果需要就输入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请输入修改的出生日期:如果不需要修改就输入0然后按Enter键继续nt);scanf(%s,birth);if(strcmp(birth,0)!=0) strcpy(Tree-birthday,birth);printf(nnt请输入修改的家庭地址:如果不需要修改就输入0然后按Enter键继续nt);scanf(%s,addres
46、s1);if(strcmp(address1,0)!=0) strcpy(Tree-address,address1); printf(nnt个人信息修改成功);break;判断是不是头节点case B:if(Tree-Parent=NULL) /(printf(nt是这个家谱图里最顶端的人没有父母信息!,name);break;)if (FLAG=1)/判断是不是入赘或加入此间的(if(Tree-Kind=G|Tree-Kind=g) ( printf(nnt她是嫁入此间的所以父母信息不在家谱内包括);) else ( printf(nnt他是入赘此间的所以父母信息不在家谱内包括);) br
47、eak; ) if(Tree-Parent-Kind=G|Tree-Parent-Kind=g) ( strcpy(Parent0,母亲);strcpy(Parent1,父亲);) else ( strcpy(Parent0,父亲);strcpy(Parent1,母亲);) printf(nnt 请输入$要修改白姓名:如果不需要修改就输入0然后按继续 nt,Parent0); scanf(%s,name); if(strcmp(name,0)!=0) strcpy(Tree-Parent-Name,name);printf(nnt 请输入$要修改白姓名:如果不需要修改就输入0然后按继续 nt,Parent1);scanf(%s,name);if(strcmp(name,0)!=0)strcpy(Tree-Parent-NextNode0-Name,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江国企招聘2024浙江舟山群岛新区浙东国有资产投资发展有限公司招聘1人笔试参考题库附带答案详解
- 浙江国企招聘2024台州玉环干江滨港工业城开发有限公司招聘1人笔试参考题库附带答案详解
- 凉山小区保洁合同范本
- 跨领域合作在提升药品安全水平中的价值
- 建设工程招标代理机构学习情境一建设工程承发包与招投标认知课件
- 漯河医学高等专科学校《MSOffice高级应用》2023-2024学年第二学期期末试卷
- 2.1《推动和平与发展》教学设计- 2024-2025学年统编版道德与法治九年级下册
- 武汉城市学院《机器人系统开发》2023-2024学年第二学期期末试卷
- 江苏省睢宁县姚集中学2024-2025学年小学六年级数学毕业检测指导卷含解析
- 闲置矿山出租合同范本
- 2025年慢性阻塞性肺疾病全球创议GOLD指南修订解读课件
- 初中语文现代文阅读训练及答案二十篇
- 2019安徽中考语文真题含答案
- 新生儿科出科考试试卷试题
- 信息化教学设计教案大学语文
- 氧气、二氧化碳、氩气安全周知卡
- 基层医疗卫生机构岗位设置指导意见
- FSC-COC培训学习
- 焊接线能量的计算公式
- 医用氧储罐检查记录表
- 植物的营养器官:根、茎、叶汇总
评论
0/150
提交评论