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; } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Java中的Set接口实现类HashSet和LinkedHashSet详解
这篇文章主要介绍了Java中的Set接口实现类HashSet和LinkedHashSet详解,Set接口和java.util.List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了,需要的朋友可以参考下2024-01-01如何在SpringBoot+Freemarker中获取项目根目录
这篇文章主要介绍了如何在SpringBoot+Freemarker中获取项目根目录的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-10-10SpringBoot中@EnableAsync和@Async注解的使用小结
在SpringBoot中,可以通过@EnableAsync注解来启动异步方法调用的支持,通过@Async注解来标识异步方法,让方法能够在异步线程中执行,本文就来介绍一下,感兴趣的可以了解一下2023-11-11
最新评论