【日常練習題】二維數組模擬簡單酒店管理系統—java
酒店管理系統:
爲某酒店編寫程序:酒店管理系統,模擬訂房、退房、打印所有房間狀態等功能。
1、該系統的用戶是:酒店前臺
2、酒店使用一個二維數組來模擬。“Room[][] rooms;”
3、酒店中得每個房間應該是一個java對象:Room
4、每個房間Room應該有:房間號、房間類型、房間是否空閒
5、系統應該對外提供得功能
預定房間:用戶輸入房間號,訂房
退房:用戶輸入房間號,退房
查看所以房間狀態:用戶輸入某個指令可以查看所以房間狀態。
以下實現代碼功能缺陷:已入住房間仍能被訂房
Hotel類
public class Hotel {
private Room[][] rooms;
//用二維數組模擬一個三層樓,每層10個房間的酒店。
public Hotel() {
rooms = new Room[3][10];
//用for循環遍歷二維數組,創建Room對象。
for (int i = 0;i<rooms.length;i++){ //i+1代表酒店樓層數
for (int j=0;j<rooms[i].length;j++){ //j+1代表房間號
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);
}
}
}
}
//查看當前所有房間狀態
public void show(){
for (int i = 0;i<rooms.length;i++){
for (int j =0;j<rooms[i].length;j++){
System.out.print(rooms[i][j]);
}
System.out.println();
}
}
//辦理訂房
public void liveIn(int rNum){
Room room = rooms[rNum/100-1][rNum%100-1];
room.setrCon(false);
}
//辦理退房
public void out(int rNum){
Room room = rooms[rNum/100-1][rNum%100-1];
room.setrCon(true);
}
}
Room類
public class Room{
private int rNum; //房間號
private String rSyt; //房間類型
private boolean rCon; //房間狀態(空閒or佔用)
public Room(int rNum, String rSyt, boolean rCon) {
this.rNum = rNum;
this.rSyt = rSyt;
this.rCon = rCon;
}
//setter getter方法
public int getrNum() {
return rNum;
}
public void setrNum(int rNum) {
this.rNum = rNum;
}
public String getrSyt() {
return rSyt;
}
public void setrSyt(String rSyt) {
this.rSyt = rSyt;
}
public boolean getrCon() {
return rCon;
}
public void setrCon(boolean rCon) {
this.rCon = rCon;
}
@Override
public String toString() {
return "["+rNum+","+rSyt+","+(rCon ? "空閒":"佔用"+"]");
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Room room = (Room) o;
return rNum == room.rNum &&
rCon == room.rCon &&
Objects.equals(rSyt, room.rSyt);
}
}
酒店管理系統測試類
public class HotelSystem{
public static void main(String[] args) {
Scanner src = new Scanner(System.in);
Hotel adim = new Hotel();
System.out.println("歡迎使用酒店管理系統");
while (true){
System.out.println("功能選項爲:[1]辦理入住 [2]辦理退房 [3]查看當前所有房間狀態 [4]退出本系統");
System.out.print("請輸入功能選項:");
int a = src.nextInt();
if (a==1){
System.out.print("請輸入房間號:");
int a1 = src.nextInt();
adim.liveIn(a1);
}else if (a==2){
System.out.print("請輸入房間號:");
int a2 = src.nextInt();
adim.out(a2);
}else if (a==3){
adim.show();
}else {
return; //跳出循環,退出系統
}
}
}
}