java实现简单的控制台酒店管理系统

发布时间:2024-11-22 07:36

利用智能家居系统,实现远程控制和能源管理 #生活知识# #节约生活# #节能装修#

要求如下:

为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。 1、该系统的用户是:酒店前台 2、酒店中所有的房间使用一个二维数组来模拟。 3、酒店中的每一个房间应该是一个java对象:Room 4、每一个房间Room应该有:房间编号、房间类型属性、房间是否空闲 5、系统应该对外提供的功能: 可以预定房间:用户输入房间编号,订房 可以退房:用户输入房间编号,退房 可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态 123456789

实现:

在实现的时候运用了面向对象的思想
定义了三个类,分别是:
Room表示房间,以及对房间的修改
Hotel表示酒店,以及服务员的操作
HotelMgtSystem表示测试程序

Room类

package array.test02; //酒店的房间 public class Room { //房间编号 /** * 101 102 103 ··· * 201 202 203 ··· * 301 302 303 ··· ··· **/ private int no; //房间类型:标准间、单人间,双人间,大床房,总统套房 private String type; //房间状态(是否空闲) //true表示空闲,可以预定 //false表示占用,不可被预定 private boolean status; //构造方法// public Room() { } public Room(int no, String type, boolean status) { this.no = no; this.type = type; this.status = status; } ///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; } //idea自动生成的boolean类型的get名是:isXXX(),不喜欢可以自己修改为getXXX() /*public boolean isStatus() { return status; }*/ public boolean getStatus() { return status; } public void setStatus(boolean status) { this.status = status; } //equals方法重写,它是用来比较两个对象是否相等的 //至于怎么比较,自己定义, public boolean equals(Object obj){ if(obj==null || !(obj instanceof Room)){ return false; } if(this==obj) return true; Room room=(Room)obj; return this.no==room.getNo()&&this.type==room.type;//当前房间的编号==传过来的房间对象的编号?? } //toString方法重写,它是用来把java对象转换成字符串形式的 //怎么转,转换成什么格式,自己规定 public String toString(){ return "["+no+","+type+","+(status?"空闲":"占用")+"]"; } }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Hotel类

package array.test02; /** * 酒店对象,酒店中有二维数组,二维数组模拟大厦的房间 * */ public class Hotel { private Room[][] rooms; //盖楼通过构造方法来盖楼 public Hotel() { /** * 一共有几层楼,每层的房间类型是什么,每个房间的编号是多少 * 假如一共有三层,一层单人间,二层标准间,三层总统套房 * 101 102 103 ··· * 201 202 203 ··· * 301 302 303 ··· */ 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); } 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[i].length;j++){ System.out.print(rooms[i][j]+" "); } System.out.println(); } } //订房方法,调用此方法时需要传递一个房间编号过来,这个房间编号是前台小姐姐输入的。 public void order(int roomNo){ /** * 订房最主要的是将房间对象的status修改为false * Room对象的status修改为false * 假设房间编号为207(下标是rooms[1][6]) * 通过房间编号验算处下标,获取房间对象 */ Room room=rooms[roomNo/100-1][roomNo%100-1]; if(room.getStatus()==true){ //修改房间状态为占用 room.setStatus(false); System.out.println("订房成功, 您的房间编号为:"+room.getNo()); } else{ System.out.println("该房间已经被预定,请您看看其他房间吧!"); } } public void exit(int roomNo){ Room room=rooms[roomNo/100-1][roomNo%100-1]; if(room.getStatus()==false){ //修改房间状态为空闲 room.setStatus(true); System.out.println(room.getNo()+",退房成功!"); } else if (room.getStatus()==true){ System.out.println("请勿重复退订!"); } } }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

测试类:

package array.test02; import java.util.Scanner; /**为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。 * 1、该系统的用户是:酒店前台 * 2、酒店中所有的房间使用一个二维数组来模拟。 * 3、酒店中的每一个房间应该是一个java对象:Room * 4、每一个房间Room应该有:房间编号、房间类型属性、房间是否空闲 * 5、系统应该对外提供的功能: * 可以预定房间:用户输入房间编号,订房 * 可以退房:用户输入房间编号,退房 * 可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态 **/ public class HotelMgtSystem { public static void main(String[] args) { /* //创建酒店对象 Hotel hotel=new Hotel(); //打印房间状态 hotel.print();*/ System.out.println("欢迎使用酒店管理系统,请认真阅读以下使用说明"); System.out.println("请输入对应的功能编号来选择相应功能:"); System.out.println("【1】表示查看房间列表"); System.out.println("【2】表示订房"); System.out.println("【3】表示退房"); System.out.println("【0】退出系统"); Scanner sc=new Scanner(System.in); Hotel hotel=new Hotel(); while(true){ int i=sc.nextInt(); if(i==1){ hotel.print(); System.out.println("请输入对应的功能编号来选择相应功能:"); } else if(i==2){ System.out.println("开始订房,请输入房间编号:"); int k=sc.nextInt(); hotel.order(k); System.out.println("请输入对应的功能编号来选择相应功能:"); } else if(i==3){ System.out.println("开始退房,请输入房间编号:"); int k=sc.nextInt(); hotel.exit(k); System.out.println("请输入对应的功能编号来选择相应功能:"); } else if(i==0){ System.out.println("感谢您的使用!"); return; } else{ System.out.println("输入错误,请重新输入:"); } } } }

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061

运行结果:
在这里插入图片描述

具体的就是这些,可能该系统还存在不足,欢迎评论区留言指出,让我们一起成长。

网址:java实现简单的控制台酒店管理系统 https://www.yuejiaxmz.com/news/view/188001

相关内容

基于java的健康管理系统设计与实现
基于java的饮食分享平台系统设计与实现
Java连锁洗衣店管理系统(开题+源码)
java家庭财务管理系统设计与实现(ssm)
酒店管理系统标准版酒店行业管理系统酒店客房管理系统
基于Java的旧物回收管理系统的设计与实现
基于JAVA的家庭财务管理系统的设计与实现毕业论文
格力空调智能控制:Java编程实现家居自动化系统
java健康饮食管理系统(ssm)
基于微信小程序的个人账本的设计与实现/个人财务管理系统/基于java的财务管理系统

随便看看