Programozó versenyek

Magas szintű programozási nyelvek 2, 2015. január 5., H13 ZH

2015. január 5. 13:20 – 2015. január 5. 16:20

Lapozz!

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

Ujsag <- Hetilap osztályok, Napok enum

Töltse le a Teszt.java fájlt, majd egészítse ki a kódját a Napok felsorolással, valamint az Ujsag és Hetilap osztályokkal az ábrának megfelelően! Mindhárom új típus csomag láthatóságú legyen!

Figyeljen arra, hogy az Ujsag és a Hetilap 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 legolcsobbKeddiHetilapok() metódusát úgy, hogy az egy olyan Hetilap típusú tömböt adjon vissza, amely a paraméterként megkapott Ujsag típusú tömbben található legolcsóbb keddi hetilapokat tartalmazza (akár több ilyen is lehet)! 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<Ujsag> lista = new ArrayList<>();
  16.         while (sc.hasNextLine()) {
  17.             String[] sorTomb = sc.nextLine().split(";");
  18.             if (sorTomb[0].equals("N")) {
  19.                 lista.add(new Ujsag(sorTomb[1], Integer.parseInt(sorTomb[2]), Boolean.parseBoolean(sorTomb[3])));
  20.             } else if (sorTomb[0].equals("H")) {
  21.                 lista.add(new Hetilap(Napok.valueOf(sorTomb[3].toUpperCase()), sorTomb[1], Integer.parseInt(sorTomb[2])));
  22.             }
  23.         }
  24.         for (Ujsag u : lista) {
  25.             System.out.println(u);
  26.         }
  27.         System.out.println();
  28.         Hetilap[] ht = legolcsobbKeddiHetilapok(lista.toArray(new Ujsag[0]));
  29.         Arrays.sort(ht, new Comparator<Hetilap>() {
  30.             @Override
  31.             public int compare(Hetilap o1, Hetilap o2) {
  32.                 return o1.getNev().compareTo(o2.getNev());
  33.             }
  34.         });
  35.         for (Hetilap h : ht) {
  36.             System.out.println(h);
  37.         }
  38.     }
  39. }
letöltés szöveges állományként

Példa bemenet

  1. N;Bors;155;true
  2. N;Magyar Nemzet;100;false
  3. N;Nepszabadsag;130;true
  4. H;Best magazin;250;hetfo
  5. H;Fules;175;kedd
  6. H;Poenvadaszat;99;kedd
  7. H;Epizod;210;kedd
  8. H;168 ora;110;kedd
  9. H;Kiskegyed;99;kedd
  10. H;Nok Lapja;225;szerda
  11. H;Meglepetes;155;csutortok
  12. H;Szines RTV;199;pentek
  13. H;HVG;545;szombat
  14. H;Story;225;vasarnap
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Bors ujsag melleklettel (155 Ft), megjelenik minden nap
  2. Magyar Nemzet ujsag (100 Ft), megjelenik minden nap
  3. Nepszabadsag ujsag melleklettel (130 Ft), megjelenik minden nap
  4. Best magazin hetilap (250 Ft), megjelenik hetfonkent
  5. Fules hetilap (175 Ft), megjelenik keddenkent
  6. Poenvadaszat hetilap (99 Ft), megjelenik keddenkent
  7. Epizod hetilap (210 Ft), megjelenik keddenkent
  8. 168 ora hetilap (110 Ft), megjelenik keddenkent
  9. Kiskegyed hetilap (99 Ft), megjelenik keddenkent
  10. Nok Lapja hetilap (225 Ft), megjelenik szerdankent
  11. Meglepetes hetilap (155 Ft), megjelenik csutortokonkent
  12. Szines RTV hetilap (199 Ft), megjelenik pentekenkent
  13. HVG hetilap (545 Ft), megjelenik szombatonkent
  14. Story hetilap (225 Ft), megjelenik vasarnaponkent
  15. Kiskegyed hetilap (99 Ft), megjelenik keddenkent
  16. Poenvadaszat hetilap (99 Ft), megjelenik keddenkent
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.