欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    家谱标准管理专业系统设计方案报告.doc

    • 资源ID:98001676       资源大小:163.54KB        全文页数:37页
    • 资源格式: DOC        下载积分:6金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    家谱标准管理专业系统设计方案报告.doc

    目 录第一章 绪论2第二章需求分析32.1题目32.2设计任务32.3数据测试3第三章 概要设计33.1 设计思想33.2 实现办法4第四章 详细设计44.1功能构想44.2界面设计44.3增长成员54.3.1 添加子女54.3.2 添加配偶54.4修改成员64.4.1修改个人信息64.4.2修改父母信息64.4.3修改兄弟姐妹信息64.4.4修改子女信息7第五章 调试分析7第六章 测试成果9致 谢10参照文献11附 录11第一章 绪论当前,诸多家庭家谱丢失,家庭某些关系混乱,为了避免这一问题,制定一家谱程序。家谱用于记录某家族历代家族成员状况与关系,实现对一种家族所有资料进行收集整顿。支持对家谱存储、更新、查询、记录等操作。并用计算机永久储存家族数据,以便随时调用。第二章 需求分析2.1题目家谱管理系统2.2设计任务系统总体阐明:以树形构造存储家族信息,只考虑三代(祖父,爸爸,叔叔,姑姑,自己,兄弟姐妹,堂兄弟姐妹),只考虑每个人有0或者1个兄弟姐妹状况。注意每个结点构造。记录记录家族成员人数,查询家族成员辈份。完毕功能详细阐明:1输入家族成员状况,建立树构造(涉及创立二叉树);2记录家族成员人数和每一种家庭成员人数(涉及树遍历);3查询家族成员辈份状况(任意输入两个家庭成员,查询她们关系,父子,祖孙,兄弟,堂兄弟,共同祖先)。4. 选做,考虑每个人有各种兄弟姐妹状况。2.3数据测试测试数据有:田迎新 陈瑞英 田紫藤 田紫恒 孙超 李美霖 .第三章 概要设计3.1 设计思想创立一棵树,存储家庭关系,数据类型有int Num; /记录这个人拥有几种子女char Name20; /记录这个人姓名char Sex; /标示节点种类有女(0) 男(1)struct TreeNode * NextNode20; /记录这个人子女struct TreeNode * Parent; /记录这个节点父节点3.2 实现办法完毕功能函数有 void CreatTree(TreeNode *Tree);/-创立树void OutPutAll(TreeNode *Tree);/-遍历并输出树中内容void firstoftxt();/-写入文献开始信息void ofAll(TreeNode *Tree);/-写入文献函数void ifAll();/-读取文献函数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);/输出已经查找到人信息第四章 详细设计4.1功能构想构想好总体规划之后,便开始设计程序中需要用到各个功能函数,初步构想是要先实现最基本几项功能,其中数据操作有:增长成员,修改成员资料,删除成员;数据存取有:打开家谱,新建家谱,保存家谱;数据查询有:查看某代信息,按姓名查找,查当作员关系,等等。4.2界面设计cout<<"nnt -*-请选取你操作-*-"cout<<"nt-1:输入家谱信息建立多叉树-"cout<<"nt-2:在家族中查找某人并输出她或(她)相应信息-"cout<<"nt-3:添加新成员-"cout<<"nt-4:输出整个家谱信息-"cout<<"nt-5:修改某个人信息-" cout<<"nt-6:家谱信息存入文献-"cout<<"nt-7:读取家谱信息文献-"cout<<"nt-8:退出整个程序-nt" if(选取1) CreatTree(TreeNode *Tree);Else if(选取2) OutPutMessage(TreeNode * 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();Elseexit(0);4.3增长成员4.3.1 添加子女NewNode=new TreeNode;cout<<"nnt请输入添加人员姓名: "cin>>NewNode->Name;cout<<"nnt请输入添加人员性别女(0) 男(1): "cin>>NewNode->Sex;num=Tree->Num;NewNode->NextNode0=new TreeNode;NewNode->NextNode0=NULL;NewNode->Num=0;NewNode->Parent=Tree;Tree->NextNodenum+1=NewNode;Tree->Num=Tree->Num+1;cout<<"nnt-子女信息添加成功-"4.3.2 添加配偶NewNode=new TreeNode;cout<<"nnt请输入添加人员姓名: "cin>>NewNode->Name;cout<<"nnt请输入添加人员性别女(0) 男(1): "cin>>NewNode->Sex;NewNode->Parent=Tree;Tree->NextNode0=NewNode;4.4修改成员4.4.1修改个人信息cout<<"nnt请输入修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n"cin>>name;if(strcmp(name,"0")!=0)strcpy(Tree->Name,name);cout<<"nnt与否要修改性别:(如果需要就输入'1',不需要修改就输入'0'然后按Enter键继续):n"cin>>flag;if (flag=1)if(Tree->Sex='0') Tree->Sex='1'else Tree->Sex='0'4.4.2修改父母信息cout<<"nnt请输入 "<<Parent0<<" 要修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n"cin>>name;if(strcmp(name,"0")!=0)strcpy(Tree->Parent->Name,name);cout<<"nnt请输入 "<<Parent1<<" 要修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n"cin>>name;if(strcmp(name,"0")!=0)strcpy(Tree->Parent->NextNode0->Name,name);4.4.3修改兄弟姐妹信息cout<<"nnt请输入 "<<NewNode->NextNodei->Name<<" 修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n"cin>>name;if(strcmp(name,"0")!=0)strcpy(NewNode->NextNodei->Name,name);cout<<"nnt与否要修改性别(如果需要就输入'1'不需要修改就输入'0'然后按Enter键继续):n"cin>>flag;if (flag=1)if(NewNode->NextNodei->Sex='0')NewNode->NextNodei->Sex='1'else NewNode->NextNodei->Sex='0'4.4.4修改子女信息cout<<"nnt请输入 "<<Tree->NextNodei->Name<<" 修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n"cin>>name;if(strcmp(name,"0")!=0)strcpy(Tree->NextNodei->Name,name);cout<<"nnt与否要修改性别(如果需要就输入'1',不需要修改就输入'0'然后按Enter键继续):n"cin>>flag;if (flag=1)if(Tree->NextNodei->Sex='0')Tree->NextNodei->Sex='1'elseTree->NextNodei->Sex='0'第五章 调试分析1.进入系统2.建立家谱3.查看信息4.添加成员5.修改信息第六章 测试成果爸爸姓名 田迎新 妈妈姓名 陈瑞英 姐姐 田紫藤 姐夫 孙超 本人 田紫恒 李美霖致 谢感谢孙红艳教师辛苦辅导与教诲,让我学到了诸多知识,提高了很大能力。与此同步,也感谢教师为我辛苦验收课设,耐心解说,让我也受益匪浅。 此后,我一定会努力学习,用我实际行动来回报家长,感谢我教师,为学校争光,努力为咱们国家,贡献出一份微薄贡献!参照文献 1数据构造+语言版严蔚敏吴伟民编著 清华大学出版社 2数据库数据构造软件工程课程设计指引及习题解答徐志才方贤文刘士喜编 北京师范大学出版社 3C+语言程序设计 何钦铭 颜晖 主编 高等教诲出版社附 录#include <iostream.h>#include <string.h>#include <stdio.h> /getchar 可以将键入信息存到缓冲区,按Enter键将进行输入#include <stdlib.h> /system头文献,exit头文献#include <fstream.h>int MATEFLAG=0;typedef struct TreeNodeint Num; /记录这个人拥有几种子女char Name20; /记录这个人姓名char Sex; /标示节点种类有女(0) 男(1)struct TreeNode * NextNode20; /记录这个人子女struct TreeNode * Parent; /记录这个节点父节点TreeNode;void CreatTree(TreeNode *Tree);/-创立树void OutPutAll(TreeNode *Tree);/-遍历并输出树中内容void firstoftxt();/-写入文献开始信息void ofAll(TreeNode *Tree);/-写入文献函数void ifAll();/-读取文献函数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 main()TreeNode *Tree;Tree=new TreeNode;Tree->Parent =NULL;strcpy(Tree->Name,"0"); MainMenue(Tree);/添加新成员void AddNew(TreeNode * Tree)SubMenue2(Tree); /输出副菜单void SubMenue2(TreeNode *Tree) char c;int num;char name20;TreeNode * NewNode;while(1)system("cls");cout<<"t" cout<<"nnt -*-请选取你操作-*- "cout<<"nt-*-*-*-1:添加某个人子女信息-*-*-*-*- "cout<<"nt-*-*-*-2:添加某个人配偶信息-*-*-*-*-*- "cout<<"nt-*-*-*-3:退出-*-*-*-*-*-*-*-*-*-nt"cout<<"请输入:"cin>>c;switch(c)case '1':cout<<"nnt请输入那个人名字: "cin>>name;Tree=SearchTree(Tree,name,20);if(Tree=NULL)cout<<"nnt*该家谱图中没有 "<<name<<" 这个人信息,请确认与否输入错误*n"break; if(Tree->Parent=NULL&&Tree->NextNode0=NULL|Tree->Parent!=NULL&&Tree->Name!=Tree->Parent->NextNode0->Name) cout<<"nnt"<<Tree->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<<"nnt请输入添加人员姓名: "cin>>NewNode->Name;cout<<"nnt请输入添加人员性别女(0) 男(1): "cin>>NewNode->Sex;num=Tree->Num;NewNode->NextNode0=new TreeNode;NewNode->NextNode0=NULL;NewNode->Num=0;NewNode->Parent=Tree;Tree->NextNodenum+1=NewNode;Tree->Num=Tree->Num+1;cout<<"nnt-子女信息添加成功-"break;case '2':cout<<"nnt请输入那个人名字: "cin>>name;Tree=SearchTree(Tree,name,20);if(Tree->Parent!=NULL&&strcmp(Tree->Name,Tree->Parent->NextNode0->Name)=0|Tree->NextNode0!=NULL)cout<<"nnt已有了配偶"break;if(Tree=NULL)cout<<"nnt*该家谱图中没有 "<<name<<" 这个人信息,请确认与否输入错误*n"break;NewNode=new TreeNode;cout<<"nnt请输入添加人员姓名: "cin>>NewNode->Name;cout<<"nnt请输入添加人员性别女(0) 男(1): "cin>>NewNode->Sex;NewNode->Parent=Tree;Tree->NextNode0=NewNode;break;case '3':cout<<"nnt-本项服务到此结束-"break;case 'n':break;default:cout<<"nnt-对不起!你选取不在服务范畴之内!- "cout<<"nt-请您再次选取所需服务项!- "cout<<"nt-谢谢合伙!-nt"break;if (c='3')break;/修改某个人信息void Change(TreeNode * Tree) char name20;TreeNode * NewNode;cout<<"nt请输入你要修改人信息: " cin>>name; NewNode=SearchTree(Tree,name,20);if(NewNode=NULL) cout<<"nnt*该家谱图中没有 "<<name<<" 这个人信息,请确认与否输入错误*n"return;else SubMenue1(NewNode); /输出副菜单void SubMenue1(TreeNode * Tree)char c;int flag,i;char name20;char Parent220;TreeNode * NewNode;while(1)system("cls");cout<<"t" cout<<"nnt -*-请选取你操作-*- "cout<<"nt-*-*-*-1:修改个人信息-*-*-*-*-*-*- "cout<<"nt-*-*-*-2:修改父母信息-*-*-*-*-*-*- "cout<<"nt-*-*-*-3:修改兄弟姐妹信息-*-*-*-*-*- "cout<<"nt-*-*-*-4:修改子女信息-*-*-*-*-*-*- "cout<<"nt-*-*-*-5:修改配偶信息-*-*-*-*-*-*- "cout<<"nt-*-*-*-6:退出-*-*-*-*-*-*-*-*-*-nt"cout<<"请输入:"cin>>c;switch(c)case '1':cout<<"nnt请输入修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n"cin>>name;if(strcmp(name,"0")!=0)strcpy(Tree->Name,name);cout<<"nnt与否要修改性别:(如果需要就输入'1',不需要修改就输入'0'然后按Enter键继续):n"cin>>flag;if (flag=1)if(Tree->Sex='0')Tree->Sex='1'else Tree->Sex='0'cout<<"nnt个人信息修改成功!"cout<<"n-按Enter键继续操作. ."<<endl;getchar();break;case '2':if(Tree->Parent=NULL)/判断是不是头节点cout<<"nt是这个家谱图里最顶端人没有父母信息!"<<endl;cout<<"n-按Enter键继续操作. ."<<endl; getchar();break;if (MATEFLAG=1)/判断是不是入赘或加入此间if(Tree->Sex='0') cout<<"nnt她是嫁入此间因此父母信息不在家谱内涉及!"cout<<"n-按Enter键继续操作. ."<<endl; getchar(); else cout<<"nnt她是入赘此间因此父母信息不在家谱内涉及!"cout<<"n-按Enter键继续操作. ."<<endl; getchar(); break; if(Tree->Parent->Sex='0') strcpy(Parent0,"妈妈"); strcpy(Parent1,"爸爸"); else strcpy(Parent0,"爸爸"); strcpy(Parent1,"妈妈"); cout<<"nnt请输入 "<<Parent0<<" 要修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n" cin>>name; if(strcmp(name,"0")!=0) strcpy(Tree->Parent->Name,name); cout<<"nnt请输入 "<<Parent1<<" 要修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n" cin>>name; if(strcmp(name,"0")!=0) strcpy(Tree->Parent->NextNode0->Name,name); cout<<"nnt-父母信息修改成功-"<<endl;cout<<"n-按Enter键继续操作. ."<<endl;getchar(); break; case '3': NewNode=Tree->Parent; if(NewNode=NULL) /判断是不是头节点 cout<<"nt是这个家谱图里最顶端人没有兄弟姐妹信息!"<<endl;cout<<"n-按Enter键继续操作. ."<<endl; getchar(); break; if (MATEFLAG=1) /判断是不是入赘或加入此间 if(Tree->Sex='0') cout<<"nnt她是嫁入此间因此兄弟姐妹信息不在家谱内涉及!"cout<<"n-按Enter键继续操作. ."<<endl; getchar(); elsecout<<"nnt她是入赘此间因此兄弟姐妹信息不在家谱内涉及!"cout<<"n-按Enter键继续操作. ."<<endl; getchar(); break; if(NewNode->Num=1) cout<<"nnt没有兄弟姐妹!"cout<<"n-按Enter键继续操作. ."<<endl; getchar(); break; else for(i=1;i<=NewNode->Num;i+) if(NewNode->NextNodei->Name!=Tree->Name) cout<<"nnt请输入 "<<NewNode->NextNodei->Name<<" 修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n" cin>>name; if(strcmp(name,"0")!=0) strcpy(NewNode->NextNodei->Name,name); cout<<"nnt与否要修改性别(如果需要就输入'1'不需要修改就输入'0'然后按Enter键继续):n" cin>>flag; if (flag=1) if(NewNode->NextNodei->Sex='0') NewNode->NextNodei->Sex='1' else NewNode->NextNodei->Sex='0'cout<<"nnt-兄弟姐妹信息修改成功-"<<endl;cout<<"n-按Enter键继续操作. ."<<endl;getchar();break;case '4':if(Tree->Num=0) cout<<"nnt至今还没有子女!"cout<<"n-按Enter键继续操作. ."<<endl; getchar(); break; if (Tree->Parent !=NULL)if (strcmp(Tree->Name,Tree->Parent->NextNode0->Name)=0) /如果她是入赘或者是嫁入就需用配偶节点完毕修改 Tree=Tree->Parent;for(i=1;i<=Tree->Num;i+)cout<<"nnt请输入 "<<Tree->NextNodei->Name<<" 修改姓名(如果不需要修改就输入'0',然后按Enter键继续):n" cin>>name; if(strcmp(name,"0")!=0)strcpy(Tree->NextNodei->Name,name);cout<<"nnt与否要修改性别(如果需要就输入'1',不需要修改就输入'0'然后按Enter键继续):n" cin>>flag; if (flag=1) if(Tree->NextNodei->Sex='0') Tree->NextNodei->Sex='1' elseTree->NextNodei->Sex='0'cout<<"nnt-子女信息修改成功-"<<endl;cout<<"n-按Enter键继续操作. ."<<endl; getchar();break;case '5':if(Tree->Parent!=NULL)if (Tree->NextNode0=NULL&&strcmp(Tree->Name,Tree->Parent->NextNode0->Name)!=0)cout<<"nnt至今还没有配偶!"cout<<"n-按Enter键继续操作. ."<<endl; getchar();break;

    注意事项

    本文(家谱标准管理专业系统设计方案报告.doc)为本站会员(满***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开