java 控制台下酒店管理
### Java控制台下的酒店管理系统的实现 #### 项目背景与目标 本项目旨在为某酒店设计并实现一个基于Java的前台房间管理系统。该系统的主要功能是通过命令行接口(CLI)进行房间状态的查询、客人入住以及退房操作。通过在控制台输入特定的命令,用户可以轻松地对酒店房间进行管理,极大地简化了前台人员的工作流程。 #### 系统功能需求 根据项目需求,系统需支持以下核心功能: 1. **查询所有房间状态** (`search`):列出所有房间的当前状态,包括是否被占用等信息。 2. **客人入住** (`in <房间号> <客人姓名>`):将指定的客人安排入住到指定的房间。 3. **客人退房** (`out <房间号>`):完成指定房间的退房操作。 #### 实现细节 ##### 数据结构定义 为了存储和管理酒店的房间状态,本系统采用了一个二维数组 `String[][] rooms` 来表示所有房间的信息。其中,数组的行代表楼层编号,列代表每层楼的房间编号。每个元素存放着该房间的当前状态,如果是空字符串或 `null` 表示该房间为空闲状态;如果包含客人的姓名,则表示该房间已被占用。 ```java String[][] rooms = new String[10][20]; // 假设酒店共有10层楼,每层有20个房间 ``` ##### 主程序逻辑 主程序通过一个循环不断接收用户的输入,并根据输入的命令调用相应的处理函数。为了接收用户的输入,程序使用了 `java.util.Scanner` 类。 ```java Scanner sca = new Scanner(System.in); do { System.out.print("please input command: "); String str = sca.next(); if (str.equals("search")) { search(rooms); } else if (str.equals("in")) { int roomId = sca.nextInt(); String guestName = sca.next(); in(rooms, guestName, roomId); } else if (str.equals("out")) { int roomId = sca.nextInt(); out(rooms, roomId); } else if (str.equals("exit")) { break; } } while (true); ``` ##### 功能函数详解 1. **查询所有房间状态** (`search`) 此函数遍历整个 `rooms` 数组,并打印出每个房间的状态信息。如果房间为空,则输出 "EMPTY";否则输出客人的姓名。 ```java public static void search(String[][] rooms) { for (int i = 0; i < rooms.length; i++) { for (int j = 0; j < rooms[i].length; j++) { System.out.print(((i + 1) * 100 + j) + ":"); if (rooms[i][j] == null) { System.out.println("EMPTY"); } else { System.out.print(rooms[i][j]); } System.out.print("\t"); } System.out.print("\n"); } } ``` 2. **客人入住** (`in`) 接收房间号和客人姓名作为参数,检查房间是否已被占用。若房间空闲,则将客人姓名存入对应位置,并输出提示信息;若房间已占用,则输出错误提示信息。 ```java public static void in(String[][] rooms, String guestName, int roomId) { int i = roomId / 100 - 1; int j = roomId % 100 - 1; if (rooms[i][j] != null) { System.out.print("has people!"); return; } rooms[i][j] = guestName; System.out.print("入住成功"); } ``` 3. **客人退房** (`out`) 接收房间号作为参数,检查房间是否已被占用。若房间已被占用,则清空该位置并输出退房成功的提示信息;若房间为空,则输出错误提示信息。 ```java public static void out(String[][] rooms, int roomId) { int i = roomId / 100 - 1; int j = roomId % 100 - 1; if (rooms[i][j] == null) { System.out.println("房间未入住"); return; } System.out.println(rooms[i][j] + " 退房成功"); rooms[i][j] = null; } ``` #### 总结 本系统通过简单的命令行界面实现了基本的酒店房间管理功能。不仅能够满足酒店前台的基本需求,而且代码简洁明了,易于维护和扩展。未来还可以进一步添加更多高级功能,如房间预订、特殊服务请求等功能,以更好地适应实际应用场景的需求。
public class Exer05{
public static void main(String[] args){
String[][] rooms=new String[10][20];
Scanner sca = new Scanner(System.in);
do{
System.out.print("please input command:")
String str=sca.next();
if(str.equals("search")){
search(rooms);
}else if(str.equals("in")){
int roomId=sca.nextInt();
String guestName=sca.next()
in(rooms,guestName,roomId);
}else if(str.equals("out")){
int roomId=sca.nextInt();
out(rooms,roomId);
}else if(str.equals("exit")){
break;
}
}while(true);
}
public static void seach(String[][] rooms){
for(int i=0;i<rooms.length;i++)
{
for(int j=0;j<rooms[i].length;j++){
System.out.print(((i+1)*100+j)+":");
if(rooms[i][j]==null){
System.out.println("EMPTY");
}
- 小微距2014-11-05对于初学者还可以吧。使用。
- 粉丝: 2
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助