杨氏家谱树字是哪个辈的
杨姓谱牒修撰的历史相当悠久。汉代刘歆在《七略》中提到与他同时的杨雄有《家牒》,而一些古代地方志中摘引的《家牒》片断涉及杨雄身后世。《世说新语》刘孝标注提到数十种南朝士族家谱,其中有《杨氏谱》。《隋书经籍志·谱系类》录有:《杨氏血脉谱》2卷,《杨氏家谱状并墓记》1卷,《杨氏支分谱》1卷,《杨氏谱》1卷。此外,古籍中还提到北齐有佚名的《杨愔家传》。以杨姓和王姓等为多,南北朝时的杨姓大族,已有编撰家谱之风。
民国十二年(1923年)杨姓重新立宗续谱字辈:登、成、永、宏、福、生、考、义、和、平十字排辈为序。 近代杨贵德等在桐梓县娄山关镇虎峰山杨价崇德庙开会讨论百字谱: 弘农俊杰英、荣华泽祥祯、文武科举锦、福禄宁康兴、太师忠书令、唐宋才嘉兵、汉隋相尉权、崇德怀仁君、兰桂照辉映、侯州尽雄伟、盛海波涛涌、觉理冲凌云、启后继乾坤、慎思贵富民、树以成良言、勋著永绵传、严洁孝顺模、喜庆辅龙腾、昌发山西籍、源远承家业。 后修改为:三知承俊杰、荣华泽祥祯、汉隋相尉才、盛德怀仁君、文武科举锦、唐宋建奇勋、太师奉旨令、侯州忆雄英、沧海波涛涌、虎跃起龙腾、满门忠烈鼎、丰功壮凌云、慎思传清白、后裔靖康宁、兰桂照辉映、福禄显家声、昭著千秋范、源远伟业兴、廉洁行孝顺、继发晋乾坤。
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一、活动主题
家训家风伴我成长
二、活动时间
xx年6月27日—12月31日(此项活动将作为我校德育系列常规性活动没学年开展一次)
三、活动对象: 全校1-6年级学生(一、二年级以参加《XX县民间优秀家训集》诵读、传颂为主)
四、活动内容
1、各班要充分利用板报墙报、宣传橱窗和校讯通等平台,做好宣传造势工作,扩大社会影响力。还可以通过电话、家访等形式对各位家长进行宣传,营造积极的活动氛围;
2、组织学生开展《XX县民间优秀家训集》诵读、传颂活动;
3、各班主任要切实提高对开展“承家风,记家训,知荣耻,学做人”主题班会活动的认认识,积极组织开展主题班会活动,让更多的学生和家长参与到活动中来;
4、各班要充分发挥主观能动性,结合学生特点与工作实际,积极开展手抄报活动,形式要多样,内容要丰富,有利于启发和教育学生;
5、开展家训家风收集。在一直六年级中由学生抄写整理自己家庭或家族的家训家风交给班主任;
6、征集家教故事。在四至六年级开展家教主题征文活动,组织学生讲述家教经历,要求真实感人,富有教育意义,篇幅在800字左右;
7、开展“美德家庭榜”、“优秀学生家庭家训家风”等评选活动;
8、充分利用语文、品德与社会等课程内潜在的家训家风教育资源,发挥课程育德的重要作用。
五、活动要求:
①各班至少应上交家训家风3则;
②各班应上交征文3篇;
③各班班主任汇总后以电子版和纸质版两种形式于8月31日前上交给语文教研组长沈英。
④9月10前由评委进行评审,9月20日语文教研组长沈英将获奖名单及获奖作品电子版发送至张司令老师邮箱:
⑤各班9月5日前报送美的家庭名单
⑥各年级11月30日前报送《XX县民间优秀家训集》诵读、传颂奖名单。
六、奖励
学校成立评委:
具体奖项设置如下:
家训家风:一等奖5则、二等奖15则、三等奖20则。
家教美德故事征文:一等奖3篇、二等奖6篇、三等奖10篇。
美德家庭:各班2-3个。
各班级要积极组织学生参与,确保活动广泛开展。活动结果将纳入县先进班集体考评。
学校开展传承好家风好家训主题的活动方案2一、活动目的
中国的家谱一般都有家规族训,对于规范人生和教育子弟有着积极的意义。家风家训家规是家庭教育的重要内容,也是培育和践行社会主义核心价值观的重要载体,培育好家风、恪守好家训、践行好家规,对于学生健全人格、增强家族荣誉感和家庭责任感有着重要的意义。本次主题实践活动旨在发动广大学生,在家长的共同参与下,寻根问祖探索家谱中的“上善教育”元素,倡导主流价值,培育文明风尚,使其在活动中受到滋养,得到成长。
二、活动对象
全校学生及其家长。
三、活动内容及方式
(一)活动内容。
活动以学生和家长共同寻根问祖、家谱探源为主要内容,探源本家族世代传承的家谱、阅读《百家姓》、绘制家谱树、说家族名人故事等。
(二)活动形式。
1探一探家谱源。春节期间,全家通过拜访长辈或查找文献或网上收集资料,了解家谱文化起源、家族姓氏来源、发展历史、中国姓氏的有趣故事等,探寻家族源头。
2读一读百家姓。寒假期间,邀请父母长辈开展一次家庭读书活动,一起了解《百家姓》的成书背景,知晓《百家姓》姓氏排序的原因。
3画一画家谱树。了解家谱的基本含义、基本记述格式,清楚自家史、家族亲戚后,手绘或电子制作家族近五代家谱树。
4晒一晒家族事。在认真寻根问祖、家谱探源过程中找出家族中你认为最典型的一位名人,撰写一篇家族名人故事,并主动向家长征询意见,一起修改完善。
四、相关要求
(一)高度重视。各班师生要高度重视本次活动,将其作为培育和践行社会主义核心价值观和优化学生思想道德建设环境的重要载体加以认真落实。
(二)精心组织。各班师生按照学校的实施方案,明确要求,合理安排好本次活动。要将“寻根问祖、家谱探源”社会实践活动作为寒假作业,及时告知家长,邀请家长共同完成。
(三)认真总结。20xx年春季开学后,各班对活动进行认真总结,并将活动成果上交学校,上交的活动成果计入各班“步步高”评价。
(四)作业要求:全校每个学生上交一幅“家谱树”,一篇“家族名人故事”至政教处。
家谱图怎么画具体如下:
步骤一:整理收集你所要展现的所有信息。
写下你想要展示在家谱里的所有家庭成员,从你的家庭开始分支出来。首先写下你的直系亲属的名字,然后添加上一代,不要忘了兄弟姐妹及其配偶子女,确保没有遗漏的人。作为家族历史重要的一部分,家谱需要时间与耐心来准确绘制。
步骤二:创建树状图。
写上家庭成员的名字,不清楚的可以问一下家里的老人,写好树状图,去问问家族的老人,以寻找更多的信息来绘制家谱图。
名字、出生日期、生活照片等等,追寻的代数越久远,这些信息越不好收集。进行一些研究,仔细检查自己的家谱树,这是一个大好机会去更多地了解家族历史。
1、依次单击“插入”、插图框中的“SmartArt”,在出现的对话框中选择“层次结构”、在右边出现的“组织结构图”中选中竖排或横排的结构图例,双击出现的“文本”,填写家谱姓氏辈份等信息。
2、家族人丁兴旺的可以在不同的辈份(行或列)添加多个文本,具体方法是点击想要添加位置附近文本框,在菜单栏中点击“添加形状”,在子菜单中选择在后、前、上、下添加即可。
3、页面布局可以设置为横板,纸张设置大些,因为家谱人员太多,一张A3横板往往都写不下。
问题二:家谱图的如何绘制家谱图 在一般心理咨询中,通常家谱图由咨询员绘制,也可以是咨询员与来访者一起绘制,这取决于咨询员使用家谱图的目的。如果咨询员使用家谱图只是为了自己对来访者有比较清楚的了解,只需自行绘制
如果咨询员希望与来访者一起利用家谱图探讨来访者的问题,那么最好由咨询员和来访者一起绘制家谱图,这样不但可以促进来访者的投入,还能让来访者自己从家谱图中得到一些顿悟。家谱图的绘制都是从基本家谱图开始的。
家谱树一般以树状来呈现,那么具体画法如下:
1、首先第一排是祖辈,写下祖辈的名字。
2、然后写下每个祖辈的子孙三代,每个家族一支,往下按顺序填写。
3、外围画成波浪半圆形,相关亲戚连枝都连在一起就是整个树状家谱图。
那么在整个绘画过程中我们还需要做两件事情:
步骤一:整理收集你所要展现的所有信息。
写下你想要展示在家谱里的所有家庭成员,从你的家庭开始分支出来。首先写下你的直系亲属的名字,然后添加上一代,不要忘了兄弟姐妹及其配偶子女,确保没有遗漏的人。作为家族历史重要的一部分,家谱需要时间与耐心来准确绘制。
步骤二:创建树状图。
写上家庭成员的名字,不清楚的可以问一下家里的老人,写好树状图,去问问家族的老人,以寻找更多的信息来绘制家谱图。
名字、出生日期、生活照片等等,追寻的代数越久远,这些信息越不好收集。进行一些研究,仔细检查自己的家谱树,这是一个大好机会去更多地了解家族历史。
家谱图的绘制都是从基本家谱图开始的。先要用基本符号画出来访者的基本家庭结构。通常是先画来访者及其父母或者子女两代人的家庭,接着是目前一起居住的家庭及其成员然后再加入祖父母及父母的兄弟姐妹。
画完家谱图的基本框架之后,在此基础上添加其它有关家庭的信息。家庭信息的收集是通过访谈的形式完成的。
信息收集具体内容的多少和广泛程度由使用家谱图的目的和咨询的目标确定。第三步是在家谱图上描绘家庭成员的关系。家庭成员关系的特征可以是家庭成员自己叙述的,也可以是咨询员自己观察的。
家族图谱画法如下:
写下你想要包含在图中的人。家谱从你的家庭开始,家谱树从那里出来分支出来。首先写下你的直系亲属人的名字,然后移动到你的上一代。请确保你没有遗漏的人!你的家谱将是你家族历史的一个重要部分,所以需要时间来建立一个准确的图。
写下你的名字,你的兄弟姐妹的名字,和你父母的名字。写下你的祖父母的名字,你叔叔阿姨的名字和你的表兄弟姐妹的名字 。写下你的曾祖父母的名字和你大叔叔阿姨的名字。很多人在那里就停止了,但只要你想,你就可以尽可能多的多画几代。
通过一些研究填补漏洞。一旦你追溯到前几代,填名字可能就比较困难了。努力确保每个人都有包括在内、所有的名字是准确的,进行一些研究,仔细检查自己的家谱树。这是一个大好机会去更多地了解你的家族历史。
和你的家庭老年成员谈谈,去了解更多信息。找出你的祖父母的兄弟姐妹及其配偶,子女的姓名。尽你所能问问周围的人。如果你幸运的话,你也有机会可以听到一些奇怪的家庭故事和秘密了。
用家谱工具在网上做研究。网上有很多工具,你只需输入你的名字和你父母的名字,然后会为你做所有的研究调查。这些网站通常给你一个有限的可用信息量,然后你需要更多的深入研究。如果你是认真在绘制你的祖先,这是一个很好的方式来收集信息。
确定你想要突出的其他信息。此外,要包括你家人的姓氏和名字,你可能想要列出他们的出生日期,死亡日期(如适用),注册结婚日期,等等。在家族树上有了这些日期会有更加详细的信息作为你的家人的一个历史文件。除了日期,你可以考虑,包括你的亲人“的发祥地和家乡。
从你的父母辈填写。现在是时候填写第二代 - 你的父母辈。连接横线在每个已婚夫妇上,然后连接一条线向他们的孩子。
杨氏家谱树字是哪个辈的
本文2023-10-29 22:57:20发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/368303.html