Java語言實現(xiàn)簡單的酒店前臺管理小功能(實例代碼)
筆者是一名剛上路的小萌新,有什么問題希望大家可以指正!
以下為題目:
為某個酒店編寫程序:酒店管理系統(tǒng),模擬訂房、退房、打印所有房間狀態(tài)等功能。
1、該系統(tǒng)的用戶是:酒店前臺。
2、酒店使用一個二維數(shù)組來模擬?!癛oom[][] rooms;”
3、酒店中的每一個房間應該是一個java對象:Room
4、每一個房間Room應該有:房間編號、房間類型、房間是否空閑.
5、系統(tǒng)應該對外提供的功能:
可以預定房間:用戶輸入房間編號,訂房。
可以退房:用戶輸入房間編號,退房。
可以查看所有房間的狀態(tài):用戶輸入某個指令應該可以查看所有房間狀態(tài)。
以下為該功能的源碼:
Room類(酒店房間類)
package com.kukudeyu.hotelsystem; public class Room { private int id; //房間編號 private String type; //房間類型 private boolean status; //房間狀態(tài):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方法 * 打印出房間詳情信息,其中包括房間編號,類型,狀態(tài) * */ @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; //利用二維數(shù)組創(chuàng)建酒店房間數(shù)組 /* 利用構造方法來進行酒店房間布置操作 利用數(shù)組遍歷,創(chuàng)建酒店房間對象放進酒店房間數(shù)組里 其中, 一層為單人間,二層為雙人間,三層為總統(tǒng)套房 */ 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, "總統(tǒng)套房", true); } } } } /* print方法提供查看房間列表功能,可以查詢所有房間的當前狀態(tài) 利用循環(huán)將所有房間對象均調用Room類的toString方法進行房間狀態(tài)查詢 */ 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方法,查看單個房間的狀態(tài) } System.out.println(); } } /* 提供booking方法,用于修改房間狀態(tài) 即訂房 調用getStatus方法查詢房間狀態(tài) 如果為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方法對房間狀態(tài)進行修改 System.out.println("訂房成功!"); }else{ System.out.println("房間已占用,請換另外一間房!"); } } /* 提供cancelBooking方法,用于修改房間狀態(tài) 即退房 對getStatus方法的返回值使用邏輯非,查詢房間狀態(tài) 如果為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類(酒店系統(tǒng)類)
package com.kukudeyu.hotelsystem; import java.util.Scanner; public class HotelSystem { public static void main(String[] args) { Hotel hotel = new Hotel(); //創(chuàng)建一個酒店對象 System.out.println("----------------------------------------------------------------------------"); System.out.println("歡迎使用酒店管理系統(tǒng),請認真閱讀以下使用說明!"); System.out.println("功能編號:【1】查看房間列表?!?】訂房。【3】退房?!?】退出酒店管理系統(tǒng)。"); 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語言實現(xiàn)簡單的酒店前臺管理小功能(實例代碼)的文章就介紹到這了,更多相關java酒店前臺管理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于logback 實現(xiàn)springboot超級詳細的日志配置
java web 下有好幾種日志框架,比如:logback,log4j,log4j2(slj4f 并不是一種日志框架,它相當于定義了規(guī)范,實現(xiàn)了這個規(guī)范的日志框架就能夠用 slj4f 調用)。這篇文章主要介紹了基于logback springboot超級詳細的日志配置,需要的朋友可以參考下2019-06-06MySQL數(shù)據(jù)文件直接通過拷貝備份與恢復的操作方法
這篇文章主要介紹了MySQL數(shù)據(jù)文件直接通過拷貝備份與恢復的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能
這篇文章主要給大家介紹了關于springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能的相關資料,Spring?Boot和Vue.js是兩個非常流行的開源框架,可以用來構建Web應用程序,需要的朋友可以參考下2023-07-07spring boot搭建文件服務器解決同時上傳多個圖片和下載的問題
這篇文章主要介紹了spring boot搭建文件服務器解決同時上傳多個圖片和下載的問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11