JAVA数组测试题(酒店管理系统)

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){

        //经典错误 :因为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("预定成功!");
//        }
        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;      //还可以用数组下标表示楼房编号  有3楼   每楼3间房
    String roomType;     //豪华房   经济房
    boolean roomState;   //true表示有人  false表示空闲

    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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值