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:

/**
 *
 */
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:

/**
 *
 */
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

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.