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!