Java实现简单酒店管理系统

 更新时间:2022年05月27日 08:14:14   作者:木子七七_qiqi  
这篇文章主要为大家详细介绍了Java实现简单酒店管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

用Java编写一个简单的酒店管理系统,供大家参考,具体内容如下

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

1、该系统的用户是:酒店前台。
2、酒店使用一个二维数组来模拟。“Room[][] rooms;”
3、酒店中的每一个房间应该是一个java对象:Room
4、每一个房间Room应该有:房间编号、房间类型、房间是否空闲.
5、系统应该对外提供的功能:

可以预定房间:用户输入房间编号,订房。
可以退房:用户输入房间编号,退房。
可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态。

import org.w3c.dom.ls.LSOutput;

import java.util.Objects;
//测试
public class HotelTest {
    public static void main(String[] args) {
        Hotel h=new Hotel();
        java.util.Scanner s=new java.util.Scanner(System.in);
        System.out.println("欢迎使用酒店管理系统!请认真阅读以下功能。");
        System.out.println("功能编号:1表示打印房间列表,2表示预定房间,3表示退订房间,4表示退出系统");
        while(true){
            System.out.println("请输入功能编号:");
            int i=s.nextInt();
            if(i==1){h.pri();}
            else if(i==2){
                System.out.println("请输入要预定的房间编号:");
                h.order(s.nextInt());
            }else if(i==3){
                System.out.println("请输入要退订的房间编号:");
                h.exit(s.nextInt());
            }else if(i==4){
                System.out.println("欢迎下次使用酒店管理系统,再见!");
                return;
            }else{
                System.out.println("功能编号输入错误,请重新输入!");
            }
        }

    }
}
//酒店管理系统
public class Hotel{
    Room[][] rooms;
    public Hotel(){
        rooms=new Room[3][10];
        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);}
                if(i==1){rooms[i][j]=new Room((i+1)*100+j+1,"双人间",true);}
                if(i==2){rooms[i][j]=new Room((i+1)*100+j+1,"三人间",true);}*/
                rooms[i][j]=new Room();
                rooms[i][j].setNo((i+1)*100+j+1);
                rooms[i][j].setType(i==0?"单人间":(i==1?"双人间":"三人间"));
                rooms[i][j].setStatus(true);
            }
        }
    }
    public void pri(){
        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 order(int no){
        if(rooms[no/100-1][no%100-1].isStatus()==true) {
            rooms[no / 100 - 1][no % 100 - 1].setStatus(false);
            System.out.println(no + "号房间预订成功!");
        }else{
            System.out.println(no+"号房间已被预订,房间预订失败!");
        }
    }
    public void exit(int no){
        if(rooms[no/100-1][no%100-1].isStatus()==false) {
            rooms[no / 100 - 1][no % 100 - 1].setStatus(true);
            System.out.println(no + "号房间退订成功!");
        }else{
            System.out.println(no+"号房间已被退订,房间退订失败!");
        }
    }
}
//房间
public class Room{
    private int no;
    private String type;
    private boolean status;

    public Room() {
    }

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

    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;
    }

    @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;
    }

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解JavaEE中Apollo安装使用小结

    详解JavaEE中Apollo安装使用小结

    这篇文章主要介绍了详解JavaEE中Apollo安装与使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Java线程池7个参数的详细含义

    Java线程池7个参数的详细含义

    java多线程开发时,常常用到线程池技术,这篇文章是对创建java线程池时的七个参数的详细解释,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • JVM常用指令速查表

    JVM常用指令速查表

    总结了一个 JVM 常用指令速查表,今天分享给大家!,需要的朋友可以参考下
    2020-02-02
  • Java线程中的常见方法(start方法和run方法)

    Java线程中的常见方法(start方法和run方法)

    这篇文章主要介绍了Java线程中的常见方法(start方法和run方法),文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • 关于Scanner中nextInt()、nextLine()等方法总结与问题解决

    关于Scanner中nextInt()、nextLine()等方法总结与问题解决

    这篇文章主要介绍了关于Scanner中nextInt()、nextLine()等方法总结与问题解决,具有很好的参考价值,希望对大家有所帮助。
    2022-11-11
  • java新手入门——String类详解

    java新手入门——String类详解

    在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。string>是C++标准程序库中的一个头文件
    2021-06-06
  • redis之基于SpringBoot实现Redis stream实时流事件处理方式

    redis之基于SpringBoot实现Redis stream实时流事件处理方式

    这篇文章主要介绍了redis之基于SpringBoot实现Redis stream实时流事件处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 浅谈java如何生成分享海报工具类

    浅谈java如何生成分享海报工具类

    这篇文章主要介绍了浅谈java如何生成分享海报工具类,想了解分享海报知识的同学不要错过哦
    2021-04-04
  • Java中的CyclicBarrier同步屏障详解

    Java中的CyclicBarrier同步屏障详解

    这篇文章主要介绍了Java中的CyclicBarrier同步屏障详解,CyclicBarrier也叫同步屏障,在JDK1.5被引入,可以让一组线程达到一个屏障时被阻塞,直到最后一个线程达到屏障时,屏障才会开门,所有被阻塞的线程才会继续执行,需要的朋友可以参考下
    2023-09-09
  • 详解Java中布隆过滤器(Bloom Filter)原理及其使用场景

    详解Java中布隆过滤器(Bloom Filter)原理及其使用场景

    布隆过滤器是1970年由布隆提出的,它实际上是一个很长的二进制向量和一系列随机映射函数,它的作用是检索一个元素是否存在我们的集合之中,本文给大家详细的讲解一下布隆过滤器,感兴趣的同学可以参考阅读
    2023-05-05

最新评论