Witam,
temat może być dość nieprecyzyjny ale nie wiedziałam jak streścić problem w kilku wyrazach.
Ale do rzeczy.
Napisałam program wykorzystujący iteratory, program ma na celu wyszukanie studentów ze średnią powyżej np. 4. Program cacy działa tylko chodzi o "kosmetyczne" zmiany. Ale może zamieszczę kod..
package iteratory;
import java.util.InputMismatchException;
import java.util.Scanner; //importujemy klase scanner
public class Klasa {
static int i;
static Scanner klawiatura=new Scanner(System.in);
static Student[] tab=new Student[5]; //tworzymy tablice studentow
static void wydruki() //tworzymy metode
{ // wypełnienie tablicy
tab[0]= new Student("Kowalska",4.5); //dodanie studenta do tablicy
tab[1]= new Student("Skulski",4);
tab[2]= new Student("Puszek",3);
tab[3]= new Student("Okruszek",3.5);
tab[4]= new Student("Klapeuszek",5);
System.out.println("Wpisz srednia ktora bedzie kryterium wyszukiwania");
// Scanner wczytywacz=new Scanner(System.in); //żeby można było zczytywać znaki z klawiatury
double srednia=klawiatura.nextDouble(); //pobiera z klawiatury srednia
if(srednia<=5){
IteratorFiltrujacy it=new IteratorFiltrujacy(tab,srednia); //tworzymy nowy iterator filtrujacy
it.first(); //przeszukujemy tablice od poczatku
while (!it.isDone()) //dopoki nie przeszukano calej tablicy ..
{
Student pobierz=(Student)it.current(); //wprawadzamy dodatkowa zmienna w ktorej przechowujemy dane aktualnie przeglądanego studenta
System.out.println(pobierz.nazwisko+" "+pobierz.srednia); //drukuje studenta o wymaganej sredniej
it.next(); //przechodzi do nastepnego studenta
}
}
else
{System.out.println("Wprowadzono niepoprawną liczbę");
}
}
public static void main(String[] args) { //metoda wykonujaca
int wybor;
try{
do{
System.out.println("Czy chcesz spróbować ponownie? Jeśli tak wpisz 1 (tak) lub 2(nie)");
wybor=klawiatura.nextInt();
} while(wybor!=1 && wybor !=2);
if(wybor==1)
{
wydruki(); //wykonuje sie wszystko wewnatrz metody wydruki ();
}
}
catch(InputMismatchException e){
System.out.println("Nie wprowadzono poprawnego wyrażenia, może innym razem");
}
}
}
cały szkopuł tkwi w tym, że program się wyłącza po tym jak wprowadzimy złą liczbę (większą od 5) lub gdy wpiszemy coś co nie jest liczbą. A chciałabym, żeby wyskoczyła w tych przypadkach opcja żeby można było zacząć sprawdzać od początku, a jak wpisze się 2 (tzn ze nie chcemy dalej sprawdzac) żeby program się wyłączył.
Problem niby podstawowy ale dla mnie nie do przejścia.
Za wszelką pomoc z góry dziękuję.
A gdyby trzeba było to na wszelki wypadek zamieszczam resztę paczki Iteratory..
http://www.mediafire.com/?ldw5gmywnmy