JAVA数组测试题(酒店管理系统)
- 为某个酒店编写程序:酒店管理系统,模拟订房、退房,打印所有房间状态等功能
该系统的用户是:酒店前台
酒店使用一个二维数组来模拟,“Room[][] rooms;”
酒店中的每一个房间应该是一个java对象:Room
每一个房间Room应该有:房间编号,房间类型,房间是否空闲 - 系统应该对外提供的功能:
可以预定房间,用户输入房间编号,订房
可以退房,用户输入房间编号,退房
可以查看所有房间的状态,用户输入某个指令应该可以查看所有房间状态 - 在代码编写过程中我犯了一个很低级的错误:
经典错误 :因为roomState是一个布尔型,它本身就是true / false,这时如果再roomState = true,此时roomState为false ,false ≠ true,所以该语句结果输出混乱
if (rooms[floor - 1][roomNum - 1].roomState = true){
System.out.println(“该房间已有人入住,请选择其他房间。”);
}else{
rooms[floor - 1][roomNum - 1].roomState = true;
System.out.println(“预定成功!”);
}
public class HotelManager {
public static void main(String[] args) {
Manager manager = new Manager();
manager.showRooms();
manager.reserve(1,2);
manager.reserve(3,3);
manager.checkout(2,3);
manager.checkout(3,3);
manager.showRooms();
}
}
class Manager{
Room[][] rooms;
public Manager() {
rooms = new Room[][]{
{new Room("1-1", "经济房", false), new Room("1-2", "经济房", false), new Room("1-3", "经济房", false) },
{new Room("2-1", "经济房", false), new Room("2-2", "经济房", false), new Room("2-3", "经济房", false)},
{new Room("3-1", "豪华房", false), new Room("3-2", "豪华房", false), new Room("3-3", "豪华房", false)}
};
}
public void reserve(int floor, int roomNum){
if (rooms[floor - 1][roomNum - 1].roomState){
System.out.println("该房间已有人入住,请选择其他房间。");
}else{
rooms[floor - 1][roomNum - 1].roomState = true;
System.out.println("预定成功!");
}
}
public void checkout(int floor, int roomNum){
if (rooms[floor - 1][roomNum - 1].roomState){
System.out.println("该房间无人入住,请重新输入房间编号。");
}else{
rooms[floor - 1][roomNum - 1].roomState = false;
System.out.println("退房成功!");
}
}
public void showRooms(){
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
System.out.print("房间编号:" + rooms[i][j].roomNum + " 房间类型:" + rooms[i][j].roomType + " 房间状态:" + rooms[i][j].roomState + " ");
}
System.out.println();
}
}
}
class Room{
String roomNum;
String roomType;
boolean roomState;
public Room(String roomNum, String roomType, boolean roomState) {
this.roomNum = roomNum;
this.roomType = roomType;
this.roomState = roomState;
}
}
房间编号:1-1 房间类型:经济房 房间状态:false 房间编号:1-2 房间类型:经济房 房间状态:false 房间编号:1-3 房间类型:经济房 房间状态:false
房间编号:2-1 房间类型:经济房 房间状态:false 房间编号:2-2 房间类型:经济房 房间状态:false 房间编号:2-3 房间类型:经济房 房间状态:false
房间编号:3-1 房间类型:豪华房 房间状态:false 房间编号:3-2 房间类型:豪华房 房间状态:false 房间编号:3-3 房间类型:豪华房 房间状态:false
预定成功!
预定成功!
退房成功!
该房间无人入住,请重新输入房间编号。
房间编号:1-1 房间类型:经济房 房间状态:false 房间编号:1-2 房间类型:经济房 房间状态:true 房间编号:1-3 房间类型:经济房 房间状态:false
房间编号:2-1 房间类型:经济房 房间状态:false 房间编号:2-2 房间类型:经济房 房间状态:false 房间编号:2-3 房间类型:经济房 房间状态:false
房间编号:3-1 房间类型:豪华房 房间状态:false 房间编号:3-2 房间类型:豪华房 房间状态:false 房间编号:3-3 房间类型:豪华房 房间状态:true
Process finished with exit code 0