使用java实现了一个简单的酒店管理系统,可实现的功能:
控制台输入房间号、查询房间信息、订房、退房、退出系统提示、错误提示等。
主方法块:
package com.bjpowercode.javase.array;
import java.util.Scanner;
/**
* 为某酒店编写酒店管理系统,模拟订房、退房、打印所有房间状态等功能
* 1.该系统的用户是:酒店前台
* 2.酒店中所有的房间使用一个二维数组类模拟
* 3.酒店中每一个房间应该是一个java对象:Room
* 4.每一个房间Room应该有:房间编号、房间类型属性、房间是否空闲
* 5.系统应该对外提供的功能:
* 可以预定房间:用户输入房间编号,订房
* 可以退房:用户输入房间编号,退房
* 可以查看所有房间的状态:用户输入某个指令可以查看房间状态。
*/
public class HomeWoek02 {
public static void main(String[] args) {
//创建酒店对象
HomeWork02Hotel hotel = new HomeWork02Hotel();
//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 s = new Scanner(System.in);
while (true){
System.out.print("请输入功能编号:");
int i = s.nextInt();
if (i == 1){
//查看房间列表
hotel.print();
}else if (i == 2){
//订房
System.out.print("请输入订房编号:");
int roomNo = s.nextInt();//输入房间编号
hotel.order(roomNo);
}else if (i == 3){
//退房
System.out.print("请输入退房编号:");
int roomNo = s.nextInt();//输入房间编号
hotel.exit(roomNo);
}else if (i == 0){
//退出系统
System.out.println("再见,欢迎下次再来!");
return;
}else {
//出错
System.out.println("输入功能编号有误,请重新输入!");
}
}
}
}
创建酒店对象:
package com.bjpowercode.javase.array;
/**
* 酒店对象,酒店中有二维数组,二维数组模拟大厦
*/
public class HomeWork02Hotel {
//二维数组模拟大厦房间
private HomeWork02Room[][] room;
//盖楼通过构造方法来盖楼
public HomeWork02Hotel() {
//一共有几次,每层的房间类型是什么,每个房间编号是什么
//一共三层,一层单人间,二层标准间,三层总统套
room = new HomeWork02Room[3][10];//三行十列,三层楼,每层十个房间。
//创建30个room对象放到数组当中
//使用二维数组遍历
for (int i = 0; i < room.length; i++) {
for (int j = 0; j < room[i].length; j++) {
if (i == 0) {
room[i][j] = new HomeWork02Room((i + 1) * 100 + j + 1, "单人间", true);
} else if (i == 1) {
room[i][j] = new HomeWork02Room((i + 1) * 100 + j + 1, "标准间", true);
} else if (i == 2){
room[i][j] = new HomeWork02Room((i + 1) * 100 + j + 1, "总统套", true);
}
}
}
}
//在酒店对象上提供一个打印房间列表的方法
public void print(){
//打印所有房间状态,就是遍历二维数组
for (int i = 0; i < room.length; i++) {
for (int j = 0; j < room[i].length; j++) {
HomeWork02Room room2 = room[i][j];
System.out.print(room2);
}
//换行
System.out.println();
}
}
//订房方法
public void order(int RoomNo){
//订房最主要的是将房间对象的status修改为false
HomeWork02Room room3 = room[RoomNo / 100 - 1][RoomNo % 100 -1];
room3.setRoomStatus(false);
System.out.println(RoomNo + "已定房!");
}
//退房方法
public void exit(int RoomNo){
//退房就是将房间对象的status修改为true
HomeWork02Room room4 = room[RoomNo / 100 - 1][RoomNo % 100 - 1];
room4.setRoomStatus(true);
System.out.println(RoomNo + "已退房!");
}
}
创建房间对象:
package com.bjpowercode.javase.array;
import java.util.Objects;
/**
* 酒店房间
*/
public class HomeWork02Room {
//房间编号
private int roomNo;
//房间类型:标准间、单人间、总统套
private String roomType;
//房间状态:true表示空闲可以被预定。
// false表示已经被预定过了
private boolean roomStatus;
//构造无参方法
public HomeWork02Room() {
}
//构造有参方法
public HomeWork02Room(int roomNo, String roomType, boolean roomStatus) {
this.roomNo = roomNo;
this.roomType = roomType;
this.roomStatus = roomStatus;
}
//set and get方法
public int getRoomNo() {
return roomNo;
}
public void setRoomNo(int roomNo) {
this.roomNo = roomNo;
}
public String getRoomType() {
return roomType;
}
public void setRoomType(String roomType) {
this.roomType = roomType;
}
public boolean isRoomStatus() {
return roomStatus;
}
public void setRoomStatus(boolean roomStatus) {
this.roomStatus = roomStatus;
}
//重写方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
HomeWork02Room room = (HomeWork02Room) o;
return roomNo == room.roomNo &&
roomStatus == room.roomStatus &&
roomType.equals(room.roomType);
}
@Override
public int hashCode() {
return Objects.hash(roomNo, roomType, roomStatus);
}
@Override
public String toString() {
return "{" +
"房间号=" + roomNo +
", 房间类型=" + roomType +
", 房间状态=" + (roomStatus ? "空闲" : "占用") +
"}";
}
//测试程序
/**
public static void main(String[] args){
HomeWork02Room room = new HomeWork02Room(101,"总统套",true);
System.out.println(room.toString());
HomeWork02Room room2 = new HomeWork02Room(101,"总统套",false);
System.out.println(room2);
}
*/
}
运行结果展示: