2017-09-23 13 views
-3

私はjavaを初めて使い、ホテルシステムを作っています。私は3つの主要なクラスルーム、フロア、ホテルを持っています。各フロアには部屋番号を除いて同じタイプの部屋があります。だから私は10の部屋を言うだけで、それらを私の5階にすべて与え、それぞれのフロアの各部屋に部屋番号を割り当てます。 部屋番号はフロア番号の最初の桁を持ち、残りの桁は1〜10です。 しかし、ホテル内のすべての客室に5階の番号が割り当てられています。配列の値を設定する際の問題

私のコードの断片です。

class Floor 
{ 
    private int floorNo; 
    private Room[] Rooms; 

    public Floor() 
    { 
     floorNo = 0; 
     Rooms = null; 
    } 

    public Floor(int f, int t) 
    { 
     floorNo = f; 
     Rooms = new Room[t]; 
    } 

    public void createRooms(Room[] R) 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      Rooms[i] = new Room(); 
      Rooms[i] = R[i]; 
     } 
    } 

    public void setRoom(int i, int f, int r) 
    { 
     Rooms[i].setFloorNo(f); 
     Rooms[i].setRoomno(r); 
    } 

} 

public class Main 
{ 
    public static void main(String[] args) 
    { 
     Room[] Rooms = new Room[10]; 
     for (int n = 0; n < 10; n++) 
     { 
      Rooms[n] = new Room(); 
     } 
    } 

    Floor[] Floors = new Floor[5]; 
    for (int n = 0; n < 5; n++) 
    { 
     Floors[n] = new Floor(n + 1, 10); 
     Floors[n].createRooms(Rooms); 

     for (int i = 0; i < 10; i++) 
     { 
      Floors[n].setRoom(i, n + 1, i + 1); 
     } 
     for (int n = 0; n < 5; n++) 
     { 
      Floors[n].print(); 
     } 
    } 
} 
+0

それもコンパイルしていますか?私は 'total 'がどこにでも宣言されているのを見なかった。 – Ravi

+0

そして何が問題なの? – blafasel

+0

まだコンパイルされますか?まったく同じコードを投稿する必要があります。ビットとピースは入れないでください。 – Ravi

答えて

-1

あなたはこのようになめらかに試すことができます。

public class Hotel { 

    private List<Floor> floors = new ArrayList<>(); 

    public boolean addFloor(Floor floor) { 
     return floors.add(floor); 
    } 

    public static void main(String[] args) { 

     int totalFloors = 5; 
     int totalRoomsOnAFloor = 10; 

     final Hotel hotel = new Hotel(); 

     int roomNumber = 0; 
     for (int floorNumber = 0; floorNumber < totalFloors; floorNumber++) { 
      Floor floor = new Floor(floorNumber); 
      for (int floorRoomNumber = 0; floorRoomNumber < totalRoomsOnAFloor; floorRoomNumber++) { 
       Room room = new Room(floor, roomNumber++); 
       floor.addRoom(room); 
       System.out.println("Added " + room.toString()); 
      } 
     } 

    } 

    public static class Floor { 

     private List<Room> rooms = new ArrayList<>(); 
     private int number; 

     public Floor(int number) { 
      this.number = number; 
     } 

     public boolean addRoom(Room room) { 
      return rooms.add(room); 
     } 

     public int getNumber() { 
      return number; 
     } 

     @Override 
     public String toString() { 
      return "Floor{" + 
        "number=" + number + 
        '}'; 
     } 

    } 

    public class Room { 

     private final Floor floor; 
     private final int number; 

     public Room(Floor floor, int number) { 
      this.floor = floor; 
      this.number = number; 
     } 

     public int getNumber() { 
      return number; 
     } 

     public Floor getFloor() { 
      return floor; 
     } 

     @Override 
     public String toString() { 
      return "Room{" + 
        "number=" + number + 
        ", on the floor=" + floor + 
        '}'; 
     } 

    } 

} 

出力:

Added Room{number=0, on the floor=Floor{number=0}} 
Added Room{number=1, on the floor=Floor{number=0}} 
Added Room{number=2, on the floor=Floor{number=0}} 
... 
Added Room{number=47, on the floor=Floor{number=4}} 
Added Room{number=48, on the floor=Floor{number=4}} 
Added Room{number=49, on the floor=Floor{number=4}} 
+0

このコードは質問に答えるかもしれませんが、なぜこのコードが質問に答えるか、および/またはどのようにして文脈を追加するかによって、長期的な価値が向上します。 – Tom

+0

実際には、初期コンテキストはコンパイルされていないので、私は記述された問題に従って私自身の実装を提案しました。 [Tom](https://stackoverflow.com/users/3824919/tom)、私は何よりも優れていると思います) –

+0

このような質疑応答は、https://codereview.stackexchange.com/に適しています。 – astef

0
class Floor 
{ 
    private int floorNo; 
    private Room[] Rooms; 
    public Floor() 
    { 
     floorNo=0; 
     Rooms=null; 

    } 
    public Floor(int f, int t) 
    { 
    floorNo=f;  
    Rooms = new Room[t]; 

    } 
    public void createRooms(Room[] R) 
    { 
     for(int i = 0 ; i < 10; i ++) 
     { 
     Rooms[i] = new Room(); 
     Rooms[i] = R[i]; 
     } 
    } 

    public void setRoom(int i, int f, int r) 
    { 
    Rooms[i].setFloorNo(f); 
    Rooms[i].setRoomno(r,f); 
    } 
} 

class Room 
{ 
    public void setFloorNo(int i) 
    { 
     System.out.println("floor no is "+i); 
    } 
    public void setRoomno(int j,int k) 
    { 
     System.out.println("room no is "+k+""+j); 
    } 

} 

public class main 
{ 
    public static void main(String[] args) 
    { 

    Room [] Rooms= new Room[10]; 
    for(int n = 0; n < 10; n++) 
    { 
     Rooms[n] = new Room(); 
    } 

    Floor [] Floors= new Floor[5]; 
    for(int n=0; n<5; n++) 
    { 
    Floors[n] = new Floor (n+1,10); 
    Floors[n].createRooms(Rooms); 
    } 

    for(int n=0; n < 5; n++) 
    { 
     for(int i=0;i<10;i++) 
     Floors[n].setRoom(i, n+1, i+1); 
    enter code here 
    } 
    } 

} 
関連する問題