понедельник, 16 января 2017 г.

level06.lesson11.bonus02

package com.javarush.test.level06.lesson11.bonus02;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* Нужно добавить в программу новую функциональностьЗадача: У каждой кошки есть имя и кошка-мама. Создать класс, 
который бы описывал данную ситуацию. Создать два объекта: 
кошку-дочь и кошку-маму. Вывести их на экран.Новая задача: У каждой кошки есть имя, кошка-папа и кошка-мама. 
Изменить класс Cat так, чтобы он мог описать данную ситуацию.Создать 6 объектов: дедушку(папин папа), бабушку(мамина мама), 
папу, маму, сына, дочь.Вывести их всех на экран в порядке: дедушка, бабушка, папа, 
мама, сын, дочь.
Пример ввода:дедушка Васябабушка Муркапапа Котофеймама Василисасын Мурчикдочь Пушинка
Пример вывода:Cat name is дедушка Вася, no mother, no fatherCat name is бабушка Мурка, no mother, no fatherCat name is папа Котофей, no mother, father is дедушка ВасяCat name is мама Василиса, mother is бабушка Мурка, no fatherCat name is сын Мурчик, mother is мама Василиса, 
father is папа КотофейCat name is дочь Пушинка, mother is мама Василиса, 
father is папа Котофей*/
public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String grFatherName = reader.readLine();
        String grMotherName = reader.readLine();
        String fatherName = reader.readLine();
        String motherName = reader.readLine();
        String sonName = reader.readLine();
        String daughterName = reader.readLine();


        Cat catGrFather = new Cat(grFatherName);
        Cat catGrMother = new Cat(grMotherName);
        Cat catFather = new Cat(fatherName,catGrFather,null);
        Cat catMother = new Cat(motherName,null,catGrMother);
        Cat catSon = new Cat(sonName,catFather,catMother);
        Cat catDother = new Cat(daughterName,catFather,catMother);

        System.out.println(catGrFather);
        System.out.println(catGrMother);
        System.out.println(catFather);
        System.out.println(catMother);
        System.out.println(catSon);
        System.out.println(catDother);

    }

    public static class Cat
    {
        private String name;
        private Cat father;
        private Cat mother;

        Cat(String name)
        {
            this.name = name;
        }

        Cat(String name, Cat father, Cat mother)
        {
            this.name = name;
            this.father = father;
            this.mother = mother;
        }

        @Override        public String toString()
        {
            String fathername;
            String mothername;
            if (father == null)
                fathername = ", no father";
            else                fathername = ", father is " +father.name;
            if (mother == null)
                mothername = ", no mother";
            else                mothername = ", mother is " +mother.name;
                return "Cat name is " + name +  mothername+fathername;
        }
    }

Объяснение : В классе создания кота изменяем одного родителя на двух.
Создаем блок ввода с клавиатуры 6-ти котов. В задании немного путает 
упоминание дедушки и бабушки, этого всего в реализации не нужно.
В методе toString делаем обработку вводимых значений, можно делать
через множество if, мне удобнее и проще было сделать через 
дополнительные переменные.
}

Комментариев нет:

Отправить комментарий