JavaSE實戰之酒店訂房系統的實現

酒店管理系統

為某個酒店編寫程序:酒店管理系統,模擬訂房,退房,打印所有房間狀態等功能

1、該系統的用戶是酒店的前臺

2、酒店當中所有的房間使用一個二維數組來模擬

3、酒店當中的每一個房間應該是一個java對象:Room

4、每一個房間Room應該有:房間編號,房間類型屬性,房間是否空閑

Hotel.java

/**
 * Created with IntelliJ IDEA.
 * Description:酒店
 * User: Lenovo
 * Date: 2022-07-02
 * Time: 20:10
 */
public class Hotel {
    /**
     * 二維數組,模擬大廈所有的房間
     * @param args
     */
    private Room[][] rooms;
    public Hotel(){
        //通過構造方法來蓋樓層
        rooms=new Room[3][10];//動態初始化,裡面每個元素都還是null
        //創建30個room對象,放到數組當中
        for(int i=0;i<rooms.length;i++)
        {
            for(int j=0;j<rooms[i].length;j++){
                if(i==0){
                rooms[i][j]=new Room((i+1)*100+(j+1),"單人間",true);
            }else if(i==1){
                    rooms[i][j]=new Room((i+1)*100+(j+1),"雙人間",true);
                }else{
                    rooms[i][j]=new Room((i+1)*100+(j+1),"總統套房",true);
                }
          }
    }

    }

    public void print(){
        for(int i=0;i<rooms.length;i++){
            for(int j=0;j<rooms.length;j++){
                Room room=rooms[i][j];
                System.out.println(room);
            }

        }
    }

    /**
     * 訂房方法
     * @param roomNo 調用此方法需要傳遞一個房間編號過來
     * 這個房間編號是前臺小姐姐輸入的
     */
    public void order(int roomNo){
        //訂房主要是將房間對象的status修改為false
        Room room=rooms[roomNo/100-1][roomNo%100-1];
        //把房間狀態修改為占用
        room.setStatus(false);
        System.out.println(roomNo+"訂房成功!");
    }

    /**
     * 退房
     * @param roomNo
     */
    public void exit(int roomNo){
        Room room=rooms[roomNo/100-1][roomNo%100-1];
        room.setStatus(true);
        System.out.println(roomNo+"已經退房!");
    }
}

HotelSystem.java

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2022-07-03
 * Time: 18:01
 */
public class HotelSystem {
    public static void main(String[] args) {

        System.out.println("歡迎使用酒店管理系統,請認真閱讀以下說明:");
        System.out.println("請輸入對應的功能編號:【1】查看房間列表。【2】訂房。【3】退房。【0】退出系統");
        Scanner s=new Scanner(System.in);

        Hotel hotel=new Hotel();
        while(true){
            System.out.print("請輸入功能編號:");
            int i=s.nextInt();

        if(i==1){
            //查看房間列表
            hotel.print();

        }else if(i==2){
            //訂房
            System.out.print("請輸入要訂房的房間號碼:");
            int numNo=s.nextInt();
            hotel.order(numNo);
        }else if(i==3){
            //退房
            System.out.print("請輸入要退房的房間號碼:");
            int numNo=s.nextInt();
            hotel.exit(numNo);
        }else if(i==0){
            //退出系統
            System.out.print("已退出系統");
            return;
        }else {
            System.out.print("輸入錯誤,請重新輸入:");
        }

       }
    }
}

Room.java

/**
 * Created with IntelliJ IDEA.
 * Description:酒店的房間
 * User: Lenovo
 * Date: 2022-07-02
 * Time: 20:48
 */

import java.util.Objects;
import java.util.Scanner;

/**
 * 酒店的房間
 */
public class Room {
    /**
     * 房間編號:int no
     * 1樓:101  102  103...
     * 2樓:201  202  203...
     * 3樓:301  302  303...
     * ...
     */
    private int no;
    /**
     * 房間類型:標準間,單人間,總統套房
     * String type
     */
    private String type;
    /**
     * 房間狀態
     * true:表示空閑,房間可以被預定
     * false:表示占用,房間不能被預定
     * boolean status
     */
    private boolean status;
    //構造方法
    public Room(int no, String type, boolean status) {
        this.no = no;
        this.type = type;
        this.status = status;
    }

    public Room() {
    }
    //set和get方法
    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    //equals方法重寫

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Room room = (Room) o;
        return no == room.no && status == room.status && Objects.equals(type, room.type);
    }

    @Override
    public int hashCode() {
        return Objects.hash(no, type, status);
    }


    //toString方法重寫


    @Override
    public String toString() {
        return "[" + "房間編號:" + no + ", 房間類型:'" + type  + ", 房間狀態:" + status + ']';
    }


}

以上就是JavaSE實戰之酒店訂房系統的實現的詳細內容,更多關於JavaSE 酒店訂房系統的資料請關註WalkonNet其它相關文章!

推薦閱讀: