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. Az utolsó feladatot egy eddig ritkán használt HashMap adatszerkezettel oldottam meg, ínyenceknek ajánlott.
Adattároló osztály:
/**
*
* @author https://webotlet.hu
*/
package webotlet_07okt_foci_java_v3;
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 )
{
return hazai.equals(csapat) && hazaiVeg < vendegVeg;
}
}
A feladat megoldásai:
/**
*
* @author https://webotlet.hu
*/
package webotlet_07okt_foci_java_v3;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Webotlet_07okt_foci_java_v3
{
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.kiFforditott().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
{
Meccs eloszor = meccsek.get(0);
for( Meccs meccs : kikapott)
{
if( meccs.getFordulo() < eloszor.getFordulo() )
{
eloszor = meccs;
}
}
System.out.println(eloszor.getFordulo() + " " + eloszor.getVendeg());
}
// 7. feladat
HashMap<String,Integer> eredmenyek = new HashMap<>();
for( Meccs meccs : meccsek)
{
if( eredmenyek.containsKey(meccs.golEredmeny()) )
{
eredmenyek.replace(meccs.golEredmeny(),
eredmenyek.get(meccs.golEredmeny()) + 1);
}
else
{
eredmenyek.put(meccs.golEredmeny(), 1);
}
}
try
{
RandomAccessFile ki = new RandomAccessFile("stat.txt", "rw");
ki.setLength(0);
for( Map.Entry<String, Integer> elem : eredmenyek.entrySet())
{
ki.writeBytes(elem.getKey() + ": " + elem.getValue() + " darab\n");
}
ki.close();
}
catch( IOException e )
{
System.out.println("HIBA");
}
}
}
Ha hibát találsz benne, kérlek jelezd!
