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

