ImageVerifierCode 换一换
格式:DOC , 页数:53 ,大小:175.50KB ,
资源ID:4586521      下载积分:14 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4586521.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(家谱管理系统设计报告样本.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

家谱管理系统设计报告样本.doc

1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。 目 录 第一章 绪论 2 第二章 需求分析 3 2.1题目 3 2.2设计任务 3 2.3数据测试 3 第三章 概要设计 3 3.1 设计思想 3 3.2 实现方法 4 第四章 详细设计 4 4.1功能构想 4 4.2界面设计 4 4.3增加成员 5 4.3.1 添加子女 5 4.3.2 添加配偶 5 4.4修改成员 6 4.4.1修改个人信息 6 4.4.2修改父母信息 6 4.4.3修改兄弟姐妹的信息 6 4.4.4修改子女的信息 7 第五章 调试分

2、析 7 第六章 测试结果 9 致 谢 10 参考文献 11 附 录 11 第一章 绪论 当前, 很多家庭家谱丢失, 家庭一些关系混乱, 为了避免这一问题, 制定一家谱程序。家谱用于记录某家族历代家族成员的情况与关系, 实现对一个家族所有的资料进行收集整理。支持对家谱的存储、 更新、 查询、 统计等操作。并用计算机永久储存家族数据, 方便随时调用。 第二章 需求分析 2.1题目 家谱管理系统 2.2设计任务 系统总体

3、说明: 以树形结构存储家族信息, 只考虑三代( 祖父, 父亲, 叔叔, 姑姑, 自己, 兄弟姐妹, 堂兄弟姐妹) , 只考虑每个人有0或者1个兄弟姐妹的情况。注意每个结点结构。统计统计家族成员人数, 查询家族成员辈份。 完成功能的详细说明: 1.输入家族成员情况, 建立树结构( 涉及创立二叉树) ; 2.统计家族成员人数和每一个家庭成员人数( 涉及树的遍历) ; 3.查询家族成员辈份情况( 任意输入两个家庭成员, 查询她们的关系, 父子, 祖孙, 兄弟, 堂兄弟, 共同的祖先) 。 4. 选做, 考虑每个人有多个兄弟姐妹的情况。 2.3数据测试 测试的数据有: 田迎

4、新 陈瑞英 田紫藤 田紫恒 孙超 李美霖 …….. 第三章 概要设计 3.1 设计思想 创立一棵树, 存储家庭关系, 数据类型有 int Num; //记录这个人拥有几个儿女 char Name[20]; //记录这个人的姓名 char Sex; //标示节点的种类有女(0) 男(1) struct TreeNode * NextNode[20]; //记录这个人的儿女 struct TreeNode * Par

5、ent; //记录这个节点的父节点 3.2 实现方法 完成功能的函数有 void CreatTree(TreeNode *Tree);//--------------------------------创立树 void OutPutAll(TreeNode *Tree);//-------------------------------遍历并输出树中的内容 void firstoftxt();//----------------------------------------------------写入文件的开始信息 void ofAll(TreeNode

6、 *Tree);//-------------------------------------写入文件函数 void ifAll();//---------------------------------------------------------读取文件的函数 TreeNode * SearchTree(TreeNode *Tree,char name[],int length);//查找结点的函数 void MainMenue(TreeNode *Tree);//-----------------------------主菜单 void SubMenue1(TreeNode

7、 Tree);//----------------------------修改成员信息的菜单 void SubMenue2(TreeNode *Tree);//-----------------------------添加新成员菜单 void Change(TreeNode * Tree);//---------------------------------修改成员信息 void AddNew(TreeNode * Tree);//--------------------------------添加新成员 void OutPutMessage(TreeNode * Tree,cha

8、r name[],int length);//输出已经查找到的人的信息 第四章 详细设计 4.1功能构想 构想好总体规划之后, 便开始设计程序中需要用到的各个功能函数, 初步构想是要先实现最基本的几项功能, 其中数据操作的有: 增加成员, 修改成员资料, 删除成员; 数据存取的有: 打开家谱, 新建家谱, 保存家谱; 数据查询的有: 查看某代信息, 按姓名查找, 查看成员关系, 等等。 4.2界面设计 cout<<"\n\n\t ---*****---请选择你的操作---****---"; cout<<"\n\t--------------1:输入家谱

9、信息建立多叉树----------------------"; cout<<"\n\t--------------2:在家族中查找某人并输出她或(她)的相应信息----"; cout<<"\n\t--------------3:添加新的成员--------------------------------"; cout<<"\n\t--------------4:输出整个家谱信息----------------------------"; cout<<"\n\t--------------5:修改某个人的信息----------------------------";

10、 cout<<"\n\t--------------6:家谱信息存入文件----------------------------"; cout<<"\n\t--------------7:读取家谱信息文件----------------------------"; cout<<"\n\t--------------8:退出整个程序--------------------------------\n\t"; if(选择1) { CreatTree(TreeNode *Tree); } Else if( 选择2) { OutPutMessage(TreeNo

11、de * Tree,char name[],int length);} Else if( 选择3) { AddNew(TreeNode * Tree);} Else if( 选择4) { OutPutAll(TreeNode *Tree);} Else if( 选择5) { Change(TreeNode * Tree);} Else if( 选择6) { ofAll(TreeNode *Tree);} Else if( 选择7) { ifAll();} Else {exit( 0) ;} 4.3增加成员 4.3.1 添加子女 NewNode=new

12、TreeNode; cout<<"\n\n\t请输入添加人员姓名: "; cin>>NewNode->Name; cout<<"\n\n\t请输入添加人员性别女(0) 男(1): "; cin>>NewNode->Sex; num=Tree->Num; NewNode->NextNode[0]=new TreeNode; NewNode->NextNode[0]=NULL; NewNode->Num=0; NewNode->Parent=Tree; Tree->NextNode[num+1]=NewNode; Tree->Num=Tree->Num

13、1; cout<<"\n\n\t-------------子女的信息添加成功----------------"; 4.3.2 添加配偶 NewNode=new TreeNode; cout<<"\n\n\t请输入添加人员姓名: "; cin>>NewNode->Name; cout<<"\n\n\t请输入添加人员性别女(0) 男(1): "; cin>>NewNode->Sex; NewNode->Parent=Tree; Tree->NextNode[0]=NewNode; 4.4修改成员 4.4.1修改个人信息 cout<<"\n\n\t请输入

14、修改的姓名(如果不需要修改就输入'0',然后按Enter键继续):\n"; cin>>name; if(strcmp(name,"0")!=0) strcpy(Tree->Name,name); cout<<"\n\n\t是否要修改性别:(如果需要就输入'1',不需要修改就输入'0'然后按Enter键继续):\n"; cin>>flag; if (flag==1) { if(Tree->Sex=='0') Tree->Sex='1'; else Tree->Sex='0'; } 4.4.2修改父母信息 cout<<"\n\n\t请输入 "<

15、]<<" 要修改的姓名(如果不需要修改就输入'0',然后按Enter键继续):\n"; cin>>name; if(strcmp(name,"0")!=0) strcpy(Tree->Parent->Name,name); cout<<"\n\n\t请输入 "<>name; if(strcmp(name,"0")!=0) strcpy(Tree->Parent->NextNode[0]->Name,name); 4.4.3修改兄弟姐妹的信息 cout<<"\n

16、\n\t请输入 "<NextNode[i]->Name<<" 修改的姓名(如果不需要修改就输入'0',然后按Enter键继续):\n"; cin>>name; if(strcmp(name,"0")!=0) strcpy(NewNode->NextNode[i]->Name,name); cout<<"\n\n\t是否要修改性别(如果需要就输入'1'不需要修改就输入'0'然后按Enter键继续):\n"; cin>>flag; if (flag==1) { if(NewNode->NextNode[i]->Sex=='0') NewNo

17、de->NextNode[i]->Sex='1'; else NewNode->NextNode[i]->Sex='0'; } 4.4.4修改子女的信息 cout<<"\n\n\t请输入 "<NextNode[i]->Name<<" 修改的姓名(如果不需要修改就输入'0',然后按Enter键继续):\n"; cin>>name; if(strcmp(name,"0")!=0) strcpy(Tree->NextNode[i]->Name,name); cout<<"\n\n\t是否要修改性别(如果需要就输入'1',不需要修改就输入'0'然后按Enter键继续)

18、\n"; cin>>flag; if (flag==1) { if(Tree->NextNode[i]->Sex=='0') Tree->NextNode[i]->Sex='1'; else Tree->NextNode[i]->Sex='0'; } 第五章 调试分析 1.进入系统 2.建立家谱 3.查看信息 4.添加成员 5.修改信息 第六章 测试结果 父亲姓名 田迎新 母亲姓名 陈瑞英 姐姐 田紫藤 姐夫 孙超 本人 田紫恒 李美霖 致 谢 感谢

19、孙红艳老师辛苦教导与教诲, 让我学到了很多知识, 提高了很大的能力。 与此同时, 也感谢老师为我辛苦验收课设, 耐心讲解, 让我也受益匪浅。 今后, 我一定会努力学习, 用我的实际行动来回报家长, 感谢我的老师, 为学校争光, 努力为我们的国家, 贡献出一份微薄的贡献! 参考文献 [1]《数据结构》C++语言版 严蔚敏 吴伟民编著 清华大学出版社 [2]《数据库数据结构软件工程课程设计指导及习题解答》徐志才 方贤文 刘士

20、喜编 北京师范大学出版社 [3]《C++语言程序设计》 何钦铭 颜晖 主编 高等教育出版社 附 录 #include #include #include //getchar 能够将键入的信息存到缓冲区,按Enter键将进行输入 #include //system的头文件,exit的头文件 #include int MATEFLAG=0; typedef struct TreeNode { int Num;

21、 //记录这个人拥有几个儿女 char Name[20]; //记录这个人的姓名 char Sex; //标示节点的种类有女(0) 男(1) struct TreeNode * NextNode[20]; //记录这个人的儿女 struct TreeNode * Parent; //记录这个节点的父节点 }TreeNode; void CreatTree(TreeNode *Tree);//------------------------

22、创立树 void OutPutAll(TreeNode *Tree);//-------------------------------遍历并输出树中的内容 void firstoftxt();//--------------------------------------------写入文件的开始信息 void ofAll(TreeNode *Tree);//-----------------------------------写入文件函数 void ifAll();//-------------------------------------------------读

23、取文件的函数 TreeNode * SearchTree(TreeNode *Tree,char name[],int length);//查找结点的函数 void MainMenue(TreeNode *Tree);//-------------------------------主菜单 void SubMenue1(TreeNode * Tree);//------------------------------修改成员信息的菜单 void SubMenue2(TreeNode *Tree);//-------------------------------添加新成员菜单 vo

24、id Change(TreeNode * Tree);//---------------------------------修改成员信息 void AddNew(TreeNode * Tree);//---------------------------------添加新成员 void OutPutMessage(TreeNode * Tree,char name[],int length);//---输出已经查找到的人的信息 //主函数 void main() { TreeNode *Tree; Tree=new TreeNode; Tree->Parent =NULL;

25、 strcpy(Tree->Name,"0"); MainMenue(Tree); } //添加新的成员 void AddNew(TreeNode * Tree) { SubMenue2(Tree); } //输出副菜单 void SubMenue2(TreeNode *Tree) { char c; int num; char name[20]; TreeNode * NewNode; while(1) { system("cls"); cout<<"\t"; cout<<"\n\n\t ---**

26、请选择你的操作---****--- "; cout<<"\n\t---*---*---*---1:添加某个人的子女的信息---*---*---*---*---- "; cout<<"\n\t---*---*---*---2:添加某个人配偶的信息-*---*---*---*---*---- "; cout<<"\n\t---*---*---*---3:退出-*---*---*---*---*---*---*---*---*----\n\t"; cout<<"请输入:"; cin>>c; switch(c)

27、 { case '1': cout<<"\n\n\t请输入那个人的名字: "; cin>>name; Tree=SearchTree(Tree,name,20); if(Tree==NULL) { cout<<"\n\n\t****该家谱图中没有 "<Parent==NULL&&Tree->NextNode[0]==NULL||Tree->Parent!=NULL&&Tree->Name!=Tree->Parent->Nex

28、tNode[0]->Name) { cout<<"\n\n\t"<Name<<" 至今还没有配偶请先添加配偶!"; break; } if(Tree->Parent==NULL&&(Tree->Num>20||Tree->Num<0)) Tree->Num=0; if(MATEFLAG==1) Tree=Tree->Parent; NewNode=new TreeNode; cout<<"\n\n\t请输入添加人员姓名: "; cin>

29、>NewNode->Name; cout<<"\n\n\t请输入添加人员性别女(0) 男(1): "; cin>>NewNode->Sex; num=Tree->Num; NewNode->NextNode[0]=new TreeNode; NewNode->NextNode[0]=NULL; NewNode->Num=0; NewNode->Parent=Tree; Tree->NextNode[num+1]=NewNode; Tree->Num=Tree->Num+1; cout<<"\n

30、\n\t-------------子女的信息添加成功----------------"; break; case '2': cout<<"\n\n\t请输入那个人的名字: "; cin>>name; Tree=SearchTree(Tree,name,20); if(Tree->Parent!=NULL&&strcmp(Tree->Name,Tree->Parent->NextNode[0]->Name)==0||Tree->NextNode[0]!=NULL) { cout<<"\n\n\t已经有了配偶"; bre

31、ak; } if(Tree==NULL) { cout<<"\n\n\t****该家谱图中没有 "<>NewNode->Name; cout<<"\n\n\t请输入添加人员性别女(0) 男(1): "; cin>>NewNode->Sex; NewNode->Parent=Tree; Tree-

32、>NextNode[0]=NewNode; break; case '3': cout<<"\n\n\t----------------本项服务到此结束-----------------"; break; case '\n': break; default: cout<<"\n\n\t--------对不起!你的选择不在服务范围之内!--------- "; cout<<"\n\t-----------请您再次选择所需的服务项!------------- "; cout<<"\n\t------------

33、谢谢合作!----------------------\n\t";break; } if (c=='3') break; } } //修改某个人的信息 void Change(TreeNode * Tree) { char name[20]; TreeNode * NewNode; cout<<"\n\t请输入你要修改的人的信息: "; cin>>name; NewNode=SearchTree(Tree,name,20); if(NewNode==NULL) { cout<<"\n\n\t****该家谱

34、图中没有 "<

35、请选择你的操作---****--- "; cout<<"\n\t---*---*---*---1:修改个人的信息---*---*---*---*---*---*---- "; cout<<"\n\t---*---*---*---2:修改父母的信息---*---*---*---*---*---*---- "; cout<<"\n\t---*---*---*---3:修改兄弟姐妹的信息---*---*---*---*---*---- "; cout<<"\n\t---*---*---*---4:修改子女的信息---*-

36、 "; cout<<"\n\t---*---*---*---5:修改配偶的信息---*---*---*---*---*---*---- "; cout<<"\n\t---*---*---*---6:退出-*---*---*---*---*---*---*---*---*----\n\t"; cout<<"请输入:"; cin>>c; switch(c) { case '1': cout<<"\n\n\t请输入修改的姓名(如果不需要修改就输入'0',然后按Enter键继续):\n";

37、 cin>>name; if(strcmp(name,"0")!=0) strcpy(Tree->Name,name); cout<<"\n\n\t是否要修改性别:(如果需要就输入'1',不需要修改就输入'0'然后按Enter键继续):\n"; cin>>flag; if (flag==1) { if(Tree->Sex=='0') Tree->Sex='1'; else Tree->Sex='0'; } cout<<"\n\n\t个人信息修改成功!"; cout<

38、<"\n--------------按Enter键继续操作... ..."<Parent==NULL) //判断是不是头节点 { cout<<"\n\t是这个家谱图里最顶端的人没有父母信息!"<

39、入赘或加入此间的 { if(Tree->Sex=='0') { cout<<"\n\n\t她是嫁入此间的因此父母信息不在家谱内包括!"; cout<<"\n--------------按Enter键继续操作... ..."<

40、 getchar(); } break; } if(Tree->Parent->Sex=='0') { strcpy(Parent[0],"母亲"); strcpy(Parent[1],"父亲"); } else { strcpy(Parent[0],"父亲"); strcpy(Parent[1],"母亲"); } cout<<"\n\n\t请输入 "<

41、入'0',然后按Enter键继续):\n"; cin>>name; if(strcmp(name,"0")!=0) strcpy(Tree->Parent->Name,name); cout<<"\n\n\t请输入 "<>name; if(strcmp(name,"0")!=0) strcpy(Tree->Parent->NextNode[0]->Name,name)

42、 cout<<"\n\n\t-------------父母的信息修改成功----------------"<Parent; if(NewNode==NULL) //判断是不是头节点 { cout<<"\n\t是这个家谱图里最顶端的人没有兄弟姐妹信息!"<

43、 cout<<"\n--------------按Enter键继续操作... ..."<Sex=='0') { cout<<"\n\n\t她是嫁入此间的因此兄弟姐妹信息不在家谱内包括!"; cout<<"\n--------------按Enter键继续操作... ..."<

44、); } else {cout<<"\n\n\t她是入赘此间的因此兄弟姐妹信息不在家谱内包括!"; cout<<"\n--------------按Enter键继续操作... ..."<Num==1) { cout<<"\n\n\t没有兄弟姐妹!"; cout<<"\n--------------按Enter键继续操作... ..."<

45、 getchar(); break; } else { for(i=1;i<=NewNode->Num;i++) { if(NewNode->NextNode[i]->Name!=Tree->Name) { cout<<"\n\n\t请输入 "<NextNode[i]->Name<<" 修改的姓名(如果不需要修改就输入'0',然后按Enter键继续):\n"; cin>>name; if(strcmp(name,"0")!=0)

46、 strcpy(NewNode->NextNode[i]->Name,name); cout<<"\n\n\t是否要修改性别(如果需要就输入'1'不需要修改就输入'0'然后按Enter键继续):\n"; cin>>flag; if (flag==1) { if(NewNode->NextNode[i]->Sex=='0') NewNode->NextNode[i]->Sex='1'; else NewNode->NextNode[i]->

47、Sex='0'; } } } } cout<<"\n\n\t------------兄弟姐妹的信息修改成功-------------"<Num==0) { cout<<"\n\n\t至今还没有子女!"; cout<<"\n--------------按Enter键继续操作...

48、"<Parent !=NULL) if (strcmp(Tree->Name,Tree->Parent->NextNode[0]->Name)==0) //如果她是入赘或者是嫁入的就需用配偶节点完成修改 { Tree=Tree->Parent; } for(i=1;i<=Tree->Num;i++) { cout<<"\n\n\t请输入 "<NextNode[i]->Name<<" 修

49、改的姓名(如果不需要修改就输入'0',然后按Enter键继续):\n"; cin>>name; if(strcmp(name,"0")!=0) strcpy(Tree->NextNode[i]->Name,name); cout<<"\n\n\t是否要修改性别(如果需要就输入'1',不需要修改就输入'0'然后按Enter键继续):\n"; cin>>flag; if (flag==1) { if(Tree->NextNode[i]->Sex

50、'0') Tree->NextNode[i]->Sex='1'; else Tree->NextNode[i]->Sex='0'; } } cout<<"\n\n\t---------------子女的信息修改成功----------------"<

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服