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

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

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

注意事项

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

家谱管理系统的源代码.doc

1、。#include#include#include#includestruct perint data; char name20;char brith20;char marry;char address20;char live;char dietime20;char parent20;int generation;int child10;int numberchild;per()for(int i=0;i20;i+)namei=0;for(i=0;i20;i+)brithi=0;for(i=0;i20;i+)addressi=0;for(i=0;i20;i+)dietimei=0;for(i=

2、0;i10;i+)childi=0;for(i=0;i20;i+)parenti=0;live=0;marry=0;data=-10;generation=0;numberchild=0;void setupinfo(per person);void display(per person,int&);void displayhome(per person,int&); void displayinfo(per person,int&); void namesearch(per person,int&); void birtfdaysearch(per person,int&); void ad

3、dchild(per person,int&); void editmember(per person,int&); void sortbirthday(per person,int&);void main()per person36;int count=0;fstream inputFile(person.txt,ios:in|ios:out|ios:binary);if(!inputFile) cout文件不存在!endl; exit(0);inputFile.read(char*)&personcount,sizeof(personcount);/从文件中读取指定大小的字节函数read(

4、),读取字节函数while(!inputFile.eof() /当文件没有读取完毕,进行循环if(personcount.name0!=0)/当名字不为空时count+; /统计人数inputFile.read(char*)(person+count),sizeof(*person);inputFile.close();/关闭文件if(count1) /如果家谱图里面没人cout 家谱不存在,请你建立一个家谱!endl;setupinfo(person);display(person,count);void setupinfo(per person36) /创建信息int i,j,k;fstr

5、eam outputfile(person.txt,ios:in|ios:out|ios:binary|ios:app); /打开文件for(i=0;i5;i+)cout 姓名 : ;cin.getline(personi.name,20);cout 生日(日期样式为xxxx/xx/xx) : ;cin.getline(personi.brith,20);coutpersoni.marry;while(toupper(personi.marry)!=Y&toupper(personi.marry)!=N)cout 你输入错误,请你重新输入!endl;coutpersoni.marry;cin.

6、ignore();cout 地址 : ;cin.getline(personi.address,20);coutpersoni.live; /是否死亡while(toupper(personi.live)!=Y&toupper(personi.live)!=N)cout 你输入错误,请你重新输入!endl;coutpersoni.live;cin.ignore();if(toupper(personi.live)=N)cout 死亡日期(日期样式为xxxx/xx/xx) :;cin.getline(personi.dietime,20);/ 输入死亡日期coutpersoni.generati

7、on;cin.ignore();if(personi.generation!=1) /不是第一代cout 他(她)的父亲 : ;cin.getline(personi.parent,20); /cin.getline是读取字符串函数 20是读取字符串的个数coutendl;for(j=0;ji;j+)if(personj.generation=1)personj.data=-1; /*for(j=0;ji;j+)for(k=0;ki;k+)if(strcmp(personj.parent,personk.name)=0) /比较2个字符串是否相同,实质是找某个人的父亲personj.data=

8、k;for(j=0;ji;j+)for(k=0;ki;k+)if(strcmp(personj.parent,personk.name)=0)personk.childpersonk.numberchild=j;personk.numberchild+; /找某个人的孩子for(j=0;ji;j+)outputfile.write(char*)(person+j),sizeof(*person); /写文件outputfile.close(); /关闭文件夹system(cls); void display(per person36,int &n1)int choice; while(1) /

9、循环式一直进行的 coutendlendlendl;couttt 家族关系查询系统endl; couttt1. 显示家谱endl; couttt2. 显示第n代人的所有信息endl; couttt3. 按照姓名查询某成员的信息endl; couttt4. 按照出生日期查询成员名单endl;couttt5. 某成员添加孩子endl;couttt6. 修改某成员信息endl;couttt7. 按生日日期对家谱中的所有人进行排序endl;couttt8. 退出系统endl; couttt 输入选择:endl; couttt 请输入1-8之间的数choice; while (choice!=1&cho

10、ice!=2&choice!=3&choice!=4&choice!=5&choice!=6&choice!=7&choice!=8)coutyou enter wrong!endl;coutplease enter again!choice; cin.ignore(1,n); /跳过一个字符,含义是忽略一行system(cls);switch(choice) case 1: displayhome(person,n1); break; case 2: displayinfo(person,n1); break; case 3: namesearch(person,n1); break;cas

11、e 4: birtfdaysearch(person,n1); break;case 5: addchild(person,n1); break;case 6: editmember(person,n1); break;case 7: sortbirthday(person,n1); break; case 8: exit(0); void displayhome(per person36,int &n2) /调用函数的参数 传递的是一个参数地址int i,j,max;char again;coutendlendl;for(i=0;in2-1;i+)max=personi.generation

12、;for(j=i+1;jn2;j+)if(personi.generationpersonj.generation)max=personj.generation; /找出最大的代数for(i=1;i=max;i+)cout 第i代的成员有 : ;for(j=0;jn2;j+)if(personj.generation=i)coutpersonj.name ; /输出每一代的人coutendl;coutendlendl;cout 你是否想继续查看?如果继续请输入Y或y,否则输入N或n!again;if(toupper(again)=Y) /就是判断输入得是否为y或Ysystem(cls);ret

13、urn;if(toupper(again)=N)exit(0); /终止程序的执行void displayinfo(per person36,int &n2) /显示代数int i,gen,j=0;char again;coutendlendl;coutgen;coutendl; /换行for(i=0;in2;i+)if(personi.generation!=gen)j+;if(j=n2) /判断是否找到cout 你要查的代数还没有!endlendl;for(i=0;in2;i+)if(personi.generation=gen)cout 姓名 : personi.nameendl 出生日

14、期 : personi.brith 第几代 : personi.generationendl 婚否 : personi.marry 地址 :personi.addressendl 是否健在 : personi.liveendl; if(personi.live=N|personi.live=n)cout 死亡日期 : personi.dietimeendl;coutendlendl;cout 你是否想继续查看?如果继续请输入Y或y,否则输入N或n!again;if(toupper(again)=Y)system(cls);return;if(toupper(again)=N)exit(0);v

15、oid namesearch(per person36,int &n2)int i,j=0,k;char again,name20;coutendlendl;cout 请你输入你想要查询的人的姓名 : ;cin.getline(name,20);for(i=0;in2;i+)if(strcmp(personi.name,name)!=0)j+;coutendlendl;if(j=n2)cout 你要查询的人没有!endlendl;for(i=0;in2;i+)if(strcmp(personi.name,name)=0)cout 姓名 : personi.nameendl 出生日期 : per

16、soni.brith 第几代 : personi.generationendl 婚否 : personi.marry 地址 :personi.addressendl 是否健在 : personi.liveendl; if(personi.live=N|personi.live=n)cout 死亡日期 : personi.dietimeendl;coutendlendl;if(personi.generation=1)cout 他是这个家的根,没有父亲!endlendl;elsecout 他(她)父亲的信息 : endl;cout 姓名 : personpersoni.data.nameendl

17、 出生日期 : personpersoni.data.brith 第几代 : personpersoni.data.generationendl 婚否 : personpersoni.data.marry 地址 :personpersoni.data.addressendl 是否健在 : personpersoni.data.liveendl;if(personpersoni.data.live=N|personpersoni.data.live=n)cout 死亡日期 : personpersoni.data.dietimeendl;coutendlendl;if(personi.numbe

18、rchild=0)cout 他没有孩子!endlendl;elsecout 他有personi.numberchild个孩子,他们的信息 :endlendl;for(k=0;kpersoni.numberchild;k+)cout 姓名 : personpersoni.childk.nameendl 出生日期 : personpersoni.childk.brith 第几代 : personpersoni.childk.generationendl 婚否 : personpersoni.childk.marry 地址 :personpersoni.childk.addressendl 是否健在

19、 : personpersoni.childk.live;if(personpersoni.childk.live=N|personpersoni.childk.live=n)cout 死亡日期 : personpersoni.childk.dietimeendl;coutendlendl;cout 你是否想继续查看?如果继续请输入Y或y,否则输入N或n!again;if(toupper(again)=Y)system(cls);return;if(toupper(again)=N)exit(0);void birtfdaysearch(per person36,int &n2) char b

20、egbir20,endbir20,again;int i,flag=0;coutendlendl;cout 请你输入两个时间,格式为*/*/*!endl;cout 起始时间是 : ;cin.getline(begbir,20);cout 终止时间是 : ;cin.getline(endbir,20);coutendlendl;for(i=0;i=0&strcmp(personi.brith,endbir)=0)cout 姓名 : personi.name;cout 生日 : personi.brith;flag=1;coutendl;coutendlendl;if(flag=0)cout 在这

21、段时间内没有人生日!endlendl;cout 你是否想继续查看?如果继续请输入Y或y,否则输入N或n!again;if(toupper(again)=Y)system(cls);return;if(toupper(again)=N)exit(0);void addchild(per person36,int &n2) int i;char again;fstream file(person.txt,ios:in|ios:out|ios:binary|ios:app);coutendlendl;cout 请输入孩子的信息!endlendlendl;cout 姓名 : ;cin.getline(

22、personn2.name,20);cout 生日(日期样式为xxxx/xx/xx) : ;cin.getline(personn2.brith,20);coutpersonn2.marry;while(toupper(personn2.marry)!=Y&toupper(personn2.marry)!=N)cout 你输入错误,请你重新输入!endl;coutpersonn2.marry;cin.ignore();cout 地址 : ;cin.getline(personn2.address,20);coutpersonn2.live;while(toupper(personn2.live

23、)!=Y&toupper(personn2.live)!=N)cout 你输入错误,请你重新输入!endl;coutpersonn2.live;cin.ignore();if(toupper(personn2.live)=N)cout 死亡日期(日期样式为xxxx/xx/xx) :;cin.getline(personn2.dietime,20);coutpersonn2.generation;cin.ignore();if(personn2.generation!=1)cout 他(她)的父亲 : ;cin.getline(personn2.parent,20);coutendl;for(i

24、=0;in2;i+)if(strcmp(personn2.parent,personi.name)=0)personn2.data=i;break;file.write(char*)&personn2,sizeof(personn2);file.close();file.open(person.txt,ios:in|ios:out|ios:binary);file.seekp(i*sizeof(per),ios:beg);personi.childpersoni.numberchild=n2;personi.numberchild+;file.write(char*)&personi,size

25、of(per);file.close();n2+;cout 你是否想继续查看?如果继续请输入Y或y,否则输入N或n!again;if(toupper(again)=Y)system(cls);return;if(toupper(again)=N)exit(0);void editmember(per person36,int &n2)int i,flag=0,choice;char name20,again;fstream file(person.txt,ios:in|ios:out|ios:binary);coutendlendl;cout 请你输入你想修改的成员的名字 : ;cin.get

26、line(name,20);coutendlendl;for(i=0;in2;i+)if(strcmp(personi.name,name)=0)flag=1;break;if(flag=0)cout 家谱中没有这个人!endlendlendl;if(flag=1) couttt请你选择你要修改的项!endl; couttt 1. 姓名endl; couttt 2. 地址endl; couttt 3. 婚否endl; couttt 4. 生日endl; couttt 5. 是否死亡endl; couttt 6. 死亡日期endl; couttt 请输入1-6之间的数endl; coutchoi

27、ce; while (choice!=1&choice!=2&choice!=3&choice!=4&choice!=5&choice!=6) coutyou enter wrong!endl; coutplease enter again!choice; cin.ignore(1,n); switch(choice) case 1: coutendl 请你输入新名字 : ; cin.getline(personi.name,20);/ file.seekp(i*sizeof(per),ios:beg);/ file.write(char*)&personi,sizeof(per);break

28、; case 2: coutendl 请输入新的地址 : ; cin.getline(personi.address,20);/ file.seekp(i*sizeof(per),ios:beg);/ file.write(char*)&personi,sizeof(per);break; case 3: coutendlpersoni.marry;/ file.seekp(i*sizeof(per),ios:beg);/ file.write(char*)&personi,sizeof(per);break; case 4: coutendl 请你输入新的生日 : ; cin.getline

29、(personi.brith,20);/ file.seekp(i*sizeof(per),ios:beg);/ file.write(char*)&personi,sizeof(per);break; case 5: coutendlpersoni.live;/ file.seekp(i*sizeof(per),ios:beg);/ file.write(char*)&personi,sizeof(per);break; case 6: coutendl 请你输入新的死亡日期 : ; cin.getline(personi.dietime,20);/ file.seekp(i*sizeof(

30、per),ios:beg);/ file.write(char*)&personi,sizeof(per);break; for(int j=0;jn2;j+)file.write(char*)&personj,sizeof(per);coutendlendl;cout 你是否想继续查看?如果继续请输入Y或y,否则输入N或n!again;if(toupper(again)=Y)system(cls);return;if(toupper(again)=N)exit(0);void sortbirthday(per person36,int &n2)per person1;int i,j;char

31、 again;coutendlendl;for(i=0;in2-1;i+)for(j=i+1;j=0)person1=personi;personi=personj;personj=person1;for(i=0;in2;i+)cout 姓名 : personi.name 生日 : personi.brithendl;coutendlendl;cout 你是否想继续查看?如果继续请输入Y或y,否则输入N或n!again;if(toupper(again)=Y)system(cls);return;if(toupper(again)=N)exit(0);THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考-可编辑修改-

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服