1、include
2、 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
3、 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 editmemb
4、er(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::binary);
if(!inputFile)
{
cout<<"文献不存在!"< 5、unt]));//从文献中读取指定大小字节函数read(),读取字节函数
while(!inputFile.eof()) //当文献没有读取完毕,进行循环
{
if(person[count].name[0]!='\0')//当名字不为空时
{
count++; //记录人数
inputFile.read((char*)(person+count),sizeof(*person));
}
}
inputFile.close();//关闭文献
if(count<1) //如果家 6、谱图里面没人
{
cout<<" 家谱不存在,请你建立一种家谱!!"< 7、n.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'&&toupper(person[i].marry)!='N')
{
cout<<" 你输入错误,请你重新输入!!"< 8、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'&&toupper(person[i].live)!='N')
{
cout<<" 你输入错误,请你重新输入!!"< 9、
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( 10、person[i].generation!=1) //不是第一代
{
cout<<" 她(她)爸爸 :";
cin.getline(person[i].parent,20); //cin.getline是读取字符串函数 20是读取字符串个数
}
cout< 11、for(j=0;j 12、ild]=j;
person[k].numberchild++; //找某个人孩子
}
}
}
for(j=0;j 13、 cout< 14、
cout<<"\t\t7. 按生日日期对家谱中所有人进行排序"< 15、 cout<<"you enter wrong!"< 16、earch(person,n1);break;
case 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 person[36],int &n2) //调用函数参数 传递是一种参数 17、地址
{
int i,j,max;
char again;
cout< 18、"代成员有 :";
for(j=0;j 19、
}
if(toupper(again)=='N')
exit(0); //终结程序执行
}
void displayinfo(per person[36],int &n2) //显示代数
{
int i,gen,j=0;
char again;
cout< 20、if(j==n2) //判断与否找到
cout<<" 你要查代数还没有!!!"< 21、ddress< 22、);
return;
}
if(toupper(again)=='N')
exit(0);
}
void namesearch(per person[36],int &n2)
{
int i,j=0,k;
char again,name[20];
cout< 23、< 24、erson[i].address< 25、 她(她)爸爸信息 :"< 26、 <<" 与否健在 :"< 27、 else
{
cout<<" 她有"< 28、generation< 29、person[person[i].child[k]].dietime< 30、nt &n2)
{
char begbir[20],endbir[20],again;
int i,flag=0;
cout< 31、th,begbir)>=0&&strcmp(person[i].brith,endbir)<=0)
{
cout<<" 姓名 :"< 32、 33、 请输入孩子信息!!!"< 34、t<<" 你输入错误,请你重新输入!!"< 35、{
cout<<" 你输入错误,请你重新输入!!"< 36、in.ignore();
if(person[n2].generation!=1)
{
cout<<" 她(她)爸爸 :";
cin.getline(person[n2].parent,20);
}
cout< 37、n[n2]));
file.close();
file.open("person.txt",ios::in|ios::out|ios::binary);
file.seekp(i*sizeof(per),ios::beg);
person[i].child[person[i].numberchild]=n2;
person[i].numberchild++;
file.write((char*)&person[i],sizeof(per));
file.close();
n2++;
cout<<" 你与否想继续查看?如果继续请输入Y或y,否则输入N或 38、n!"< 39、
cout<<" 请你输入你想修改成员名字 :";
cin.getline(name,20);
cout< 40、\t\t 1. 姓名"< 41、oice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6)
{
cout<<"you enter wrong!"< 42、ame,20);
// file.seekp(i*sizeof(per),ios::beg);
// file.write((char*)&person[i],sizeof(per));
break;
case 2:cout< 43、 break;
case 3:cout< 44、per),ios::beg);
// file.write((char*)&person[i],sizeof(per));
break;
case 5:cout< 45、 :";
cin.getline(person[i].dietime,20);
// file.seekp(i*sizeof(per),ios::beg);
// file.write((char*)&person[i],sizeof(per));
break;
}
for(int j=0;j 46、或n!"< 47、p(person[i].brith,person[j].brith)>=0)
{
person1=person[i];
person[i]=person[j];
person[j]=person1;
}
}
for(i=0;i






