JavaSE实战之酒店订房系统的实现

 更新时间:2022年07月04日 10:15:44   作者:温欣'  
这篇文章主要为大家详细介绍了如何利用JavaSE实现酒店订房系统,文中的示例代码讲解详细,对我们学习JavaSE开发有一定的帮助,需要的可以参考一下

酒店管理系统

为某个酒店编写程序:酒店管理系统,模拟订房,退房,打印所有房间状态等功能

1、该系统的用户是酒店的前台

2、酒店当中所有的房间使用一个二维数组来模拟

3、酒店当中的每一个房间应该是一个java对象:Room

4、每一个房间Room应该有:房间编号,房间类型属性,房间是否空闲

Hotel.java

/**
 * Created with IntelliJ IDEA.
 * Description:酒店
 * User: Lenovo
 * Date: 2022-07-02
 * Time: 20:10
 */
public class Hotel {
    /**
     * 二维数组,模拟大厦所有的房间
     * @param args
     */
    private Room[][] rooms;
    public Hotel(){
        //通过构造方法来盖楼层
        rooms=new Room[3][10];//动态初始化,里面每个元素都还是null
        //创建30个room对象,放到数组当中
        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{
                    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.length;j++){
                Room room=rooms[i][j];
                System.out.println(room);
            }

        }
    }

    /**
     * 订房方法
     * @param roomNo 调用此方法需要传递一个房间编号过来
     * 这个房间编号是前台小姐姐输入的
     */
    public void order(int roomNo){
        //订房主要是将房间对象的status修改为false
        Room room=rooms[roomNo/100-1][roomNo%100-1];
        //把房间状态修改为占用
        room.setStatus(false);
        System.out.println(roomNo+"订房成功!");
    }

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

HotelSystem.java

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2022-07-03
 * Time: 18:01
 */
public class HotelSystem {
    public static void main(String[] args) {

        System.out.println("欢迎使用酒店管理系统,请认真阅读以下说明:");
        System.out.println("请输入对应的功能编号:【1】查看房间列表。【2】订房。【3】退房。【0】退出系统");
        Scanner s=new Scanner(System.in);

        Hotel hotel=new Hotel();
        while(true){
            System.out.print("请输入功能编号:");
            int i=s.nextInt();

        if(i==1){
            //查看房间列表
            hotel.print();

        }else if(i==2){
            //订房
            System.out.print("请输入要订房的房间号码:");
            int numNo=s.nextInt();
            hotel.order(numNo);
        }else if(i==3){
            //退房
            System.out.print("请输入要退房的房间号码:");
            int numNo=s.nextInt();
            hotel.exit(numNo);
        }else if(i==0){
            //退出系统
            System.out.print("已退出系统");
            return;
        }else {
            System.out.print("输入错误,请重新输入:");
        }

       }
    }
}

Room.java

/**
 * Created with IntelliJ IDEA.
 * Description:酒店的房间
 * User: Lenovo
 * Date: 2022-07-02
 * Time: 20:48
 */

import java.util.Objects;
import java.util.Scanner;

/**
 * 酒店的房间
 */
public class Room {
    /**
     * 房间编号:int no
     * 1楼:101  102  103...
     * 2楼:201  202  203...
     * 3楼:301  302  303...
     * ...
     */
    private int no;
    /**
     * 房间类型:标准间,单人间,总统套房
     * String type
     */
    private String type;
    /**
     * 房间状态
     * true:表示空闲,房间可以被预定
     * false:表示占用,房间不能被预定
     * boolean status
     */
    private boolean status;
    //构造方法
    public Room(int no, String type, boolean status) {
        this.no = no;
        this.type = type;
        this.status = status;
    }

    public Room() {
    }
    //set和get方法
    public int getNo() {
        return no;
    }

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

    public String getType() {
        return type;
    }

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

    public boolean isStatus() {
        return status;
    }

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

    //equals方法重写

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Room room = (Room) o;
        return no == room.no && status == room.status && Objects.equals(type, room.type);
    }

    @Override
    public int hashCode() {
        return Objects.hash(no, type, status);
    }


    //toString方法重写


    @Override
    public String toString() {
        return "[" + "房间编号:" + no + ", 房间类型:'" + type  + ", 房间状态:" + status + ']';
    }


}

以上就是JavaSE实战之酒店订房系统的实现的详细内容,更多关于JavaSE 酒店订房系统的资料请关注脚本之家其它相关文章!

相关文章

  • maven环境变量配置以及失败原因解析

    maven环境变量配置以及失败原因解析

    这篇文章主要为大家详细介绍了maven环境变量配置教程,以及为大家解析了安装失败的原因,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • springboot+log4j.yml配置日志文件的方法

    springboot+log4j.yml配置日志文件的方法

    这篇文章主要介绍了springboot+log4j.yml配置日志文件的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Springboot实现给前端返回一个tree结构方法

    Springboot实现给前端返回一个tree结构方法

    这篇文章主要介绍了SpringBoot返回给前端一个tree结构的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Spring Boot中的SpringSecurity基础教程

    Spring Boot中的SpringSecurity基础教程

    Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它实际上是保护基于spring的应用程序的标准Spring Security是一个框架,侧重于为Java应用程序提供身份验证和授权,这篇文章主要介绍了Spring Boot中的SpringSecurity学习,需要的朋友可以参考下
    2023-01-01
  • Java中final,finally,finalize 有什么区别

    Java中final,finally,finalize 有什么区别

    这篇文章主要给大家分享的是 Java中final,finally,finalize 到底有什么区别,文章围绕final,finally,finalize的相关资料展开详细内容,具有一定的参考的价值,需要的朋友可以参考一下
    2021-11-11
  • Java基础之集合Set详解

    Java基础之集合Set详解

    这篇文章主要介绍了Java基础之集合Set详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • java中原码、反码与补码的问题分析

    java中原码、反码与补码的问题分析

    本篇文章介绍了,在java中原码、反码与补码的问题分析。需要的朋友参考下
    2013-04-04
  • SpringMVC中处理Ajax请求的示例

    SpringMVC中处理Ajax请求的示例

    本篇文章给大家介绍SpringMVC中处理Ajax请求的示例,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • Java中Date时间类的使用方法举例

    Java中Date时间类的使用方法举例

    这篇文章主要给大家介绍了关于Java中Date时间类的使用方法,在java开发中,很多字段是Date类型的,文中通过代码示例将Date时间类使用的方法介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • SpringBoot+MyBatis简单数据访问应用的实例代码

    SpringBoot+MyBatis简单数据访问应用的实例代码

    这篇文章主要介绍了SpringBoot+MyBatis简单数据访问应用的实例代码,需要的朋友可以参考下
    2017-05-05

最新评论