用二叉树实现家谱运算

栏目:资讯发布:2023-11-29浏览:1收藏

用二叉树实现家谱运算,第1张

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 转让给其他亲戚:如果家谱属于某个家族的共同财产,那么可以考虑将其转让给其他亲戚。他们可能会对家谱感兴趣,并愿意保存它,以保护家族的历史。

3 委托给专业的家谱公司:有一些专门从事家谱保存和管理的公司,他们可以提供家谱的寄存、整理、修复和数字化服务。可以考虑将家谱委托给这样的公司,以确保它得到专业的保护和管理。

4 焚烧或埋葬:在一些文化中,家谱通常会被焚烧或埋葬,以表示对祖先的尊重。如果遵循这种传统,那么可以按照适当的仪式将家谱进行处理。

无论选择哪种处理方式,都应确保家谱得到适当的保存和处理,以保护家族的历史和传统。

家谱的封面

家谱的形式

家谱的主体形式,叫世系图,长这个样子

世系图分为宝塔式图谱、树系图谱、线性图谱和牒记式图谱(无图,曾以是以文字叙述先人事迹)

树系图谱

线性图谱

再来说说,为什么要写家谱呢?

目的是记载自己家族的光辉史,以及记载家族的历史和发展。

一般是家族发展到一定程度的时候,家中德高望重的人提出,我们是不是该写家谱了。大家一致决定好,然后如果祠堂的钱够,那就直接从祠堂拿钱,开始写家谱。如果祠堂没钱,那就大家捐钱。如果是家族第一本家谱,那就由德高望重的人决定辈分什么的。

现在有很多人没有家谱了,可能是由于迁移或者其它原因造成的,如果是这种情况,那么可以两种办法解决,一是回到原来的祖籍,请家谱;另一种就是重修家谱。

家谱的内容都有什么?

一、写清楚姓氏源流。

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

二、写清楚堂号。

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

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

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

三、家训和家族的历史。

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

家训大致包括了以下内容:

(一)、注重家法、国法

(二)、和睦宗族、乡里

(三)、孝顺父母、敬长辈

(四)、合乎礼教、正名分

(五)、祖宗祭祀、墓祭程序

四、有功绩和品行之人的传纪。

一般分为:列传、内传和外传等。列传是记录家族中有功绩男子的传记;内传是记录家族中有品行女子的传记;外传是记录家族中已出嫁有品行女子的传记。传记中多配有该人的画像或关于该人的故事图画,用词以真实平朴为重,最忌溢美之词。这也是评价一部“家传”水平高低与否的重要标准。

五、家族中人的诗文著作。

以家族中名人所写的诗文著作为主要内容,也收集本族人与外人的书信来函,以及经籍、表策、碑文、书札等,有的还有版画、肖像画、版本作品、名家书法、歌曲等。在这部分进行续补时,更需精心挑选,慎重录入,把最有价值和代表性的文献传给后代。

六、祖先、老照片、风水图等。

这里的祖先、老照片好理解,其中风水图主要只祠堂图、墓土。祠堂是供奉先人的地方,所以在记载和刊载建物版图、描绘实状,甚至详记地理方位。有的族谱中还要把故居和村庄图放上。

最后补充一点,女孩可以上家谱吗?

古时认为,女孩是嫁给别人的就是别人家的人了,不过也有例外,就是终身不嫁的女性,就有机会上家谱,当然女孩子是没有权力拥有家谱的。不过现代修家谱也有例外,因为有可能小辈都是女孩子了,所以也有女孩保存家谱、传家谱和修家谱的情况出现。

网站简介

香火网是帮你记录人生并永久保存的严肃生活网站。它通过网上家谱,让你的生活与家族成员分享,让子孙了解你和家族的经历。从而把家族成员的亲情凝聚,使优秀的家风得以传递,让“香火”永远传承。

网站愿景

这将是最伟大的中国文化遗产。

香火网产品

香火网设有家谱、家书、家事、家珍、日记、遗嘱六个版块,通过这六个版块记录人生。

1. 家谱:修建家谱图,使家族成员血脉相连

2. 家书:以书信的方式和家族成员沟通

3.家事:记录家庭生活

4.家珍:保存照片、声音和视频,留住家人的记忆

5. 日记:记录私生活

6. 遗嘱:安排“身后”事,有备无患 家族网一方面为全球华人寻根问祖提供了快捷便利的网络服务,同时也是一个极具亲和力的交友平台,素不相识的人可以在家族树中找到许多交叉点,还可以通过家族、群组、活动,建立联系,使亲朋好友间的交流更加紧密;另外还提供免费建立数字家谱,通过家族树实现建立家谱、管理家谱等多种操作。

发展历程

2008年6月家族网立项策划;

2008年10月网站策划完成,开始技术层的研发;

2009年5月家族网第一期研发完成,家族树功能实现;

2009年9月家族网团队建设完毕;

2009年12月家族网第一期内测完成;

2010年5月家族网整站研发完毕;

2011年9月 家族网主要产品研发完成

2011年12月 家族网第二期内测完成

2012年2月 家族网正式上线

2012年3月 用户数达10万

2012年5月 家族网第三期研发开始

2012年5月 用户数达30万

数字家谱修订

家族网为用户提供免费建立数字家谱的服务——建立家族树。家族树平台中继承了多个娱乐应用,包括管理家谱、相册、日志、互动沟通等,旨在让人们快乐分享、增进亲情,让每一个用户都可以轻松的记录自己的家庭、生活,第一时间了解到亲戚、朋友的动态。

作为专门为家庭打造的文化娱乐互动服务平台,家族网会带个人们更多的快乐和更大的意义:

家族树

家族树是家族网互动社区的核心应用,依托树状结构将家庭中的成员网聚在一起,实现家人网络团聚;邀请添加家人,建立家庭圈;根据家族树的最新动态提示,可以便捷地了解到家人的最新信息;家族树的另一功用就是帮助用户自动生成一个免费的数字家谱,帮助用户理清家庭关系,保存家族信息,传承家族文化。

视频聊天

该应用是一个多端口多人聊天系统,家族网多人聊天系统支持五人同时在线视频聊天,可以通过PC客户端和手机移动客户端等不同端口进行多人会话;随时随地与家人进行互动,真正实现家人的网上团聚、零距离沟通。

足迹

基于谷歌地图的一个分享应用,旨在帮助用户标注人生旅途足迹,走过的地方、旅行过的城市,通过点击地图所在位置,即可精准记录定位,并分享给家人,包括照片和文字的同步上传,您记录的每一步,都让沟通更有趣。

相册

家族网相册应用支持超大容量存储照片,即拍即传,方便用户第一时间将拍摄的照片通过手机上传,也可通过网页上传,与家人分享精彩瞬间。还可以实现通过照片与家人进行互动,图画你的精彩人生。

通讯录

与家人联系必不可少的“联络员”,家庭中的成员通过家族树可以同步分享家庭成员的信息和资料,相关信息一键关联到通讯录,既可以随时更新个人通讯录信息,又可以安全知晓亲人的最新****,智能化联系人管理,准确联系到家人。

日历

家族网人性化多功能日历,新增重要日子提醒和多重提醒功能,父母生日、特殊节日、结婚纪念日等人生中的各个重大的日子,通过设置日期提醒,即可经由手机短信、邮件或者是网站短消息等多种途径及时提醒用户,不错过给家人送祝福的每一个机会,增添家庭成员之间的亲密度。 网站简介

家谱网为家族行业的开创者,超过12年的在线运营经验,在线拥有量最大的华人家谱网站,业务遍及全世界,最大的家族历史在线社区。

网站服务

家谱网是全球最大最权威的家谱与家族网络,创建有“中华家谱总库”,收录和索引超过6万种家谱,可在线查阅10余万册,依托独有的数据资源和研发实力,为全球华人提供建谱,修谱,保存,分享,发现等网络服务,同时提供最具亲和力的家族网络联系平台。

合作伙伴

“家谱网”在国内与上海图书馆、湖南图书馆、山西省社科院中国谱牒学研究会、台北万万斋藏书楼等多家机构达成合作,将极具历史价值的众多华人家谱数字化。

公司规模

家谱网公司总部设在美国,当前在全球9个最具代表性的国家拥有网站,包括中国、美国、英国、加拿大,澳大利亚、德国、意大利、法国以及瑞典。

族谱网

一个强大的在线寻祖的网站 传家谱是一个免费的家谱家族社交网站,提供了搜索、家谱建立、家族社交、生平记录、纪念日等功能。

那什么是家谱,族谱?怎么制作?

谱,又称家乘、宗谱、公谱、祖谱、谱书、家牒、族牒。它是记录家族组织活动的档案材料。福建的族谱兴于宋代,盛于明清之后。修谱的动机是“溯渊源,分疏戚,序尊卑。”(安溪《谢氏总谱》卷首《联谱序》)族谱的形式有装订成册的(古为线装,今与一般印刷物相同),也有图表式的。许多家族把编纂族谱作为后代子孙的一项义务写进族规,重修族谱年限不等。闽北浦城的季氏和李氏家族,均规定族谱30年一修。房氏则规定“宗谱有贤子孙或十年、三十年一修,则存没葬地,时日不爽。先儒云,一世不修谱为不孝,宜知之。”(清·光绪《闽浦房氏族谱》)类似的族规,使修谱用家族法的形式永久化了。

族谱所载内容详略不一,通常除记载全族的户口、婚配和血缘关系外,还有全族的坟墓、族田族产、祠庙等的方位、数量及管理使用办法、家族的规约训诫、修谱凡例义则、各类合同契约文书等。一些较详的族谱,还记载有家族历代的重大事件、与外界的纠纷、可嘉奖的人物传记、科举出仕、名人传记以及义行节烈等。 族谱的核心内容是记载家族的世系源流、血缘系统。以防血缘关系紊乱而导致家族瓦解。连城《新泉张氏族谱》卷首说得明白:“亲疏派别得谱则溯其源,上下分支得谱则穷其本,即荡析代变,而皆有所考焉。”为达到显示血统的目的,各地族谱均有认中国先朝名人为远祖的习俗,这种附会的谱风,虽能使其家系倍增光彩,但往往导致家史失真和对后代误导。安溪湖头的李氏宗谱,认先祖为道教创始人李耳,直系则“出陇西,为唐高祖李渊公之苗裔。”南靖庙兜郭姓,认始祖为周文王之弟“虢叔”(“虢”与“郭”音近),并由虢叔是黄帝的二十七世裔孙,郭子仪是虢叔的第六十世孙、黄帝的八十七世裔孙,而推论自己的宗族嫡出于中唐名将郭子仪。(《南靖文史资料》第二期89页《庙兜郭姓的历史渊源》何柳枝)这些记载,易使族人深信不疑。其他的如刘姓必溯祖为刘邦,肖姓多探源为萧何,都是这种攀强名流、附会望族的修谱心态之反映。 族谱中,家族迁居(开基)始祖之下的代系排列严格分明,不容混淆。这往往是族谱中最具史实价值的部分。福建的许多家族,都实行名字排行制(古称“昭穆”),俗称“排辈份”。即在同一辈份的族人中名或字须用某个统一规定的单字起头,再与其他单字结合成名或字,以示区别。如某一父辈生三子,儿辈名按“永”字排列,分别称“永志”、“永仁”、“永贵”。如此,在族谱中一看“永”字排行便可知其为兄弟或堂兄弟辈份。已去世者,则在其名上写上谥称并加上“公”字,以示区别,沙县一带习俗,收养子若无族长和六亲认可,不可上谱排字辈,否则会被骂为“出透的人”而遭岐视。排辈份除少数由祖、父辈临时决定外,大多是按先祖早已选定的排行用字。南靖县双峰村《丘氏族谱》载:从其二十一世始,标定的昭穆用字是:“文章 ,诗礼传家。创垂显奕,继述藏嘉。光前荣耀,世德作裘。仁亲义祖,燕翼贻谋。桂芳兰茂,日新月盛。思皇多佑,福禄来成。庆余善积,谱泽绵延。宗风丕振,亿万斯年。”(《南靖文史资料》第二期86页《双峰丘氏的历史渊源》林明波)目前已传至“垂”、“显”字辈,即第三十至三十一世。这种按族谱排辈份的方法,使农村常可见到这样的俗象,由于世系分支发展速度不一,一些年届七旬的老翁,要向三岁稚童称“叔”或“伯”。永定俗谓:“白头哥,坐地叔”(即对平辈的白头老翁仅呼“哥”,而尚在襁褓中的叔辈,即使上年纪老者也要唤其为叔)。为了区别同辈中的年龄次序,“排辈份”之外还要“排号”。永泰县同安乡张氏族谱规定,族人添丁按先后次序排号,日常称呼常舍其名而直呼其号,如同辈中是第20个出生的,就直呼“二十”以代名字。这一习俗在当地一些年高者中至今仍颇为流行。 同一姓氏的不同分支家族,还经常利用族谱中的血缘世系排行记载,进行“联谱”活动。安溪谢氏家族,曾于民国年间合数十宗支进行大联谱。辈份分明后,各宗支子孙公议决定排行班次悉归画一,修纂总谱,旨在扩大家族势力。谢氏家族裔孙谢维峻在《联谱序》中称:“联之以谱,化弱小为强大,转柔软为坚刚,众志成城。”此外还有,当族谱分支过多时另分几个房派修谱(房谱和族谱通称家谱)。如一房人外迁,其房谱分出后就成为新的族谱。 由于族谱为同一姓氏家族承继的依据,故一般只记男丁。少数族谱也将族中所谓“贞妇烈女”记载入乘。族谱有的依不同对象规定用笔着色的。据《岛居三录》载:“泉郡向修族谱,世系图所牵连之线,有红有黑,体例甚严。红线者,一本至亲,虽远房承宗亦然;黑线者,乞养异姓,即显宦不能免,此亦春秋诛心之法也。”有功名成就或能光宗耀祖之人,族谱中用红笔记入以示表彰,过去秀才或秀才以上的读书人也用朱笔入谱。现在一些新修族谱仍沿此习。寿宁《刘氏总谱》中,凡上大学的族人,名下都划上红线,所书的姓名用谱名(即按族谱排行而起的名字),抱养子用黑线注明(连城一带是用蓝线)。修谱和查阅族谱也很有讲究。旧时对祖谱保管十分重视,须慎重保存,定期曝晒,认真缮修。霞浦一带,谱系分正谱、副谱(草谱)。副谱可以查阅,而正谱修好后,要入箱上锁,将开锁的钥匙丢入祖祠神龛,以示此谱交祖先收存,以后禁开锁。若遇副谱丢失,有事要查谱时,要先做“牲福”,祭请祖先同意,方可开锁。 旧时一些宗族修谱,每逢初一、十五日要祭祀祖宗。族谱告成后,还要造灵厝、做功德,请和尚法师观灯;观灯时造3座大灵厝(纸糊房子),供已超度的神魂居住,另设一些黑龛,供无子孙后代及未超度的神魂居住。福建省连城一带宗族,每年正月要拜“代图”(即写在布上的族谱)。行仪时,本族男丁都要到场,先是“新丁上图”(即新添男丁的名字入谱),上图之家要给执笔者一个红包,并烧香燃炮,用三牲祭祖。若逢大祭,要用整头猪羊置于下厅的支架上;继而是鸣锣击鼓放鞭炮;最后会餐,座位严格按辈份排列。族人围坐喝酒谈心,气氛很好。连城人把正月“拜代图”的宗族聚会称为“闹花灯”。 用Excel如何制作家谱

建议以Word编辑,用插入“组织结构图”编写家谱。

当然,你也可以下载专门的家谱软件,如《族谱家谱制作编辑软件》或《族脉家谱》编写。 族谱家谱制作的9大步骤

一、拟定修家谱计划

1、版本:精装、平装、光碟、网络。 2、时间:完成期限、工作时程。 3、预算:经费、人员。 4、范围:同宗、合族、家族。 5、工具:图表、问卷、电脑。 二、组织章程 组织委员、修谱大纲、责任分配、发凡起例。 三、筹集基金 一人负担、众人分摊、家族劝募、早请补助、公开销售组织内容大纲,制作世系图表、填写行实履历、撰写名人家传、考订姓氏渊源、记录迁徙过程、著录文艺著作、附录照片图版、其它次要内容。 四、资料分析 前修旧谱、相说族谱、族谱研究资料、研究与过滤资料、请教族谱专家。 五、寻找史料 家谱文献、世系资料、出生、过世登记证、户籍、除户登记资料、神龛祖先牌位、家庙晋主名册、祭祀公业章程、名册,墓碑文字、坟葬座落方位,讣文、疏文、功德薄,长辈口述记录,家传、年谱、纪念集,老照片、录音、录影资料,古文书、契约、证书,正史、方志,人名录、同学录,旧报纸、电话薄。 六、编辑内容 组织内容大纲、制作世图表、填写行实履历、撰写名人家传、考订姓氏渊源、记录迁徙过程、著录文艺 著作、附录照片图版、其它次要内容。 七、审定内容 专家审稿、多次校稿、最后完稿。 说明:最好有学者专家参与审订,审稿时一定要仔细,可以慢一些但要保持精准。 八、印刷出版 黑白或彩色、纸本或光碟、选定印刷厂、印制若干份、设家族网站。 九、领谱典藏 办祭谱活动,族人领族谱,寄存图书馆。 如何把纸质家谱族谱做成电子版?

把纸质家谱做成电子版,就得找这样的软件。或找会做网站的专业人员帮你做。非专业人士在没有软件的情况下应该是做不成的。

如何制作家谱图表

家谱,又称族谱、家乘、祖谱、宗谱等。一种以表谱形式,记载一个以血缘关系为主体的家族世系繁衍和重要人物事迹的特殊图书体裁。

用PS图像处理软件制作家谱图表步骤/方法: 1、首先打开PS软件,然后选择菜单栏上的文件选项,选择下拉列表的新建文件。 2、弹出新建对话框,给新建的文档设置一个宽度和高度 3、设置好宽度和高度之后单击确定按钮,新建一个新的文档。 4、选择工具栏上的矩形选框工具,也可以选择椭圆工具,根据自己喜欢的形状来选择,这里我选择矩形选框工具。 5、然后在文档上拖动鼠标,拉进一个长方形的选区。 6、然后新建一个新的图层,选择软件右下角的新建小图标,新建一个新的图层 7、新建完图层之后为图层填充颜色,填充你自己喜欢的颜色,选择软件左侧的工具栏,单击颜色按钮,弹出的窗口选择你喜欢的颜色。 8、选择好颜色之后单击确定按钮即可,然后按下键盘上的ALT+Backspace退格键为刚才新建的图层填充颜色。 9、按键盘上的CTRL+D键,取消选择选区。 10、然后选择工具栏上的文字工具,选择直排文字工具,为刚填充颜色图案上面填写上名字。 11、选择完之后我们选择颜色图标,把颜色更换为白色,然后在文档上面输入文字。 12、如果觉得文字太小的话,可以在菜单栏顶部设置文字的大小,接下来就是要现点竖线,选择左侧工具栏上的自定义形状工具里面的直线工具。 13、然后在文档拉动,由于刚更换颜色为白色,现在将颜色更换为红色,拉动之后按键盘上的CTRL+CENTER然后再按CTRL+D取消选择。 14、“爷爷”已经制作好了,接下来制作“爸爸”,依次这样制作下来,大家发挥自己的想象力,颜色之类都可以更改,包抱直线等。再请参考: 怎样制作家谱图表_家谱吧_百度贴吧 ://tiebabaidu/p/3634444285 有谁知道用“WORD”制作传统式家谱(族谱)?

用文本框(双击文本框,设置文本框颜色为无线条色)就可以制作了。中间的连接线用自选图形里面的 连接符。

先画出来一个文本框,然后双击设置好格式(双击 文本框--颜色与线条,改成无线条色,然后 点文本框(顶部 倒数第2组),设置4个边距均为0)。然后第一个框框就弄好了。 选中这个文本框,ctrl +鼠标左键,拖拽到适当的位置(比如最上面是 家族的族长,下面的第二层,是第二辈分的人,按要求摆放位置即可。这样所有的文本框均是同样的尺寸,同样的格式。 弄好了之后 ,再添加连接线。 每一页都是这样的编辑方式。可以根据大概情况,提前 弄出多页面来。 制作家谱用什么软件好

传承家谱程序是专门做树形家谱的程序,而且输出为WORD文档,也可以图形输出。 输出树形谱系为TXT文件,可以输出任意大小的树形谱系,避免了版面上的限制。 可以在百度搜索,最新版本为520

如何制作家谱?

可以考虑用Microsoft Office Visio进行绘制。使用方法和word类似

在word中可以考虑采用“组织机构图”的绘制方法 家谱(23)族谱(13)

用二叉树实现家谱运算

C++语言: 二叉树实现的简单家谱树/ File Name: BiTreecpp Author: Geng Lequn[glq2000@126com] ...
点击下载
热门文章
    确认删除?
    回到顶部