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, semmi extra nincs benne.
Adattároló osztály:
/** * * @author https://webotlet.hu */ package webotlet_13maj_valasztasok public class Jelolt { private int kerulet; private int szavazatok; private String nev; private String part; public Jelolt( String[] tomb ) { kerulet = Integer.parseInt(tomb[0]); szavazatok = Integer.parseInt(tomb[1]); nev = tomb[2] + " " + tomb[3]; part = tomb[4]; if( part.equals("-")) { part = "fuggetlen"; } } public int getKerulet() { return kerulet; } public int getSzavazatok() { return szavazatok; } public String getNev() { return nev; } public String getPart() { return part; } @Override public String toString() { return "Jelolt{" + "kerulet=" + kerulet + ", szavazatok=" + szavazatok + ", nev=" + nev + ", part=" + part + '}'; } }
A feladat megoldásai:
/** * * @author https://webotlet.hu */ package webotlet_13maj_valasztasok; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Scanner; public class Webotlet_13maj_valasztasok { public static void main(String[] args) { System.out.println("1. feladat"); Jelolt[] jeloltek = null; try { RandomAccessFile raf; raf = new RandomAccessFile("szavazatok.txt","r"); String sor; int db = 0; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { db++; } jeloltek = new Jelolt[db]; raf.seek(0); int hely = 0; for( sor = raf.readLine(); sor != null; sor = raf.readLine() ) { jeloltek[hely] = new Jelolt(sor.split(" ")); hely++; } raf.close(); } catch( IOException e ) { System.out.println("HIBA"); } // for( int i = 0; i < jeloltek.length; i++ ) // { // System.out.println(jeloltek[i].toString()); // } System.out.println("2. feladat"); System.out.println("A helyhatosagi valasztason " + jeloltek.length + " kepviselojelolt indult."); System.out.println("3. feladat"); Scanner sc = new Scanner(System.in); System.out.println("Adja meg egy jelolt nevet:"); String nev = sc.nextLine(); boolean vanNev = false; for( int i = 0; i < jeloltek.length; i++ ) { if( jeloltek[i].getNev().equals(nev)) { System.out.println("A jelolt " + jeloltek[i].getSzavazatok() + " szavazatot kapott."); vanNev = true; break; } } if( !vanNev ) { System.out.println("Ilyen nevu kepviselojelolt " + "nem szerepel a nyilvantartasban!"); } System.out.println("4. feladat"); int osszSzavazat = 0; for( int i = 0; i < jeloltek.length; i++ ) { osszSzavazat += jeloltek[i].getSzavazatok(); } double szazalek = (osszSzavazat / (double)12345) * 100; System.out.println(String.format("A valasztason %d " + "allampolgar, a jogosultak %.2f%%-a vett reszt.", osszSzavazat, szazalek)); System.out.println("5. feladat"); // GYEP, HEP, TISZ, ZEP, fuggetlen int[] szavazatok = new int[5]; for( int i = 0; i < jeloltek.length; i++ ) { if( jeloltek[i].getPart().equals("GYEP") ) { szavazatok[0] += jeloltek[i].getSzavazatok(); } else if( jeloltek[i].getPart().equals("HEP") ) { szavazatok[1] += jeloltek[i].getSzavazatok(); } else if( jeloltek[i].getPart().equals("TISZ") ) { szavazatok[2] += jeloltek[i].getSzavazatok(); } else if( jeloltek[i].getPart().equals("ZEP") ) { szavazatok[3] += jeloltek[i].getSzavazatok(); } else { szavazatok[4] += jeloltek[i].getSzavazatok(); } } System.out.println(String.format("Gyumolcsevok Partja= %.2f%%", (szavazatok[0] / (double)osszSzavazat) * 100 )); System.out.println(String.format("Husevok Partja= %.2f%%", (szavazatok[1] / (double)osszSzavazat) * 100 )); System.out.println(String.format("Tejivok Partja= %.2f%%", (szavazatok[2] / (double)osszSzavazat) * 100 )); System.out.println(String.format("Zoldsegevok Partja= %.2f%%", (szavazatok[3] / (double)osszSzavazat) * 100 )); System.out.println(String.format("Fuggetlen jeloltek= %.2f%%", (szavazatok[4] / (double)osszSzavazat) * 100 )); System.out.println("6. feladat"); int maxSzavazat = jeloltek[0].getSzavazatok(); for( int i = 1; i < jeloltek.length; i++ ) { if( jeloltek[i].getSzavazatok() > maxSzavazat ) { maxSzavazat = jeloltek[i].getSzavazatok(); } } for( int i = 0; i < jeloltek.length; i++ ) { if( jeloltek[i].getSzavazatok() == maxSzavazat ) { System.out.println( jeloltek[i].getNev() + " " + jeloltek[i].getPart()); } } // 7. feladat Jelolt[] nyertesek = new Jelolt[9]; for( int i = 0; i < jeloltek.length; i++ ) { if( nyertesek[ jeloltek[i].getKerulet() ] == null ) { nyertesek[ jeloltek[i].getKerulet() ] = jeloltek[i]; } else if( nyertesek[ jeloltek[i].getKerulet() ].getSzavazatok() < jeloltek[i].getSzavazatok() ) { nyertesek[ jeloltek[i].getKerulet() ] = jeloltek[i]; } } try { RandomAccessFile out; out = new RandomAccessFile("kepviselok.txt", "rw"); // ha esetleg többször hoznánk létre a fájlt, // töröljük az előző tartalmát out.setLength(0); for( int i = 1; i < nyertesek.length; i++ ) { out.writeBytes(i + " " + nyertesek[i].getNev() + " " + nyertesek[i].getPart() + "\n"); } out.close(); } catch( IOException e ) { System.out.println("HIBA"); } } }
Ha hibát találsz benne, kérlek jelezd!