Java語言實現簡單的酒店前臺管理小功能(實例代碼)
筆者是一名剛上路的小萌新,有什麼問題希望大傢可以指正!
以下為題目:
為某個酒店編寫程序:酒店管理系統,模擬訂房、退房、打印所有房間狀態等功能。
1、該系統的用戶是:酒店前臺。
2、酒店使用一個二維數組來模擬。“Room[][] rooms;”
3、酒店中的每一個房間應該是一個java對象:Room
4、每一個房間Room應該有:房間編號、房間類型、房間是否空閑.
5、系統應該對外提供的功能:
可以預定房間:用戶輸入房間編號,訂房。
可以退房:用戶輸入房間編號,退房。
可以查看所有房間的狀態:用戶輸入某個指令應該可以查看所有房間狀態。
以下為該功能的源碼:
Room類(酒店房間類)
package com.kukudeyu.hotelsystem; public class Room { private int id; //房間編號 private String type; //房間類型 private boolean status; //房間狀態:true表示空閑,false表示占用 public Room() { } public Room(int id, String type, boolean status) { this.id = id; this.type = type; this.status = status; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getType() { return type; } public void setType(String type) { this.type = type; } public boolean getStatus() { return status; } public void setStatus(boolean status) { this.status = status; } /* * 重寫toString方法 * 打印出房間詳情信息,其中包括房間編號,類型,狀態 * */ @Override public String toString() { return "[" + this.id + "," + this.type + "," + (this.status ? "空閑":"占用" ) + "]"; } // 按照慣例,重寫equals方法,作用為判斷兩個房間是否為一個房間 @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof Room)) return false; Room room = (Room)o; if(this.id == room.id){ return true; } return false; } }
Hotel類(酒店類)
package com.kukudeyu.hotelsystem; public class Hotel { private Room[][] rooms; //利用二維數組創建酒店房間數組 /* 利用構造方法來進行酒店房間佈置操作 利用數組遍歷,創建酒店房間對象放進酒店房間數組裡 其中, 一層為單人間,二層為雙人間,三層為總統套房 */ public Hotel() { rooms = new Room[3][10]; 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 if (i == 2) { rooms[i][j] = new Room((i + 1) * 100 + j + 1, "總統套房", true); } } } } /* print方法提供查看房間列表功能,可以查詢所有房間的當前狀態 利用循環將所有房間對象均調用Room類的toString方法進行房間狀態查詢 */ public void print(){ for(int i = 0 ; i< rooms.length ; i++){ for(int j = 0 ; j<rooms[i].length ; j++){ System.out.print(rooms[i][j].toString()); //調用Room類重寫的toString方法,查看單個房間的狀態 } System.out.println(); } } /* 提供booking方法,用於修改房間狀態 即訂房 調用getStatus方法查詢房間狀態 如果為true為空閑,提示訂房成功 如果為false為占用,提示房間占用 */ public void booking(int id){ if(rooms[id / 100 -1][id % 100 -1].getStatus()){ rooms[id / 100 - 1][id % 100 -1].setStatus(false); //調用setStatus方法對房間狀態進行修改 System.out.println("訂房成功!"); }else{ System.out.println("房間已占用,請換另外一間房!"); } } /* 提供cancelBooking方法,用於修改房間狀態 即退房 對getStatus方法的返回值使用邏輯非,查詢房間狀態 如果為false為占用, */ public void cancelBooking(int id){ if( rooms[id / 100 -1][id % 100 -1].getStatus() ){ System.out.println("房間空閑,無需退房!"); }else{ rooms[id / 100 - 1][id % 100 -1].setStatus(true); System.out.println("退房成功!"); } } }
HotelSystem類(酒店系統類)
package com.kukudeyu.hotelsystem; import java.util.Scanner; public class HotelSystem { public static void main(String[] args) { Hotel hotel = new Hotel(); //創建一個酒店對象 System.out.println("----------------------------------------------------------------------------"); System.out.println("歡迎使用酒店管理系統,請認真閱讀以下使用說明!"); System.out.println("功能編號:【1】查看房間列表。【2】訂房。【3】退房。【4】退出酒店管理系統。"); System.out.println("----------------------------------------------------------------------------"); 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 roomid = s.nextInt(); hotel.booking(roomid); //調用booking方法進行訂房 }else if(i == 3){ System.out.print("請輸入要退訂的房間編號:"); int roomid = s.nextInt(); hotel.cancelBooking(roomid); //調用cancelBooking方法進行退房 }else if(i == 4){ return; } } } }
到此這篇關於Java語言實現簡單的酒店前臺管理小功能(實例代碼)的文章就介紹到這瞭,更多相關java酒店前臺管理內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!