⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addmember.cpp

📁 家谱用于记录某家族历代家族成员的情况与关系。现编制一个家谱资料管理软件
💻 CPP
字号:
#include"DefineStruct.h"//若增加配偶时,欠检查其人是否已有配偶,若增加孩子是,欠检查其父或母是否有配偶
void AddMember(family * & member,int & total)
{
	cout<<"现在开始建立一个新成员"<<endl;

	int addway;//记录添加成员方法,1为成员子女,2为成员配偶

	family NewMember;

	InitMember(NewMember);//初始化成员

	NewMember.ID=total+1;

a:	cout<<"请问是以什么方式加入成员:\n"
		<<"1,以成员子女身份加入\n"
		<<"2,以成员配偶身份加入\n"
		<<"请选择:";

	cin>>addway;//可以加一个对输入数据的确定

	if(addway!=1 && addway!=2)
	{
		cout<<"输入错误!";goto a;
	}

	cout<<"请输入新成员姓名:";

	cin>>NewMember.name;//输入姓名,欠输入检查

	cout<<"请输入新成员出生日期:";

	NewMember.BirthDate=CinDate();//输入日期函数

	cout<<"请输入新成员的出生地:";

	cin>>NewMember.WhereBirth;//输入出生地,欠检查

	cout<<"请输入新成员身高(单位:cm):";

	cin>>NewMember.height;//输入身高,欠输入检查

	if(addway==1)//增加孩子
	{
		NewMember.IsMember=1;//修改为族内成员

b:		cout<<"请输入新成员的父亲或母亲名字:";

		char PName[10];//用于记录父亲名

		cin>>PName;

		int PID=FindName(PName,member,total);//查找此人,PID用于记录父母ID

		if(PID==0){cout<<"输入错误!\n"; goto b;}

		if(member[PID].LoverID==0){cout<<"输入错误!此人没有配偶\n"; goto b;}

		if(member[PID].sex==0)//此名字为男性
		{
			NewMember.DadID=PID;

			NewMember.MumID=member[PID].LoverID;
		}
		else//此名字为女性
		{
			NewMember.MumID=PID;

			NewMember.DadID=member[PID].LoverID;
		}

		NewMember.GenID=AddChild(PID,NewMember.ID,member,total)+1;//AddChild(int,int,family *,int),用于再父母数据中增加孩子ID,并返回父母的代数
	
d:		cout<<"请输入孩子的性别"
			<<"\n1为男孩\t2为女孩:";

		char sexforchild;

		cin>>sexforchild;

		switch(sexforchild)
		{
		case '1':NewMember.sex=0;break;

		case '2':NewMember.sex=1;break;

		default:cout<<"输入错误!\n";goto d;
		}
	}//孩子设置完
	else
	{
c:		cout<<"请输入新成员配偶姓名:";

		char LoverName[10];//用于记录配偶姓名

		cin>>LoverName;//欠一个检查,检查是否有此人,

		int LID=FindName(LoverName,member,total);

		if(LID==0)
		{
			cout<<"没有此人"<<endl;

			goto c;
		}

		NewMember.LoverID=LID;

		member[LID].LoverID=NewMember.ID;//修改另一方得LoverID

		cout<<"请输入新成员的学历:";

		cin>>NewMember.schooling;

		cout<<"请输入新成员的职业:";

		cin>>NewMember.occupation;

		cout<<"请输入新成员的职称:";

		cin>>NewMember.title;

		NewMember.IsMember=0;//修改为不是族人;

		NewMember.GenID=member[NewMember.LoverID].GenID;

		NewMember.sex=1-member[NewMember.LoverID].sex;//性别与配偶相反
	}//增加配偶完

	//下面是在数组中加入新成员NewMember

	family * member1=new family[total+2];

	int i;

	for(i=0;i<=total;i++) member1[i]=member[i];

	member1[total+1]=NewMember;

	member=member1;//转换指针

	total=total+1;

	system("CLS");

	cout<<"******************"<<endl<<"增加成功!!"<<endl<<"******************"<<endl;

	return;
}//AddMember函数完

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -