A feladat aminek a megoldását itt közzéteszem, itt található. A feladatot csak forráskódként teszem közzé.
// Auto osztály: Auto.java
package webotlet_fajlkezeles07;
public class Auto
{
private String marka;
private int km;
public Auto(String sor1, String sor2)
{
marka = sor1;
km = Integer.parseInt(sor2);
}
@Override
public String toString()
{
return "Auto{" + "marka=" + marka + ", km=" + km + '}';
}
public String getMarka()
{
return marka;
}
public int getKm()
{
return km;
}
}
// kezelő osztály
package webotlet_fajlkezeles07;
import java.io.*;
public class Webotlet_Fajlkezeles07
{
public static void main(String[] args)
{
RandomAccessFile raf;
String sor;
Auto[] autok = null;
try
{
raf = new RandomAccessFile("autok2sorban.txt", "r");
int db = 0;
for (sor = raf.readLine(); sor != null; sor = raf.readLine())
{
db++;
}
autok = new Auto[db / 2];
raf.seek(0);
int hely = 0;
for (sor = raf.readLine(); sor != null; sor = raf.readLine())
{
autok[hely] = new Auto(sor, raf.readLine());
hely++;
}
raf.close();
} catch (IOException e)
{
System.out.println("HIBA");
}
for (int i = 0; i < autok.length; i++)
{
System.out.println(autok[i].toString());
}
// Hány autó futott 20 ezer km-nél kevesebbet?
System.out.println("1. feladat");
int dbKm = 0;
for( int i = 0; i < autok.length; i++ )
{
if( autok[i].getKm() < 20000 )
{
dbKm++;
}
}
System.out.println(dbKm+" auto futott 20 ezer km-nel "
+ "kevesebbet.");
// Hány Toyota márkájú autó van a fájlban?
// (Többféle Toyota is van!)
System.out.println("2. feladat");
int dbToyota = 0;
for( int i = 0; i < autok.length; i++ )
{
if( autok[i].getMarka().split(" ")[0].equals("Toyota") )
{
dbToyota++;
}
}
System.out.println(dbToyota+" darab Toyota van.");
// Melyik autó futott a legtöbbet? Írd ki a típusát!
System.out.println("3. feladat");
int max = 0;
for( int i = 1; i < autok.length; i++ )
{
if( autok[i].getKm() > autok[max].getKm() )
{
max = i;
}
}
System.out.println("A "+autok[max].getMarka()+" auto futott "
+ "a legtobbet.");
// Hány km-t futottak az autók átlagosan?
System.out.println("4. feladat");
int km = 0;
for( int i = 0; i < autok.length; i++ )
{
km += autok[i].getKm();
}
System.out.println("Az autok atlagosan "+((double)km/autok.length)+
" km-t futottak.");
}
}
