• 0
  • cytuj |

  • Witam potrzebuję pomocy w jednym programie wykorzystującym kolejki, wyjątki i kilka metod. Większośc programu już mam brkuje mi tylko uzupełnić 3 metody IsEmpty(), isFull(), dequeue() i size (). Czy pomógłby mi ktoś kto sie odbrze zna na javie wykończyć ten program?? Ja dopiero się uczę, w pierwszy semestrze javy wogóle nie miałem, jedynie C++.

    Aha no i program ten tworze w NetBeans-ie

    Treść zadania: http://wyslijto.pl/plik/z6lr8qkggc

    Program który zrobiłem (jest nie pełny o te metody, ale są tam miejsca na wypełnienie ):

    ---------------------------------------------------- Tyle zdążyłem zrobić w weekend

    package kolejki;

    import java.util.logging.Level;
    import java.util.logging.Logger;

    class Wyjatek extends Exception { // tworzenie wlasnego wyjatku

    }

    class Kolejka1 {
    Object tab[]; // zdefinowany wskaźnik na tablice
    int poczatek, koniec;

    public Kolejka1() { // konstruktor (domyślny) tworzący nowy obiekt
    tab = new Object[10];
    poczatek = -1;
    koniec = -1;

    }
    public Kolejka1 (int rozmiar) throws Wyjatek { // konstruktor z parametrem, aby stworzyc kolejke o dowolnej długosci

    if (rozmiar>1000000)
    wyrzucWyjatek();
    poczatek = -1;
    koniec = -1;

    tab = new Object [rozmiar];


    }

    void wyrzucWyjatek () throws Wyjatek { // wyrzuca wyjątek, tutaj w razie przkroczenia wartości miliona
    throw new Wyjatek ();
    }
    void enqueue(Object value) throws Wyjatek{
    if (koniec == poczatek -1)
    {
    wyrzucWyjatek ();
    }
    if ((poczatek == 0) && (koniec == (tab.length -1)))
    {
    wyrzucWyjatek();
    }
    if (koniec == tab.length -1)
    {
    tab[0] = value; // nowy elemnt wstawiany na koniec kolejki ale poczatek tablicy
    koniec =0; // koniec kolejki wchodzi na początek tablicy
    } else {
    tab[koniec+1]=value;
    koniec ++;
    }




    }
    void dequeue(){ // Tutaj mi brakuje
    }
    void size(){ // Tutaj mi brakuje

    }
    void isEmpty(){ // Tutaj mi brakuje

    }
    void isFull(){ // Tutaj mi brakuje

    }
    }

    public class Main {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    try {

    Kolejka1 k = new Kolejka1(1000000); // tutaj wpisujemy dlugosc kolejki
    } catch (Wyjatek ex) {
    System.out.println("Tablica nie może być większa niż milion");

    }


    }

    }


    Może znalazłby się ktoś kto by mi pomógł... Program muszę wysłać do środy 8ego kwietnia (godzina 24.00).


    Dzięki za pomoc

    [ Dodano: 2009-04-08, 00:12 ]
    Jeszcze żeby ten kod programu był bardziej czytelny, to jest on w notatniku pod tym linkiem :

    http://wyslijto.pl/plik/l78gqbgk7t


    a treść laboratorium pod tym:

    http://wyslijto.pl/plik/z6lr8qkggc
    d41d8cd98f00b204e9800998ecf8427e
  • wrtnc7  
    INF
    Wydział: W-8 IZ
    Rok studiów: 4

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Może tak?
    Kod:

        Object dequeue() throws Wyjatek {
        if (pusta()) wyrzucWyjatek();
        else {
            int i=poczatek;
            while (tab[i]==null) i++;
            Object ob=tab[i];
            tab[i]=null;
            poczatek=i+1;
            return ob;
        }

        }


        int size(){

        return koniec-poczatek+1;       

        }


        boolean isEmpty(){

            return poczatek<0 || poczatek>koniec;

        }

    a żeby napisać isFull() to chyba należy gdzieś zapamiętać początkową wielkość tablicy.
    _________________
    Im lepiej widać piersi, tym trudniej zapamiętać twarz.
    d41d8cd98f00b204e9800998ecf8427e
  • 0
  • cytuj |

  • Być może będzie ok. No jeśli chodzi o to isEmpty i size () to podobnie kombinowałem bo to nie są jakieś złożone metody, Empty jedynie sprawdza czy kolejka/tablica nie jest pusta a isFull czy pełna
    d41d8cd98f00b204e9800998ecf8427e
  • bartQ  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • a dlaczego tworzysz funkcję wyrzucWyjatek() zamiast po prostu wyrzucić ten wyjątek?
    d41d8cd98f00b204e9800998ecf8427e
  • 0
  • cytuj |

  • Zibo, cześc, a powiedz mi, te kody programu co mi napisałeś to one napewno działają?? Przepuisałem to do BluEJ, mam w ten sposób trzy klas y tam powiązane ze sobą jakiemis strzałkami, jedna to ten interface Queue i dwie : Kolejka i Main

    Tylko jak to odpalam to nic sie nie robi, może złe relacje są. Nie rozumiem do końca jak działa ten programik, bo dopiero od niedawna mam z nim styczność... A t w czym piszesz?
    d41d8cd98f00b204e9800998ecf8427e
  • Zibo
    Outsider
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • BlueJ nie używam i nigdy nie używałem. Ja piszę w NetBeans. Te trzy linki to zawartości 3-ech plików źródłowych .java o nazwach takich, jak owe klasy. Nie wiem jak to wygląda w BlueJ, ale ogólnie wystarczy dodać do projektu te 3 klasy i wkleić powyższy kod do każdej.

    Umieściłem je w pakiecie 'kolejka', więc i w takim katalogu powinny się znajdować w projekcie.


    Jeśli Ci to pomoże, mogę zuploadować cały projekt z NetBeans'a.
    d41d8cd98f00b204e9800998ecf8427e
  • 0
  • cytuj |

  • Zibo, No to jak możesz to może mi to w netbeansie całe wysłąć to sobie zobacze, bo wsadziłęm to do blueJ to niby działa ale wywala w jedny miejscu błąd i nie wiem jak go obejść:P a Net Beansa tez mam, dopiero się go ucze :) Ale w nim robiłem to co zamieściłem na forum.,..
    d41d8cd98f00b204e9800998ecf8427e
  • 0
  • cytuj |

  • Zibo, Dzięki bardzo, tu wsyzstko działa, jak do blueJ-a wrzuciłem to wskakuje w dwóch miejcscach błąd, ale już chyba wiem jak to naprawić, więc zrobię sobie alternatywną wersje tego programu ale w BlueJ-u ( bo tylko to jest na kompach na laborkach) a na swoim netbooku coś mie nie chce netBeansa zainstalowac :P ale jeszcze będę próbował... :)

    Dzięki jeszcze raz za pomoc w tym programie,
    pozdrawiam i Wesołych Świąt :)
    d41d8cd98f00b204e9800998ecf8427e

Powered by phpBB modified by Przemo © 2003 phpBB Group. Then, after many years modified again, this time by Piotrek © 2014
Strona wygenerowana w 34,4ms. Zapytań do SQL: 15