




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、洛阳理工学院课程设计报告课程名称数据结构课程设计设计题目家谱管理系统专业计算机科学与技术班级B150405学号B15080822姓名宋士龙完成日期2016年12月30计课程设计任务书设计题目:家谱管理系统设计内容与要求:【问题描述】:实现具有下列功能的家谱管理系统1) .输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。2) .实现数据的存盘和读盘。3) .显示家谱。4) .按照出生日期查询成员名单。5) .按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。6).修改某成员信
2、息。【基本要求】:界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。指导教师:年月日课程设计评语成绩:指导教师:年月日洛阳理工学院课程设计报告1、算法思想本程序是一个管理家谱的系统,通过这个系统可以对家族成员进行创建、显示、查找、修改、以及保存家谱和读取家谱功能。该系统分为以下几个模块,分别是:创建家谱,显示家谱、按姓名和生日查找家庭成员、修改家谱、存盘、读盘以
3、及退出系统。本程序用到的存储形式为多叉树,因为家谱中每个人既有父母又有孩子,而且孩子的个数并不确定,所以用多叉树来存储最为合适。用多叉树来存储,就用用到多叉树的递归创建及递归遍历。因为是多叉树,所以遍历时用广度优先搜索合适。本函数最主要的思想就是递归调用,每个子函数中都会用到递归。定义结构体时给定指针数组的最大容量,来规定家谱中最多可以存多少人。定义一个家族树的指针变量用来当每个子函数的参数,从而将其返回到主函数中。以下时算法思想流程图:、模块划分1.intmain():主函数2.voidCreatTree(TreeNode*Tree)创建家族树3.voidOutPutAll(TreeNode
4、*Tree):显示家谱4.voidMenue(TreeNode*Tree):主菜单5.voidSubMenue1(TreeNode*Tree)副菜单(修改选项菜单)6.voidChange(TreeNode*Tree)修改家谱7.TreeNode*SearchTree(TreeNode*Tree,charname,intlength)按照姓名查找家谱成员8.TreeNode*SearchTree1(TreeNode*Tree,charbirth,intlength)按照生日查找家谱成员9.voidOutPutMessage(TreeNode*Tree,charname,intlength)输出
5、按姓名查找到的家谱成洛阳理工学院课程设计报告2员10. voidOutPutMessage1(TreeNode*Tree,charbirth,intlength):输出按生日查找到的家谱成员11. voidSaveFamily(TreeNode*root):保存家谱12. voidReadFamily(TreeNode*root):读取家谱三、数据结构typedefstructTreeNode(intChildNum;/记录这个人拥有几个儿女charName20;/记录这个人的姓名charbirthday20;/生日intmarriage;/婚否(1表示结婚,0表示没结婚)intdeath;/
6、生死(1表示活着,0表示过世)charKind;/标示节点的种类有女G男Bcharaddress100;/住址charlivemassage50;/死亡日期(如果其已经死亡)structTreeNode*NextNode20;/记录这个人的儿女structTreeNode*Parent;记录这个节点的父节点TreeNode,*tree;四、测试第一组数据为:爷爷,奶奶,爸爸,妈妈,我,二叔,二婶,姐姐,三叔,三婶,弟弟一共三代11个人。其中爷爷是根节点,奶奶为爷爷的配偶,同时也是爷爷的第一个后继节点。爸爸,二叔,三叔为爷爷的子女。爸爸的配偶是妈妈,爸爸的子女是我。二叔的配偶是二婶,子女是姐姐。
7、三叔的的配偶是三婶,三叔的的子女是弟弟。进入程序之后,首先进行创建家谱,然后进行存盘,之后进行修改和查询等步骤。退出程序在进入程序时,进行读盘。之后在进行其他操作,程序完成之后退出即可。洛阳理工学院课程设计报告3第一组数据测试截图为:-牛掌*虹廿*一*-*,*“n*诉李姓名:蕾雀出生日ffl;1966.05.0&家庭住址:由奈省临沂市性割;B B 男衰子姓名:妈妈是否健在 n-n-健在.0 0去世L1箫1个子女的姓君;我出生日期;1996,10.23家庭住扯:山东皆临沂市性别B男tt*-*#*tt*-*#*-n=*#-n=*#-*-#*-*-#*-*-*-*#*#姓名:我出生日期:1为 6 6
8、 一1Q,就冢露住址:山东省临折市性割:B勇至今没有配偶和子女w*-w*-w*w*-_-_林率_-*树*w*w*件*徒名:姐姐出生日a:1991.02.14家庭住址,山东省陆滑市性别:G女至今没有配隅和于女!CA,U5ersfldirTiinDkTQpicech5ng.rx-一*-一一一-*丰*-一*-一一一-避名:爷爷出生日:1944.09.20慕庭住址:山奈省临诉市性别:妻子姓名:蛎剃是否值在健在-卜去世L0盆1个子女的姓名;爸琶出生日期:19.阿M冢女存圮:山东省临折市性别E男第个子女的姓宅:二叔出生日期:19沌一呻一前家庭住址:山亲省临沂市性别 R R 男描,中子女的姓名;三叔出生日期
9、-1第上旎,14槌家强住址:山东省陆祈市性别B男是否便在O健在.5 去世L0是否芸在U-登在,是否健庄n-健茂,是否岂在门-健在,。-.七廿:,00-去世)10(Fiffii0图1家族树是否健在印-舞在.。-去世:1 1是否谜在(1-更在,L是否健在U-舞在.卜会世:1 1姓名:二叔出生日S0J97D.06.0&家庭住址1由京省陆折市妻子姓名;二坤是否健在口-健在,卜去世);1第1个子女的姓名:姐旭出生日期=1991-02.1991-02.14家庭住址:山茱者临沂市性别:R男性丹施女是否嚏在血箜在A 去世,】是否健在U-健在.A 去世狂 i i是否暨在血哩在.仍去世】洛阳理工学院课程设计报告4
10、*=t*3*姓名:三叔出生目期:1977.02.148家庭住址:山东者临沂市性别:E身妻子排名:一.岬是杏健石(1健在.卜去世)1童1个子女的姓君;第弟出生百旃:WOOL临能靠吭存&山东省临所市性别E男-*-一一-*=!*-一!*一一-更敦拘音半:弟茂出生日凌:期1.Q3.费赢庭住址:山东省I与诉市.性别;史身.是否博在1-舞在.A 去由:1 1W*W*I-3-3IVJIHxTvTJI图2显示家谱是否健在O理在.5 去世 J J:1是否健在印-舞在.。-去世:1 1洛阳理工学院课程设计报告5CUsersWifninDesktopkecheng.exe*+*+迎使用家族管廷系统b*s*g*土丽入
11、家谱信息建立例日:翰出整个家洁佶息。;貌出三日期在我其人D:按姓名查找.某人E:修改芹个人的信息F;存盘&茗盘H;退出座中程序请输入你要直找的人的姓名:胡弟*-申申申 1您所要找的大己经找到信息如下所示:姓名:弟弟出主日朔成001一。咨.懿家陆住址:山东省临折市性刑 5 舆母亲姓名:三辞是否健在 u-u-在,o-ifi)o-ifi):1 1父亲姓名;三靓诲裙至今还没有配i禺和核于申*4申4申4*4图3按照姓名查找家族成员C:U5FrsadminDe3ktcipicechcngBexe虹*蛭率率*欢迎使用家族首理.系统甘*版妃输入家漕信息建立树B;输出盼辛家谱信息C:生三岐直改ELD;瑟姓名查找
12、某人修改某个人的信息F:存盘G;读盘U:退出整个程序*昵存家请*输KX件名及保存位置eg;D;Mampl.txt):D:WJI.FI;.tst新建丈件成功.艾件及其息役为:DAJIAPLr.txt图4存盘第二组数据为:洛阳理工学院课程设计报告6第二组数据测试截屏为:C:UsersadminDe5ktopkecheng.exe=率一-请炫择你的操作-一4*-A!修改个人的信 ft*4)率*季*B:寇丧玄母的宿,*-*-?C:修改子女的信息*率*-*-D:退出-*-一*雄*毕图5修改家族成员的信息图4王家家族树IX洛阳理工学院课程设计报告7rfC:ysei3adminDesktopkecheng.
13、eKeX*i青选择你的操作*-一-率率A!修改个人的信息*4*-*-*-:修改父母的站息-*整B_-率率*-C;瞥改子女的信息*专f*-*一一一*D!退出-*-一*4*=*请簌入悼改的姓名;如果不需莲修改就都久%然后援土21憾箍续王小二是否要惨改性别:如果需萼就错入不需要椽改枕输入熟后按Enter筮蜓续0请输入恰改的出生日期:加果不需蔓修改就输入定薄后按EtU#键缝续0清输入修改的家眶地址:如果不需要修改就输入娥后按EnMr键爵续0个人信息修改成功清按Em歆!爆续探作卿拼音半:图6修改某个人的具体信息您听要找的人己经找到信息如下所示:姓名:王小二出生日期:WQ如家庭住扯:落阳性剧:E男图7按照
14、生日查找某人一杵*加*44欢迎使用家族营理系笑*D:按姓名查我某人E:穆改窠个人的信息F:存盘读盘N:温出整个程序一4:输入家谱信息建立材B;输出聚个家谱信息按出生日期查找某人洛阳理工学院课程设计报告8C;05ersMadminDe5ktopMtecheng.exe*狄迎使用家族if珪系Ert*D:撞姓名白找某人E:惨改某个人的信息F:存查G:诙塑H:退出整个程序*读恩家洁*忡$*簌入文件名及其网径,以便从中漆耽露谱:丈件遂其路样何:D:MHP1B.tit):Etit):E:JIA-titJIA-tit图8读盘五、源程序#include#include#include#ifdefWIN32#d
15、efineCLEARsystem(cls)#defineTipForSaveFilePositionprintf(tt输入文件名及保存位置(eg:D:Wexample.txt):)#defineTipForReadFilePositionprintf(tt文件名及其路径(eg:D:Wexample.txt):)#else#defineCLEARsystem(clear)#defineTipForSaveFilePositionprintf(tt输入文件名及保存位置(eg:/home/xiong/example.txt):)#defineTipForReadFilePositionprintf(
16、tt文件名及其路径(eg:/home/xiong/example.txt):)#endif#definemaxFileNameLen50/保存的文件名的最大长度intFLAG=0;inta=1;typedefstructTreeNodeintChildNum;/记录这个人拥有几个儿女charName20;/记录这个人的姓名charbirthday20;/生日intmarriage;/婚否(1表示结婚,0表示没结婚)intdeath;/生死(1表示活着,0表示过世)/输入家谱信息建立村&船出整伫家谙信息C:按出生期查援某氏洛阳理工学院课程设计报告9charKind;/标示节点的种类有女G男Bch
17、araddress100;/住址charlivemassage50;/死亡日期(如果其已经死亡)structTreeNode*NextNode20;/记录这个人的儿女structTreeNode*Parent;记录这个节点的父节点TreeNode,*tree;voidCreatTree(TreeNode*Tree);voidOutPutAll(TreeNode*Tree);voidMenue(TreeNode*Tree);voidSubMenue1(TreeNode*Tree);voidSubMenue2(TreeNode*Tree);voidChange(TreeNode*Tree);voi
18、dAddNew(TreeNode*Tree);TreeNode*SearchTree(TreeNode*Tree,charname,intlength);TreeNode*SearchTree1(TreeNode*Tree,charbirth,intlength);voidOutPutMessage(TreeNode*Tree,charname,intlength);voidOutPutMessage1(TreeNode*Tree,charbirth,intlength);voidSaveFamily(TreeNode*root);voidReadFamily(TreeNode*root);i
19、ntmain()/主函数(TreeNode*Tree;/TreeNode*Tree1;/Tree1=&(*Tree);Tree=(TreeNode*)malloc(sizeof(TreeNode);Tree-Parent=NULL;strcpy(Tree-Name,0);Menue(Tree);return0;voidMenue(TreeNode*Tree)/输出主菜单(/*TreeNode*Tree1;Tree1=&Tree;*/charc;charname20;charbirth20;while(1)(system(cls);printf(t);printf(nntt*欢迎使用家族管理系统
20、*nn);printf(nttA:输入家谱信息建立树);洛阳理工学院课程设计报告10printf(nttB:输出整个家谱信息);printf(nttC:按出生日期查找某人);printf(nttD:按姓名查找某人);printf(nttE:修改某个人的信息);printf(nttF:存盘);printf(nttG昴);printf(nttH:退出整个程序nt);c=getchar();switch(c)(caseA:TreeNode*NewNode;NewNode=(TreeNode*)malloc(sizeof(TreeNode);printf(nt请输入姓名:);scanf(%s”,Tre
21、e-Name);printf(nt请输入性别女G男B:);getchar();scanf(%c”,&(Tree-Kind);Tree-Parent=NewNode;Tree-Parent=NULL;/CreatTree(Tree);/printf(nt家谱图已经建立成功nn);printf(nnt请按Enter键继续操作);getchar();break;caseB:if(strcmp(Tree-Name,0”)=0)(printf(nt家谱图的多叉树尚未建立请先建立树n);getchar();break;printf(nnt整个家谱的主要信息如下:);OutPutAll(Tree);getc
22、har();break;caseC:if(strcmp(Tree-birthday,0”)=0)(printf(nt家谱图的多叉树尚未建立请先建立树n);getchar();break;洛阳理工学院课程设计报告11printf(nt请输入你要查找的出生日期:,洛阳理工学院课程设计报告12scanf(%s,birth);OutPutMessage1(SearchTree1(Tree,birth,20),birth,20);printf(nnt-*-*-*-*-*-nt);getchar();break;caseD:if(strcmp(Tree-Name,0”)=0)printf(nt家谱图的多叉
23、树尚未建立请先建立树n);getchar();break;printf(nt请输入你要查找的人的姓名:nt);scanf(%s”,name);OutPutMessage(SearchTree(Tree,name,20),name,20);printf(nnt-*-*-*-*-*-nt);getchar();break;caseE:if(strcmp(Tree-Name,0”)=0)printf(nt家谱图的多叉树尚未建立请先建立树getchar();break;n);Change(Tree);getchar();break;caseF:if(strcmp(Tree-Name,0”)=0)pri
24、ntf(nt家谱图的多叉树尚未建立请先建立树getchar();break;n);SaveFamily(Tree);getchar();break;caseG:/*if(strcmp(Tree-Name,0)=0)printf(nt家谱图的多叉树尚未建立请先建立树getchar();break;n);洛阳理工学院课程设计报告13洛阳理工学院课程设计报告14*/ReadFamily(&Tree);getchar();break;caseH:printf(nnt本次服务至V此结束);printf(nt欢迎下次使用);printf(nt谢谢nn);break;casen:break;default:
25、printf(nnt对不起!你的选择不在服务范围之内!);printf(nt请您再次选择所需的服务项!);printf(nt谢谢nt);getchar();break;if(c=H|c=f)break;getchar();voidCreatTree(TreeNode*Node)/创建树inti;TreeNode*NewNode;NewNode=(TreeNode*)malloc(sizeof(TreeNode);Node-NextNode0=NewNode;Node-NextNode0=NULL;printf(nt请输入出生日期:);scanf(%s”,Node-birthday);print
26、f(nt请输入家庭住址:);getchar();scanf(%s,Node-address);printf(nt请输入是否建在(1-是或0-否):”);scanf(%d”,&(Node-death);if(Node-death=0)printf(nt请输入去世日期:);scanf(%s”,Node-livemassage);elseif(Node-death=1)printf(nt仍然建在);printf(nt请输入%s的配偶的姓名(输入0代表没结婚):,Node-Name);scanf(%s,NewNode-Name);洛阳理工学院课程设计报告15if(strcmp(NewNode-Name
27、,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-livemassage);elseif(NewNode-death=1)printf(-nt仍然建在);printf(nt请输入%s的子女的数目(当子女
28、输入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;elseNewNode-Kind=G;NewNode-ChildNum=0;NewNode-NextNode0=NULL;Node-NextNode0=NewNode;Node-NextNode0-Parent=Node;/孩子的父母for(i=1;iChildNum;i+)(NewNode=(T
29、reeNode*)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-NextNodei=NewNode;CreatTree(Node-NextNodei);/从子女的数目开始voidOutPutAll(TreeNode*Tree)(
30、洛阳理工学院课程设计报告16inti,flag=0;*”uint.nxtprintf(nt姓名:%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(Tree-death=1)printf(1);elseif(Tree-death=0)printf(0);if(!(Tree-NextNode0)(printf(nt至今没有配偶和子女n);retur
31、n;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);elseif(Tree-death=0)printf(0);for(i=1;iChildNum;i+)(printf(nt第%d个子女的姓名:%s出生日期:%s家庭住址:%s性别%c,i,Tree-NextNodei-Name,Tree-NextNodei-birthday,Tree-NextNodei-addr
32、ess,Tree-NextNodei-Kind);if(Tree-NextNodei-Kind=G|Tree-NextNodei-Kind=g)printf(女);elseprintf(男);printf(t是否健在(1-健在,0-去世):);if(Tree-death=1)printf(1);elseif(Tree-death=0)printf(0);printf(nt);for(i=1;iChildNum;i+)(OutPutAll(Tree-NextNodei);家庭住址:%s性洛阳理工学院课程设计报告17TreeNode*SearchTree(TreeNode*Tree,charnam
33、e,intlength)(inti;TreeNode*NewNode;if(strcmp(Tree-Name,name)=0)(if(length=0)FLAG=1;elseFLAG=0;returnTree;if(Tree-NextNode0=NULL)returnNULL;for(i=0;iChildNum;i+)(if(i=0)NewNode=SearchTree(Tree-NextNodei,name,0);elseNewNode=SearchTree(Tree-NextNodei,name,20);if(NewNode!=NULL)returnNewNode;returnNULL;v
34、oidOutPutMessage(TreeNode*Tree,charname,intlength)(intflag=0,i;TreeNode*NewNode;printf(nnt-*-*-*-*-*-*-*-*-*-*-);if(Tree=NULL)(printf(nnt*该家谱图中没有%s这个人的信息请确认是否输入错误*n,name);return;printf(nnt您所要找的人已经找到信息如下所示:);printf(nnt姓名:%s出生日期:%s家庭住址别:%c”,name,Tree-birthday,Tree-address,Tree-Kind);if(Tree-Kind=G|Tre
35、e-Kind=g)(flag=1;printf(女);elseprintf(男);%s性/标记他(她)的性别洛阳理工学院课程设计报告18printf(t是否健在(1-健在,0-去世):,if(Tree-death=1)printf(1);elseif(Tree-death=0)printf(0);NewNode=Tree-Parent;if(FLAG=1)if(flag=1)printf(nnt她是嫁入此家族的所以亲生父母信息不在家谱内包括);printf(nt丈夫姓名:%s”,NewNode-Name);elseprintf(-nnt他是入赘此家族的所以亲生父母信息不在家谱内包括);prin
36、tf(nt妻子姓名:%s”,NewNode-Name);if(NewNode-ChildNum)0)判断他(她)是否有孩子printf(nt的孩子的信息如下:);输出他(她)的孩子的信息for(i=1;iChildNum;i+)printf(nt姓名:%s性别:,NewNode-NextNodei-Name);if(NewNode-NextNodei-Kind=G|NewNode-Kind=g)printf(女);elseprintf(男);printf(t是否健在(1-健在,0-去世):);if(Tree-death=1)printf(1);elseif(Tree-death=0)print
37、f(0);return;if(NewNode=NULL)/判断它是不是根节点如果是的话就没有父母兄弟信息printf(nt是这个家谱图里最年长的人,name);elseif(NewNode-Kind=G|NewNode-Kind=g)判断父亲节点是父亲还是母亲printf(nt母亲姓名:s”,NewNode-Name);/输出他(她)的父母亲的信息printf(nt父亲姓洛阳理工学院课程设计报告19名:%s”,NewNode-NextNode0-Name);elseprintf(nt母亲姓名:%s”,NewNode-NextNode0-Name);printf(nt父 亲 姓名:%s,NewN
38、ode-Name);if(Tree-NextNode0!=NULL)/判断他(她)是否有配偶if(flag=1)/输出他(她)的配偶的信息printf(nt丈夫姓名:%s”,Tree-NextNode0-Name);elseprintf(nt妻子姓名:%s”,Tree-NextNode0-Name);if(Tree-ChildNum0)/判断他(她)是否有孩子printf(nt的孩子的信息如下:); 输出他(她)的孩子的信息for(i=1;iChildNum;i+)printf(nt姓名:%s性别: ”,Tree-NextNodei-Name);if(Tree-NextNodei-Kind=G
39、|Tree-Kind=g)printf(女);elseprintf(男);printf(t是否健在(1-健在,0-去世):,if(Tree-death=1)printf(1);elseif(Tree-death=0)printf(0);elseprintf(nt%s至今还没有孩子,name);elseprintf(nt%s至今还没有配偶和孩子n”,Tree-Name);TreeNode*SearchTree1(TreeNode*Tree,charbirth,intlength)inti;TreeNode*NewNode;if(strcmp(Tree-birthday,birth)=0)洛阳理工
40、学院课程设计报告20if(length=0)FLAG=1;elseFLAG=0;returnTree;if(Tree-NextNode0=NULL)returnNULL;for(i=0;iChildNum;i+)if(i=0)NewNode=SearchTree1(Tree-NextNodei,birth,0);elseNewNode=SearchTree1(Tree-NextNodei,birth,20);if(NewNode!=NULL)returnNewNode;returnNULL;voidOutPutMessage1(TreeNode*Tree,charbirth,intlength
41、)intflag=0,i;TreeNode*NewNode;if(Tree=NULL)printf(nnt*该家谱图中没有出生日期为%s这个人的信息请确认是否输入错误*n,birth);return;printf(nnt您所要找的人已经找到信息如下所示:);printf(nnt姓名:%s出生日期:s家庭住址:s性别:%c”,Tree-Name,Tree-birthday,Tree-address,Tree-Kind);if(Tree-Kind=G|Tree-Kind=g)flag=1;/标记他(她)的性别printf(女);elseprintf(男);voidChange(TreeNode*T
42、ree)/修改某个人的信息charname20;TreeNode*NewNode;printf(nnt*洛阳理工学院课程设计报告21printf(nt请输入你要修改的人的姓名:nt);scanf(%s”,name);NewNode=SearchTree(Tree,name,20);if(NewNode=NULL)printf(nnt*该家谱图中没有%s这个人的信息请确认是否输入错误*n,name);return;elseSubMenue1(NewNode);voidSubMenue1(TreeNode*Tree)/输出副菜单charc;intflag,i;charname20;charbirt
43、h20;charaddress150;charParent220;TreeNode*NewNode;getchar();while(1)system(cls);printf(t);printf(nnt-*-请选择你的操作-*-);printf(nt-*-*-*-A:修改个人的信息-*-*-*-*-*-*-);printf(nt-*-*-*-B:修改父母的信息-*-*-*-*-*-*-);printf(nt-*-*-*-C:修改子女的信息-*-*-*-*-*-*-);printf(nt-*-*-*-D:退出-*-*-*-*-*-*-*-*-*-nt);c=getchar();switch(c)c
44、aseA:printf(-nnt请输入修改的姓名:如果不需要修改就输入0然后按Enter键继续nt);scanf(%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;elseTree-Kind=G;洛阳理工学院课程设计报告22printf(nnt请输入修改的出生日期:如果不需要修改就输入0然后按Enter键继
45、续nt);scanf(%s”,birth);if(strcmp(birth,0”)!=0)strcpy(Tree-birthday,birth);printf(-nnt请输入修改的家庭地址:如果不需要修改就输入0然后按Enter键继续nt);scanf(%s,address1);if(strcmp(address1,0”)!=0)strcpy(Tree-address,address1);printf(nnt个人信息修改成功);break;caseB:if(Tree-Parent=NULL)/判断是不是头节点(printf(nt是这个家谱图里最顶端的人没有父母信息!,name);break;i
46、f(FLAG=1)判断是不是入赘或加入此间的(if(Tree-Kind=G|Tree-Kind=g)(printf(nnt她是嫁入此间的所以父母信息不在家谱内包括);else(printf(-nnt他是入赘此间的所以父母信息不在家谱内包括);break;if(Tree-Parent-Kind=G|Tree-Parent-Kind=g)(strcpy(Parent0,”母亲);strcpy(Parent1,”父亲);else(strcpy(Parent0,”父亲);strcpy(Parent1,”母亲);printf(nnt请输入%s要修改的姓名:如果不需要修改就输入0然后按Enter键继续nt
47、”,Parent0);scanf(%s”,name);if(strcmp(name,0”)!=0)strcpy(Tree-Parent-Name,name);printf(-nnt请输入%s要修改的姓名:如果不需要修改就输入0洛阳理工学院课程设计报告23然后按Enter键继续nt,Parent1);scanf(%s,name);if(strcmp(name,0”)!=0)strcpy(Tree-Parent-NextNode0-Name,name);printf(nnt父母的信息修改成功);break;caseC:if(Tree-ChildNum=0)(printf(nnt至今还没有子女);b
48、reak;if(Tree-Parent!=NULL)if(strcmp(Tree-Name,Tree-Parent-NextNode0-Name)=0)/如果他是入赘或者是嫁入的就需用配偶节点完成修改(Tree=Tree-Parent;for(i=1;iChildNum;i+)(printf(-nnt请输入s修改的姓名:如果不需要修改就输入0然后按Enter键继续nt,Tree-NextNodei-Name);scanf(%s,name);if(strcmp(name,0”)!=0)strcpy(Tree-NextNodei-Name,name);printf(-nnt是否要修改性别:如果需要
49、就输入1不需要修改就输入0然后按Enter键继续nt);scanf(%d,&flag);if(flag=1)(if(Tree-NextNodei-Kind=G|Tree-NextNodei-Kind=g)Tree-NextNodei-Kind=B;elseTree-NextNodei-Kind=G;printf(nnt子女的信息修改成功);break;caseD:printf(nnt本项服务到此结束);break;casen:break;default:printf(nnt对不起!你的选择不在服务范围之内!);洛阳理工学院课程设计报告24printf(nt请您再次选择所需的服务项!);printf(nt谢谢合作!nt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年xx村集体经济分红会议记录
- 《全面掌握教学》课件
- 内蒙古准格尔旗高中数学 第三章 概率 3.1.4 概率的加法公式教学设计 新人教B版必修3
- 吉林科技职业技术学院《人体机能学》2023-2024学年第二学期期末试卷
- 山西工学院《Programming2》2023-2024学年第二学期期末试卷
- 辽宁机电职业技术学院《伴奏与弹唱》2023-2024学年第一学期期末试卷
- 茅台学院《金工手作基础工艺》2023-2024学年第二学期期末试卷
- 可克达拉职业技术学院《儿童文学素养》2023-2024学年第二学期期末试卷
- 商洛职业技术学院《危重病医学》2023-2024学年第一学期期末试卷
- 江西省赣州市会昌中学2025年高三高考最后一次模拟考试英语试题含解析
- 2024-2025学年高二上学期期中家长会-家校同频共话成长 课件
- 混合痔的中医护理方案
- 托幼机构卫生评价报告
- 社区邻里互助志愿服务活动方案
- 【构建企业级好数据】Dataphin智能数据建设与治理产品白皮书
- 国开(内蒙古)2024年《经济学与生活》形考1-3答案
- 2024年电信智能云服务工程师技能竞赛理论考试题库(含答案)
- 七年级道德与法治下册 第四单元 走进法治天地 第九课 法律在我们身边 第二框《法律保障生活》教学设计 新人教版
- 循证医学考试题库及答案
- 新疆维吾尔自治区2025届高考压轴卷生物试卷含解析
- 2024年湖南学业水平考试地理真题及答案
评论
0/150
提交评论