家谱管理系统的源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

struct per{

int data;

char name[20]; char brith[20];

char marry;

char address[20]; char live;

char dietime[20]; char parent[20];

int generation;

int child[10];

int numberchild;

per(){

for(int i=0;i<20;i++)

name[i]='\0';

for(i=0;i<20;i++)

brith[i]='\0';

for(i=0;i<20;i++)

address[i]='\0';

for(i=0;i<20;i++)

dietime[i]='\0';

for(i=0;i<10;i++)

child[i]=0;

for(i=0;i<20;i++)

parent[i]='\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 addchild(per person[],int&);

void editmember(per person[],int&);

void sortbirthday(per person[],int&);

void main()

{

per person[36];

int count=0;

fstream

inputFile("person.txt",ios::in|ios::out|ios::binar y);

if(!inputFile)

{

cout<<"文件不存在!"<

exit(0);

}

inputFile.read((char*)&person[count],sizeof (person[count]));//从文件中读取指定大小的字节函数read(),读取字节函数

while(!inputFile.eof()) //当文件没有读

取完毕,进行循环

{

if(person[count].name[0]!='\0')//当名字不为空时

{

count++; //统计人数

inputFile.read((char*)(person+count),sizeof( *person));

}

}

inputFile.close();//关闭文件

if(count<1) //如果家谱图里面没人{

cout<<" 家谱不存在,请你建立一个家谱!!"<

setupinfo(person);

}

display(person,count);

}

void setupinfo(per person[36]) //创建信息{

int i,j,k;

fstream

outputfile("person.txt",ios::in|ios::out|ios::bina ry|ios::app); //打开文件

for(i=0;i<5;i++)

{

cout<<" 姓名: ";

cin.getline(person[i].name,20);

cout<<" 生日(日期样式为xxxx/xx/xx) : ";

cin.getline(person[i].brith,20);

cout<<" 婚否(输入Y或y或N或n) :";

cin>>person[i].marry;

while(toupper(person[i].marry)!='Y'&&toup per(person[i].marry)!='N')

{

cout<<" 你输入错误,请你重新输入!!"<

cout<<" 婚否(输入Y或y或N或n) :";

cin>>person[i].marry;

}

cin.ignore();

cout<<" 地址: ";

cin.getline(person[i].address,20);

cout<<" 是否健在(输入Y或y或N或n) :";

cin>>person[i].live; //是否死亡

while(toupper(person[i].live)!='Y'&&touppe r(person[i].live)!='N')

{

cout<<" 你输入错误,请你重新输入!!"<

cout<<" 婚否(输入Y或y或N或n) :";

cin>>person[i].live;

}

cin.ignore();

if(toupper(person[i].live)=='N')

{

cout<<" 死亡日期(日期样式为xxxx/xx/xx) :";

cin.getline(person[i].dietime,20);// 输入死亡日期

}

cout<<" 属于第几代: ";

cin>>person[i].generation;

cin.ignore();

if(person[i].generation!=1) //不是第一

相关文档
最新文档