java实操(二)-酒店管理系统

一、题目

使用二维数组实现酒店管理系统。功能如下:

1.查看酒店所有房间的状态

2.预定房间

3.退房

4.退出系统

二、程序

1.Hotel.java

package Hotel;public class Hotel {private int id;private String standard;private String status;public Hotel() {}public Hotel(int id, String standard, String status) {this.id = id;this.standard = standard;this.status = status;}public Hotel(String standard, String status) {this.standard = standard;this.status = status;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getStandard() {return standard;}public void setStandard(String standard) {this.standard = standard;}public String getStatus() {return status;}public void setStatus(String status) {this.status = status;}@Overridepublic String toString() {return "[" + id + "," + standard + "," + status + "]" ;}@Overridepublic boolean equals(Object obj) {if(obj == null){return false;}if(this == obj){return true;}if(obj instanceof Hotel){Hotel h = (Hotel)obj;return h.getStatus().equals(this.getStatus());}return false;}
}

2.manager.java

package Hotel;public class manager {private Hotel[][] hotel = new Hotel[7][11];public manager(){for(int i = 0;i < 2; i ++){for(int j = 0;j < 10;j++){hotel[i+1][j+1] = new Hotel(100 * (i+1) +j+1,"单人间","空闲");}}for(int i = 2;i < 4;i++){for(int j = 0;j<10;j++){hotel[i+1][j+1] = new Hotel(100 * (i+1) +j+1,"标准间","空闲");}}for(int i = 4;i < 6;i++){for(int j = 0;j<10;j++){hotel[i+1][j+1] = new Hotel(100 * (i+1) +j+1,"豪华间","空闲");}}}public void display(){for(int i = 1;i<7;i++){for(int j = 1;j<11;j++){System.out.print(hotel[i][j]);}System.out.println();}}public void book(int num){for(int i = 1;i<7;i++) {for (int j = 1; j < 11; j++) {if (num == hotel[i][j].getId()){if(hotel[i][j].getStatus().equals("占用")){System.out.println("不好意思,您预定的房间已经被占用,请预定别的房间!");return;}hotel[i][j].setStatus("占用");System.out.println("预定房间成功!");}}}}public void unbook(int num){for(int i = 1;i<7;i++) {for (int j = 1; j < 11; j++) {if (num == hotel[i][j].getId()){hotel[i][j].setStatus("空闲");System.out.println("退房成功!");}}}}
}

3.test.java

package Hotel;
import java.util.Scanner;
public class test {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);manager manager = new manager();manager.display();while(true){System.out.println("欢迎来到酒店管理系统~");System.out.println("[1]查看所有房间状态");System.out.println("[2]预定房间");System.out.println("[3]退房");System.out.println("[0]退出系统");System.out.print("请输入不同的数字来选择对应的功能:");int menu = scanner.nextInt();switch (menu){case 0 -> System.exit(0);case 1 -> {manager.display();}case 2 ->{System.out.print("请输入预定的房间编号:");int booknum = scanner.nextInt();manager.book(booknum);}case 3 ->{System.out.print("请输入退房编号:");int unbooknum = scanner.nextInt();manager.unbook(unbooknum);}}}}
}

三、小结

本实例较简单,用的是二维数组的方法实现的简单的酒店管理系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践

作者&#xff1a;计缘 LLM Chat 应用大家应该都不陌生&#xff0c;这类应用也逐渐称为了我们日常的得力助手&#xff0c;如果只是个人使用&#xff0c;那么目前市面上有很多方案可以快速的构建出一个LLM Chat应用&#xff0c;但是如果要用在企业生产级别的项目中&#xff0c;那…

【ORACLE】substr() 函数

在 Oracle 数据库中&#xff0c;SUBSTR() 函数用于从字符串中提取子字符串。这个函数非常灵活&#xff0c;可以根据不同的需求提取字符串的不同部分。 函数语法 SUBSTR() 函数的基本语法如下&#xff1a; SUBSTR(string, start, length)string&#xff1a;要提取子字符串的原…

C#高级:递归2-根据ID反向递归求其所有的祖先节点信息

目录 一、实现demo 二、封装方法 【ID>祖先ID】 【ID>祖先实体】 三、递归讲解 一、实现demo class MainClass {static List<Person> PersonList new List<Person>(){new Person(){ Id1,ParentIDnull,Name"小明曾祖父",},new Person(){ Id2…

python文件自动化(4)

接上节课内容&#xff0c;在开始正式移动文件到目标文件夹之前&#xff0c;我们需要再思考一个问题。在代码运行之前&#xff0c;阿文的下载文件夹里已经存在一些分类文件夹了&#xff0c;比如图例中“PDF文件”这个文件夹就是已经存在的。这样的话&#xff0c;在程序运行时&am…

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext new ClassPathXmlApplicationContext("bean.xml"); } BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanFactory的功能相似&#xff0c;都是…

linux 安装redis

1. 更新系统和安装依赖 sudo apt update sudo apt install build-essential tcl2. 下载 Redis 源码(没有opt文件夹&#xff0c;则先创建opt文件夹) cd /opt wget http://download.redis.io/releases/redis-6.2.6.tar.gz3. 解压和编译 Redis 解压下载的文件&#xff0c;并进入…

Qt/C++编写的Onvif调试助手调试神器工具/支持云台控制/预置位设置等/有手机版本

一、功能特点 广播搜索设备&#xff0c;支持IPC和NVR&#xff0c;依次返回。可选择不同的网卡IP进行对应网段设备的搜索。依次获取Onvif地址、Media地址、Profile文件、Rtsp地址。可对指定的Profile获取视频流Rtsp地址&#xff0c;比如主码流地址、子码流地址。可对每个设备设…

AtCoder Beginner Contest 370-C~D题解

AtCoder Beginner Contest 370-C题解 思路 整体来说&#xff0c;一眼是一个贪心&#xff0c;具体来说先把让字典序变小的字符变化&#xff0c;让后再让字典序变大的字符变化 代码 #include <bits/stdc.h> using namespace std; char s[105],t[105]; int a[105],sum; …

深入了解以太坊

1. 以太坊编程语言和操作码 以太坊中智能合约的代码以高级语言编写&#xff0c;如 Serpent、LLL、Solidity 或 Viper,并可转换为 EVM 可以理解的字节码&#xff0c;以便执行。 Solidity 是为以太坊开发的高级语言之一&#xff0c;它具有类似 JavaScript 的语法&#xff0c;可以…

用广播星历计算卫星运动的平均角速度

用广播星历计算卫星位置 1.计算卫星运动的平均角速度 首先根据广播星历中给出的参数计算参考时刻的平均角速度: 式中&#xff0c;GM为万有引力常数G与地球总质量M之乘积&#xff0c;其值为GM3.98600510^14b m3/s2。 然后根据广播星历中给定的摄动参数计算观测时刻卫星的平均…

使用AI写WebSocket知识是一种怎么样的体验?

一、WebSocket基础知识 1. WebSocket概念 1.1 为什么会出现WebSocket 一般的Http请求我们只有主动去请求接口&#xff0c;才能获取到服务器的数据。例如前后端分离的开发场景&#xff0c;自嘲为切图仔的前端大佬找你要一个配置信息的接口&#xff0c;我们后端开发三下两下开…

JDBC:连接数据库

文章目录 报错 报错 Exception in thread “main” java.sql.SQLException: Can not issue SELECT via executeUpdate(). 最后这里输出的还是地址&#xff0c;就是要重写toString()方法&#xff0c;但是我现在还不知道怎么写 修改完的代码&#xff0c;但是数据库显示&#…

STL-详细介绍list

目录 一、含义介绍 二、遍历&#xff08;迭代器和范围for&#xff09; 三、部分接口介绍 1.将两个有序链表归并成一个&#xff1a;merge&#xff08;&#xff09; 2、去重&#xff1a;unique&#xff08;&#xff09; 3、将一个链表或链表的结点或链表的迭代器区间插入到另…

2. 下载rknn-toolkit2项目

官网链接&#xff1a; https://github.com/airockchip/rknn-toolkit2 安装好git&#xff1a;[[1. Git的安装]] 下载项目&#xff1a; git clone https://github.com/airockchip/rknn-toolkit2.git或者直接去github下载压缩文件&#xff0c;解压即可。

ASIO网络调试助手之一:简介

多年前&#xff0c;写过几篇《Boost.Asio C网络编程》的学习文章&#xff0c;一直没机会实践。最近项目中用到了Asio&#xff0c;于是抽空写了个网络调试助手。 开发环境&#xff1a; Win10 Qt5.12.6 Asio(standalone) spdlog 支持协议&#xff1a; UDP TCP Client TCP Ser…

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略&#xff0c;该策略要求请求的域名、协议和端口必须与提供资源的服务相同。…

Linux线程管理进阶:分离,等待、终止与C++11线程接口的封装实践

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f351;线程终止&#x1f34d;线程等待*多线程创建&#xff0c;传自己定义的对象示例代码&#xff1a;* &#x1f34e;线程的分…

STM32(十二):DMA直接存储器存取

DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输&#xff0c;无须CPU干预&#xff0c;节省了CPU的资源。&#xff08;运行内存SRAM、程序存储器Flash、寄存器&#xff09; 12个独立可配置的通道&…

[数据集][目标检测]井盖丢失未盖破损检测数据集VOC+YOLO格式2890张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2890 标注数量(xml文件个数)&#xff1a;2890 标注数量(txt文件个数)&#xff1a;2890 标注…

页面要突破手机安全区域来全屏显示(沉浸式模式显示),其他页面不需要,如何设置安全区域文字颜色

#效果图 ##思路遇到的问题 在aboutToAppear中使用window模块的 getLastWindow 和 setWindowLayoutFullScreen两个方法来处理全屏显示 设置沉浸式模式的特点&#xff1a; 在任何一个页面中设置过一次之后&#xff0c;其他页面也会跟着全屏显示 这么处理会出现问题&#xff1a…