Java实现——酒店管理系统

为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能.
1、该系统的用户是:酒店前台。
2、酒店使用一个二维数组来模拟。"Room[][] rooms ;"
3、酒店中的每一个房间应该是一个java对象: Room
4、每一个房间Room应该有:房间编号、房间类型、房间是否空闲.
5、系统应该对外提供的功能:
可以预定房间:用户输入房间编号,订房。
可以退房:用户输入,房间编号,退房。
可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态。

简单代码编写,其中还有很多bug需要细化

房间

package com.bjpowernode.javase.array.homework;

import java.util.Objects;

public class Room {
    //房间编号:101 102 103 104......
    private int no;
    //房间状态:true表示空闲 false 表示占用
    private boolean status;
    //房间种类:标间、单人间、总统套房
    private String type;

    public Room() {
    }

    public Room(int no, boolean status, String type) {
        this.no = no;
        this.status = status;
        this.type = type;
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public boolean isStatue() {
        return status;
    }

    public void setStatue(boolean statue) {
        this.status = statue;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    //例如:两个房间的编号相同表示同一个房间
    @Override
    public boolean equals(Object obj) {
        if (obj == null || !(obj instanceof Room)) return false;
        if (this == obj ) return true;
        //因为obj里面没有Room,所以要先转换成Room类型
        Room m = (Room)obj;
        //当前房间编号等于传过来的房间编号,等于同一间
        return this.getNo() == m.getNo();
    }

    @Override
    public String toString() {
        return "[" + no +","+ (status ? "空闲" : "占用") + "," + type + "]";
    }

    /*public static void main(String[] args) {
        Room m = new Room(101,true,"单人间");
        //Room m1 = new Room(102,true,"单人间");
        //System.out.println(m.equals(m1));
        System.out.println(m);

    }*/
}

酒店:

package com.bjpowernode.javase.array.homework;

public class Hotel {
    //用二维数组模拟大厦中的所有房间
    private Room[][] rooms;
    //通过构造方法来盖楼
    public Hotel() {
        rooms = new Room[3][8];//三层楼,每层8个房间

        //创建24个对象,放入数组中
        //遍历
        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,true,"总统套房");

                }
            }
        }
    }
    //打印房间,就是遍历二维数组
    public void print(){
        for(int i = 0;i< rooms.length;i++){
            for(int j = 0;j<rooms[i].length;j++){
                Room room = rooms[i][j];
                System.out.print(room);
            }
            System.out.println();

        }
    }
    //订房 roomNo调用此方法时需要传递一个房间编号过来,这个是前台输入的
    public void order(int roomNO){
        //例如定的房间为206
        Room room = rooms[roomNO/100-1][roomNO%100-1];
        //需要把订的房间状态改为false
        room.setStatue(false);
        System.out.println(roomNO + "已订房!");
    }

    //退房
    public void exit(int roomNo){
        Room room = rooms[roomNo/100-1][roomNo%100-1];
        room.setStatue(true);
        System.out.println(roomNo + "已退房!");
    }


}

酒店管理系统

package com.bjpowernode.javase.array.homework;

import java.util.Scanner;

public class HotelMgtSystem {
  public static void main(String[] args) {
    Hotel h = new Hotel();

    System.out.println("欢迎使用酒店管理系统");
    System.out.println("请选择所要完成的功能: 1、查看房间列表 2、订房 3、退房 4、退出" );
    Scanner s = new Scanner(System.in);

    while(true){
      System.out.println("请输入功能编号: ");
      int i = s.nextInt();
      if(i == 1){
        //查看房间列表
        h.print();
      }else if(i==2){
        //订房
        System.out.println("请输入订房编号:");
        int roomNo = s.nextInt();//前台输入
        h.order(roomNo);
      }else if(i==3){
        //退房
        System.out.println("请输入退房编号:");
        int roomNo = s.nextInt();
        h.exit(roomNo);
      }else if(i == 4){
        //退出
        System.out.println("再见,欢迎您下次到来");
      }else{
        System.out.println("对不起,您输入的编号有误,请重新输入");
      }


    }


  }
}

运行界面:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值