用java实现简易酒店管理系统
显示“菜单” 选项:1.查房 2.订房 3.退房 4.退出系统
当输入1时,显示如图的每个房间的房间号以及入住状态
当输入2时,显示“欢迎进入订房功能”
当输入3时,显示“欢迎进入退房功能”
当输入4时,显示“退出系统”
```package day0115;
import java.util.Scanner;
/**
* 酒店订房系统
* 当输入1时,启动查房功能,假设酒店有5层楼,每层楼有9个房间,初始的时候,酒店没有住人,入住状态都是empty(空,表示没人住)。
当输入2时,启动订房功能,1. 如果输入的房间号 在酒店不存在,就不允许订房 2. 如果房间未被人预订,提示可以订房 3.如果房间已被订过,提示订房失败;
当输入3时,启动退房功能. 1. 输入房间号,如果输入的房间号在酒店不存在,就不允许退房 2. 如果对应的房间号入住状态是"empty"提示用户,该房间无人预定,无需退房 3. 如果有人预定,提示输入姓名 4.
用输入的姓名和房间预定的姓名进行比较,如果相同,成功退房(将姓名修改为empty)*
*当输入4时,退出本系统
* @author 浮城
*/
public class RoomsTask {
public static void main(String[] args) {
// 定义一个二维数组,用来存放每个房间的入住状态.
// String[5][9] 表示,酒店有5层楼,每层楼有9个房间
String[][] rooms = new String[5][9];
// 将所有的房间入住状态设置为"empty"
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
rooms[i][j] = "empty";
}
}
System.out.println(" ===~~~欢迎进入品如酒店管理系统~~~===");
Scanner key = new Scanner(System.in);
// 死循环: 让系统可以一直反复的执行,
out: while (true) {
// 提示用户输入指令
System.out.println("1.查房 2.订房 3.退房 4.退出系统");
// 输入指令
int con = key.nextInt();
// 根据指令去做相应的操作
switch (con) {
// 如果输入的是1 ,就做查房操作
case 1:
System.out.println("当前房间状态");
// i 表示行号(楼层)
// 遍历二维数组,输出房间号,以及房间的入住状态
for (int i = 0; i < rooms.length; i++) {
// j 表示列号(房间编号)
for (int j = 0; j < rooms[i].length; j++) {
// 使用i,j拼接房间号
System.out.print((i + 1) * 100 + (j + 1) + "\t");
}
System.out.println();
for (int j = 0; j < rooms[i].length; j++) {
// 获取二维数组的元素(房间的入住状态)并输出
System.out.print(rooms[i][j] + "\t");
}
System.out.println();
System.out.println("-----------------------------------------------------------------------");
}
break;
// 如果输入的是2 ,就做订房操作
case 2:
System.out.println("欢迎进入订房功能:");
System.out.println("请输入房间号:");
int num = key.nextInt();// 101
// 将房间号拆成行和列,如果输入的是101 拆成 0 0(二维数组中的位置)
if (num <= 100 || num > 509) {
System.out.println("你输入的房间号不存在");// 报错提示,应该是"数组越界"
} else {
int i = num / 100 - 1;
int j = num % 100 - 1;
// 先判断输入的房间号入住状态是否为"empty"
// 如果是"empty"说明房间没有人 可以预定
if (rooms[i][j].equals("empty")) {
// 输入姓名
System.out.println("请输入姓名:");
String name = key.next();
// 将对应位置上的房间入住状态修改为 name
rooms[i][j] = name;
System.out.println(name + "成功预定" + num + "号房间~");
} else {
System.out.println(num + "号房间已经被人预定了,订房失败~");
}
}
break;
// 如果输入的是3,就做退房操作
case 3:
System.out.println("欢迎进入退房功能:");
System.out.println("请输入你要退房的房间号");
// 接收输入的房间号
int num1 = key.nextInt();
if (num1 <= 100 || num1 > 509) {
System.out.println("你输入的房间号不存在");// 报错提示,应该是"数组越界"
} else {
// 判断房间是否有人入住 即判断房间是否是empty;先对输入的房间号其余 如101号在二维数组中的位置是[0][0]
int i1 = num1 / 100 - 1;
int j1 = num1 % 100 - 1;
if (rooms[i1][j1].equals("empty")) {
System.out.println("你输入的房间无人入住,无需退房");
} else {
System.out.println("请输入你的姓名");
String name = key.next();
// names[i1][j1] = name;
if (rooms[i1][j1].equals(name)) {
// 如果姓名一样,就可以退房,并将房间入住状态改成empty
rooms[i1][j1] = "empty";
// 将入住房间的名字清空
rooms[i1][j1] = null;
System.out.println(name + "已经退房成功");
} else {
System.out.println("你无权退房");
}
}
}
break;
// 如果输入的是4,就退出系统
case 4:
System.out.println("退出系统");
break out;
}
}
//关闭键盘扫描器
key.close();
}
}