package Test02;
import java.util.Scanner;
public class Work {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String state = "空闲";
Room room01 = new Room(1,"标准间",state);
Room room02 = new Room(2,"标准间",state);
Room room03 = new Room(3,"豪华间","占有");
Room room04 = new Room(4,"豪华间",state);
Room[][] rooms = {
{room01,room02},
{room03,room04}
};
Room[][] rooms1 = new Room[2][2];
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
System.out.print("房间号: " + rooms[i][j].age + " 房间属性:" + rooms[i][j].attribute + " 房间状态:" + rooms[i][j].state + " ");
}
System.out.println();
}
System.out.println("您选择退房还是订房");
String s1 = s.next();
if (s1.equals("订房")){
System.out.println("请输入您需要的房间号");
System.out.println("一楼为标准间,二楼为豪华间");
System.out.println("每一层只有2间房间");
System.out.println("请输入几层楼");
int floor = s.nextInt();
if (floor == 1 || floor == 2) {
System.out.println("请输入第几间房间");
int room = s.nextInt();
if (room == 1 || room == 2) {
// selectRoom(floor,room,rooms);
if ((rooms[floor-1][room-1].state).equals("空闲")) {
System.arraycopy(selectRoom(floor, room, rooms), 0, rooms1, 0, selectRoom(floor, room, rooms).length);
System.out.println("是否查看当前酒店住房信息");
String s2 = s.next();
if (s2.equals("是")) {
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
System.out.print("房间号: " + rooms[i][j].age + " 房间属性:" + rooms[i][j].attribute + " 房间状态:" + rooms[i][j].state + " ");
}
System.out.println();
}
} else
System.out.println("欢迎您的入住");
}else{
System.out.println("对不起您所选的房间已被占");
}
}
else{
System.out.println("对不起不存在这个房间");
}
}
else
System.out.println("对不起不存在这样的楼层");
}
else if (s1.equals("退房")){
System.out.println("请输入您要退的房间");
int floor = s.nextInt();
if (floor == 1 || floor == 2) {
System.out.println("请输入要退的房间号");
int room = s.nextInt();
if (room == 1 || room == 2){
if (rooms[floor-1][room-1].state.equals("空闲")) {
// leaveRoom(floor,room,rooms);
System.arraycopy(leaveRoom(floor, room, rooms), 0, rooms1, 0, leaveRoom(floor, room, rooms).length);
System.out.println("是否查看当前酒店住房信息");
String s2 = s.next();
if (s2.equals("是")) {
for (int i = 0; i < rooms1.length; i++) {
for (int j = 0; j < rooms1[i].length; j++) {
System.out.print("房间号: " + rooms[i][j].age + " 房间属性:" + rooms[i][j].attribute + " 房间状态:" + rooms[i][j].state + " ");
}
System.out.println();
}
}
else
System.out.println("欢迎您的光临");
}else
System.out.println("对不起您所选的房间是一间空房间");
}
else
System.out.println("对不起不存在这个房间");
}
else
System.out.println("对不起不存在这样的楼层");
}
}
public static Room[][] selectRoom(int floor, int room, Room[][] rooms){
if((rooms[floor-1][room-1].state).equals("空闲")){
rooms[floor-1][room-1].state = "占有";
System.out.println("非常感谢您,选择本酒店,以为您准备好您所需要的房间");
}
return rooms;
}
public static Room[][] leaveRoom(int floor,int room,Room[][] rooms) {
if ((rooms[floor - 1][room - 1].state).equals("占有")) {
rooms[floor - 1][room - 1].state = "空闲";
System.out.println("欢迎您的光临");
}
return rooms;
}
}
class Room{
int age;
String attribute;
String state;
public Room(int age, String attribute, String state) {
this.age = age;
this.attribute = attribute;
this.state = state;
}
}
public static Room[][] selectRoom(int floor, int room, Room[][] rooms){
if((rooms[floor-1][room-1].state).equals("空闲")){
rooms[floor-1][room-1].state = "占有";
System.out.println("非常感谢您,选择本酒店,以为您准备好您所需要的房间");
}
return rooms;
public static Room[][] leaveRoom(int floor,int room,Room[][] rooms) {
if ((rooms[floor - 1][room - 1].state).equals("占有")) {
rooms[floor - 1][room - 1].state = "空闲";
System.out.println("欢迎您的光临");
}
return rooms;
该两个方法类在运行时,运行到return后出现了递归问题.请求帮忙解决.



