JAVA学习笔记--实现一个简单的酒店管理系统

使用java实现了一个简单的酒店管理系统,可实现的功能:
控制台输入房间号、查询房间信息、订房、退房、退出系统提示、错误提示等。

主方法块:

package com.bjpowercode.javase.array;

import java.util.Scanner;

/**
 *      为某酒店编写酒店管理系统,模拟订房、退房、打印所有房间状态等功能
 *      1.该系统的用户是:酒店前台
 *      2.酒店中所有的房间使用一个二维数组类模拟
 *      3.酒店中每一个房间应该是一个java对象:Room
 *      4.每一个房间Room应该有:房间编号、房间类型属性、房间是否空闲
 *      5.系统应该对外提供的功能:
 *          可以预定房间:用户输入房间编号,订房
 *          可以退房:用户输入房间编号,退房
 *          可以查看所有房间的状态:用户输入某个指令可以查看房间状态。
 */
public class HomeWoek02 {
    public static void main(String[] args) {
        //创建酒店对象
        HomeWork02Hotel hotel = new HomeWork02Hotel();
        //hotel.print();

        //给出一个欢迎页面
        System.out.println("欢迎使用酒店管理系统,请认真阅读以下使用说明。");
        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.print("请输入功能编号:");
            int i = s.nextInt();
            if (i == 1){
                //查看房间列表
                hotel.print();
            }else if (i == 2){
                //订房
                System.out.print("请输入订房编号:");
                int roomNo = s.nextInt();//输入房间编号
                hotel.order(roomNo);
            }else if (i == 3){
                //退房
                System.out.print("请输入退房编号:");
                int roomNo = s.nextInt();//输入房间编号
                hotel.exit(roomNo);
            }else if (i == 0){
                //退出系统
                System.out.println("再见,欢迎下次再来!");
                return;
            }else {
                //出错
                System.out.println("输入功能编号有误,请重新输入!");
            }
        }

    }
}

创建酒店对象:

package com.bjpowercode.javase.array;

/**
 * 酒店对象,酒店中有二维数组,二维数组模拟大厦
 */
public class HomeWork02Hotel {
    //二维数组模拟大厦房间
    private HomeWork02Room[][] room;

    //盖楼通过构造方法来盖楼
    public HomeWork02Hotel() {
        //一共有几次,每层的房间类型是什么,每个房间编号是什么
        //一共三层,一层单人间,二层标准间,三层总统套
        room = new HomeWork02Room[3][10];//三行十列,三层楼,每层十个房间。
        //创建30个room对象放到数组当中
        //使用二维数组遍历
        for (int i = 0; i < room.length; i++) {
            for (int j = 0; j < room[i].length; j++) {
                if (i == 0) {
                    room[i][j] = new HomeWork02Room((i + 1) * 100 + j + 1, "单人间", true);
                } else if (i == 1) {
                    room[i][j] = new HomeWork02Room((i + 1) * 100 + j + 1, "标准间", true);
                } else if (i == 2){
                    room[i][j] = new HomeWork02Room((i + 1) * 100 + j + 1, "总统套", true);
                }

            }
        }
    }

    //在酒店对象上提供一个打印房间列表的方法
    public void print(){
        //打印所有房间状态,就是遍历二维数组
        for (int i = 0; i < room.length; i++) {
            for (int j = 0; j < room[i].length; j++) {
                HomeWork02Room room2 = room[i][j];
                System.out.print(room2);
            }
            //换行
            System.out.println();
        }
    }

    //订房方法
    public void order(int RoomNo){
        //订房最主要的是将房间对象的status修改为false
        HomeWork02Room room3 = room[RoomNo / 100 - 1][RoomNo % 100 -1];
        room3.setRoomStatus(false);
        System.out.println(RoomNo + "已定房!");
    }

    //退房方法
    public void exit(int RoomNo){
        //退房就是将房间对象的status修改为true
        HomeWork02Room room4 = room[RoomNo / 100 - 1][RoomNo % 100 - 1];
        room4.setRoomStatus(true);
        System.out.println(RoomNo + "已退房!");
    }
}

创建房间对象:

package com.bjpowercode.javase.array;

import java.util.Objects;

/**
 * 酒店房间
 */
public class HomeWork02Room {

    //房间编号
    private int roomNo;

    //房间类型:标准间、单人间、总统套
    private String roomType;

    //房间状态:true表示空闲可以被预定。
    //        false表示已经被预定过了
    private boolean roomStatus;

    //构造无参方法
    public HomeWork02Room() {
    }

    //构造有参方法
    public HomeWork02Room(int roomNo, String roomType, boolean roomStatus) {
        this.roomNo = roomNo;
        this.roomType = roomType;
        this.roomStatus = roomStatus;
    }

    //set and get方法
    public int getRoomNo() {
        return roomNo;
    }

    public void setRoomNo(int roomNo) {
        this.roomNo = roomNo;
    }

    public String getRoomType() {
        return roomType;
    }

    public void setRoomType(String roomType) {
        this.roomType = roomType;
    }

    public boolean isRoomStatus() {
        return roomStatus;
    }

    public void setRoomStatus(boolean roomStatus) {
        this.roomStatus = roomStatus;
    }

    //重写方法
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        HomeWork02Room room = (HomeWork02Room) o;
        return roomNo == room.roomNo &&
                roomStatus == room.roomStatus &&
                roomType.equals(room.roomType);
    }

    @Override
    public int hashCode() {
        return Objects.hash(roomNo, roomType, roomStatus);
    }

    @Override
    public String toString() {
        return "{" +
                "房间号=" + roomNo +
                ", 房间类型=" + roomType +
                ", 房间状态=" + (roomStatus ? "空闲" : "占用") +
                "}";
    }

    //测试程序
    /**
        public static void main(String[] args){
        HomeWork02Room room = new HomeWork02Room(101,"总统套",true);
        System.out.println(room.toString());
        HomeWork02Room room2 = new HomeWork02Room(101,"总统套",false);
        System.out.println(room2);
    }
     */

}

运行结果展示:
运行结果与测试

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值