Java programozás – 2017 májusi közép szakmai informatika érettségi – helsinki1952 (1. verzió)

A feladat leírását, melynek a megoldását közzéteszem innen töltheted le.

Saját osztály:

/**
 *
 * @author https://webotlet.hu
 */
package webotlet_17maj_szakmai_e_helsinki1952;

public class Helyezes
{
  private int hely;
  private int db;
  private String sportag;
  private String versenyszam;
  
  private int pontszam;
  
  public Helyezes(String[] tomb)
  {
    hely = Integer.parseInt(tomb[0]);
    db = Integer.parseInt(tomb[1]);
    sportag = tomb[2];
    versenyszam = tomb[3];
  }

  public int getHely()
  {
    return hely;
  }

  public int getDb()
  {
    return db;
  }

  public String getSportag()
  {
    return sportag;
  }

  public String getVersenyszam()
  {
    return versenyszam;
  }

  public int getPontszam()
  {
    return pontszam;
  }

  public void setPontszam(int pontszam)
  {
    this.pontszam = pontszam;
  }

  @Override
  public String toString()
  {
    return "Helyezes{" + "hely=" + hely + ", db=" + db + ", sportag="
      + sportag + ", versenyszam=" + versenyszam + ", pontszam=" + pontszam + '}';
  }
  
  public String eredmeny()
  {
    String nev = sportag;
    if( sportag.equals("kajakkenu") )
    {
      nev = "kajak-kenu";
    }
    
    return hely + " " + db + " " + pontszam + " " + nev + " " + versenyszam;
  }
}

A feladat megoldásai:

/**
 *
 * @author https://webotlet.hu
 */
package webotlet_17maj_szakmai_e_helsinki1952;

import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;

public class Webotlet_17maj_szakmai_e_helsinki1952
{
  public static void main(String[] args)
  {
    // 2. feladat
    ArrayList<Helyezes> helyezesek = new ArrayList<>();
    
    try
    {
      RandomAccessFile raf = new RandomAccessFile("helsinki.txt", "r");
      String sor;
      
      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
      {
        helyezesek.add(new Helyezes(sor.split(" ")));
      }
      raf.close();
    }
    catch( IOException e )
    {
      System.out.println("HIBA");
    }
    
//    for( Helyezes helyezes : helyezesek)
//    {
//      System.out.println(helyezes.toString());
//    }
    
    System.out.println("3. feladat:");
    System.out.println("Pontszerző helyezések száma: " + helyezesek.size());
    
    System.out.println("4. feladat");
    int[] helyezesDb = new int[7];
    for( int i = 0; i < helyezesek.size(); i++ )
    {
      helyezesDb[helyezesek.get(i).getHely()]++;
    }
    
    System.out.println("Arany: " + helyezesDb[1]);
    System.out.println("Ezüst: " + helyezesDb[2]);
    System.out.println("Bronz: " + helyezesDb[3]);
    System.out.println("Összesen: " +
      (helyezesDb[1] + helyezesDb[2] + helyezesDb[3]));
    
    System.out.println("5. feladat");
    int osszeg = 0;
    for( int i = 0; i < helyezesek.size(); i++ )
    {
      helyezesek.get(i).setPontszam(pontszam(helyezesek.get(i).getHely()));
      osszeg += helyezesek.get(i).getPontszam();
    }
      
    System.out.println("Olimpiai pontok száma: " + osszeg);
    
    System.out.println("6. feladat");
    int tornaErmek = 0;
    int uszasErmek = 0;
    for( int i = 0; i < helyezesek.size(); i++ )
    {
      if( helyezesek.get(i).getHely() <= 3 )
      {
        if( helyezesek.get(i).getSportag().equals("torna") )
        {
          tornaErmek++;
        }
        else if( helyezesek.get(i).getSportag().equals("uszas") )
        {
          uszasErmek++;
        }
      }
    }
    
    if( tornaErmek > uszasErmek )
    {
      System.out.println("Torna sportágban szereztek több érmet");
    }
    else if( tornaErmek > uszasErmek )
    {
      System.out.println("Úszás sportágban szereztek több érmet");
    }
    else
    {
      System.out.println("Egyenlő volt az érmek száma");
    }
    
    // 7. feladat
    try
    {
      RandomAccessFile ki = new RandomAccessFile("helsinki2.txt", "rw");
      ki.setLength(0);
      for( int i = 0; i < helyezesek.size(); i++ )
      {
        ki.writeBytes(helyezesek.get(i).eredmeny() + "\n");
      }
      ki.close();
    }
    catch( IOException e )
    {
      System.out.println("HIBA");
    }
    
    System.out.println("8. feladat");
    
    int max = 0;
    for( int i = 1; i < helyezesek.size(); i++ )
    {
      if( helyezesek.get(i).getDb() > helyezesek.get(max).getDb() )
      {
        max = i;
      }
    }
    System.out.println("Helyezés: " + helyezesek.get(max).getHely());
    System.out.println("Sportág: " + helyezesek.get(max).getSportag());
    System.out.println("Versenyszám: " + helyezesek.get(max).getVersenyszam());
    System.out.println("Sportolók száma: " + helyezesek.get(max).getDb());
    
  }
  
  public static int pontszam(int helyezes)
  {
    int pont;
    if( helyezes == 1 )
    {
      pont = 7;
    }
    else if( helyezes == 2 )
    {
      pont = 5;
    } 
    else if( helyezes == 3 )
    {
      pont = 4;
    } 
    else if( helyezes == 4 )
    {
      pont = 3;
    } 
    else if( helyezes == 5 )
    {
      pont = 2;
    } 
    else
    {
      pont = 1;
    }
    return pont;
  }
  
}

Ha hibát találsz benne, kérlek jelezd!

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .