家谱管理

栏目:资讯发布:2023-10-17浏览:1收藏

家谱管理,第1张

#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年新版家谱的制定,是德云社管理团队的一项重要举措。家谱的制定过程严谨、规范,家谱的内容详尽、准确。相信新版家谱的推出,将有助于德云社更好地管理成员和团队,提高团队的凝聚力和执行力,为中国相声事业的发展做出更大的贡献。

家谱管理

#include<iostreamh>#include<stdlibh>#include<stdioh>#include<stringh>typedef struct Node{int degree;//人员所在代数char data;//...
点击下载
热门文章
    确认删除?
    回到顶部