Java語言實現(xiàn)簡單的酒店前臺管理小功能(實例代碼)
筆者是一名剛上路的小萌新,有什么問題希望大家可以指正!
以下為題目:
為某個酒店編寫程序:酒店管理系統(tǒng),模擬訂房、退房、打印所有房間狀態(tài)等功能。
1、該系統(tǒng)的用戶是:酒店前臺。
2、酒店使用一個二維數組來模擬?!癛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; //利用二維數組創(chuàng)建酒店房間數組
/*
利用構造方法來進行酒店房間布置操作
利用數組遍歷,創(chuàng)建酒店房間對象放進酒店房間數組里
其中,
一層為單人間,二層為雙人間,三層為總統(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】查看房間列表?!?】訂房?!?】退房?!?】退出酒店管理系統(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-06
springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能
這篇文章主要給大家介紹了關于springboot+vue+elementsUI實現(xiàn)分角色注冊登錄界面功能的相關資料,Spring?Boot和Vue.js是兩個非常流行的開源框架,可以用來構建Web應用程序,需要的朋友可以參考下2023-07-07
spring boot搭建文件服務器解決同時上傳多個圖片和下載的問題
這篇文章主要介紹了spring boot搭建文件服務器解決同時上傳多個圖片和下載的問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11

