A Fájlkezelés 7 feladat megoldása Java nyelven

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_fajlkezeles7;

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_fajlkezeles7;

import java.io.*;

public class Webotlet_Fajlkezeles7
{

  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.");
  }
}

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez a weboldal az Akismet szolgáltatását használja a spam kiszűrésére. Tudjunk meg többet arról, hogyan dolgozzák fel a hozzászólásunk adatait..