二维数组模拟实现酒店管理系统-java

业务分析

1、需要一个房间类,包含房间的属性,比如房间编号、房间类型、是否占用。

2、需要一个旅馆类,旅馆有房间,提供的方法需要有 预订房间、打印房间信息、初始化房间、退房。

3、测试类,测试预订房间。

package javasimple;

import java.util.Scanner;

public class HotelTest {
    public static void main(String[] args) {
        Hotel h = new Hotel();
        h.print();
        while(true) {
            System.out.println("请输入房间编号:");
            Scanner s = new Scanner(System.in);
            String no = s.next();
            h.order(no);
            h.print();
        }
    }
}
/**
 * 旅馆类
 * @author haokui
 *
 */
class Hotel {
    private Room [][]rooms;//旅馆有房间
    public Hotel(){
        rooms = new Room[5][10];
        //初始化旅馆时,展示房间
        for (int i = 0; i < rooms.length; i++) {
            for (int j = 0; j < rooms[i].length; j++) {
                if (i == 0 || i== 1) {
                    //1、2层为单人间
                    rooms[i][j] = new Room((i+1)*100 + j + 1 + "","单人间",false);
                }
                if (i == 2 || i== 3) {
                    //3、4层为双人间
                    rooms[i][j] = new Room((i+1)*100 + j + 1 + "","双人间",false);
                }
                if (i == 4) {
                    //5层为豪华间
                    rooms[i][j] = new Room((i+1)*100 + j + 1 + "","豪华间",false);
                }
            }
        }
    }
    /**
     * 打印房间信息
     */
    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());
            }
            System.out.println();
        }
    }
    /**
     * 预订房间
     * @param no - 房间号
     */
    public void order(String no){
        for (int i = 0; i < rooms.length; i++) {
            for (int j = 0; j < rooms[i].length; j++) {
                if (rooms[i][j].getNo().equals(no)) {
                    //找到了要订的房间,把空闲改为占用
                    rooms[i][j].setIsuse(true);
                }
            }
        }
    }
    /**
     * 退房
     * @param no - 房间号
     */
    public void cancelorder(String no){
        for (int i = 0; i < rooms.length; i++) {
            for (int j = 0; j < rooms[i].length; j++) {
                if (rooms[i][j].getNo().equals(no)) {
                    //找到了要退的房间,把占用改为空闲
                    rooms[i][j].setIsuse(false);
                }
            }
        }
    }
}
/**
 * 房间类
 * @author haokui
 *
 */
class Room {
    //
    private String no;//房间编号
    private String type;//房间类型 
    private boolean isuse;//是否占用
    public Room (String no, String type, boolean isuse) {
        this.no = no;
        this.type = type;
        this.isuse = isuse;
    }
    public String getNo() {
        return no;
    }
    public void setNo(String no) {
        this.no = no;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public boolean isIsuse() {
        return isuse;
    }
    public void setIsuse(boolean isuse) {
        this.isuse = isuse;
    }
    public String toString(){
        return "["+no+","+type+","+(isuse ? "占用":"空闲")+"]";
    }
    
}

运行如下:

输入要预订的房间号,比如201,,回车,结果

会发现201已经被占用了,退房也是一样的原理。

posted @ 2018-01-25 10:41  土豆Z120553  阅读(336)  评论(0编辑  收藏  举报