m0_61809807 2021-10-07 15:50 采纳率: 75%
浏览 87
已结题

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

img


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

  • 写回答

2条回答 默认 最新

  • 程序员小牧之 Java领域新星创作者 2021-10-07 16:26
    关注
    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

    如有帮助望采纳哈哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月15日
  • 已采纳回答 10月7日
  • 创建了问题 10月7日

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程