• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie - przypisanie wartości kolejnym zmiennym String

Object Storage Arubacloud
+1 głos
211 wizyt
pytanie zadane 17 listopada 2016 w Java przez LightInWindow Użytkownik (720 p.)

Witam . Stworzyłem dwie klasy Hotel i Osoba .

Mam przypisać losowo pokoje 50 gościom , lecz kiedy wywołuje program przypisuje on te 50 pokoi jednej osobie podanej na początku . Ktoś wie jak to naprawić ?

Klasa Osoba

public class Osoba
{   
    static String imie,nazwisko;
    
    Osoba(String imie,String nazwisko)
    {
        this.imie=imie;
        this.nazwisko=nazwisko;
    }
    static String getImie()
    {
        return imie;
    }
    static String getNazwisko()
    {
        return nazwisko;
    }
    
}

Klasa Hotel

public class Hotel
{
    Osoba [] tab = new Osoba[100];
    String wezImie(String im)
    {
    return im;
    }
    String wezNazw(String nazw)
    {
    return nazw;
    }
    void przydziel(String imie,String nazwisko)
    {
        String a,b;
        int np,licznik;
        for(int i=0;i<10;++i)
        {
        np=(int)(Math.random()*99);
        tab[np]=new Osoba(imie,nazwisko);
        imie=wezImie(a);
        nazwisko=wezNazw(b);
        }

}

 

2 odpowiedzi

0 głosów
odpowiedź 17 listopada 2016 przez K0XM4N Gaduła (3,640 p.)
Nie rozumiem dlaczego masz pętle for która iteruje do 10, skoro musisz przydzielić pokoje dla 50 gości. Ta nazwa zmiennej osoba w klasie hotel trochę jest nietrafna. Myśle, że lepiej byłoby gdybyś nazwał ją room (lepiej pisać po angielsku cały kod) i dla każdej iteracji pętli tworzysz nową osobę, losujesz numer pokoju, sprawdzasz czy się nie powiela, jak wylosujesz dobry numer (nie zajęty przez inna osobe) to wtedy dodajesz tą osobę pod odpowiedni index tablicy room.
0 głosów
odpowiedź 21 listopada 2016 przez dragon200 Nowicjusz (200 p.)
edycja 21 listopada 2016 przez dragon200

może to Ci pomoże ,utworzyłem list imion, nazwisk, tablice z osobami gdzie randem dodałem imie i nazwisko.

public class Person {

    private String name, surname;

    public Person(String name,String surname){
        this.name=name;
        this.surname=surname;

    }

    public String getName() {
        return name;
    }


    public String getSurname() {
        return surname;
    }

}

 

 

public class Hotel {


    private String[] personName={"Jan","Wojtek","Ania","Zosia","Franek"};
    private String[] personSurname={"Kowalski","Kowalczyk","Michalik","Smender","Ptak"};

    private Person[] tab=new Person[100];
    private Person[] rooms=new Person[50];


    private void setPerson() {
        for(int i=0;i<tab.length;i++){
            String name=personName[(int)(Math.random()*4)];
            String surname=personSurname[(int)(Math.random()*5)];
            tab[i]=new Person(name,surname);
        }


    }


    private void assignRoom(){
        setPerson();

        for(int i=0;i<rooms.length;i++){
            rooms[i]=tab[(int)(Math.random()*99)];

        }

    }

    public Person[] getRooms() {
        assignRoom();
        return rooms;
    }







}

 

 

Najlepiej byłoby użyć stosu jako lista dostępnych pokoi, i kolejki jak osoby oczekujące na pokój. Przydziela Ci te 50 pokoi tylko jednej osobie ponieważ wywołując metodę przydziel("Jan","Kowalski"), Twoje parametry są stałe imie="Jan", nazwisko="Kowalski" przez cały czas jak działa pętla. Możesz jako parametry przekazać tablice i z niej losować. Popatrz na rozwiązanie które wysłałem.

Podobne pytania

0 głosów
2 odpowiedzi 567 wizyt
pytanie zadane 18 października 2018 w Java przez blofeld Użytkownik (700 p.)
0 głosów
1 odpowiedź 125 wizyt
0 głosów
1 odpowiedź 94 wizyt
pytanie zadane 9 stycznia 2017 w HTML i CSS przez Daniel Kudyba Obywatel (1,260 p.)

92,539 zapytań

141,382 odpowiedzi

319,480 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...