博客
关于我
Java小项目源码
阅读量:217 次
发布时间:2019-03-01

本文共 4322 字,大约阅读时间需要 14 分钟。

酒店管理系统开发方案

项目概述

本项目旨在开发一个模拟酒店管理系统,提供完整的预定、退房及房间状态查看功能。系统将使用二维数组模拟酒店房间布局,每个房间将作为一个Java对象处理。

系统模拟

  • 用户:酒店前台工作人员
  • 数据结构:使用二维数组Room[][] rooms模拟酒店房间布局
  • 房间类:每个房间Room对象包含以下属性:
    • 房间编号
    • 房间类型(如标准间、单人间、总统套房)
    • 房间状态(true表示空闲,false表示已占用)

系统功能

  • 预定房间:用户输入房间编号,系统将对应房间状态改为false(空闲)
  • 退房:用户输入房间编号,系统将对应房间状态改为true(已占用)
  • 查看房间状态:用户可通过输入特定指令查看所有房间状态
  • 功能实现

    package Test;public class Room {    private int ID;    private String type;    private boolean status;    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;    }    @Override    public String toString() {        return "Room [ID=" + ID + ", Type='" + type + "', Status=" + (status ? "空闲" : "已占用") + "]";    }    @Override    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;        Room room = (Room) o;        return ID == room.ID;    }    @Override    public int hashCode() {        return Objects.hash(ID, type, status);    }}public class Hotel {    private Room[][] rooms;    private int floorNum;    private int roomNum;    public Hotel(Room[][] rooms) {        this.rooms = rooms;    }    public Hotel(int floorNum, int roomNum) {        this(new Room[floorNum][roomNum]);        initializeRooms(floorNum, roomNum);    }    private void initializeRooms(int floorNum, int roomNum) {        for (int i = 0; i < floorNum; i++) {            for (int j = 0; j < roomNum; j++) {                switch (i) {                    case 0:                        int id1 = Integer.parseInt("10" + (j + 1));                        rooms[i][j] = new Room(id1, "单人间", true);                        break;                    case 1:                        int id2 = Integer.parseInt("20" + (j + 1));                        rooms[i][j] = new Room(id2, "标准间", true);                        break;                    case 2:                        int id3 = Integer.parseInt("30" + (j + 1));                        rooms[i][j] = new Room(id3, "总统套房", true);                        break;                }            }        }    }    public void showRoomMessage() {        for (int i = 0; i < rooms.length; i++) {            for (int j = 0; j < rooms[i].length; j++) {                Room room = rooms[i][j];                System.out.println(room);                System.out.println("-------------------");            }        }    }    public void order(int roomID) {        int row = roomID / 100;        int column = roomID % 100;        if (row < 0 || row >= rooms.length || column < 0 || column >= rooms[row].length) {            System.out.println("输入的房间编号无效,请重新输入:");            return;        }        Room room = rooms[row][column];        if (room.getStatus()) {            room.setStatus(false);            System.out.println("预定成功!" + roomID + "已被标记为空闲");        } else {            System.out.println("该房间已被占用,无法预定,请选择其他房间!");        }    }    public void checkOut(int roomID) {        int row = roomID / 100;        int column = roomID % 100;        if (row < 0 || row >= rooms.length || column < 0 || column >= rooms[row].length) {            System.out.println("输入的房间编号无效,请重新输入:");            return;        }        Room room = rooms[row][column];        if (!room.getStatus()) {            System.out.println("该房间已是空闲,无需退房!");            return;        }        room.setStatus(true);        System.out.println("退房成功!" + roomID + "已被标记为已占用");    }    public int getFloorNum() {        return floorNum;    }    public void setFloorNum(int floorNum) {        this.floorNum = floorNum;    }    public int getRoomNum() {        return roomNum;    }    public void setRoomNum(int roomNum) {        this.roomNum = roomNum;    }}

    功能说明

    • Room类:用于表示酒店房间,包含房间编号、类型及状态信息
    • Hotel类:管理酒店房间信息,提供订房、退房及房间状态查看功能
    • 初始化方法:根据楼层和房间数量初始化房间布局
    • 显示房间信息:遍历所有房间并打印当前状态
    • 订房功能:根据输入房间编号修改房间状态
    • 退房功能:根据输入房间编号恢复房间状态

    使用说明

  • 创建酒店实例时需指定楼层数和房间数量
  • 初始化方法会根据楼层和房间数量创建相应房间
  • showRoomMessage方法可查看所有房间状态
  • order方法用于订房,checkOut方法用于退房
  • 转载地址:http://pljv.baihongyu.com/

    你可能感兴趣的文章
    Nginx配置如何一键生成
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    NHibernate学习[1]
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>