如何写家谱

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

如何写家谱,第1张

写家谱族谱的方法如下:把知道的都写下来、采访家人、寻找实物线索、绘制家族树、制定研究计划等。

1 把知道的都写下来

关于家里,你记得什么,就都写下来,特别是出生、结婚、死亡的日期和地点,后者将在未来的实地调研中发挥重要作用。你或许还可以绘制简单的家族树。这将提醒你已经知道了什么,还想知道什么。

2 采访家人

现存的家族成员是知识的宝库。从父母以及他们的兄弟姐妹开始,然后如果可以,就再采访祖辈。如果祖辈还能记起他们的祖辈,那么你就有机会接触百年以上的家族历史了。在采访的时候,如果方便,你可以录音。

这份资料,既有利于你未来的调研,也可以作为遗产传至后人。但要记着贴上标签,以便寻找。要注意名字。还要记下别名、绰号,等等。一个故事,可能有不同的说法,要进行比较。要注意搜集“谣言”或者“模糊的回忆”。

3 寻找实物线索

翻翻抽屉和箱子,你可能会为自己的发现而感到惊奇。显而易见,诸如证书、表格之类的文件,可能会成为家族历史的砖石。这有可能了解到一段不为人所知的往事。

留意其他家族遗物,例如日记本、信函。照片也是非常重要的道具。跟亲戚聊聊,看看他们能否辨认照片上的人物。记下名字,扫描照片,贴上标签。最后,也是最重要的,打听一下家人、亲戚和族人,是否有家谱。

4 绘制家族树

家族树是描绘祖先关系的地图。它可能花费时间,所以要肯付出才能有结果。拿出一张白纸,在页底写下你自己的名字,在上面为先辈们留出空白。你也可以使用电脑。如果你是已婚,配偶列在你的旁边。然后在你们下面添加孩子,并填上出生日期。

上面是父母,再上面是祖辈,并且填上出生日期。你追溯的时候,直系祖辈的数量会翻倍——四位祖辈,八位曾祖辈,等等,加上他们的出生日期、结婚日期和死亡日期。

5 制定研究计划

记忆因时光变得模糊,所以验证非常重要。跟官方记录核对姓名和日期,常常都是不错的主意。现在可以查阅许多出生、结婚和死亡证书。你可以试着去本地档案馆、图书馆查询。

户籍档案也是查询数据或者未知亲戚的方式。民国时期的户籍资料,一般存放在档案馆里。另外,在地方志馆,也可以通过查阅地方志和文史资料,了解祖辈的生活环境和可能经历的大事,运气好的话,还可以找到他们的名字和事迹。

除了本地资源,网络资源、图书、杂志或者报纸,也可能提供实际的帮助。需要特别指出的是,图书馆里也收藏了大量的家谱和地方志。图书馆领导曾经讲过,有1/5的中国人其实是可以找到自己的家谱。

C++语言: 二叉树实现的简单家谱树

/

File Name: BiTreecpp

Author: Geng Lequn[glq2000@126com]

Thur July 1 2010

Discription: 建立二叉家谱树,实现输入任意两个人的名字,查找得到其关系

/

#include <iostream>

#include <string>

#include <cstring>

#include <cstdlib>

#include <vector>

#include <mathh>

using namespace std;

typedef struct _Node

{

string sex; //性别 m 男; f 女

string name; //此人的姓名

string spause; //配偶的姓名

unsigned short level; //层次 辈分最高一层为1,下一层为为2,以此类推

struct _Node l_child; //指向其第一个孩子的指针

struct _Node r_brother; //指向其某一个兄弟姐妹的指针, 即左孩子为其后代,右孩子为其兄弟姐妹

struct _Node btr; //指向其父亲或者母亲的指针

_Node():level(0),l_child(NULL),r_brother(NULL),btr(NULL){cout<<"constructor"<<endl;}

~_Node(){cout<<name<<" destructor"<<endl;}

}Node, PNode;

void CreateBiTreePreOrder(PNode &pn, PNode pback, unsigned short depth);//建立二叉家谱树,以先序方式

void VisitBiTreePreOrder(PNode root); //前序遍历此二叉树

void TellRelation(PNode root); //判断两人关系

void DestroyBiTreePostOrder(PNode root); //销毁二叉树,释放节点占用的空间

void FindPersonMiddleOrder(PNode root, string name, PNode &presult); //返回家谱中指向某人的指针,找不到返回NULL

Node root=NULL; //全局变量,二叉树的根节点

unsigned findPersonFlag = 0; //标志位,0 没找到; 1 找到,找到后就不再搜索直接返回;利用此flag可避免将整个tree遍历一遍(若该name在tree中存在的话)

int main()

{

cout<<"请按先序遍历的顺序根据提示输入家谱信息,不存在则输入\"#\""<<endl;

CreateBiTreePreOrder(root, NULL, 1);//建立二叉家谱树,以先序方式

VisitBiTreePreOrder(root); //前序遍历此二叉树

TellRelation(root); //判断两人关系

DestroyBiTreePostOrder(root); //销毁二叉树

getchar();getchar();getchar();

return 0;

}

/

function:建立二叉家谱树,以先序方式

argument:

pn: 指向二叉树节点的引用

pback: pn这个节点的btr指针的值,即指向其parent的指针

depth: 该节点的层次,分最高一层为1,下一层为为2,以此类推

/

void CreateBiTreePreOrder(PNode &pn, PNode pback, unsigned short depth)

{

string str;

cin>>str; //输入该人信息,格式是 sex-name-spausename,如不存在则输入#

if(str == "#") //如: M-tom-marry, 表示此人叫tom, 男性, 配偶名字marry

{

pn = NULL;

return;

}

//如果是自定义的struct/class,应该使用构造函数。如果是内建数据类型,

//比如int,应该memset。 当然,更好的建议是使用vector取代new出来的数组

pn = new Node;

//处理输入的字符串

vector<string> v;

for(size_t b=0, e=strfind('-'); ; e=strfind('-', b))

{

if(e == string::npos)

{

vpush_back(strsubstr(b));

break;

}

else

vpush_back(strsubstr(b, e-b));

b = e+1;

}

//初始化该节点

pn->sex = v[0];

pn->name = v[1];

pn->spause = v[2];

pn->btr = pback;

pn->level = depth;

//递归建立左右子树的节点

CreateBiTreePreOrder(pn->l_child, pn, depth+1); //注意后两个参数的值

CreateBiTreePreOrder(pn->r_brother, pback, depth); //注意后两个参数的值

}

/

function: 前序遍历此二叉树

/

void VisitBiTreePreOrder(PNode pn)

{

if(!pn)

return;

cout<<endl<<"sex:"<<pn->sex<<endl;

cout<<"name:"<<pn->name<<endl;

cout<<"spause:"<<pn->spause<<endl;

cout<<"level:"<<pn->level<<endl;

cout<<"father's name:"<<((pn->btr == NULL)"NULL":pn->btr->name)<<endl;

cout<<"======================"<<endl;

VisitBiTreePreOrder(pn->l_child);

VisitBiTreePreOrder(pn->r_brother);

}

/

function: 中序遍历找到家谱中的一个人,返回其指针,若找不到,返回NULL

isSpause 1表示是找到的节点的配偶 0表示不是所找到的节点的配偶

/

void FindPersonMiddleOrder(PNode pn, string name, PNode &presult)

{

if(!pn)

return;

FindPersonMiddleOrder(pn->l_child, name, presult);

if(findPersonFlag) return;

if(name == pn->name || name == pn->spause)

{

presult = pn;

findPersonFlag = 1; //全局标志位,0 没找到; 1 找到,找到后就不再搜索直接返回;利用此全局flag可避免将整个tree遍历一遍(若该name在tree中存在的话)

return; //下次使用前不要忘记置为0

}

FindPersonMiddleOrder(pn->r_brother, name, presult);

}

/

function: 判断两人关系,若两人中至少一人不在树中,则两人无关系

若两人在树中,先判断两人是否同层次,若同层,判断是否是亲兄弟姐妹;

若不同层,设辈分大的人为A,辈分小的人为B,判断A和B是亲的还是表的,

比如,A为男性,且比B大一倍,判断A是否为B的爸爸,或亲叔叔(舅舅),或表叔叔(舅舅)

简单起见,此处没有区分是叔叔还是舅舅

比如,A为男性,且比B大两倍,判断A是否为B的亲爷爷(姥爷),或亲爷爷(姥爷)的亲兄弟

,或亲爷爷(姥爷)的表兄弟

简单起见,此处没有区分是叔叔和舅舅等做进一步区分

简单起见,查询时只输入节点中的name,不查询spause,否则处理起来太麻烦

/

void TellRelation(PNode pn)

{

string name1, name2;

//p1指向name1, p2指向name2, pbig指向辈分大的,psmall指向辈分小的

PNode p1 = NULL, p2 = NULL, pbig = NULL, psmall = NULL;

int differ = 0; //两人辈分数的差别

string title;

Label:

cout<<endl<<"输入想查询关系的两个人的名字,不想查则将两人名字输成#:"<<endl;

while(cin>>name1 && cin>>name2)

{

if(name1=="#" && name2=="#") return;

p1 = NULL; p2 = NULL; //因为程序是循环执行的,需要将上次遗留的值清掉

findPersonFlag = 0;

FindPersonMiddleOrder(root, name1, p1);

findPersonFlag = 0;

FindPersonMiddleOrder(root, name2, p2);

if(!p1 || !p2) //若有一个为空或都为空,说明至少有一个人不在家谱中,故两人无亲缘关系

{

cout<<name1<<((!p1)" 不在":" 在")<<" 家谱树中"<<endl;

cout<<name2<<((!p2)" 不在":" 在")<<" 家谱树中"<<endl;

cout<<name1<<" 和 "<<name2<<" 间没有关系"<<endl<<endl;

goto Label;

}

differ = (int)abs(p1->level - p2->level);

if(!differ) //辈分一样大

{

if(p1->sex == p2->sex)

{

if(p1->sex == "M") title = "兄弟关系";

else title = "姐妹关系";

}

else title = "兄妹(姐弟)关系";

if(p1->btr == p2->btr) //parent相同

cout<<name1<<" 和 "<<name2<<" 间是 "<<" 亲 "<<title<<endl;

else

cout<<name1<<" 和 "<<name2<<" 间是 "<<" 表 "<<title<<endl;

}

else //辈分不一样大

{

if(p1->level < p2->level) {pbig = p1; psmall = p2;}

else {pbig = p2; psmall = p1;}

switch(differ)

{

case 1:

if(psmall->btr == pbig)

title = ((pbig->sex == "M")"爸爸":"妈妈");

else

{

if(psmall->btr->btr == pbig->btr)

title = ((pbig->sex == "M")"亲叔(舅)":"亲姑(姨)");

else

title = ((pbig->sex == "M")"表叔(舅)":"表姑(姨)");

}

break;

case 2:

if(psmall->btr->btr == pbig)

title = ((pbig->sex == "M")"爷爷(姥爷)":"奶奶(姥姥)");

else

{

string tmp = ((pbig->sex == "M")"兄弟":"姐妹");

if(psmall->btr->btr->btr == pbig->btr)

title = ((psmall->btr->btr->sex == "M")"爷爷(姥爷)的亲":"奶奶(姥姥)的亲") + tmp;

else

title = ((psmall->btr->btr->sex == "M")"爷爷(姥爷)的表":"奶奶(姥姥)的表") + tmp;

}

break;

default:

string tmp2;

PNode pt = psmall;

int n = differ-2; //计算"老"字 (即grand这个字) 出现的个数

for(int i=0; i<n; ++i)

tmp2 += "老";

for(int i=0; i<differ; ++i)

pt = pt->btr;

if(pt == pbig)

title = tmp2 + ((pbig->sex == "M")"爷爷(姥爷)":"奶奶(姥姥)");

else

{

string tmp3 = ((pbig->sex == "M")"兄弟":"姐妹");

if(pt->btr == pbig->btr)

{title = tmp2 + ((pt->sex == "M")"爷爷(姥爷)的亲":"奶奶(姥姥)的亲"); title+=tmp3;}

else

{title = tmp2 + ((pt->sex == "M")"爷爷(姥爷)的表":"奶奶(姥姥)的表"); title+=tmp3;}

}

break;

}

cout<<pbig->name<<" 是 "<<psmall->name<<" 的 "<<title<<endl;

}

goto Label;

}

}

/

function: 后序遍历销毁此二叉树,释放节点占用的内存空间

/

void DestroyBiTreePostOrder(PNode pn)

{

if(!pn) return;

DestroyBiTreePostOrder(pn->l_child);

DestroyBiTreePostOrder(pn->r_brother);

delete pn;

}

家谱的做法

一、拟定修家谱计划

1、版本:精装、平装、光碟、网络。

2、时间:完d成期限、工作时程。

3、预算:经费、人员。

4、范围:同宗、合族、家族。

5、工具:图表、问卷、电脑。

二、组织章程

组织委员、修谱大纲、责任分配、发凡起例。

三、筹集基金

一人负担、众人分摊、家族劝募、早请补助、公开销售组织内容大纲,制作世系图表、填写行实履历、撰写名人家传、考订姓氏渊源、记录迁徙过程、著录文艺著作、附录照片图版、其它次要内容。

四、资料分析

前修旧谱、相说族谱、族谱研究资料、研究与过滤资料、请教族谱专家。

五、寻找史料

家谱文献、世系资料、出生、过世登记证、户籍、除户登记资料、神龛祖先牌位、家庙晋主名册、祭祀公业章程、名册,墓碑文字、坟葬座落方位,讣文、疏文、功德薄,长辈口述记录,家传、年谱、纪念集,老照片、录音、录影资料,古文书、契约、证书,正史、方志,人名录、同学录,旧报纸、电话薄。

六、编辑内容

组织内容大纲、制作世图表、填写行实履历、撰写名人家传、考订姓氏渊源、记录迁徙过程、著录文艺

著作、附录照片图版、其它次要内容。

七、审定内容

专家审稿、多次校稿、最后完稿。

说明:最好有学者专家参与审订,审稿时一定要仔细,可以慢一些但要保持精准。

八、印刷出版

黑白或彩色、纸本或光碟、选定印刷厂、印制若干份、设家族网站。

九、领谱典藏

办祭谱活动,族人领族谱,寄存图书馆。

如何制作家谱?

1、电脑打开Word文档。

2、打开Word文档后,点击工具栏中的插入,然后选择智能图形。

3、进入选择图形页面,选择图形后,点击确定。

4、Word正文添加构造图之后,就可以输入名字世谱了。

5、如果表格不够,可以选中一个图标,点击右上角的添加,可以选中在上方或者下方添加项目。

怎么编写家谱?

一、序

序就类似于现在书的序,可以由族中得望高的人写,也可以由外人写。主要是通过另一个或另几个人的眼光来看待这本族谱。通常情况下,新序在前面,旧的序也要包含在内并排在新序后面。

二、简介

即使是对于自己的家族,能全面了解的人也不多,所以

需要首先简介一下自己家族,可提及的内容有:刻谱凡例、本族谱本次创修参与人员、时间、为什么要修订;此次编码的依据是什么;家族的整体情况、历史、迁移史、当前分布、人数;本族宗派、字辈,即记录每一代人起名规则;祖坟所在地、祖坟中各代分布图;对祖先事考查、考证。

总之,这里不具体到某一个人,只是对整个家族进行整体描述。

三、人物志

其实一本家谱本身就是人物记录,但通常情况下,家谱中会记录某一个或多个优秀的典型人物或团体。而记录这些优秀人物时,常常格式多样,有该人的传记、他写的文章书稿、获得过的功名、官名、、画像、碑记等。这里需要注意的是千万不能把同姓历史名人强编入本族谱,即使是小小提示也不可。因为后人续谱时,常常会因为这一次信以为真,而以讹传讹。

四、世系表

世系是家谱中最为重要的一项,最简单的家谱,有时只有一个世系表。

世系表是记录家族中每个人的关系,用计算机中的术语,这种一对多的结构是“树”状结构,但实际中的往往会比较复杂。当一个家族很大、人数很多时。会出现嗣出嗣入、迁入迁出的现象。

五、世略表

通常情况下,仅有世系表的家谱其实是没有实际意义的,面对一些不是名人的名字,除了这几个字,你还能知道什么呢一个好的办法就是增加世略表,世略表是记录世系表中每一个族人简历的表。这一部分可以和世系表合二为一,也可以单列。我认为单列更好,因为合二为一,常常导致世系表过肥过大,查找一个成员的时候非常麻烦。

很多家谱中,世略只写到父名、娶妻、生子数及名字数,这样写虽然整体看上去挺规范,实际上也没多大意义,因为世系表本身就可以表示这种信息。我认为世略不一定能做到每个人都有完整的简历,但至少应该有:本人生卒年月、主要职务、职称、主要生活工作地、本人工作简历、主要成绩、妻子姓名、妻子嫁出地、妻子父亲的名、妻子简历、子女名、女儿出嫁地、所嫁人姓名。这样不仅妻方家谱可以通过家谱查到本家族,本家族也可以通过自己家族查到女儿家族。

六、后记

后记写一些感想即可。

家谱如何族谱制作?

1、电脑打开Word文档。

2、打开Word文档后,点击工具栏中的插入,然后选择智能图形。

3、进入选择图形页面,选择图形后,点击确定。

4、Word正文添加构造图之后,就可以输入名字世谱了。

5、如果表格不够,可以选中一个图标,点击右上角的添加,可以选中在上方或者下方添加项目。

族谱的内容

一、写清楚姓氏源流。

意思就是同一族姓的来源、迁移等。中国上下五千年,渊源古老,如果没有家谱,后人就很难搞清楚。每套《家谱》都认清自己姓氏源流,这样才能世世代代承继,也能将族系根缘流传千百年。

二、写清楚堂号。

堂号名称一般取自于郡号名,或者是史祖自创。

一般来说,堂号多取自于郡号名,郡是秦、汉时期对行政区域的建置,郡号名又取自于郡名,或诸侯国名,地方府、州、县名。也有很多姓氏同为一个堂号的,比如:王,胡这两个姓的郡望都是“清河堂”。

自创的,例如:杨氏的“四知堂”寓意“天知、地知、我知、子知”的为人风范。很多重修家谱的情况,只能用自创堂号。

三、家训和家族的历史。

很多家谱中,都记录了许多治家教子的名言警句,流传到后世了,比如我们熟悉的颜氏家训、朱子治家格言等。

家谱怎么做?

1、电脑打开Word文档。

2、打开Word文档后,点击工具栏中的插入,然后选择智能图形。

3、进入选择图形页面,选择图形后,点击确定。

4、Word正文添加构造图之后,就可以输入名字世谱了。

5、如果表格不够,可以选中一个图标,点击右上角的添加,可以选中在上方或者下方添加项目。

家谱的作用:

家谱是一个巨大的资料宝库,可供从事社会学、历史学、考古学、经济学、民俗学、人口学、民族学、文学、政治学、宗教学、法学、姓氏学的研究人员从中查询资料,寻找依据,进行研究。家谱的作用主要有:

1、宗法思想研究资料。家谱和宗法的关系从一开始就密不可分。宗法制度是封建王朝维护其统治的重要基础之一,而家谱的族规、族约、家法、乡约等,正是加强宗法制度的有力工具。

2、家庭道德研究资料。族规、家规中保留了许多对我们当代极为有益的东西,如孝父母、和夫妇、勉讳书、尚节俭、戒赌博、戒*秽、戒懒惰、戒奢侈等,对我们建设现代家庭道德和精神文明都有很好看借鉴意义。

3、家族制度研究资料。家族制度是利用血缘关系统治族人的社会制度。在许多家谱中都有家族制度的极为详细的资料,如家族的组织系统、家族的财产管理、家族的赈济方法等,为我们研究家族在古代社会中的地位、作用、组织形式、管理方法等提供了丰富的资料。

4、经济史资料。家谱中保存有相当数量的经济史资料,这些资料包括家族的集体田产如祠田、坟田、庄田、山林等的数量、形成、经营、管理、收支情况等。有的家谱还记录了家庭成员经商、贸易的事迹。这都为我们研究古代经济史提供了很好的素材。

5、人口问题资料。家谱的中心部分是家族人口的世系传承,在家谱的“房派图”、“支派分布图”、“迁徙图”、“先世考”、“世系图”以及家谱的一些序跋中,记录了家族人口的数量、迁徙、分布、婚姻状况等资料,可提供人口学研究者使用。

6、历史人物传记。家谱是世系的记录,许多家谱中既有简单的世系,又有十分详细的传记、行状、墓志、年谱等,对研究历史人物及其家世大有帮助。

族谱制作方法及组成有知道的吗?

有三种制作方法:

1族内老人编纂

这个很好理解。找族内年龄比较大,对族内人员结构比较清楚地人来完善编修。

2电子书籍

想要做电子家谱通常是需要下载一个app进行家族人员信息的填写,最后自动生成为固定的家谱格式,听起来比较便捷省时,但弊端也存在。例如最主要的这两点:

电子家谱app的使用上比较复杂,修谱人大多年龄偏高,对手机功能不是很了解,研究很久研究不明白,最终还是选择了去专业家谱编印机构做传统纸质家谱。

电子家谱通常家谱格式为固定的几种,只能从其选择一种,并按照其格式要求进行填写信息,有些家庭可能不是很喜欢这些固定格式,或想要改变一些内容,都是实现不了的,最终,也是会选择专业家谱编印机构进行定制化的家谱排版。

3传统纸质家谱

听起来没有随着时代的发展而进步,但实际上传统纸质的家谱进步在细节,例如:

纸质,都知道宣纸印刷是最好的纸质保存材料,但古法宣纸制作出来很是不容易,但当今社会的进步,把宣纸的质量进行了升级,能够满足存放百年的需求。

排版,家谱排版方式可以根据家族人员需求,或信息资料的整理不同,进行排版格式的小改动,更人性化,更易于老师们的家谱资料收集整理工作。

服务,修家谱不是一件快速上手的事情,而是需要专业的知识指导,才能更顺利的开展家谱编印工作,传统纸质家谱印刷公司通常会提供免费的一对一编修指导服务,例如锦秋文谱|中原鉴志谱编印中心即是如此,服务这一点,是电子家谱做不到的。

以上综合,电子家谱和纸质家谱各有优缺点,个人比较倾向传统纸质家谱,纸质家谱更加庄重,比电子家谱更有仪式感,敬重感。当然,以上仅为个人观点,仅供参考。

家谱组成部分:

1、谱名、版次录

2、编修人员名录、家族照片

3、谱序、题词

4、凡例

5、谱论

6、祖先像赞、遗像、

7、目录

8、姓氏源流

9、恩荣录、碑文

10、历代修谱名录

11、祠堂、坟茔、郡望、堂号

12、字辈

13、世系图表

14、家风、家训、家规

15、传记、艺文、家族名贤录

16、风俗礼仪

17、契约、族产

18、家族文献、杂记

19、功德榜、事迹介绍

20、领谱字号

21、附记、后记、留余录

在亿图图示中,点击组织结构图,里面有绘制家谱/树形图的功能。

直接点进去就可以绘制的,操作十分的简单,还有现成的模板可以使用。制作家谱图,可以用来有效地展示你的家族历史。首先从最高辈分的人开始画,排布出他的子女,然后每一代创建一个家庭树分支。通过简单加工与整理就可以把这个图变成一个值得展览的艺术品,或者保存给子孙后代,让家族文化世代传承。

如何写家谱

写家谱族谱的方法如下:把知道的都写下来、采访家人、寻找实物线索、绘制家族树、制定研究计划等。1 把知道的都写下来关于家里,你记得什...
点击下载
热门文章
    确认删除?
    回到顶部