家谱管理系统的源代码家谱管理系统的源代码
#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;...
家谱管理系统的源代码
#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::binary);
if(!inputFile)
{
cout<<"文件不存在!"<>person[i].marry;
while(toupper(person[i].marry)!='Y'&&toup
per(person[i].marry)!='N')
{
cout<<" 你输入错误,请你重新输入!!"<>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<<" 你输入错误,请你重新输入!!"<>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<>choice;
while
(choice!=1&&choice!=2&&choice!=3&&choi
ce!=4&&choice!=5&&choice!=6&&choice!=7
&&choice!=8)
{
cout<<"you enter wrong!"<>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;
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)
//调用函数的参数 传递的是一个参数地址 {
int i,j,max;
char again;
cout<>again;
if(toupper(again)=='Y') //就是判断输入得是否为y或Y
{
system("cls");
return;
}
if(toupper(again)=='N')
exit(0); //终止程序的执行
}
void displayinfo(per person[36],int &n2)
//显示代数
{
int i,gen,j=0;
char again;
cout<>gen;
cout<>again;
if(toupper(again)=='Y')
{
system("cls");
return;
}
if(toupper(again)=='N')
exit(0);
}
void namesearch(per person[36],int &n2)
{
int i,j=0,k;
char again,name[20];
cout<>again;
if(toupper(again)=='Y')
{
system("cls");
return;
}
if(toupper(again)=='N')
exit(0);
}
void birtfdaysearch(per person[36],int &n2)
{
char begbir[20],endbir[20],again;
int i,flag=0;
cout<格式为****/**/**!"<
=0&&strc
mp(person[i].brith,endbir)<=0)
{
cout<<" 姓名 : "<>again;
if(toupper(again)=='Y')
{
system("cls");
return;
}
if(toupper(again)=='N')
exit(0);
}
void addchild(per person[36],int &n2)
{
int i;
char again;
fstream
file("person.txt",ios::in|ios::out|ios::binary|ios::
app);
cout<>person[n2].marry;
while(toupper(person[n2].marry)!='Y'&&toupper(person[n2].marry)!='N')
{
cout<<" 你输入错误,请你重新输入!!"<>person[n2].marry;
}
cin.ignore();
cout<<" 地址 : ";
cin.getline(person[n2].address,20);
cout<<" 是否健在(输入Y或y或N或n) :";
cin>>person[n2].live;
while(toupper(person[n2].live)!='Y'&&toup
per(person[n2].live)!='N')
{
cout<<" 你输入错误,请你重新输入!!"<>person[n2].live;
}
cin.ignore();
if(toupper(person[n2].live)=='N')
{
cout<<" 死亡日期(日期样式为xxxx/xx/xx) :";
cin.getline(person[n2].dietime,20);
}
cout<<" 属于第几代 : ";
cin>>person[n2].generation;
cin.ignore();
if(person[n2].generation!=1)
{
cout<<" 他(她)的父亲 : ";
cin.getline(person[n2].parent,20);
}
cout<>again;
if(toupper(again)=='Y')
{
system("cls");
return;
}
if(toupper(again)=='N')
exit(0);
}
void editmember(per person[36],int &n2)
{
int i,flag=0,choice;
char name[20],again;
fstream
file("person.txt",ios::in|ios::out|ios::binary);
cout<>choice;
while
(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6)
{
cout<<"you enter wrong!"<>choice;
}
cin.ignore(1,'\n');
switch(choice)
{
case 1: cout<>person[i].marry;
// file.seekp(i*sizeof(per),ios::beg);
//
file.write((char*)&person[i],sizeof(per));
break;
case 4: cout<>person[i].live;
// file.seekp(i*sizeof(per),ios::beg);
//
file.write((char*)&person[i],sizeof(per));
break;
case 6: cout<>again;
if(toupper(again)=='Y')
{
system("cls");
return;
}
if(toupper(again)=='N')
exit(0);
}
void sortbirthday(per person[36],int &n2)
{
per person1;
int i,j;
char again;
cout<=0)
{
person1=person[i];
person[i]=person[j];
person[j]=person1;
}
}
for(i=0;i>again;
if(toupper(again)=='Y')
{
system("cls");
return;
}
if(toupper(again)=='N')
exit(0);
}
本文档为【家谱管理系统的源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。