家谱的制作方法?
家谱: 又称族谱、宗谱等。是一种以表谱形式,记载一个家族的世系繁衍及重要人物事迹的书。皇帝的家谱称玉牒,如新朝玉牒、皇宋玉牒。它以记载父系家族世系、人物为中心,由正史中的帝王本纪及王侯列传、年表等演变而来。
在这里通过手机家谱软件可以帮助您清晰的整理家族信息,追根溯源记录家族发展的故事,让家谱可以更好的传承一代又一代,小编在这里为大家整理了手机家谱制作方法,希望能更好的对家谱进行记录。
工具/原料
手机微信端家谱软件
方法/步骤
首先我们需要创建自己的家谱,找到自己的姓氏,根据姓氏创建
家谱创建成功后,可以通过管理家谱,完善家谱资料
添加家族成员资料。
在整理家族成员资料时,我们还可以邀请家族成员一起来完善资料
可以通过微信的分享功能将家谱传播出去,在家谱树中点击右下角分享再点击右上角…选择分享的渠道。可以分享到微信朋友圈、微信好友、QQ空间、QQ好友等不同渠道。分享出去后用户可以查看家谱信息、申请加入家谱、参与完善家谱信息、分享家谱、邀请家谱、查看电子家谱等。
注意:家谱可以设置不同权限,当设置非自由访问的时候,加入会员需要后台审核后才可以有权限查看访问。
在家谱完善过程中,或者完善后可以将某个成员信息点分派到对应的族人管理完善,这样新族人进入后直接有对应点的管理、编辑权限,不用后台审核方便快捷。点击某个分派的点,点击下面的邀请,点击右上角…,选择微信好友分享给他,用户进入家谱后既绑定对应成员点信息,可以对当前成员点进行编辑、添加、删除等操作。
电子家谱书
资料完善后,家谱资料将以电子电子书的形式展示出来,
在家谱树界面右下角点击电子书,确认信息正确后进入家谱电子书。通过手指左右滑动翻页查看,电子书也会自动翻页。
这样一本手机家谱就制作完成了。
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;
}
问题一:目前,最好的家谱制作软件是哪个? 家谱先生61是单机版的,功能挺全的。只能个人用用,无法跟同宗分享。
问题二:我想制作个家谱,可是不知道在电脑上用什么软件好,最好是简单容易操作的 onlinedown/soft/39407
家谱先生(FamilyKeeper) 61
一款国产的具有很高实用价值的专用家谱制作软件。无论您是新修、续修、还是改修老式家谱、或者是抢救复制私藏老谱,该软件都将成为您家谱管理的强有力工具。 该家谱软件的突出特点如下: ・面向大型家谱管理:成功的实现了家谱的分卷管理技术,卷与卷之间有机结合,上下卷之间跳转自如,随意漫游;续卷灵活,纵横方向均可自由续卷,同一部家谱内续卷数量不限,续卷的世代宽度自由安排,从而有效的实现了对大型家谱的管理。 ・多族谱管理:可以同时对多部(任意姓氏的)族谱管理。 ・强劲的族谱维护技术:族谱连接、族谱拆分、更改族谱起始世代数,还可在卷内对节点(子树)任意精确移动。 ・家族成员信息完备:家谱记录内容丰富,资料显示图文并茂,家族成员的数据参数定义完备。 ・检索结果形象丰富:资料检索结果直观形象,配以“寻根链”视图可以一览查询成员的传承脉系。 ・目录、文件管理隐含化:将家谱编写中可能遇到的目录、文件管理工作完全隐含到软件内部,即使电脑知识很少的网友也能轻松上手。 ・家谱打印:该功能是本软件的核心亮点之一,可以将您录入好的家谱资料打印成册,便于分发给家族的各个成员。目前提供四种打印家谱方案: ①方案一:打印家谱内容包括(家族梗概、目录树、父子图、个人资料)等几大部分。 ②方案二:打印家谱内容包括(家族梗概、目录树、阶梯图、个人资料)等几大部分。 ③方案三:打印家谱内容包括(家族梗概、目录树、宝塔图、个人资料)等几大部分。 ④方案四:打印家谱内容包括(家族梗概、目录树、传承图、个人资料)等几大部分。[分横排、竖排两种版式] ・真人肖像模式:使用该显示模式,在世系图上您可以为每个节点上的成员定义制作成员本人的真人肖像,从而使得世系图更加生动、形象。 ・多媒体资料信息管理:软件为每个成员定义了一个相册、影像集和录音集(不加入资料不占空间),您可以将成员精彩的照片、视频及音频资料加入到家谱中,制成一个图、文、像、声并茂的现代数字家谱,软件内置媒体播放器。
downloadenet/page=1
问题三:做族谱用什么软件方便? 看你需要什么类型的家谱:1、纸质家谱:书籍形式,正式规范,需要采集资料、编辑排版、印刷装订,过程较繁琐,成 本 较高。2、网络家谱:通过网站或APP修谱,过程简单,甚至不用钱,操作简单或有使用说明。
家谱是记载家族人文的核心载体,写家谱要明确采用哪种格式。
比如欧阳修式、苏洵式、宝塔式、牒记式、图文对照式、横排图表式、竖排图文式、表记式、图记式等。示例:使用 找你家谱 编修 宝塔式 家谱,形象直观,简洁易用。
手机修谱・网络寻根tiebabaidu/p/4865322667蒲千寻家谱展示tiebabaidu/p/4865510206――找你家谱 FindU
问题四:制作家谱用什么软件好 要求高的话用方正书版、indesign,没什么特别要求的用word就行。
问题五:家谱软件哪个好 coreldraw 差不多
或者Adobe InDesign 也不错
主要得看你会什么软件
问题六:想制作个家谱,有哪些比较实用好用的软件? 那就看看流行的互联网同心圆家谱咯。利用互联网络技术,把传统的纸质家谱转化为数码的、 电子版的数字家谱,清晰明了的展示家谱中的内容,把家族中的每个人都有效的连接起来,形 成一个动态的的家族部落群,共同构成互联网家谱。家谱中的成员可以在互联网家谱中寻找祖 先的足迹、家族历史起源和历程,家族成员信息可以随时查阅和增加,这就是互联网家谱。
问题七:想制作一本家谱,用什么软件好 常见的传统家谱都是纸质的,方便就数电子版本的家谱了。(百姓通谱网)
优势:
1、经济、准确。传统修缮家谱耗时耗力。
2、便于携带、传递、保存。互联网家谱的问世让家谱更容易携带,只需一张U盘,复制,粘贴即可。互联网家谱不怕潮湿不发霉。不怕虫蛀不少页,让家谱保存更加方便。
3、超大容量。在这个信息时代,文字。声音。。视频等媒体信息,也可以存放于互联网家谱中。让家谱内容更充实。互联网家谱的超大容量可录入更多的个人信息和媒体资料。
4、查看方便。便于修改。有续传承。互联网家谱真正实现查看方便,不必再为了查找祖源时亲自到当地看家谱。互联网家谱结合传统的修谱模式与现代人的现实需求,可以不受时间和空间的限制。让身在不同地域的家族人都可以共同管理。真正实现有续传承。
5、隐私保护,授权浏览。
问题八:家谱软件哪个好 国产的亿图不错,操作方便,图形、线条、添加这些添加都很方便,还可以直接使用模板、一键从数据库快速的创建家谱、族谱,下面是亿图里边的一个例子,你可以参考一下:
问题九:制作家谱用什么软件好 传承家谱程序是专门做树形家谱的程序,而且输出为WORD文档,也可以图形输出。 输出树形谱系为TXT文件,可以输出任意大小的树形谱系,避免了版面上的限制。 可以在百度搜索,最新版本为520
问题十:想制作一本族谱,用什么软件好? 天下家谱 V6112下载多特软件站OKOKOKOK
求采纳为满意回答。
族脉家谱是一个免费的个人单机版家谱编纂软件。它继承了“族脉网”原有网络版上的主要服务功能,同时充分利用了个人电脑上的各项特有功能,实现了为用户提供了一个兼而有之、取长补短的第二服务平台。
这款族脉网的用户端软件是利用近几年来最新个人电脑上的软件技术制作的。它无论在数据的存储、处理、以及用户编纂家谱的流程上都做了精心细致的设计。与网络版服务相比,“族脉家谱”单机版软件的长处是反应速度能大大提高了许多,这样在编纂家谱时的用户体验便得到明显改善。
结合“族脉网”的网络服务,我们的用户可以实现所有家谱编纂的功能需求,如无限排版打印、支持多种日历输入、发表抒怀、撰写文选、与亲友交流和设立纪念馆,等等。
族脉家谱依托的族脉网是一个最俱权威性、集全面数字化编辑功能、和提供家谱、家书、家史、家庭档案、以及缅怀纪念馆的服务网站。“族脉网”为人们在网络世界里提供了一个以家族血脉为线索,积淀历史、缅怀纪念先人、寄托和凝聚情感、激励和启发后人的开放平台。与其它家谱软件或网站相比,“族脉网”提供了一个真正数字化的网络、和单机的双平台环境。
此外,它的服务不提供影印家谱、不灌水、也不暗插木马、更一改纯单机版软件那种“独唱独秀”而无法调动其余成员参与建谱的局面。通过网络和单机这两个平台的有机互动和联系,“族脉网”网络和其“族脉家谱”的服务囊括了世系图谱的编辑,成员、配偶和好友内容的编辑,家谱打印,数据备份、导入,家谱树图的拷贝和粘贴,家谱继承权的移交,隐私保护,乃至家谱与家谱之间相互关联而方便浏览的“亲友链接”,缅怀纪念馆等多项功能。与国外的软件或服务相比,“族脉网”充分考虑了中国家谱对“字辈派语”、“谱牒堂号”、子女排行和成册排序区别、始祖基准动态定位、以及阴阳历日期输入等特别需求。
在打印功能上,“族脉网”还特别解决了对无限量配偶、子女成员的排版打印的经典难题,以及家庭成员之间的“跳转链接”、“世代标注”、以及“辈份优先,家庭一体;成册第一,排行第二”等问题。
族脉家谱的主要功能如下:
1. 家谱数据录入:如家谱的先公略史、堂号、字辈派语、设定开放状态以保证网络的浏览安全性。
2. 成员数据录入:如成员的名字、世号、字辈、成员、配偶以及好友信息和、成员的重大事记。
3. 家谱操作功能:包括编辑、删除、添加,拷贝及粘贴功能。
4. 搜索排序成员功能:输入家谱成员的关键词查找你需要的成员,以及整理显示和家庭立的排行次序。
5. 统计功能:软件中会自动统计家谱总人数、总辈份、性别、在世人数以及辞世人数。
6. 名人集锦:可以突出家谱成员中有重大地位的成员。
7. 打印功能:将族脉家谱中的数据备份上传到族脉网中可以实现家谱的无限排版打印,如电子书和壁挂图两个格式。
http://wwwcrskycom/soft/31713html您可以下载本软件后打开帮助项,里面有软件的使用说明。
本人李普云 ,在本族中属于云字辈。上辈属于树字辈,孙子李吉鑫属于吉字辈 。由于当今的字辈打破了常规 。加之族谱只有十余代 。因无依据 。吉字辈以后用什么字辈 。也就只能根据以后的具体情况来确定了 。。。。
家谱的制作方法?
本文2023-11-30 03:05:56发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/584070.html