Programozó versenyek

Programozási technológiák, 2015. március 17., K14 ZH

2015. március 17. 14:05 – 2015. március 17. 15:55

Állati!

Tanulmányozza át az alábbi UML-ábrát!

Töltse le a Teszt.java fájlt, majd egészítse ki a kódját az absztrakt Állat osztállyal, valamint a normál Kutya és Bagoly osztályokkal az ábrának megfelelően! Mindhárom új osztály csomag láthatóságú legyen!

Figyeljen arra, hogy a Kutya és a Bagoly osztályok toString() metódusait úgy írja meg, hogy segítségükkel a példa kimenetben látható formátumban lehessen előállítani ezen osztályok példányainak a sztring reprezentációját!

Írja meg a Teszt osztály legnehezebbUhuk() metódusát úgy, hogy az egy olyan Bagoly típusú tömböt adjon vissza, amely a paraméterként megkapott Állat típusú tömbben található legnehezebb (legnagyobb tömegű) uhukat tartalmazza!

A Teszt osztályban található main() metódust ne módosítsa!

Teszt.java

  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.Comparator;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. /*
  7.  * Write your code here.
  8.  */
  9. public class Teszt {
  10.     /*
  11.      * Write your code here.
  12.      */
  13.     public static void main(String[] args) {
  14.         Scanner sc = new Scanner(System.in);
  15.         List<Allat> lista = new ArrayList<>();
  16.         while (sc.hasNextLine()) {
  17.             String[] sorTomb = sc.nextLine().split(";");
  18.             if (sorTomb[0].equals("B")) {
  19.                 lista.add(new Bagoly(sorTomb[1], Integer.parseInt(sorTomb[2]), Double.parseDouble(sorTomb[3])));
  20.             } else if (sorTomb[0].equals("K")) {
  21.                 lista.add(new Kutya(sorTomb[1], Integer.parseInt(sorTomb[2]), Double.parseDouble(sorTomb[3])));
  22.             }
  23.         }
  24.         for (Allat a : lista) {
  25.             System.out.println(a);
  26.         }
  27.         System.out.println();
  28.         
  29.         Bagoly[] bt = legnehezebbUhuk(lista.toArray(new Allat[0]));
  30.         Arrays.sort(bt, new Comparator<Bagoly>() {
  31.             @Override
  32.             public int compare(Bagoly o1, Bagoly o2) {
  33.                 return Integer.compare(o1.getGyuruAzonosito(), o2.getGyuruAzonosito());
  34.             }
  35.         });
  36.         for (Bagoly b : bt) {
  37.             System.out.println(b);
  38.         }
  39.     }
  40. }
letöltés szöveges állományként

Példa bemenet

  1. K;Bodri;156;12.0
  2. B;fulesbagoly;211;5.3
  3. B;uhu;298;4.0
  4. B;uhu;219;3.5
  5. K;Ficko;102;13.1
  6. B;uhu;222;4.0
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Bodri (156): 12.0 kg
  2. fulesbagoly (211): 5.3 kg
  3. uhu (298): 4.0 kg
  4. uhu (219): 3.5 kg
  5. Ficko (102): 13.1 kg
  6. uhu (222): 4.0 kg
  7. uhu (222): 4.0 kg
  8. uhu (298): 4.0 kg
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.