家谱用英语怎么说
家谱的英文是 "family tree"。
"family tree" 的解析如下:
一、发音:英式发音:[ˈfæməli triː]
美式发音:[ˈfæməli triː]
二、释义:n 家谱,族谱,家系图
三、词形变化:复数:family trees
四、含义拓展:"family tree" 是指一个家庭或家族成员之间的关系图表,用于显示他们的血缘关系和世代传承。家谱通常包括人物的姓名、出生日期、结婚关系以及其他重要的家族信息。家谱对于研究家族历史、了解亲属关系以及保留家族记忆具有重要价值。
五、例句:1 I traced my family tree back several generations(我追溯了我的家谱数代。)
2 The family tree revealed interesting connections between distant relatives(家谱揭示了远亲之间有趣的联系。)
3 She added her name to the family tree to document her place in the lineage(她将自己的名字添加到家谱中,以记录她在家族血统中的位置。)
4 The family gathered around the family tree during the reunion to share stories and memories(家人们在团圆时聚集在家谱周围,分享故事和回忆。)
常用短语:- genealogical tree: 家谱树
- trace one's family tree: 追溯家谱
- update the family tree: 更新家谱
以上就是关于 "家谱" 的英语表达。对于一般的家谱树(一般的多叉树)来说,我们可以很清楚的看出层次关系,树的层数表示代数(一共多少代人),树的最后一层表示最后一代人,由于多叉链表法表示的不方便,因此被迫无奈采用孩子兄弟表示法(二叉链表法)
假设我的家谱是这样的:
转换成孩子兄弟表示法后是这样的:
我们要做的是:这时我们要找有多少代人,以及最后以一代人出来。
如果根据第一个图来说找代数就是树的高度,最后一代人就是树的最后一层,二叉链表法中却不如第一个图来的直观,但是只要把握二叉链表法的本质还是很清晰的,根据孩子兄弟表示法的特性,(看二叉链表法的图)结点3的左子树保存的是其孩子,结点3的右子树保存的是其堂兄弟(对照第一个图来看)。假设我们每一个节点都有一个变量用来存储它是第几代的,那么从结点1开始,我们要找结点10是第几代的话,应该这么做:结点1是第一代,然后经过结点5是第二袋,然后看到结点10是第三代。因为第i个结点的左子树是他的孩子,既然是孩子,代数必须+1,而右子树是和第i结点同辈份的(堂兄弟),因此不能加1。本质来说就是往左走代数+1,向右走代数不变。这就是这题目的思路,通过这个方法你就可以知道有多少代人了,且每个节点都有保存了代数信息(用变量存起来了),再次遍历树把最后一代的结点输出即可。清晰了吗?清晰了我就开始写程序。
问题一:目前,最好的家谱制作软件是哪个? 家谱先生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为培育和践行社会主义核心价值观,传承优秀中华文化,大力弘扬中华民族传统美德,助推文明城市创建工作,不断深化精神文明建设,根据教育局文件精神,学校制定了“立家规、传家训、树家风”主题教育活动方案
一、指导思想
为深入贯彻党的十八大关于“建设优秀传统文化传承体系,弘扬中华优秀传统文化”的精神,积极培育和践行社会主义核心价值观,发挥典型的引领示范作用,引导教育系统广大家庭讲道德、守法纪,建设和睦、孝道、勤俭、诚信、文明、健康的家庭文化,以“立家规、传家训、树家风”为主题,开展形式多样、内容丰富、寓教于乐的群众性精神文明建设活动,使家庭和睦,邻里和谐,社区团结,不断提高广大师生的道德素质和教育系统的文明程度。
二、活动原则
(一)以广大师生为主体,重在参与。在活动开展期间,各班要充分调动师生和家长参与活动的积极性,突出师生和家长在活动中的主体地位,动员和引导全体师生和家长参与活动,使师生和家长在活动中获得教育,同时提高个人思想道德和文明素质。
(二)以活动为主线,重在实践。要把“立家规、传家训、树家风”的主要内容融合贯通到有计划、有目的的一系列实践活动中,使师生和家长体验、感悟和认同,并身体力行,达到知和行的统一。
(三)以黑板报、手抄报、主题宣讲活动等为主要媒介,有效利用加以宣传。要把“立家规、传家训、树家风”的主要内容贯穿到丰富多彩的图文和内涵深刻的宣讲教育中。让师生在潜移默化中提高个人的文明修养和思想道德水平。
三、组织领导
九都中学“立家规、传家训、树家风”活动领导小组,负责活动的组织筹备和指导工作。
组 长:黄俊谦
副组长:陈鹏水 林森塔
成 员:学校各行政、各班主任
下设办公室:
主 任:黄瑞波
成 员:各班主任
四、活动时间
本次活动从2017年3月至9月。
五、活动内容
围绕“立家规、传家训、树家风”主题,要求各功能室和各班通过广播、横幅、手抄报、微信、宣传栏、黑板报等平台宣传好家规、好家训、好家风故事,弘扬传统美德、传播文明新风。具体活动开展如下:
(一)“立家规、传家训、树家风”倡议活动
由政教处牵头发起开展“立家规、传家训、树家风”活动的倡议。在全校发放倡议书,通过“小手拉大手”等形式,发动广大师生及家长积极参与“立家规、传家训、树家风”活动,在全校大力营造全体动员、人人参与的良好氛围。
(二)幸福一家人“我家的家规家训”有奖征集活动 征集内容:
好的家规家训:可以是家族世代传承、历史悠久的经典家训家规,也可以是创作提炼的现代家训家规,可以是父母对孩子影响最大的一个词或一句话,也可以是家庭对孩子的期待和希望等。
好家风故事:用发生在自己身上或长辈身上的典型事例,来阐述家庭甚至家族的家风,可以是诗礼传家、勤俭持家、尊老爱幼、明事知礼、正直善良、诚实守信等家风主题的一个方面,也可以是其中的几个方面。
征集方法:各广大师生自愿参加,并将优秀作品推荐至
活动领导小组办公室,领导小组办公室将组织人员对征集到的作品进行评选,并根据作品质量择优评出一等奖3名、二等奖5名、三等奖10名。
征集要求:作品请填写好《“我家的家规家训”推荐表》以及全家福一张,于5月1日前,将作品以电子稿形式发至至邮箱:。联系人:xxx,联系电话:。
(三)“家训、家规、家风伴我成长”手抄报比赛、主题班会及经典诵读等系列活动
各级各班动员广大师生举行“家训、家规、家风伴我成长”手抄报比赛和主题班会,引导学生及家长从家风和家训等美德中,接受传统教育,传承中华美德,营造社会文明。
各班结合经典诵读活动,融入“家规、家训、家风”等教育元素,大力开展《弟子规》、《三字经》、《论语》、等名家名篇,弘扬良好家风,促进社会和谐。
(四)“好家风”进学校人文讲堂专题讲座及宣讲活动开展“立家规 传家训 树家风”专题报告活动,邀请专家到学校开展“家规 家训 家风 师德 传统文化”等方面的专题讲座。
挖掘整理教育系统好家风故事或是名人家风事迹,以生动活泼的方式晒家庭幸福生活、讲家庭和谐故事、传家风家规家训、秀家庭未来梦想,引导教育系统广大家庭弘扬“夫妻和睦、尊老爱幼、科学教子、勤俭节约、邻里互助”的传统美德,组织开展“家风故事会”“家风小讲堂”。
(五)好家风文明展示
各班要将“我家的家规家训”征集活动中的优秀家规家训和好家风在学校宣传栏、黑板报等醒目位置进行展示。
六、活动要求
(一)统一思想,提高认识。各班要把“立家规、传家训、树家风”活动作为落实公民道德建设实施纲要建设,树立社会主义荣辱观教育,建设和谐教育的重要载体,贯穿全年文明创建之中。
(二)加强领导,精心组织。各班主任为本次活动的第一责任人,要切实负起职责,积极组织有特点、有亮点的宣扬家风活动,使“立家规、传家训、树家风”活动深入人心,使我校全体师生在活动中树立社会主义核心价值观,从而促进和谐社会建设。
(三)加强宣传,营造氛围。要动员和引导我校全体师生共同参与各项活动,弘扬中华优秀传统文化”的精神,积极培育和践行社会主义核心价值观,发挥典型的引领示范作用,并做好“立家规、传家训、树家风”的对外宣传报道工作,助推全县文明城市创建工作。
家风家训的活动方案2家风家训家规是中华传统文化的现代传承,是每个家庭教育智慧的生动体现,也是一个社会的价值缩影,良好的家风家规家训是社会主义核心价值观在现实生活中的直观体现。为进一步深化家庭文化建设,引领广大家庭成员树立夫妻和睦、尊老爱幼、科学教子、勤俭持家、邻里互助的文明理念,弘扬文明新风尚,培育和践行社会主义核心价值观,根据市委文明办、市教育局、市妇联的部署,区委文明办、区教育局、区妇联决定在全区广大家庭中开展“好家风好家训”作品征集及宣传展示活动,现将有关事项通知如下:
一、活动主题
传承文明家风 争当最美家庭
二、活动对象
全区家庭均可参加
三、活动时间
20xx年4月25日—6月25日
四、活动内容
1、作品征集。作品要求紧扣活动主题,围绕“家风家训家规”中有关和谐、孝道、劝学、向善、勤俭、励志、修养等方面的内容来展开,既能够反映我国传统美德,又要符合社会主义核心价值观的要求。家训家规、家风故事可以是祖上代代相传的家风家训家规,或是自己原创的用于教育子女、警励后人的作品,严禁抄袭。作品内容包含三个部分:
一是“我的家规家训”。要求作品原创、语言精炼,形式简明,富有内涵,健康向上,便于传诵,字数不超50字。
二是“我的家风故事”。要求明确家风故事产生的时间、背景和效果等,字数不超1000字。
三是“名人家风家训创意作品”。作品围绕福州名人家风家训故事,重在展现传统文化的传承。参展作品不限形式(书、画、手工制品等)、题材和尺寸,要求内容健康,积极向上,以家庭为单位报送,倡导亲子合作完成,富有艺术表现力。
2、组织评比。来稿由区委文明办、区教育局、区妇联筛选后,由区妇联统一报送市妇联,推荐参加福州市“好家风好家训”作品征集及宣传展示活动。福州市将评选出优秀家规家训,汇编《好家规好家训集锦》,并在有关媒体上展播;组织书画爱好者,将征集到的优秀家规家训进行书画创作;在2015年福州市第三届“海峡青年节”期间,参与海峡两岸家庭教育交流活动现场展出;在新建成的福州市海峡妇女儿童活动中心展厅展出,共同营造“人人崇尚家庭美德、家家点赞良好家风”的浓厚氛围。
五、活动要求
1、高度重视,精心组织。各单位要精心组织,广泛发动,深入挖掘,积极选送优秀作品参加征集活动。要深入社区、广大家庭中,并积极发动相关单位力量,开展广泛的征集活动,切实征集到反映本地历史文化传统和当代特色的好家风好家训作品。
2、认真筛选,及时报送。按照本级评选、逐级上报的原则,在广泛征集的基础上,各街(镇)妇联、区直机关各妇女组织负责对征集作品进行审核把关后,精选若干条(好家规家训不少于3条,好家风故事不少于1个,名人家风家训创意作品不少于1件),于6月26日前将作品以电子版形式报送至区妇联。
3、广泛宣传,营造氛围。各街(镇)妇联、区直各有关单位、各学校要以议家风、晒家训、传美德为主要形式,组织开展“好家风好家训”作品征集及宣传展示活动,发动群众分享好家风、传颂好家训,展现家庭文明风采。在社区“妇女之家”设置“好家风好家训”展示台,组织开展“好家风好家训”大讨论和家规家训知识讲座。在鼓楼政务网上开设专题专栏,选登好家风、好家训作品。大力选树、宣传和展示传承良好家风的典型家庭,为群众树立践行美德、崇德向善的身边榜样。
联系人:陈**,联系电话:87842930。(鼓楼区树兜社区)
家风家训的活动方案3为加强家庭文化建设,传承和树立良好家风,弘扬中华传统美德,根据洪委61号文及洪教发22号文有关精神,经研究,我校于20年5月至11月开展“晒家风弘美德承家训助成长”活动,方案如下:
一、活动目的
通过在学校管理中融入家风家训教育、课堂教学中渗透家风家训教育、校本教材中体现家风家训教育、具体活动中强化家风家训教育,践行社会主义核心价值观,提升“八礼四仪”教育成果,培育良好家风家训,进一步提高广大家长、师生文明素养,为我校学生“做最好的自己”提供良好的成长环境。
二、成立领导小组,名单如下:
组 长:李建成
副组长:魏国才、韦恩东、徐福树、左 分、蒋永军、曹仕锋
成员:袁长来、唐恒凯、褚伏前、刘 强、袁启凤、许学波、张甫强
领导小组办公室设在政教处
办公室主任:袁启凤(兼)
副 主任:赵友平、赵帮洪、刘正亚
三、活动内容
1、活动内容:发放“晒家风弘美德 承家训助成长”告家长书
责任部门:政教处
活动要求:6月1日前完成
2、活动内容:家风家训国旗下讲话
责任部门:团委
活动要求:6月、9月各举行一次
3、活动内容:探访“好家风好家训”
责任部门:政教处
活动要求:7月10日放假前在师生中布置,师生在暑假期间进行“好家风好家训”的探访、收集,各年级组在9月22日前收齐交政教处,政教处9月28日前完成收集整理。
4、活动内容:“我家的规矩”主题班会
责任部门:政教处
活动要求:主题班会于9月22前完成,各年级组收齐各班班会课的有关、课件、视频等资料,9月25日前统一交政教处,政教处9月30日前完成收集整理。
5、活动内容:家风家训教育家长学校讲习活动
责任部门:政教处
活动要求:9到10月间完成,需根据实际,召开专题家长会。
6、活动内容:在课堂教学中渗透家风家训教育
责任部门:教务处
活动要求:6月完成在课堂教学中渗透家风家训教育的相关研究并确定具体实施方案,9月具体实施,10月25日前提供2节观摩课、一次专题讲座。
7、活动内容:编写家风家训校本教材
责任部门:教科室
活动要求:6月到10月有序开展,10月形成初步成果,需立足我校、我县、我市的良好家风家训,可以涉及我市以外的有影响、教育意义浓的典型家风家训。
8、活动内容:家风家训故事大赛
责任部门:团委
活动要求:10月份完成
9、活动内容:家风家训绘画大赛
责任部门:体卫艺处
活动要求:6月1日前完成
10、活动内容:经典诵读之“家风家训”情景剧
责任部门:体卫艺处
活动要求:准备一个有质量的情景剧,6月至7月完成剧本准备、人员确定、初步排练,准备参加县局8月份的集中表演展示。
11、活动内容:“晒家风弘美德 承家训助成长”青年教师演讲比赛
责任部门:工会
活动要求:9月完成参赛人员的报名工作,10月上旬完成稿件审核,10月中下旬完成演讲比赛。注意过程性资料的集中整理。
12、活动内容:党风政风与家风家训建设征文比赛
责任部门:党委纪委
活动要求:10月完成
13、活动内容:家风家训教育成果展示
责任部门:政教处
活动要求:11月上旬完成
14、活动内容:家风家训教育优秀表演作品汇报表演
责任部门:体卫艺处
活动要求:9月底前上报2个节目,供局体卫艺科统筹,11月下旬汇报表演。
15、活动内容:校园家风家训教育文化墙建设
责任部门:政教处
活动要求:11月份前完成
16、党员干部立家训、晒家风、家训挂厅堂活动
责任部门:党委纪委
完成要求:根据上级部门要求实施,11月份前完成。
四、活动要求
1、高度重视,精心组织。各部门要结合我校实际情况,认真开展好各项活动,在确保完成任务的同时,又能够创新性开展特色活动,要注意学校德育活动的整体性,能够尽可能地将具体活动与学校已有的德育活动有机融合。各年级组要在各部门的指导下积极开展具体的教育活动,做好参加活动的师生的组织管理工作。总务处能够提供活动必要的后勤保障。
2、突出重点,示范引领。全校党员干部、骨干教师、获得上级有关表彰的教师要充分发挥示范引领作用。
3、落细落小,务求实效。活动注意开展的面要广,方案要具有实践性,活动开展要有实效性。要在细节上下功夫,围绕中心任务,紧扣细节。形成长效机制。
家风家训的活动方案4成长中的xx三中秉承“上善教育”特色校园文化,坚持“人文滋养,个性成长”的德育理念,从“修、齐、治、平”四个维度形成校本课程体系,其中“齐”维度将《家风家训家规家谱》纳入必修课程。
姓氏,起源于母系氏族社会。古训“慎终追远,民德归厚也”,自古就有讲孝道,讲寻根祭祖,讲求统一的美德,其风格特美。为大力弘扬家庭美德,充分发挥家庭教育在未成年人思想道德建设中的基础作用,培育和践行社会主义核心价值观,丰富“齐”维度校本课程内涵,xx三中决定在2016年寒假期间开展“寻根问祖家谱探源”主题实践活动。
一、活动目的
中国的家谱一般都有家规族训,对于规范人生和教育子弟有着积极的意义。家风家训家规是家庭教育的重要内容,也是培育和践行社会主义核心价值观的重要载体,培育好家风、恪守好家训、践行好家规,对于学生健全人格、增强家族荣誉感和家庭责任感有着重要的意义。本次主题实践活动旨在发动广大学生,在家长的共同参与下,寻根问祖探索家谱中的“上善教育”元素,倡导主流价值,培育文明风尚,使其在活动中受到滋养,得到成长。
二、活动对象
全校学生及其家长。
三、活动内容及方式
(一)活动内容。
活动以学生和家长共同寻根问祖、家谱探源为主要内容,探源本家族世代传承的家谱、阅读《百家姓》、绘制家谱树、说家族名人故事等。
(二)活动形式。
1探一探家谱源。春节期间,全家通过拜访长辈或查找文献或网上收集资料,了解家谱文化起源、家族姓氏来源、发展历史、中国姓氏的有趣故事等,探寻家族源头。
2读一读百家姓。寒假期间,邀请父母长辈开展一次家庭读书活动,一起了解《百家姓》的成书背景,知晓《百家姓》姓氏排序的原因。
3画一画家谱树。了解家谱的基本含义、基本记述格式,清楚自家史、家族亲戚后,手绘或电子制作家族近五代家谱树。
4晒一晒家族事。在认真寻根问祖、家谱探源过程中找出家族中你认为最典型的一位名人,撰写一篇家族名人故事,并主动向家长征询意见,一起修改完善。
四、相关要求
(一)高度重视。各班师生要高度重视本次活动,将其作为培育和践行社会主义核心价值观和优化学生思想道德建设环境的重要载体加以认真落实。
(二)精心组织。各班师生按照学校的实施方案,明确要求,合理安排好本次活动。要将“寻根问祖、家谱探源”社会实践活动作为寒假作业,及时告知家长,邀请家长共同完成。
(三)认真总结。20xx年春季开学后,各班对活动进行认真总结,并将活动成果上交学校,上交的活动成果计入各班“步步高”评价。
(四)作业要求:全校每个学生上交一幅“家谱树”,一篇“家族名人故事”至政教处(1、纸张:A4纸;2、标题:宋体,二号,加粗,居中;3、正文:宋体,四号,首行缩进2个字符,15倍行距)。
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;
}
家谱用英语怎么说
本文2023-10-28 08:13:44发表“资讯”栏目。
本文链接:https://www.lezaizhuan.com/article/358471.html