当前位置:文档之家› 家谱管理系统的源代码

家谱管理系统的源代码

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

#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::b inary);

if(!inputFile)

{

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

exit(0);

}

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

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

读取完毕,进行循环

{

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

{

count++; //统计人数

inputFile.read((char*)(person+count),siz eof(*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:: binary|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'&&t oupper(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'&&tou pper(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) //不是第一代

{

cout<<" 他(她)的父亲: ";

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

//cin.getline是读取字符串函数20是读取字符串的个数

}

cout<

}

for(j=0;j

{

if(person[j].generation==1)

person[j].data=-1;

//****************************

}

for(j=0;j

{

相关主题
文本预览
相关文档 最新文档