创建一个酒店管理系统,模拟退房,订房,打印所有房间信息
1.系统用户:酒店前台
2.酒店使用一个二维数组来模拟
3.酒店中的每一个房间作为一个java对象
4.每一个房间应该有:房间号、房间类型、是否空闲
5.系统对外提供的功能:订房间、退房间、查看所有房间状态
创建Room类
public class Room {
/*
101 102 103 ...
201 202 203 ...
...
*/
private int num;//房间号
private String size;//房间款式
private boolean use;//是否有空房
public Room() {
}
public Room(int num, String size, boolean use) {
this.num = num;
this.size = size;
this.use = use;
}
public int getNum() {
return num;
}
//setter and getter
public void setNum(int num) {
this.num = num;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public boolean getUse() {
return use;
}
public void setUse(boolean use) {
this.use = use;
}
//重写equals()、toString()方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Room room = (Room) o;
return num == room.num;
}
@Override
public String toString() {
return "房间号:" + num+
",类型:" + size+
(use?",占用":",空闲");
}
}
创建Hotel类
其中有:订房、退房、打印所有房间状态 三个方法
public class Hotel {
//模拟酒店是个二维数组表示各个房间
//开辟一个二维数组
private Room[][] rooms;
public Hotel() {
//三层 每层10个房间
//设定二维数组的容量
rooms=new Room[3][10];
//创建3*10个房间
//为每个元素new一个room对象
for (int i = 0; i < rooms.length; i++) {//i是下标(i+1是楼层)
for (int j = 0; j < rooms[i].length; j++) {//j是下标 (j+1是每层房间号)
if(i==0)
rooms[i][j]=new Room((i+1)*100+(j+1),"单人间",false);
else if(i==1)
rooms[i][j]=new Room((i+1)*100+(j+1),"标准间",false);
else if(i==2)
rooms[i][j]=new Room((i+1)*100+(j+1),"豪华间",false);
}
}
}
public Room[][] getRooms() {
return rooms;
}
public void setRooms(Room[][] rooms) {
this.rooms = rooms;
}
//提供一个 打印房间列表的方法
public void print(){
for (int i = 0; i < rooms.length; i++) {//i是下标(i+1是楼层)
for (int j = 0; j < rooms[i].length; j++) {
Room room=rooms[i][j];
System.out.println(room.toString());
}
System.out.println();//每打印完一行后换行
}
}
//提供一个 订房方法
//主要是将房间的对象的use改为true(已入住)
public void order(int roomNum){
//假设房间为207---->下表为room[1][6]
Room room=rooms[roomNum/100-1][roomNum%100-1];
room.setUse(true);//改为true显示占用
}
//提供一个 退房方法
public void exit(int roomNum){
//假设房间为207---->下表为room[1][6]
Room room=rooms[roomNum/100-1][roomNum%100-1];
room.setUse(false);//改为false显示空闲
}
}
测试类
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Hotel hotel=new Hotel();
System.out.println("欢迎使用酒店管理系统");
System.out.println("[1]表示查看房间列表。");
System.out.println("[2]表示订房。");
System.out.println("[3]表示退房");
System.out.println("[0]表示退出系统");
Scanner s=new Scanner(System.in);
while (true) {
System.out.println("请输入对应功能编号:");
int i = s.nextInt();
if (i == 1) {
//查看房间列表
hotel.print();
System.out.println("请选择需要的服务:");
System.out.println("[2]表示订房。");
System.out.println("[3]表示退房");
System.out.println("[0]表示退出系统");
} else if (i == 2) {
//订房
System.out.println("请输入订房编号:");
int roomNum = s.nextInt();
hotel.order(roomNum);
System.out.println("已订房:" + roomNum);
} else if (i == 3) {
//退房
System.out.println("请输入订房编号:");
int roomNum = s.nextInt();
hotel.exit(roomNum);
System.out.println("已退房:" + roomNum);
} else if (i == 0) {
System.out.println("谢谢使用");
return;
} else {
System.out.println("输入有误,请重新输入");
}
}
}
}
欢迎使用酒店管理系统
[1]表示查看房间列表。
[2]表示订房。
[3]表示退房
[0]表示退出系统
请输入对应功能编号:
1
房间号:101,类型:单人间,空闲
房间号:102,类型:单人间,空闲
房间号:103,类型:单人间,空闲
房间号:104,类型:单人间,空闲
房间号:105,类型:单人间,空闲
房间号:106,类型:单人间,空闲
房间号:107,类型:单人间,空闲
房间号:108,类型:单人间,空闲
房间号:109,类型:单人间,空闲
房间号:110,类型:单人间,空闲
房间号:201,类型:标准间,空闲
房间号:202,类型:标准间,空闲
房间号:203,类型:标准间,空闲
房间号:204,类型:标准间,空闲
房间号:205,类型:标准间,空闲
房间号:206,类型:标准间,空闲
房间号:207,类型:标准间,空闲
房间号:208,类型:标准间,空闲
房间号:209,类型:标准间,空闲
房间号:210,类型:标准间,空闲
房间号:301,类型:豪华间,空闲
房间号:302,类型:豪华间,空闲
房间号:303,类型:豪华间,空闲
房间号:304,类型:豪华间,空闲
房间号:305,类型:豪华间,空闲
房间号:306,类型:豪华间,空闲
房间号:307,类型:豪华间,空闲
房间号:308,类型:豪华间,空闲
房间号:309,类型:豪华间,空闲
房间号:310,类型:豪华间,空闲
请选择需要的服务:
[2]表示订房。
[3]表示退房
[0]表示退出系统
请输入对应功能编号:
2
请输入订房编号:
101
已订房:101
请输入对应功能编号:
1
房间号:101,类型:单人间,占用
房间号:102,类型:单人间,空闲
房间号:103,类型:单人间,空闲
房间号:104,类型:单人间,空闲
房间号:105,类型:单人间,空闲
房间号:106,类型:单人间,空闲
房间号:107,类型:单人间,空闲
房间号:108,类型:单人间,空闲
房间号:109,类型:单人间,空闲
房间号:110,类型:单人间,空闲
房间号:201,类型:标准间,空闲
房间号:202,类型:标准间,空闲
房间号:203,类型:标准间,空闲
房间号:204,类型:标准间,空闲
房间号:205,类型:标准间,空闲
房间号:206,类型:标准间,空闲
房间号:207,类型:标准间,空闲
房间号:208,类型:标准间,空闲
房间号:209,类型:标准间,空闲
房间号:210,类型:标准间,空闲
房间号:301,类型:豪华间,空闲
房间号:302,类型:豪华间,空闲
房间号:303,类型:豪华间,空闲
房间号:304,类型:豪华间,空闲
房间号:305,类型:豪华间,空闲
房间号:306,类型:豪华间,空闲
房间号:307,类型:豪华间,空闲
房间号:308,类型:豪华间,空闲
房间号:309,类型:豪华间,空闲
房间号:310,类型:豪华间,空闲
请选择需要的服务:
[2]表示订房。
[3]表示退房
[0]表示退出系统
请输入对应功能编号:
0
谢谢使用