用Java编写一个酒店管理程序实现查询房间功能、订房功能、退房功能、选择服务功能和结账功能
时间: 2023-12-28 17:05:41 浏览: 45
好的,我可以为您介绍一下这个酒店管理程序的设计思路。
首先,我们需要定义一个 Room 类来表示酒店的房间,该类应该包括以下属性:
- 房间号
- 房间类型(单人间、双人间等)
- 房间状态(已预订、已入住、空闲)
- 房间价格
接下来,我们需要定义一个 Hotel 类来表示酒店,该类应该包括以下属性和方法:
- rooms:一个 Room 数组,表示酒店的所有房间
- checkIn(roomNumber, customerName):将指定房间号的房间状态设置为“已入住”,并记录客人的姓名
- checkOut(roomNumber):将指定房间号的房间状态设置为“空闲”,并清空客人姓名
- book(roomNumber):将指定房间号的房间状态设置为“已预订”
- getService(roomNumber, serviceType):为指定房间号的客人添加指定类型的服务
- getRoom(roomNumber):返回指定房间号的房间对象
- getAvailableRooms():返回所有空闲的房间对象
- getTotalRevenue():返回酒店的总收入
最后,我们需要定义一个 UserInterface 类来实现用户界面,该类应该包括以下方法:
- displayMenu():显示程序菜单
- run():根据用户输入执行相应的操作
其中,run() 方法应该包括以下操作:
- 显示菜单
- 根据用户输入,执行相应的操作
- 循环执行以上两步,直到用户选择退出程序
具体的实现可以参考以下代码示例:
相关问题
Java编写一个酒店管理程序,实现下功能:查询功能订房功能退房功能选择服务功能和结账功能
下面是一个简单的 Java 酒店管理程序,实现了查询、订房、退房、选择服务和结账功能:
```java
import java.util.Scanner;
public class HotelManagementSystem {
private static Scanner scanner = new Scanner(System.in);
private static final int ROOM_COUNT = 10;
private static boolean[] rooms = new boolean[ROOM_COUNT];
public static void main(String[] args) {
while (true) {
System.out.println("欢迎使用酒店管理系统!");
System.out.println("请选择功能:");
System.out.println("1. 查询房间状态");
System.out.println("2. 订房");
System.out.println("3. 退房");
System.out.println("4. 选择服务");
System.out.println("5. 结账");
System.out.println("0. 退出系统");
int choice = scanner.nextInt();
switch (choice) {
case 1:
queryRoomStatus();
break;
case 2:
bookRoom();
break;
case 3:
checkoutRoom();
break;
case 4:
selectService();
break;
case 5:
checkout();
break;
case 0:
System.out.println("感谢使用酒店管理系统,再见!");
return;
default:
System.out.println("输入无效,请重新输入!");
break;
}
}
}
private static void queryRoomStatus() {
System.out.println("当前房间状态为:");
for (int i = 0; i < ROOM_COUNT; i++) {
System.out.print((i + 1) + "号房间:");
if (rooms[i]) {
System.out.println("已入住");
} else {
System.out.println("空闲");
}
}
}
private static void bookRoom() {
System.out.println("请输入要订房的房间号:");
int roomNumber = scanner.nextInt();
if (roomNumber < 1 || roomNumber > ROOM_COUNT) {
System.out.println("房间号输入无效!");
return;
}
if (rooms[roomNumber - 1]) {
System.out.println("该房间已入住!");
return;
}
rooms[roomNumber - 1] = true;
System.out.println("订房成功!");
}
private static void checkoutRoom() {
System.out.println("请输入要退房的房间号:");
int roomNumber = scanner.nextInt();
if (roomNumber < 1 || roomNumber > ROOM_COUNT) {
System.out.println("房间号输入无效!");
return;
}
if (!rooms[roomNumber - 1]) {
System.out.println("该房间未入住!");
return;
}
rooms[roomNumber - 1] = false;
System.out.println("退房成功!");
}
private static void selectService() {
System.out.println("请选择服务:");
System.out.println("1. 叫醒服务");
System.out.println("2. 帮助搬行李");
System.out.println("3. 订餐服务");
int serviceNumber = scanner.nextInt();
switch (serviceNumber) {
case 1:
System.out.println("已为您安排叫醒服务!");
break;
case 2:
System.out.println("已为您安排搬运服务!");
break;
case 3:
System.out.println("已为您安排订餐服务!");
break;
default:
System.out.println("输入无效,请重新输入!");
break;
}
}
private static void checkout() {
double totalCost = 0;
for (int i = 0; i < ROOM_COUNT; i++) {
if (rooms[i]) {
totalCost += 100; // 假设每个房间的价格为 100 元
}
}
System.out.println("您的消费总额为:" + totalCost + " 元");
System.out.println("谢谢光临,欢迎下次再来!");
for (int i = 0; i < ROOM_COUNT; i++) {
rooms[i] = false;
}
}
}
```
程序中使用了一个 boolean 数组 `rooms` 来表示每个房间是否被占用,其中 `rooms[i]` 表示第 i+1 个房间是否被占用。在订房和退房时,只需要修改相应房间的状态即可。在选择服务和结账时,根据房间状态来计算消费总额。
Java编写一个酒店管理程序,实现下功能:查询功能订房功能退房功能选择服务功能和结账功能并建立测试类
好的,以下是我为您编写的Java酒店管理程序,实现了查询、订房、退房、选择服务和结账等功能,并且还包括了一个测试类:
```java
import java.util.Scanner;
public class HotelManagementSystem {
public static void main(String[] args) {
Hotel hotel = new Hotel(); // 创建酒店实例
Scanner input = new Scanner(System.in); // 创建Scanner对象
while (true) {
System.out.println("欢迎使用酒店管理系统,请输入对应数字进行操作:");
System.out.println("1.查询房间信息 2.订房 3.退房 4.选择服务 5.结账 6.退出系统");
int choice = input.nextInt(); // 获取用户输入的操作选项
switch (choice) {
case 1:
hotel.showRooms(); // 查询房间信息
break;
case 2:
hotel.bookRoom(); // 订房
break;
case 3:
hotel.checkOut(); // 退房
break;
case 4:
hotel.chooseService(); // 选择服务
break;
case 5:
hotel.bill(); // 结账
break;
case 6:
System.out.println("欢迎下次再来!");
System.exit(0); // 退出系统
break;
default:
System.out.println("输入有误,请重新输入!");
}
}
}
}
class Hotel {
private Room[] rooms; // 房间数组
private int numOfRooms; // 房间数量
private int[] services; // 服务数组
private int numOfServices; // 服务数量
private int[] bill; // 账单数组
private int totalBill; // 总账单金额
public Hotel() {
// 初始化酒店信息
numOfRooms = 10;
rooms = new Room[numOfRooms];
for (int i = 0; i < numOfRooms; i++) {
rooms[i] = new Room(i + 1, "单人间", 100, false);
}
numOfServices = 3;
services = new int[numOfServices];
for (int i = 0; i < numOfServices; i++) {
services[i] = 0;
}
bill = new int[numOfServices];
totalBill = 0;
}
// 查询房间信息
public void showRooms() {
System.out.println("房间号\t类型\t价格\t是否空闲");
for (int i = 0; i < numOfRooms; i++) {
System.out.println(rooms[i].getRoomNumber() + "\t" + rooms[i].getType() + "\t" + rooms[i].getPrice() + "\t" + rooms[i].isAvailable());
}
}
// 订房
public void bookRoom() {
System.out.println("请输入要订的房间号:");
Scanner input = new Scanner(System.in);
int roomNum = input.nextInt();
if (roomNum < 1 || roomNum > numOfRooms) {
System.out.println("房间号输入有误!");
return;
}
if (rooms[roomNum - 1].isAvailable()) {
rooms[roomNum - 1].setAvailable(false);
System.out.println("订房成功!");
} else {
System.out.println("该房间已经被占用!");
}
}
// 退房
public void checkOut() {
System.out.println("请输入要退的房间号:");
Scanner input = new Scanner(System.in);
int roomNum = input.nextInt();
if (roomNum < 1 || roomNum > numOfRooms) {
System.out.println("房间号输入有误!");
return;
}
if (!rooms[roomNum - 1].isAvailable()) {
rooms[roomNum - 1].setAvailable(true);
System.out.println("退房成功!");
} else {
System.out.println("该房间没有人入住!");
}
}
// 选择服务
public void chooseService() {
System.out.println("请选择服务:");
System.out.println("1.早餐 2.叫醒服务 3.洗衣服务");
Scanner input = new Scanner(System.in);
int choice = input.nextInt();
if (choice < 1 || choice > numOfServices) {
System.out.println("服务选择有误!");
return;
}
System.out.println("请输入服务费用:");
int cost = input.nextInt();
services[choice - 1] = 1;
bill[choice - 1] = cost;
System.out.println("服务添加成功!");
}
// 结账
public void bill() {
System.out.println("房费:" + getRoomBill());
for (int i = 0; i < numOfServices; i++) {
if (services[i] == 1) {
totalBill += bill[i];
}
}
System.out.println("服务费:" + totalBill);
System.out.println("总费用:" + (getRoomBill() + totalBill));
// 清空账单信息
for (int i = 0; i < numOfServices; i++) {
services[i] = 0;
bill[i] = 0;
}
totalBill = 0;
}
// 计算房费
private int getRoomBill() {
int roomBill = 0;
for (int i = 0; i < numOfRooms; i++) {
if (!rooms[i].isAvailable()) {
roomBill += rooms[i].getPrice();
}
}
return roomBill;
}
}
class Room {
private int roomNumber; // 房间号
private String type; // 房间类型
private int price; // 房间价格
private boolean available; // 房间是否空闲
public Room(int roomNumber, String type, int price, boolean available) {
this.roomNumber = roomNumber;
this.type = type;
this.price = price;
this.available = available;
}
public int getRoomNumber() {
return roomNumber;
}
public String getType() {
return type;
}
public int getPrice() {
return price;
}
public boolean isAvailable() {
return available;
}
public void setAvailable(boolean available) {
this.available = available;
}
}
```
您可以将程序保存为HotelManagementSystem.java文件并编译运行。测试类已经在程序中包含,您可以根据需要进行修改。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)