设计一个酒店前台客房管理系统包括酒店客房状态的查询,用户的入住、退房等功能。系统命令如下:
search all:查询并输出酒店所有客房的状态。
search客房编号:查询该客房状态。
in 客房编号 用户名:用户入住,例如,"in 0306 Crace"表示姓名为Grace的客人入住0306客房。
out 客房编号:该客房退房,例如,"out 0306"表示0306客房退房。
quit:退出程序。
入住时需要检测输入的客房编号是否正确,检测该客房是否已有客人。
按客房编号进行查询的命令和退房命令同样需要检测输入的客房编号是否正确,检测该客房是否已有客人。
(1)Hotel.java
package example4_7;
import java.util.Scanner;
import example4_7.Room;
//Hotel实现酒店本身业务操作:查询、入住和退房
public class Hotel {
//定义常量
Scanner scn=new Scanner(System.in);
final int HEIGHT=6;
final int WIDTH=12;
private String hotelName;//酒店名
private Room[][] rooms = new Room[HEIGHT][WIDTH];//二维数组的行标表示客房所在楼层,列标代表客房在该楼层的编号;
public Hotel() {
}//定义无参构造方法
public Hotel(String hotelName) {
//定义有参构造方法
//创建数组对象
this.hotelName=hotelName;
for(int i=0;i<HEIGHT;i++) {
for(int j=0;j<WIDTH;j++) {
//创建并初始化每一个Room对象
rooms[i][j]=new Room();
rooms[i][j].setId(i+1,j+1);
}
}
}
public void setHotelName(String hotelName) {
this.hotelName=hotelName;
}
public String getHotelName() {
return hotelName;
}
//1.查询所有客房
public void searchAll() {
for(int i=0;i<rooms.length;i++) {
//输出客房编号
for(int j=0;j<rooms[i].length;j++) {
System.out.print(rooms[i][j].getId()+"\t");
}
System.out.println();
//输出客房状态
for(int j=0;j<rooms[i]