JAVA实现祁氏家谱(要做推文和公众号)

img


以家谱关系为主以呈现台词为辅(新手课程作业)拜托了

import java.util.ArrayList;
import java.util.List;

public class HelpOther {
    public static void main(String[] args) {
        List<List<Person>> homeList=makeHomeList();
        //调用祺瑞丰
        for(int j=0;j<homeList.size();j++){
            List<Person> persons=homeList.get(j);
            for(int i=0;i<persons.size();i++){
                if(persons.get(i).name.equals("祁瑞丰")){
                    System.out.println(persons.get(i).word);
                }
            }
        }
        //打印四代人物
        for(int j=0;j<homeList.size();j++){
            List<Person> persons=homeList.get(j);
            System.out.println("第"+(j+1)+"代人为:");
            for (int i=0;i<persons.size();i++){
                System.out.println(persons.get(i).name);
            }
        }
    }

    /**
     * 家谱生成
     * @return 返回一个二维家谱链表,存储结构如下:
     *
     */
    public static List<List<Person>> makeHomeList(){
        List<List<Person>> homeList=new ArrayList<>();
        //新建家族所有人实例和构建关系
        Person qiyeye= new Person("祁爷爷","我是祁爷爷",null,null);
        Person qitiany= new Person("祁天佑","我是祁天佑",qiyeye,null);
        Person tianyouqi=new Person("天佑妻","我是天佑妻",null,null);
        Person yunmei=new Person("韵梅","我是韵梅",null,null);
        Person qiruixuan=new Person("祁瑞宣","我是祁瑞宣",qitiany,tianyouqi);
        Person qiruifeng=new Person("祁瑞丰","我是祁瑞丰",qitiany,tianyouqi);
        Person lijuzi=new Person("李菊子","我是李菊子",null,null);
        Person qiduiquan=new Person("祁瑞全","我是祁瑞全",qitiany,tianyouqi);
        Person niuzi=new Person("妞子","我是妞子",qiruixuan,yunmei);
        Person shuner=new Person("顺儿","我是顺儿",qiruixuan,yunmei);
        qitiany.halfOther=tianyouqi;
        tianyouqi.halfOther=qitiany;
        yunmei.halfOther=qiruixuan;
        qiruixuan.halfOther=yunmei;
        qiruifeng.halfOther=lijuzi;
        lijuzi.halfOther=qiruifeng;
        //给家谱列表赋值
        for(int i=0;i<4;i++){
            List<Person> persons=new ArrayList<>();
            //望家谱上添加第一代人物
            if(i==0){
                persons.add(qiyeye);
                homeList.add(persons);
            }
            //望家谱上添加第二代
            if(i==1){
                persons.add(qitiany);
                persons.add(tianyouqi);
                homeList.add(persons);
            }
            //望家谱上添加第三代
            if(i==2){
                persons.add(yunmei);
                persons.add(qiruixuan);
                persons.add(qiruifeng);
                persons.add(lijuzi);
                persons.add(qiduiquan);
                homeList.add(persons);
            }
            //望家谱上添加第四代
            if(i==3){
                persons.add(niuzi);
                persons.add(shuner);
                homeList.add(persons);
            }
        }
        return homeList;
    }
}

class Person{
    //父亲
    Person father;
    //母亲
    Person mother;
    //姓名
    String name;
    //台词
    String word;
    //配偶
    Person halfOther;
    public Person(String name,String word,Person father,Person mother){
        this.name=name;
        this.word=word;
        this.father=father;
        this.mother=mother;
    }
}





img

如有帮助望采纳哈哈

之前做的老师说重点都在呈现台词了没关注呈现家谱