当前位置: 首页 > news >正文

【Java】酒店管理系统

一 需求:

编写程序 模拟酒店管理系统 : 预订和退订以及查看所有房间

1 需要有一个酒店类

2 需要有一个房间类

3 需要有一个客户端类

public class Test {

}

二 分析:

客户端 :
1 先打印所有房间
2 等待用户输入,根据输入情况 判断是预订还是退订
3 等待用户输入房间号
4 调用酒店的 预订/退订方法 把房间号传入 完成预订/退订功能
5 完成之后,做出相应提示 , 然后再次打印所有房间
6 死循环 依次执行以上步骤

class Client{

}

酒店类 :
规模 : 五层,每层10个房间
其中 : 1,2 层为标准间
3,4 层为双人间
5层为豪华间
房间编号 : 1层 : 101, 102, ….110 , 2层 : 201,202…210 … 以此类推
房间默认都为空闲

需要提供
预订房间方法 : 需要根据 房间编号 预订房间
如果该房间已经被预订了,需要提示

退订房间方法 : 需要根据 房间编号 退订房间
如果该房间没有被预订 需要提示

查看所有房间的方法 :
打印格式为 :
[101 标准间 占用] [102 标准间 空闲]….
[201 标准间 空闲] ……
[501 豪华间 空闲] …. [510 豪华间 占用]

三 代码实现

客户端(Client)

package HotelSystem;import java.util.Scanner;public class Client {
public static void main(String[] args) {Hotel hotel=new Hotel();Scanner s=new Scanner(System.in);while (true) {System.out.println("请输入你要选择的功能: 1 查看房间  2 房间预订 3 退房  0 退出");int a=s.nextInt();switch (a) {case 1:hotel.show();break;case 2:System.out.println("请输入房间号");int b=s.nextInt();hotel.order(b);break;case 3:System.out.println("请输入房间号");int c=s.nextInt();hotel.checkOut(c);break;case 0:return;}}
}
}

酒店类(Hotel):

package HotelSystem;//包名
import java.security.PublicKey;
public class Hotel {private Room[][] rooms=new Room[5][10];  //创建酒店房间的个数//构造方法public Hotel(){//对酒店进行初始化for(int i=0;i<rooms.length;i++){for(int j=0;j<rooms[i].length;j++){if(i<=2){rooms[i][j]=new Room((i+1)*100+j+1, "标准间", true);}if(i>2&&i<4){rooms[i][j]=new Room((i+1)*100+j+1, "双人间", true);}if(i==4){rooms[i][j]=new Room((i+1)*100+j+1, "豪华间", true);}}}}	 //房间展示public  void show(){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 num){if (num/100-1>4 || num%100-1>9){System.err.println("该房间不存在,请输入正确的房间号!");}else {if(num==rooms[num/100-1][num%100-1].getNumber()){if(rooms[num/100-1][num%100-1].isFlab()==false){System.err.println("该房间已被占用,请选择其他房间");}else {rooms[num/100-1][num%100-1].setFlab(false);System.out.println("预订成功!!!");}				}}}//退房public void checkOut(int num){if (num/100-1>4 || num%100-1>9){System.err.println("该房间不存在,请输入正确的房间号!");}else {if(rooms[num/100-1][num%100-1].isFlab()==true){System.err.println("该房间无需退房!!!");}else {rooms[num/100-1][num%100-1].setFlab(true);System.out.println("退房成功!!!");	}}		}
}

房间类(Room):

package HotelSystem;public class Room {
private int number;
private String type;
private boolean flab;
//getSet方法
public int getNumber() {return number;
}
public void setNumber(int number) {this.number = number;
}
public String getType() {return type;
}
public void setType(String type) {this.type = type;
}
public boolean isFlab() {return flab;
}
public void setFlab(boolean flab) {this.flab = flab;
}
// 构造方法
public Room(int number, String type, boolean flab) {super();this.number = number;this.type = type;this.flab = flab;
}
@Override
public String toString() {return "Room ["+ number +"  "+  type +"  "+ (flab==true?"空闲":"占用") + "]";
}}

相关文章:

【Java】酒店管理系统

一 需求: 编写程序 模拟酒店管理系统 : 预订和退订以及查看所有房间 1 需要有一个酒店类 2 需要有一个房间类 3 需要有一个客户端类 public class Test { } 二 分析: 客户端 : 1 先打印所有房间 2 等待用户输入,根据输入情况 判断是预订还是退订 3 等待用户输入房间号 …...

【数据库】Java 中 MongoDB 使用指南:步骤与方法介绍

MongoDB 是一个流行的 NoSQL 数据库&#xff0c;因其灵活性和高性能而广泛使用。在 Java 中使用 MongoDB&#xff0c;可以通过 MongoDB 官方提供的 Java 驱动程序来实现。本文将详细介绍在 Java 中使用 MongoDB 的步骤以及相关方法。 1. 环境准备 1.1 安装 MongoDB 首先&…...

MySQL之内置函数

目录 一、日期函数 二、字符串函数 三、数学函数 四、其它函数 一、日期函数 常见的日期函数如下&#xff1a; 函数名称说明current_date()获取当前日期current_time()获取当前时间current_timestamp()获取当前时间戳date_add(date, interval d_value_type)在date中添加日…...

JVM 基本组成

1.为什么要学习JVM&#xff1f; 未来在工作场景中&#xff0c;也许你会遇到以下场景&#xff1a;线上系统突然宕机&#xff0c;系统无法访问&#xff0c;甚至直接OOM&#xff1b;线上系统响应速度太慢&#xff0c;优化系统性能过程中发现CPU占用过高&#xff0c;原因也许是因为…...

Ubuntu 离线安装 docker

1、下载离线包&#xff0c;网址&#xff1a;https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/ 离线安装docker需要下载3个包&#xff0c;containerd.io &#xff0c;docker-ce-cli&#xff0c;docker-ce 2、下载完毕后拷贝到ubuntu上用 dpkg 命令安装&am…...

【C++】set详解

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…...

C++游戏开发:构建高性能、沉浸式游戏体验的关键

引言 C作为游戏开发的核心语言&#xff0c;凭借其卓越的性能和灵活性&#xff0c;已成为许多现代游戏引擎和开发项目的首选。在游戏开发中&#xff0c;C不仅可以实现复杂的游戏逻辑&#xff0c;还能有效管理资源和优化性能。本文将深入探讨C在游戏开发中的应用&#xff0c;结合…...

【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【上篇】

【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【上篇】 一、TFLM是什么&#xff1f;二、TFLM开源项目2.1 下载TFLM源代码2.2 TFLM基准测试说明2.3 TFLM基准测试命令 三、TFLM初步体验3.1 PC上运行Keyword基准测试3.2 PC上运行Person detection基准测试3.3 No module nam…...

第三方供应商不提供API接口?教你四步破解集成难题

API开放需求 在企业数字化转型过程中&#xff0c;异构系统之间的连接是信息化阶段不可或缺的一环。通过应用API&#xff0c;企业能够实现不同系统、平台和应用之间的数据交换与功能调用&#xff0c;从而形成端到端的业务流程协同。然而&#xff0c;很多企业在集成第三方供应商…...

WebAssembly 为什么能提升性能,怎么使用它 ?

文章目录 简介&#xff1a;起源&#xff1a;前端性能提升历史JIT&#xff08;Just-In-Time&#xff09;编译器(即时编译) 为什么需要WebAssembly&#xff1a;WebAssembly能做什么&#xff1a;经常说WASM的性能高&#xff0c;为什么高&#xff1f;&#xff1f;使用方法:Emscript…...

golang学习笔记13-函数(二):init函数,匿名函数,闭包,defer

注&#xff1a;本人已有C&#xff0c;C,Python基础&#xff0c;只写本人认为的重点。 这个知识点基本属于go的特性&#xff0c;比较重要&#xff0c;需要认真分析。 一、init函数 每个文件都可以定义init函数&#xff0c;它会在main函数执行前被调用&#xff0c;无论它的定义…...

HAproxy,nginx实现七层负载均衡

环境准备&#xff1a; 192.168.88.25 &#xff08;client&#xff09; 192.168.88.26 &#xff08;HAproxy&#xff09; 192.168.88.27 &#xff08;web1&#xff09; 192.168.88.28 (web2) 192.168.88.29 &#xff08;php1&#xff09; 192.168.88.30…...

ps aux | grep smart_webrtc这条指令代表什么意思

这条指令是在Linux系统中使用的命令&#xff0c;它的含义是列出所有正在运行的进程&#xff0c;并通过grep命令筛选出包含"smart_webrtc"关键字的进程。 具体解释如下&#xff1a; ps 是一个用于报告当前系统进程状态的命令。aux 是ps命令的选项&#xff0c;其中&a…...

第十三届蓝桥杯真题Python c组D.数位排序(持续更新)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;蓝桥杯关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 问题描述 小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。…...

【RabbitMQ】RabbitMq消息丢失、重复消费以及消费顺序性的解决方案

RabbitMq消息丢失主要是有三种情况&#xff1a;生产者消息未发送到服务端、服务端消息没有做持久化导致丢失、消费端未收到消息。解决方案依次如下&#xff1a; 开启事务或使用确认机制。对于一些重要的消息&#xff0c;生产者可以开启事务&#xff0c;确保消息发送成功后再提…...

海陆钻井自动化作业机器人比例阀放大器

海陆钻井自动化作业机器人是现代海洋石油勘探与钻井领域的关键装备&#xff0c;它通过自动化和无人化技术显著提高了钻井效率和安全性。海陆钻井自动化作业机器人主要用于在海上和陆地的钻井平台上进行自动化、无人化的一体化作业。这种设备能够自动切换钻杆&#xff0c;极大地…...

golang学习笔记19-面向对象(一):面向对象的引入

注&#xff1a;本人已有C&#xff0c;C,Python基础&#xff0c;只写本人认为的重点。 这节开始就是面向对象的内容了&#xff0c;为方便复用结构体等类型&#xff0c;本人定义了一个utils包&#xff0c;用于定义这些类型&#xff0c;之后的文章也会用到&#xff0c;希望读者注意…...

【从零开始实现stm32无刷电机FOC】【实践】【7.1/7 硬件设计】

目录 stm32电路磁编码器电路电机驱动电路电流采样电路电机选择本文示例硬件说明 为了承载和验证本文的FOC代码工程&#xff0c;本节设计了一个简易的三相无刷电机 硬件套件&#xff0c;主控采用非常常用的stm32f103c8t6单片机&#xff0c;电机编码器采用MT6701&#xff0c;电机…...

unix中父进程如何获取子进程的终止状态

一、前言 本文将介绍在unix系统中&#xff0c;父进程如何获取子进程的终止状态。本文主要围绕如下函数展开&#xff1a; 1.wait 2.waitpid 3.waitid 4.wait3、wait4 在讨论这些函数前&#xff0c;先介绍一个进程从创建到释放子进程的过程。 二、子进程的创建以及终止 在unix…...

【ESP 保姆级教程】小课设篇 —— 案例:20240505_基于esp01s的局域网控制灯

忘记过去&#xff0c;超越自己 ❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2024-09-30 ❤️❤️ 本篇更新记录 2023-09-30 ❤️&#x1f389; 欢迎关注 &#x1f50e;点赞 &#x1f44d;收藏 ⭐️留言&#x1f4dd;&#x1f64…...

思科路由器远程管理保姆级教程:从IP配置到Telnet/SSH登录全流程(避坑line vty和密码设置)

思科路由器远程管理全流程实战指南&#xff1a;从基础配置到安全登录 刚接触思科设备时&#xff0c;最让人头疼的莫过于那一连串看似晦涩的命令行操作。记得我第一次尝试配置路由器远程访问时&#xff0c;明明按照教程一步步操作&#xff0c;却始终无法通过Telnet连接&#xff…...

STM32CubeMX实战:用高级定时器TIM1实现带刹车功能的互补PWM输出(F4系列)

STM32CubeMX实战&#xff1a;用高级定时器TIM1实现带刹车功能的互补PWM输出&#xff08;F4系列&#xff09; 在电机控制、电源管理等工业应用中&#xff0c;硬件级的保护机制往往比软件响应更加可靠。STM32F4系列的高级定时器TIM1提供的互补PWM输出与刹车功能&#xff0c;正是为…...

APK Installer完整指南:在Windows上快速安装Android应用的终极方案

APK Installer完整指南&#xff1a;在Windows上快速安装Android应用的终极方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上轻松安装An…...

芯片验证工程师的思维模式:从职业本能到生活与管理的利器

1. 从“找茬”到“共生”&#xff1a;一位芯片验证工程师的职业心路 “今天又抓了几个bug&#xff1f;” 这可能是我们验证工程师之间最常听到的问候语&#xff0c;其频率仅次于“咖啡机在哪”。十多年前&#xff0c;当我读到那篇关于“Bug是否侵扰了生活”的专栏时&#xff0…...

如何通过 Pretty TypeScript Errors 提升开发效率:下载量激增背后的成功秘诀 [特殊字符]

如何通过 Pretty TypeScript Errors 提升开发效率&#xff1a;下载量激增背后的成功秘诀 &#x1f525; 【免费下载链接】pretty-ts-errors &#x1f535; Make TypeScript errors prettier and human-readable in VSCode &#x1f380; 项目地址: https://gitcode.com/gh_mi…...

从零到一:使用DaVinci Developer进行AUTOSAR SWC设计与ECU集成

1. 认识AUTOSAR与DaVinci Developer工具 第一次接触汽车电子开发的朋友&#xff0c;可能会被AUTOSAR这个术语吓到。其实它就像汽车软件界的"普通话"——各家厂商用统一的标准交流&#xff0c;避免出现"鸡同鸭讲"的情况。而DaVinci Developer就是Vector公司…...

谷歌seo搜索引擎优化教程有吗?资深SEO总结的15个高效提速工具

很多企业主每年在独立站开发上投入超过 10 万人民币&#xff0c;但网站上线半年&#xff0c;每天的自然访问量依然是个位数。面对“谷歌seo搜索引擎优化教程有吗&#xff1f;”这种疑问&#xff0c;行业内的真实情况是&#xff1a;绝大部分公开课都在讲十年前的套路&#xff0c…...

NBTExplorer深度指南:掌握Minecraft数据编辑的完整解决方案

NBTExplorer深度指南&#xff1a;掌握Minecraft数据编辑的完整解决方案 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer NBTExplorer是一款专为Minecraft游戏数据设…...

从Concur到特斯拉:为什么伟大产品始于“丑陋”的1.0版本

1. 从一笔74亿美元的收购案说起&#xff1a;为什么别急着给1.0产品判死刑 前几天翻看一些旧资料&#xff0c;看到一篇2014年的行业评论&#xff0c;讲的是德国软件巨头SAP以74亿美元的天价&#xff0c;收购了一家名叫Concur的西雅图公司。当时很多人觉得不可思议&#xff0c;Co…...

SAP CAP集成RAG架构实战:基于HANA Cloud与AI Core的企业级AI应用开发

1. 项目概述&#xff1a;当企业级SAP CAP遇上生成式AI如果你是一位SAP开发者&#xff0c;或者正在用SAP Cloud Application Programming Model (CAP) 构建企业级应用&#xff0c;最近可能被一个词刷屏了&#xff1a;RAG。没错&#xff0c;就是检索增强生成。当严谨、结构化、流…...