A feladat leírását, melynek a megoldását közzéteszem innen töltheted le. Ez a megoldás listával dolgozik. Az adattároló osztályban sok feladatot előkészítek, és a végső megoldásban ezeket használom. Ahol csak lehet, foreach ciklust használok. Listával sokkal tömörebb lett az utolsó feladat megoldása.
Adattároló osztály:
/**
*
* @author https://webotlet.hu
*/
package webotlet_07okt_foci_java_v2;
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;
}
public String kiForditott()
{
String csapat = "-";
if( hazaiVeg > vendegVeg && hazaiFel < vendegFel )
{
csapat = hazai;
}
else if( hazaiVeg < vendegVeg && hazaiFel > vendegFel )
{
csapat = vendeg;
}
return csapat;
}
public boolean hazaiKikapott( String csapat )
{
if( hazai.equals(csapat) && hazaiVeg < vendegVeg )
{
return true;
}
else
{
return false;
}
}
}
A feladat megoldásai:
/**
*
* @author https://webotlet.hu
*/
package webotlet_07okt_foci_java_v2;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;
import java.util.Scanner;
public class Webotlet_07okt_foci_java_v2
{
public static void main(String[] args)
{
// 1. feladat
ArrayList<Meccs> meccsek = new ArrayList<>();
try
{
RandomAccessFile raf = new RandomAccessFile("meccs.txt", "r");
raf.readLine();
String sor;
for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
{
meccsek.add(new Meccs( sor.split(" ")));
}
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( Meccs meccs : meccsek)
{
if( meccs.getFordulo() == fordulo )
{
System.out.println(meccs.vegEredmeny());
}
}
// 3. feladat
System.out.println("3. feladat");
for( Meccs meccs : meccsek)
{
if( !meccs.kiForditott().equals("-") )
{
System.out.println(meccs.getFordulo() + " " + meccs.kiForditott());
}
}
// 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( Meccs meccs : meccsek)
{
if( meccs.getHazai().equals(csapat) )
{
lott += meccs.getHazaiVeg();
kapott += meccs.getVendegVeg();
}
else if( meccs.getVendeg().equals(csapat) )
{
lott += meccs.getVendegVeg();
kapott += meccs.getHazaiVeg();
}
}
System.out.println("lott: " + lott + " kapott: " + kapott);
// 6. feladat
System.out.println("6. feladat");
ArrayList<Meccs> kikapott = new ArrayList<>();
for( Meccs meccs : meccsek)
{
if( meccs.hazaiKikapott(csapat) )
{
kikapott.add(meccs);
}
}
if( kikapott.isEmpty() )
{
System.out.println("A csapat otthon veretlen maradt.");
}
else
{
int min = 0;
for( int i = 1; i < kikapott.size(); i++ )
{
if( meccsek.get(i).getFordulo() < meccsek.get(min).getFordulo() )
{
min = i;
}
}
System.out.println(kikapott.get(min).getFordulo() + " "
+ kikapott.get(min).getVendeg());
}
// 7. feladat
ArrayList<String> eredmenyek = new ArrayList<>();
ArrayList<Integer> eredmenyekDb = new ArrayList<>();
int idx;
for( int i = 0; i < meccsek.size(); i++ )
{
idx = eredmenyek.indexOf(meccsek.get(i).golEredmeny());
if( idx == -1 )
{
eredmenyek.add(meccsek.get(i).golEredmeny());
eredmenyekDb.add(1);
}
else
{
eredmenyekDb.set(idx, eredmenyekDb.get(idx) + 1);
}
}
try
{
RandomAccessFile ki = new RandomAccessFile("stat.txt", "rw");
ki.setLength(0);
for( int i = 0; i < eredmenyek.size(); i++ )
{
ki.writeBytes(eredmenyek.get(i) + ": "
+ eredmenyekDb.get(i) + " darab\n");
}
ki.close();
}
catch( IOException e )
{
System.out.println("HIBA");
}
}
}
Ha hibát találsz benne, kérlek jelezd!
