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!
