###Java面向对象实战: 模拟酒店管理系统
模拟酒店管理系统)
## 酒店管理系统
package com.manage.system;
/**
*测试类
*/
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("请输入相应的功能:【1】查询 【2】订房【3】退房 【4】退出系统");
Hotel hotel = new Hotel();
Room room = new Room();
Scanner sc = new Scanner(System.in);
while (true){
int a = sc.nextInt();
if(a == 1){
hotel.print();
}
else if(a == 2){
System.out.println("请输入你要预定的房间号:");
int no = sc.nextInt();
hotel.checkIn(no);
System.out.println("预定成功!" + room.getType());
}
else if(a ==3){
System.out.println("请输入你要退订的房间号:");
int no = sc.nextInt();
hotel.checkOut(no);
hotel.print();
System.out.println("推定成功!" );
}
else if(a == 4){
return;
}
}
}
}
package com.manage.system;
/**
* 创建酒店对象:
*
* */
public class Hotel {
//定义房间数组用来存储n个房间对象
Room[][] rooms;
//生成构造方法,初始化数据
public Hotel() {
//默认该酒店有三层,每层有五个房间
rooms = new Room[3][5];
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 );
}else if(i == 1){
rooms[i][j] = new Room((i + 1) * 100 +j +1 ,"大床房",true );
}
else if( i == 2){
rooms[i][j] = new Room((i + 1) * 100 +j +1 ,"豪华间",true );
}
}
}
}
//预定酒店
//假设预定的是205,
public void checkIn(int orderNo){
Room room = rooms[orderNo / 100 -1][orderNo % 100 -1];
room.setState(false);
}
//退房
public void checkOut(int orderNo){
Room room = rooms[orderNo / 100 -1][orderNo % 100 -1];
room.setState(true);
}
//打印信息
public void print(){
for (int i = 0; i <rooms.length ; i++) {
for (int j = 0; j <rooms[i].length ; j++) {
Room room = rooms[i][j];
System.out.println(room.toString());
}
System.out.println();
}
}
//有参的构造函数
public Hotel(Room[][] rooms) {
this.rooms = rooms;
}
}
package com.manage.system;
public class Room {
//房间编号
private int roomNo;
//房间类型
private String type;
//房间状态:true表示空闲,false表示占用
private boolean state;
//无参的构造函数
public Room() {
}
//有参的构造函数
public Room(int roomNo, String type, boolean state) {
this.roomNo = roomNo;
this.type = type;
this.state = state;
}
public int getRoomNo() {
return roomNo;
}
public void setRoomNo(int roomNo) {
this.roomNo = roomNo;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public boolean getState() {
return state;
}
public void setState(boolean state)
{
this.state = state;
}
//重写toString()方法用来将对象转换为字符串的形式输出
@Override
public String toString() {
return "[" + "房间编号->" + this.getRoomNo() + "\t" +
"房间类型->" + this.getType() + "\t" + "房间状态->" + (this.getState() ? "空闲": "占用") + "]";
}
//重写equals方法用来比较两个对象是否相等
public boolean equals(Object obj) {
if(obj == null || !(obj instanceof Room)) return false;
if(this == obj) return true;
Room room = (Room)obj;
if(this.roomNo == room.getRoomNo()) return true;
return false;
}
}