Dany jest ci±g liczb zapisany w pliku. Napisz program, który będzie umożliwiał wypisanie statystyki liczb tam zapisanych: ilo¶ci liczb, sumy, maksimum i minimum. Poszczególne obliczenia wykonaj za pomoc± odpowiednich funkcji.
Offline
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
import java.io.File;
public class kopa {
public static void main(String[] args) {
kopa qq = new kopa();
String n="nowy.txt";
Scanner s = new Scanner(System.in);
boolean trwanie = true;
do{System.out.println("Menu:");
System.out.println("1.Zapis do pliku liczb");
System.out.println("2.Znalezieni sumy liczb z pliku");
System.out.println("3.Znalezienie Maksimum w liczbach z pliku");
System.out.println("4.Znalezienie Minimum w liczbach z pliku");
System.out.println("5.Koniec");
int decyzja = s.nextInt();
switch(decyzja){
case 1: System.out.println("Czy chcesz zapsać do pliku domyślnego??");
boolean de = s.nextBoolean();
if(de){qq.zapis(n);}
else{
System.out.println("Podaj nazwe pliku do którego pragniesz zapisać:");
s = new Scanner(System.in);
n = s.nextLine();
qq.zapis(n);
}break;
case 2: System.out.println("Czy chcesz sumowac liczby z pliku domyślnego??");
boolean dec = s.nextBoolean();
if(dec){ System.out.println("Suma liczb to: "+qq.suma(n));}
else{
System.out.println("Podaj nazwe pliku z którego pragniesz sumować:");
s = new Scanner(System.in);
n = s.nextLine();
File d = new File(n);
if(d.exists()){ System.out.println("Suma liczb to: "+qq.suma(n));}
else
{
System.out.println("Brak pliku " + n);
}
}break;
case 3: System.out.println("Czy chcesz znaleść maksimum w pliku domyślnym??");
boolean deq = s.nextBoolean();
if(deq){System.out.println("Maksmum w pliku to : "+qq.max(n));}
else{
System.out.println("Podaj nazwe pliku :");
s = new Scanner(System.in);
n=s.nextLine();
File d = new File(n);
if(d.exists()){System.out.println("Maksmum w pliku to : "+qq.max(n)) ;}
else
{
System.out.println("Brak pliku " + n);
}
}break;
case 4: System.out.println("Czy chcesz znaleść minimum w pliku domyślnym??");
boolean dek = s.nextBoolean();
if(dek){System.out.println("Minimum w pliku to :"+qq.min(n));}
else{
System.out.println("Podaj nazwe pliku:");
s = new Scanner(System.in);
n=s.nextLine();
File d = new File(n);
if(d.exists()){System.out.println("Minimum w pliku to : "+qq.min(n)) ;}
else
{
System.out.println("Brak pliku " + n);
}
}break;
case 5: trwanie = false; break;
default:System.out.println("Zły wybór : "); break;
}
}while(trwanie);
}
void zapis(String nazwa_pliku){
Scanner s = new Scanner(System.in);
System.out.println("Ile liczb pragniesz wprowadzić do pliku? ");
int ilosc =s.nextInt();
try{
File fr = new File(nazwa_pliku);
fr.delete();
fr.createNewFile();
RandomAccessFile f=new RandomAccessFile(nazwa_pliku, "rw");
for(int i=0;i<=ilosc;i++){
System.out.println("Wprowadz liczbę do zapisu : ");
int hk = s.nextInt();
f.writeInt(hk);
}
f.close();
System.out.println("Zakonczylem zapis...");
}catch(IOException e){System.out.println("Zakonczyłem zapis z błędem: "+e.toString());}
}
long suma(String nazwa_pliku){
long suma = 0L;
try{
RandomAccessFile f=new RandomAccessFile(nazwa_pliku, "rw");
long poz=0L;
long dl =f.length();
f.seek(0);
while(poz<dl){
int pomodcz = f.readInt();
suma +=pomodcz ;
poz = f.getFilePointer();
}
f.close();
}catch(IOException e){System.out.println("Zakonczyłem sumowanie z błędem : "+e.toString());}
return suma;
}
int min(String nazwa_pliku){
int mini=0;
try{
RandomAccessFile f=new RandomAccessFile(nazwa_pliku, "rw");
mini=f.readInt();f.close();
f=new RandomAccessFile(nazwa_pliku, "rw");
long poz=0L;
long dl =f.length();
f.seek(0);
while(poz<dl){
int hk = f.readInt();
poz = f.getFilePointer();
if(hk<mini){mini=hk;}
}f.close();
}catch(IOException e){System.out.println("Zakonczyłem szukanie minimum z błędem : "+e.toString());}
return mini;
}
int max(String nazwa_pliku){
int maxi = 0;
try{
RandomAccessFile f=new RandomAccessFile(nazwa_pliku, "rw");
maxi=f.readInt();f.close();
f=new RandomAccessFile(nazwa_pliku, "rw");
long poz=0L;
long dl =f.length();
f.seek(0);
while(poz<dl){
int hk = f.readInt();
poz = f.getFilePointer();
if(hk>maxi){maxi=hk;}
}f.close();
}catch(IOException e){System.out.println("Zakonczyłem szukanie maksimum z błędem : "+e.toString());}
return maxi;
}
}
Offline