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

📄 add.cpp

📁 实现了对家谱管理系统的添加
💻 CPP
字号:
#include "Tree.h"

void Information(Queue Q,memberTree *root)
{
  b:
    cout<<"1: 按序号查询 "<<endl;
    cout<<"2: 按姓名查询"<<endl;
    cout<<"3: 按出生日期查询"<<endl;
    cout<<"4: 按死亡日期查询"<<endl;
	cout<<"0: 返回."<<endl;
	int n;
    cin>>n;
	switch(n)
	{
	   case 1: findNumber(Q,root);break;
	   case 2: findName(Q,root);break;
	   case 3: findBirthday(Q,root);break;
	   case 4: findDeathday(Q,root);break;
	   case 0: cout<<"您已选择返回上一级."<<endl;break;
	   default: cout<<"输入出错!"<<endl; goto b;
	}
}
		  
/*void relation(Queue Q,memberTree *root)	   
{
  c:
    cout<<"1: 查询父亲"<<endl;
	cout<<"2: 查询兄弟"<<endl;
	cout<<"3: 查询孩子"<<endl; 
	cout<<"0: 返回上一级"<<endl;
    int n;
	cin>>n;
	switch(n)
	{
	   case 1:
		   {
		      cout<<"请选择定位成员的方式,以获得起父亲信息."<<"第二个信息是该成员父亲的."<<endl;
			  cout<<endl;
              Information(Q,root);
		   }
		   break;
	   case 2:
		   {
		      cout<<"请选择定位成员的方式,以获得起兄弟信息."<<"第二个信息是该成员兄弟的."<<endl;
		      cout<<endl;
              Information(Q,root);
		   }
		   break;
	   case 3:
		   {
		      cout<<"请选择定位成员的方式,以获得起孩子信息."<<"第二个信息是该成员的第一个孩子的."<<endl;
			  cout<<endl;
              Information(Q,root);

		   }
		   break;
	   case 0:  cout<<"您已选择返回上一级."<<endl;break;
	   default: cout<<"输入错误!"<<endl; 
	   goto c;
   }
 }*/

void findNumber(Queue Q,memberTree *root)
{
   cout<<"请输入将要查询成员的序号:"<<endl;
   int n;
   cin>>n;

   Queue *q;
   memberTree *t,*p;

   for(q=Q.front->next;q!=Q.rear->next && q;q=q->next)
   {  
      if(q->node->MemberNumber==n)
	  {
	     cout<<"改成员信息已经找到."<<endl;
		 cout<<endl;
         cout<<q->node->MemberNumber<<'\t'<<q->node->Name<<'\t'<<q->node->BornPlace<<'\t'
		     <<'\t'<<q->node->Birthday<<'\t'<<q->node->Deadthday<<'\t'<<q->node->Sex<<'\t'
			 <<q->node->Height<<'\t'<<q->node->Credentials<<'\t'<<q->node->Career<<'\n';
		 cout<<endl;
		 t=findmember(root, n);

         if(t->parent)
		 {
			cout<<"该成员的父亲的序号是: ";
			if(t->parent->data)cout<<t->parent->data;
			cout<<endl;
		 }
		 else cout<<"此成员是该家族的祖先."<<endl;
		 cout<<endl;

		 if(t->child)
		 {
			if(t->child->brother)
            {
			   cout<<"该成员孩子的序号是: ";
			   cout<<t->child->data<<ends;
			   p=t->child->brother;
			   while(p)
			   {
				   p=t->child->brother;
				   cout<<p->data<<ends;
				   p=p->brother;
			   } 
			}
			else cout<<"该成员孩子的序号是: "<<t->child->data<<endl;	  
            cout<<endl;
		 }
         else cout<<"该成员没有孩子."<<endl;
		 cout<<endl;
		 return;
	  }
   }	
   cout<<"此成员的信息不存在."<<endl;
}


void findName(Queue Q,memberTree *root)
{
   cout<<"请输入成员姓名: "<<endl;
   char s[20];
   cin>>s;

   Queue *q;
   memberTree *t,*p;

   for(q=Q.front->next;q!=Q.rear->next && q;q=q->next)
   {  
      if(!strcmp(q->node->Name,s))
	  {
	     cout<<"此成员信息已找到."<<endl;
		 cout<<endl;
         cout<<q->node->MemberNumber<<'\t'<<q->node->Name<<'\t'<<q->node->BornPlace<<'\t'
		     <<'\t'<<q->node->Birthday<<'\t'<<q->node->Deadthday<<'\t'<<q->node->Sex<<'\t'
			 <<q->node->Height<<'\t'<<q->node->Credentials<<'\t'<<q->node->Career<<'\n';
		 cout<<endl;
		 t=findmember(root, q->node->MemberNumber);

         if(t->parent)
		 {
			cout<<"该成员父亲的序号: ";
			cout<<t->parent->data;
			cout<<endl;
		 }
		 else cout<<"该成员是此家族的祖先."<<endl;
		 cout<<endl;

		 if(t->child)
		 {
			if(t->child->brother)
            {
			   cout<<"该成员孩子的序号: ";
			   cout<<t->child->data<<ends;
			   p=t->child->brother;
			   while(p)
			   {
				   cout<<p->data<<ends;
				   p=p->brother;
			   } 
			}
			else cout<<"该成员孩子的序号: "<<t->child->data<<endl;	  
            cout<<endl;
		 }
         else cout<<"该成员没有孩子."<<endl;
		 cout<<endl;
		 return;
	  }
   }	
   cout<<"此成员信息不存在."<<endl;
}

void findBirthday(Queue Q,memberTree * root)
{
   cout<<"请输入成员的出生日期: "<<endl;
   char s[20];
   cin>>s;

   Queue *q;
   memberTree *t,*p;

   for(q=Q.front->next;q!=Q.rear->next && q;q=q->next)
   {  
      if(!strcmp(q->node->Birthday,s))
	  {
	     cout<<"此成员信息已找到."<<endl;
		 cout<<endl;
         cout<<q->node->MemberNumber<<'\t'<<q->node->Name<<'\t'<<q->node->BornPlace<<'\t'
		     <<'\t'<<q->node->Birthday<<'\t'<<q->node->Deadthday<<'\t'<<q->node->Sex<<'\t'
			 <<q->node->Height<<'\t'<<q->node->Credentials<<'\t'<<q->node->Career<<'\n';
		 cout<<endl;
		 t=findmember(root, q->node->MemberNumber);

         if(t->parent)
		 {
			cout<<"该成员父亲的序号: ";
			cout<<t->parent->data;
			cout<<endl;
		 }
		 else cout<<"该成员是此家族的祖先."<<endl;
		 cout<<endl;

		 if(t->child)
		 {
			if(t->child->brother)
            {
			   cout<<"该成员孩子的序号: ";
			   cout<<t->child->data<<ends;
			   p=t->child->brother;
			   while(p)
			   {
				   cout<<p->data<<ends;
				   p=p->brother;
			   } 
			}
			else cout<<"该成员孩子的序号: "<<t->child->data<<endl;	  
            cout<<endl;
		 }
         else cout<<"该成员没有孩子."<<endl;
		 cout<<endl;
		 return;
	  }
   }	
   cout<<"此成员信息不存在."<<endl;
}

void findDeathday(Queue Q,memberTree *root)
{
   cout<<"请输入成员的死亡日期: "<<endl;
   char s[20];
   cin>>s;

   Queue *q;
   memberTree *t,*p;

   for(q=Q.front->next;q!=Q.rear->next && q;q=q->next)
   {  
      if(!strcmp(q->node->Deadthday,s))
	  {
	     cout<<"The member's information has been found."<<endl;
		 cout<<endl;
         cout<<q->node->MemberNumber<<'\t'<<q->node->Name<<'\t'<<q->node->BornPlace<<'\t'
		     <<'\t'<<q->node->Birthday<<'\t'<<q->node->Deadthday<<'\t'<<q->node->Sex<<'\t'
			 <<q->node->Height<<'\t'<<q->node->Credentials<<'\t'<<q->node->Career<<'\n';
		 cout<<endl;
		 t=findmember(root, q->node->MemberNumber);

         if(t->parent)
		 {
			cout<<"此成员父亲的序号是: ";
			cout<<t->parent->data;
			cout<<endl;
		 }
		 else cout<<"该成员是此家族的祖先"<<endl;
		 cout<<endl;

		 if(t->child)
		 {
			if(t->child->brother)
            {
			   cout<<"此成员孩子的序号是: ";
			   cout<<t->child->data<<ends;
			   p=t->child->brother;
			   while(p)
			   {
				   cout<<p->data<<ends;
				   p=p->brother;
			   } 
			}
			else cout<<"此成员孩子的序号是: "<<t->child->data<<endl;	  
            cout<<endl;
		 }
         else cout<<"此成员没有孩子"<<endl;
		 cout<<endl;
		 return;
	  }
   }	
   cout<<"改成员信息不存在."<<endl;
}

⌨️ 快捷键说明

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