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!

推薦閱讀: