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 酒店订房系统的资料请关注我们其它相关文章!

(0)

相关推荐

  • Java实现简单酒店管理系统

    用Java编写一个简单的酒店管理系统,供大家参考,具体内容如下 为某个酒店编写程序:酒店管理系统,模拟订房.退房.打印所有房间状态等功能. 1.该系统的用户是:酒店前台.2.酒店使用一个二维数组来模拟.“Room[][] rooms;”3.酒店中的每一个房间应该是一个java对象:Room4.每一个房间Room应该有:房间编号.房间类型.房间是否空闲.5.系统应该对外提供的功能: 可以预定房间:用户输入房间编号,订房.可以退房:用户输入房间编号,退房.可以查看所有房间的状态:用户输入某个指令应该

  • Java实现简单的酒店管理系统

    本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下 要求: [酒店管理系统]HotelSystem.java 某酒店有12层楼,每层楼有10个房间(二维数组),要求为该酒店设计一套简单的前台房间管理程序,该程序可以通过在命令行输入命令来为客人办理入住和退房手续.要求该程序支持通过命令行输入以下命令来进行入住,退房及查询的操作: (1).search:查询所有房间的状态  无人住显示empty,有人则显示住户姓名(2).in 房间号码 姓名 :客人入住 命令:in 请

  • java实现酒店管理系统

    本文实例为大家分享了java实现酒店管理系统的具体代码,供大家参考,具体内容如下 编写环境:MyEclipse2014+sql server2014 系统功能: 1.登录验证 2.房态统计显示 3.预定登记并入库 4.入住登记并入库 5.换房登记并入库 6.客人信息查询 7.退房并入库 运行界面如下: =====登录界面====== =====主界面===== =====为每个房间设置弹出菜单====== =====登记界面====== =====换房界面===== =====退房界面=====

  • Java代码实现简单酒店管理系统

    本文实例为大家分享了Java实现简单酒店管理系统的具体代码,供大家参考,具体内容如下 为某个酒店编写程序:酒店管理系统,模拟订房.退房和打印所有房间状态等功能 1.该系统的用户是:酒店前台 2.酒店使用一个二维数组来模拟”Room[][] rooms" 3.酒店中的每一个房间应该是一个对象:Room 4.每一个房间应该有:房间编号.房间类型.房间是否空闲 5.一同应该对外提供的功能:      订房:用户输入房间编号来订房      退房:用户输房间编号来退房      查看所有房间状态:用户输

  • Java代码实现酒店管理系统

    我们通过学习Java基础知识,让自己正式踏入学习Java语言的行列,这篇博客是用来让我们真正的了解并应用面向对象的思想来实现的. 使用简单的Java代码实现酒店管理系统,供大家参考,具体内容如下 一. 需求分析 我们如果要实现酒店管理系统,就需要先对酒店管理系统的业务要求进行分析: 1.酒店管理系统需要实现哪些功能? (1)输入某个命令查询酒店中的所有房间:(2)输入某个房间的编号订房:(3)输入某个房间的编号退房:(4)输入某个命令可以退出酒店管理系统: 2.酒店管理系统使用什么数据结构来表示

  • Java 实战练手项目之酒店管理系统的实现流程

    一.项目简述 功能包括(管理员和用户角色): 酒店预订,酒店管理,员工管理,入住原理,订单管理, 楼层管理,退房管理,营业额报表等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+

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

    酒店管理系统 为某个酒店编写程序:酒店管理系统,模拟订房,退房,打印所有房间状态等功能 1.该系统的用户是酒店的前台 2.酒店当中所有的房间使用一个二维数组来模拟 3.酒店当中的每一个房间应该是一个java对象:Room 4.每一个房间Room应该有:房间编号,房间类型属性,房间是否空闲 Hotel.java /** * Created with IntelliJ IDEA. * Description:酒店 * User: Lenovo * Date: 2022-07-02 * Time: 2

  • Java实战在线选课系统的实现流程

    一.项目简述 功能: 系统分为三个角色.最高权限管理员,学生,教师,包括 学生管理,教师管理,课程管理,选课,退课,成绩查 询.,教学课程,查看选课名单等等功能完全齐备. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + Bootstrap4+ css + JavaScript +

  • Java实战花店商城系统的实现流程

    一.项目简述 本系统功能包括: 商品的分类展示,用户的注册登录,购物车,订单结算,购物车加减,后台商品管理,分类管理,订单管理等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持). 项目技术: Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等. 用户管

  • Unity3D实战之答题系统的实现

    目录 一.前言 三.实现 1.界面搭建 2.读取文档 3.加载题目 4.按钮功能 5.题目对错判断 四.后言 一.前言 这是本专栏系列的第一篇,答题系统的开发. 这个答题系统,可以从文本文档中提取题目和分数,然后绑定到UI上,在答题的过程中,自动判断分数,自动判断正确率. 目的是实现一个可快速导入到项目中使用的小模块. 二.效果图及工程下载 题目文档  密码:47z2 源工程 三.实现 1.界面搭建 首先,新建工程,然后摆UI,如下图所示: 2.读取文档 题目存放在txt文档中,首先,我们看一下

  • PHP实战之投票系统的实现

    目录 一.实现代码 1.sql 2.html 3.admin.php(增删改查投票的页面)密码:admi 4.index.php投票的页面 二.效果图 一.实现代码 1.sql -- phpMyAdmin SQL Dump -- version 4.5.1 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 2022-03-28 05:42:05 -- 服务器版本:10.1.13-MariaDB -- PH

  • Python实战之天气预报系统的实现

    目录 前言 一.前期准备 二.代码展示 三.效果展示 前言 鼎鼎大名的南方城市长沙很早就入冬了,街上各种大衣,毛衣,棉衣齐齐出动. 这段时间全国各地大风呜呜地吹,很多地方断崖式降温. 虽然前几天短暂的温度回升,但肯定是为了今天的超级降温,一大早的就开始狂风四起. 周五早晨,终于体验了一把久违冷冷的冰雨在脸上胡乱的拍!昨天还有10几度的天气,今天就  只有2-3°了,真真是老天爷的脸七十二变~ 广东的朋友们,听说你们哪儿最低温度都是10几度,我实名羡慕了——(要我说从哪儿听说的,昨天跟刺激战场打游

  • Java使用OCR技术识别验证码实现自动化登陆方法

    如论实施敏捷的团队,或者实施 DevOps 的团队,通过自动化测试提高测试效率和软件质量都是其共同的选择.UI 自动化测试是自动化化测试当中的重要环节,在 UI 自动化测试中验证码识别一直是令自动化测试人员头疼的问题.今年来随着 OCR 技术.人工智能计算机视觉(AI Computer Vision)技术的成熟与使用大大提高了验证码的识别成功率.从而使得自动识别验证码自动化登陆目标系统成为可能. 本Chat 主要内容包括: OCR 技术与人工智能计算机视觉(AI Computer Vision)

  • 我常用的一些linux命令小结

    之前做过两年的运维,用过很多命令,深切体会到某些linux命令熟练掌握后对效率提升有多大.举个简单的例子,在做了研发后经常会有跑一些数据,对于结果数据的处理,我们的产品同学一般都习惯于用excel做统计,把数据复制到excel里,然后数据分列,排序---- 最后得出某些简单的结论,我只需要cat, sort, uniq, awk, grep 这几个命令挥手间完成相同的操作. 这里我总结下我工作这几年用过的一些命令,当然,这里就不提那些vim cd ls mv cp 这种简单的命令了,如果你都不会

  • window系统的Rsync同步实战分析第1/2页

    其于window系统的同步实战 1. 远程数据同步工具Rsync介绍 1.1 软件简介 Rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync本来是用以取代rcp的一个工具,它当前由 rsync.samba.org维护.Rsync使用所谓的"Rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.运行Rsync server的机器也叫backup server,一个Rsync

  • Linux文件服务器实战详解(系统用户)

    ftp匿名用户设置完成之后任何人都可以访问服务器端文件,目录,甚至可以修改删除文件和目录,,那如何存放私密文件并保证文件或者目录专属于拥有者呢,就需要使用vsftp系统用户来实现了. 1.在linux系统创建多个用户(useradd)并给用户设置密码 [root@www ~]# useradd xj1 [root@www ~]# useradd xj2 [root@www ~]# echo 123456|passwd --stdin xj1 [root@www ~]# echo 123456|p

随机推荐