家谱管理
#include<iostreamh>
#include<stdlibh>
#include<stdioh>
#include<stringh>
typedef struct Node
{
int degree;//人员所在代数
char data;//人员标志
struct Node lchild;//data的孩子
struct Node rchild;//data的兄弟
}BTNode;
#define max 100
int choose;
char X;
void CreatBTNode(BTNode b,char str);//创建记录
BTNode SearchX(BTNode b,char X);//查找记录
void InputBTNode(BTNode b,char str);//1记录输入
void OutputBTNode(BTNode b,char str);//2记录输出
void Store(BTNode b,char str);//3家谱记录存盘
void DispTree(BTNode b);//4用括号法输出家谱
void SearchXSon(BTNode b,char X);//5查找某人的儿子
void SearchXAncestor(BTNode b,char X);//6查找某人的祖先
void Distory(BTNode b,char str);//7清除全部文件记录
int main()
{BTNode b=NULL;
char str=(char)malloc(maxsizeof(char));
str[0]='\0';
cout<<"--------------------------------------------------------------------"<<endl;
cout<<"0退出"<<endl;
cout<<"1记录输入:\t"<<endl;
cout<<"2记录输出:\t"<<endl;
cout<<"3家谱记录存盘:\t"<<endl;
cout<<"4用括号法输出家谱:\t"<<endl;
cout<<"5查找某人的儿子:\t"<<endl;
cout<<"6查找某人的祖先:\t"<<endl;
cout<<"7清除全部文件记录:\n"<<endl;
cout<<"-------------------------------------------------------------------"<<endl;
cout<<"Please choose the operation you want to do "<<endl;
cout<<"choose=";
cin>>choose;
while(choose)
{switch(choose)
{
case 1:
InputBTNode(&b,str);break;
case 2:
OutputBTNode(&b,str);break;
case 3:
Store(b,str);
printf("文件已经保存!");
break;
case 4:
DispTree(b); break;
case 5:
printf("请输入需要查找儿子的结点:");
cin>>X;
SearchXSon(b,X);
break;
case 6:
printf("请输入需要查找祖先的结点:\n");
cin>>X;
BTNode p;
p=SearchX(b,X);
if(p!=NULL)
SearchXAncestor(b,X);
else
printf("该结点不存在!");
break;
case 7:
Distory(&b,str);
printf("文件记录已经清除!");
break;
default:
cout<<endl<<"Invalid input,input again";
}
cout<<endl<<"please choose again:"<<endl;
cout<<"the choose =";
cin>>choose;
}
return 0;
}
void CreatBTNode(BTNode b,char str) //创建树
{
BTNode S[max],p=NULL;
int top=-1,tag,j=0,d=0;
char ch;
b=NULL;
ch=str[j];
while(ch!='\0')
{
switch(ch)
{
case '(':
d++;
top++;
S[top]=p;
tag=1;break;
case ')':
top--;break;
case ',':
d--;
tag=2;break;
default:
p=(BTNode )malloc(sizeof(BTNode));
p->degree=d;
p->data=ch;
p->lchild=NULL;
p->rchild=NULL;
if((b)==NULL)(b)=p;
else
{
switch(tag)
{
case 1: S[top]->lchild=p;break;
case 2: S[top]->rchild=p;break;
}
}
}
ch=str[++j];
}
}
void InputBTNode(BTNode b,char str)//记录输入
{
do
{
printf("请输入需要输入的记录:\n");
gets(str);
if(str[0]=='\0')
printf("输入的记录为空,请再次输入:\n");
}while(str[0]=='\0');
CreatBTNode(b,str);
printf("记录创建成功!");
}
void OutputBTNode(BTNode b,char str)//从文件中读出记录
{
FILE fp;
if((fp=fopen("wangljtxt","r"))==NULL)
{
printf("不存在记录文件,要建立吗\n建立请输入Y,否则按其他键:");
if(getchar()=='Y')
{
fp=fopen("wangljtxt","w+");
printf("记录文件“wangljtxt”已建立\n");
}
else
exit(1);
}
else
{
if(!feof(fp))
fscanf(fp,"%s",str);
fclose(fp);
CreatBTNode(b,str);
printf("文件中记录已输出\n");
}
}
void Store(BTNode b,char str)//储存全部的结点记录
{
BTNode p;
p=b;
FILE fp;
fp=fopen("wangljtxt","w+");
if(fp==NULL)
{
printf("文件打开失败!");
return;
}
else
{
if(p!=NULL)
{
fprintf(fp,"%s",str);
fclose(fp);
}
}
}
void DispTree(BTNode b)//用括号法输出家谱记录
{
if(b!=NULL)
{printf("%c",b->data);
if(b->lchild!=NULL||b->rchild!=NULL)
{printf("(");
DispTree(b->lchild);
if(b->rchild!=NULL)
{printf(",");
DispTree(b->rchild);
}
printf(")");
}
}
else
printf("\0");
}
BTNode SearchX(BTNode b,char X)//查找结点X
{BTNode p;
if(b==NULL) return NULL;
else if(b->data==X) return b;
else
{
p=SearchX(b->lchild,X);
if(p!=NULL) return p;
else
{
return SearchX(b->rchild,X);
}
}
}
void SearchXSon(BTNode b,char X)//查找结点X的所有儿子
{
BTNode p,q;
p=SearchX(b,X); //找到节点X
if(p!=NULL)
{
p=p->lchild;
if(p==NULL) //X没有孩子
printf("节点%c没有儿子!",X);
else
{
printf("节点%c的所有儿子为:",X);
if(p!=NULL)
printf("%c ",p->data);
q=p->rchild;
while(q)
{
printf("%c ",q->data);
q=q->rchild;
}
}
}
else
printf("该结点不存在!");
}
void TraverseBT(BTNode b,int d)//遍历家谱
{
if(b!=NULL)
if(b->degree<d)
{
printf("%c ",b->data);
if(b->lchild!=NULL)
TraverseBT(b->lchild,d);
if(b->rchild!=NULL)
TraverseBT(b->rchild,d);
}
}
void SearchXAncestor(BTNode b,char X)//查找结点X的所有祖先
{
if(b==NULL)
{
printf("这是一棵空树!");
return ;
}
BTNode p=SearchX(b,X);
if(p->degree==0)
{
printf("X为根节点或其兄弟,没有祖先!");
return;
}
printf("%c结点的祖先有:",X);
TraverseBT(b,p->degree);
}
void Distory(BTNode b,char str)//清除全部的记录
{
(b)=NULL;
FILE fp;
fp=fopen("wangljtxt","w");
if(fp==NULL)
{
printf("打开文件失败!");
exit(1);
}
str="";
fclose(fp);
}
在中国传统文化中,族谱是记录家族历史和家族成员信息的重要工具,通常是由家族长辈或族谱委员会维护管理的。在一般情况下,男女双方都可以上族谱。
不过,在传统社会中,男性是家族的主要传承者和继承人,因此在一些家族中,只记录男性成员的信息,而女性成员则不在族谱中记录。但是,现代社会对于性别平等的要求越来越高,许多家族已经开始在族谱中记录女性成员的信息,以反映家族的实际情况和现代社会的价值观。
总的来说,男女双方都可以上族谱,具体取决于家族的传统和管理规定。如果您想了解您家族的族谱管理规定,可以向家族长辈或族谱委员会咨询。
家谱的作用和意义:作为各种研究资料。
1、宗法思想研究资料。家谱和宗法的关系从一开始就密不可分。宗法制度是封建王朝维护其统治的重要基础之一,而家谱的族规、族约、家法、乡约等,正是加强宗法制度的有力工具。
2、家庭道德研究资料。族规、家规中保留了许多对我们今天极为有益的东西,如孝父母、和夫妇、勉讳书、尚节俭、戒赌博、戒*秽、戒懒惰、戒奢侈等,对我们建设现代家庭道德和精神文明都有很好看借鉴意义。
3、家族制度研究资料。家族制度是利用血缘关系统治族人的社会制度。在许多家谱中都有家族制度的极为详细的资料,如家族的组织系统、家族的财产管理、家族的赈济方法等,为我们研究家族在古代社会中的地位、作用、组织形式、管理方法等提供了丰富的资料。
4、经济史资料。家谱中保存有相当数量的经济史资料,这些资料包括家族的集体田产如祠田、坟田、庄田、山林等的数量、形成、经营、管理、收支情况等。有的家谱还记录了家庭成员经商、贸易的事迹。这都为我们今天研究古代经济史提供了很好的素材。
5、人口问题资料。家谱的中心部分是家族人口的世系传承,在家谱的“房派图”、“支派分布图”、“迁徙图”、“先世考”、“世系图”以及家谱的一些序跋中,记录了家族人口的数量、迁徙、分布、婚姻状况等资料,可提供人口学研究者使用。
6、历史人物传记。家谱是世系的记录,许多家谱中既有简单的世系,又有十分详细的传记、行状、墓志、年谱等,对研究历史人物及其家世大有帮助。
7、地方史志资料。家谱是地方文献的重要组成部分,通常方志中所包含的内容如选举、职官、人物、户籍、祠宇、碑记、艺文等,在家谱中也是重要内容。
湖广填四川是明末清初的事情,当时四川因张献忠流窜,明朝官军及后期清军剿杀带来连年战乱,人口损失巨大,所以清初从两湖、两广移民到四川定居。 1644年明朝灭亡,湖广填四川的事情基本发生在此后数十年,距今已经300多年,按20-25年一代人,五代是不可能的,除非贵家族成员60岁才结婚生子。有关部门不会对每个家族的情况做详细的记述。要查家谱,需要到本家族去查找,最好了解一下本家族的长者,自己家族到底是何年何月从哪里迁来的,然后去当地追根溯源,或许能有结果。贵家族到目前居住地才历经三代,相信时间不会太久,知情人应该很多,估计不难了解。
德云社是中国著名的相声团体,成立于1981年,至今已经有四十年的历史。德云社的相声作品深受观众喜爱,也为中国相声事业的发展做出了重要贡献。为了更好地管理团队,德云社制定了新版家谱,以便更好地管理成员和团队。
一、家谱的制定背景
随着德云社的不断壮大,成员的数量也在不断增加。为了更好地管理成员和团队,德云社决定制定新版家谱。新版家谱将成为德云社管理成员和团队的重要工具,有助于更好地规范团队管理,提高团队的凝聚力和执行力。
二、家谱的制定流程
德云社新版家谱的制定过程历时数月,主要包括以下步骤:
1确定家谱的内容和形式:家谱的内容包括成员信息、职务分工、团队规章制度等,形式包括电子版和纸质版。
2收集成员信息:德云社成员信息的收集工作由团队负责人负责,包括成员的个人信息、职务分工、工作经历等。
3制定家谱草案:在收集成员信息的基础上,德云社制定了家谱的草案,包括家谱的内容和形式。
4征求意见:德云社向成员征求意见,以便更好地反映成员的意见和建议。
5审核和修改:德云社对家谱草案进行审核和修改,确保家谱的准确性和完整性。
6发布家谱:德云社将家谱发布给所有成员,并在团队内部进行宣传和推广。
三、家谱的主要内容
德云社新版家谱包括以下主要内容:
1成员信息:家谱列出了德云社所有成员的个人信息,包括姓名、性别、出生年月、籍贯等。
2职务分工:家谱明确了德云社成员的职务分工,包括团长、副团长、秘书长、宣传部长、财务部长等。
3团队规章制度:家谱列出了德云社的团队规章制度,包括工作时间、休息时间、工作内容、工作目标等。
四、家谱的作用
德云社新版家谱的作用主要包括以下几个方面:
1管理成员:家谱可以帮助德云社更好地管理成员,包括成员的个人信息、职务分工、工作经历等。
2规范管理:家谱可以帮助德云社更好地规范团队管理,包括团队规章制度、工作目标等。
3提高凝聚力:家谱可以帮助德云社提高团队的凝聚力和执行力,让成员更好地协同工作,实现共同目标。
结语
德云社2020年新版家谱的制定,是德云社管理团队的一项重要举措。家谱的制定过程严谨、规范,家谱的内容详尽、准确。相信新版家谱的推出,将有助于德云社更好地管理成员和团队,提高团队的凝聚力和执行力,为中国相声事业的发展做出更大的贡献。
家谱管理
本文2023-10-17 07:24:42发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/272862.html