A feladat leírását, melynek a megoldását közzéteszem innen töltheted le. Ez a megoldás tömbbel dolgozik. Az adattároló osztályban néhány feladatot előkészítek, és a végső megoldásban ezeket használom.
Adattároló osztály:
/** * * @author https://webotlet.hu */ package webotlet_07okt_foci_java; public class Meccs { private int fordulo; private int hazaiVeg; private int vendegVeg; private int hazaiFel; private int vendegFel; private String hazai; private String vendeg; public Meccs( String[] tomb ) { fordulo = Integer.parseInt(tomb[0]); hazaiVeg = Integer.parseInt(tomb[1]); vendegVeg = Integer.parseInt(tomb[2]); hazaiFel = Integer.parseInt(tomb[3]); vendegFel = Integer.parseInt(tomb[4]); hazai = tomb[5]; vendeg = tomb[6]; } public int getFordulo() { return fordulo; } public int getHazaiVeg() { return hazaiVeg; } public int getVendegVeg() { return vendegVeg; } public int getHazaiFel() { return hazaiFel; } public int getVendegFel() { return vendegFel; } public String getHazai() { return hazai; } public String getVendeg() { return vendeg; } @Override public String toString() { return "Meccs{" + "fordulo=" + fordulo + ", hazaiVeg=" + hazaiVeg + ", vendegVeg=" + vendegVeg + ", hazaiFel=" + hazaiFel + ", vendegFel=" + vendegFel + ", hazai=" + hazai + ", vendeg=" + vendeg + '}'; } public String vegEredmeny() { return hazai + "-" + vendeg + ": " + hazaiVeg + "-" + vendegVeg + " (" + hazaiFel + "-" + vendegFel + ")"; } public String golEredmeny() { String eredmeny; if( hazaiVeg > vendegVeg ) { eredmeny = hazaiVeg + "-" + vendegVeg; } else { eredmeny = vendegVeg + "-" + hazaiVeg; } return eredmeny; } }
A feladat megoldásai:
/** * * @author https://webotlet.hu */ package webotlet_07okt_foci_java; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Scanner; public class Webotlet_07okt_foci_java { public static void main(String[] args) { // 1. feladat Meccs[] meccsek = null; try { RandomAccessFile raf = new RandomAccessFile("meccs.txt", "r"); meccsek = new Meccs[Integer.parseInt(raf.readLine())]; String sor; int hely = 0; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { meccsek[hely] = new Meccs( sor.split(" ")); hely++; } raf.close(); } catch( IOException e ) { System.out.println("HIBA"); } // for( int i = 0; i < meccsek.length; i++ ) // { // System.out.println(meccsek[i].toString()); // } // 2. feladat System.out.println("2. feladat"); Scanner sc = new Scanner(System.in); System.out.println("Add meg a fordulo szamat!"); int fordulo = sc.nextInt(); for( int i = 0; i < meccsek.length; i++ ) { if( meccsek[i].getFordulo() == fordulo ) { System.out.println(meccsek[i].vegEredmeny()); } } // 3. feladat System.out.println("3. feladat"); for( int i = 0; i < meccsek.length; i++ ) { if( meccsek[i].getHazaiVeg() > meccsek[i].getVendegVeg() && meccsek[i].getHazaiFel() < meccsek[i].getVendegFel() ) { System.out.println(meccsek[i].getFordulo() + " " + meccsek[i].getHazai()); } else if( meccsek[i].getHazaiVeg() < meccsek[i].getVendegVeg() && meccsek[i].getHazaiFel() > meccsek[i].getVendegFel() ) { System.out.println(meccsek[i].getFordulo() + " " + meccsek[i].getVendeg()); } } // 4. feladat System.out.println("4. feladat"); sc = new Scanner(System.in); System.out.println("Add meg egy csapat nevet!"); String csapat = sc.nextLine(); // 5. feladat System.out.println("5. feladat"); int lott = 0; int kapott = 0; for( int i = 0; i < meccsek.length; i++ ) { if( meccsek[i].getHazai().equals(csapat) ) { lott += meccsek[i].getHazaiVeg(); kapott += meccsek[i].getVendegVeg(); } else if( meccsek[i].getVendeg().equals(csapat) ) { lott += meccsek[i].getVendegVeg(); kapott += meccsek[i].getHazaiVeg(); } } System.out.println("lott: " + lott + " kapott: " + kapott); // 6. feladat System.out.println("6. feladat"); int dbCsapat = 0; for( int i = 0; i < meccsek.length; i++ ) { if( meccsek[i].getHazai().equals(csapat) && meccsek[i].getHazaiVeg() < meccsek[i].getVendegVeg() ) { dbCsapat++; } } if( dbCsapat == 0 ) { System.out.println("A csapat otthon veretlen maradt."); } else { Meccs[] csapatMeccsek = new Meccs[dbCsapat]; int hely = 0; for( int i = 0; i < meccsek.length; i++ ) { if( meccsek[i].getHazai().equals(csapat) && meccsek[i].getHazaiVeg() < meccsek[i].getVendegVeg() ) { csapatMeccsek[hely] = meccsek[i]; hely++; } } int min = 0; for( int i = 1; i < csapatMeccsek.length; i++ ) { if( csapatMeccsek[i].getFordulo() < csapatMeccsek[min].getFordulo() ) { min = i; } } System.out.println(csapatMeccsek[min].getFordulo() + " " + csapatMeccsek[min].getVendeg()); } // 7. feladat String[] eredmenyek = new String[meccsek.length]; int[] eredmenyekDb = new int[meccsek.length]; int hely = 0; for( int i = 0; i < meccsek.length; i++ ) { int hol = -1; for( int j = 0; j < hely; j++ ) { if( eredmenyek[j].equals(meccsek[i].golEredmeny()) ) { hol = j; break; } } if( hol == -1 ) { eredmenyek[hely] = meccsek[i].golEredmeny(); eredmenyekDb[hely] = 1; hely++; } else { eredmenyekDb[hol]++; } } try { RandomAccessFile ki = new RandomAccessFile("stat.txt", "rw"); ki.setLength(0); for( int i = 0; i < hely; i++ ) { ki.writeBytes(eredmenyek[i] + ": " + eredmenyekDb[i] + " darab\n"); } ki.close(); } catch( IOException e ) { System.out.println("HIBA"); } } }
Ha hibát találsz benne, kérlek jelezd!