Java代码实现简单酒店管理系统
作者:T何必当初 发布时间:2023-11-21 03:38:57
标签:java,酒店,管理系统
本文实例为大家分享了Java实现简单酒店管理系统的具体代码,供大家参考,具体内容如下
为某个酒店编写程序:酒店管理系统,模拟订房、退房和打印所有房间状态等功能
1.该系统的用户是:酒店前台
2.酒店使用一个二维数组来模拟”Room[][] rooms"
3.酒店中的每一个房间应该是一个对象:Room
4.每一个房间应该有:房间编号、房间类型、房间是否空闲
5.一同应该对外提供的功能:
订房:用户输入房间编号来订房
退房:用户输房间编号来退房
查看所有房间状态:用户输入指定的指令来查看
房间类
//酒店的房间类
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;
}
@Override
public String toString() {
return "["+no+","+type+","+(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;
}
}
酒店类
//酒店类
public class Hotel {
//创建二维数组存放房间
private Room[][] rooms;
//通过构造方法给酒店盖房间,即二维数组的空间大小
public Hotel() {
//一共有几层,每层的房间类型是什么,每个房间的编号是什么
//这里先写死,一共3层,1层单人间,2层标准间,3层总统套房
//本系统支持的房间编号:
//1楼:101 102 103 104 105...110
//2楼:201 202 203 204 205...210
//3楼:301 302 303 304 305...310
//3层楼,每层10个房间,注:此时还是空的,即空数组,还没赋值
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);//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++) {
System.out.print("第" + (i + 1) + "层: ");
for (int j = 0; j < rooms[i].length; j++) {
//输出每层的所有房间
//System.out.print(rooms[i][j]+" ");
Room r = rooms[i][j];
System.out.print(r.toString()+" ");
}
System.out.println();//换行输出每层的房间
}
}
//订房,将订房的房间对象中的status修改为flase,即占用
public void order(int n){
//例:205 205/100-1==1 205%100-1==4 即数组rooms[1][4]
Room r = rooms[n/100-1][n%100-1];
//修改为占用
r.setStatus(false);
}
//退房,跟订房同理,只需将status修改为true即可
public void exit(int n){
Room r = rooms[n/100-1][n%100-1];
r.setStatus(true);
}
}
酒店管理系统的实现类
import java.util.Scanner;
//测试类
public class HotelMgtSystem {
/**
* 为某个酒店编写程序:酒店管理系统,模拟订房、退房和打印所有房间状态等功能
* 1.该系统的用户是:酒店前台
* 2.酒店使用一个二维数组来模拟”Room[][] rooms"
* 3.酒店中的每一个房间应该是一个对象:Room
* 4.每一个房间应该有:房间编号、房间类型、房间是否空闲
* 5.一同应该对外提供的功能:
* 订房:用户输入房间编号来订房
* 退房:用户输房间编号来退房
* 查看所有房间状态:用户输入指定的指令来查看
*/
public static void main(String[] args) {
//创建酒店对象
Hotel h = new Hotel();
Scanner sc = new Scanner(System.in);
//提示用户输入的房间编号信息
System.out.println("本系统支持的房间编号:");
System.out.println("1楼: 101 102 103 104 105...110");
System.out.println("2楼: 201 202 203 204 205...210");
System.out.println("3楼: 301 302 303 304 305...310");
//构建主界面
System.out.println("----------欢迎进入酒店管理系统----------");
while(true){
System.out.println("1 订房");
System.out.println("2 退房");
System.out.println("3 查看所有房间的状态");
System.out.println("4 退出系统");
System.out.println("请输入你的选择:(按center键确认)");
int n = sc.nextInt();
//实现选择的功能
switch(n){
case 1:
System.out.println("请输入订房的编号:");
h.order(sc.nextInt());
System.out.println("恭喜订房成功!\n");
break;
case 2:
System.out.println("请输入退房的编号:");
h.exit(sc.nextInt());
System.out.println("恭喜退房成功!\n");
break;
case 3:
System.out.println("所有房间的状态信息如下所示:");
h.print();
break;
case 4:
System.out.println("系统正在退出中......");
System.out.println("\n系统已退出,欢迎下次光临!");
System.exit(0);//结束JVM虚拟机的运行
default:
System.out.println("指令输入有误,请重新输入!");
break;
}
}
}
}
来源:https://blog.csdn.net/weixin_54702911/article/details/121544542
0
投稿
猜你喜欢
- instanceof判断某个对象是否是某个类的实例或者某个类的子类的实例。它的判断方式大概是这样的:public<T> bool
- 1.创建一个线程Java操作线程最核心的类就是Thread类创建线程有很多方法,下面我们写一个Mythread类继承 Thread 类重写r
- Java 15 在 2020 年 9 月发布,虽然不是长久支持版本,但是也带来了 14 个新功能,这些新功能中有不少是十分实用的。Java
- 前言枚举在java里也算个老生长谈的内容了,每当遇到一组需要类举的数据时我们都会自然而然地使用枚举类型:public enum Color
- 您已经看到很多包含视频内容的应用程序,比如带有视频教程的食谱应用程序、电影应用程序和体育相关的应用程序。您是否想知道如何将视频内容添加到您的
- 1.map遍历快速实现边距,文字自适应改变大小Container( // padding: EdgeI
- Spring Cloud Gateway(以下简称 SCG)做为网关服务,是其他各服务对外中转站,通过 SCG 进行请求转发。在请求到达真正
- 本文为大家分享了JAVA语言课程设计:连连看小游戏,供大家参考,具体内容如下1.设计内容界面中有5*10的界面,图中共有6种不同的图片,每两
- Android版本更新实例详解1、导入xutils的jar包 2、在AndroidManifest.xml中添加权限 3、选择下载的路径,和
- 错误处理到目前为止,我们都没怎么介绍onComplete()和onError()函数。这两个函数用来通知订阅者,被观察的对象将停止发送数据以
- 引言在项目中,时间的使用必不可少,而java 8之前的时间api Date和Calander等在使用上存在着很多问题,于是,jdk1.8引进
- 一、JDBC简介JDBC是连接java应用程序和数据库之间的桥梁。什么是JDBC?Java语言访问数据库的一种规范,是一套API。JDBC
- 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1)
- typora-copy-images-to: ./一键清除maven仓库中下载失败的jar包maven是一款非常优秀的项目管理工具,特别是其
- Java 使用IO流实现大文件的分割与合并文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一
- Java 2D API通过扩展抽象窗口工具箱(AWT),为Java程序提供了二维图像,文本和图形的功能。这个复杂的渲染包支持线形图像,文本和
- 本文实例为大家分享了Java打印指定年月日历的具体代码,供大家参考,具体内容如下日历如下:程序如下://打印指定年月的日历public cl
- 前言悬浮窗是一种比较常见的需求。例如把视频通话界面缩小成一个悬浮窗,然后用户可以在其他界面上处理事情。本文给出一个简单的应用内悬浮窗实现。可
- 概述: 当希望能直接在数据库语言中只检索符合条件的记录,不需要再通过程序对其做处理时,SQL语句分页
- 一、什么是热部署?热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。二、什么是SpringBoot热部署?SpringBoot