文章目录
酒店管理系统
-
为某个酒店编写程序:酒店管理系统,模拟订房,退房,打印所有房间状态等功能
- 1、该系统的用户是酒店的前台
- 2、酒店当中所有的房间使用一个二维数组来模拟
- 3、酒店当中的每一个房间应该是一个java对象:Room
- 4、每一个房间Room应该有:房间编号,房间类型属性,房间是否空闲
Hotel.java
/**
* Created with IntelliJ IDEA.
* Description:酒店
* User: Lenovo
* Date: 2022-07-02
* Time: 20:10
*/
public class Hotel {
/**
* 二维数组,模拟大厦所有的房间
* @param args
*/
private Room[][] rooms;
public Hotel(){
//通过构造方法来盖楼层
rooms=new Room[3][10];//动态初始化,里面每个元素都还是null
//创建30个room对象,放到数组当中
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{
rooms[i][j]=new Room((i+1)*100+(j+1),"总统套房",true);
}
}
}
}
public void print(){
for(int i=0;i<rooms.length;i++){
for(int j=0;j<rooms.length;j++){
Room room=rooms[i][j];
System.out.println(room);
}
}
}
/**
* 订房方法
* @param roomNo 调用此方法需要传递一个房间编号过来
* 这个房间编号是前台小姐姐输入的
*/
public void order(int roomNo){
//订房主要是将房间对象的status修改为false
Room room=rooms[roomNo/100-1][roomNo%100-1];
//把房间状态修改为占用
room.setStatus(false);
System.out.println(roomNo+"订房成功!");
}
/**
* 退房
* @param roomNo
*/
public void exit(int roomNo){
Room room=rooms[roomNo/100-1][roomNo%100-1];
room.setStatus(true);
System.out.println(roomNo+"已经退房!");
}
}
HotelSystem.java
/**
* Created with IntelliJ IDEA.
* Description:
* User: Lenovo
* Date: 2022-07-03
* Time: 18:01
*/
public class HotelSystem {
public static void main(String[] args) {
System.out.println("欢迎使用酒店管理系统,请认真阅读以下说明:");
System.out.println("请输入对应的功能编号:【1】查看房间列表。【2】订房。【3】退房。【0】退出系统");
Scanner s=new Scanner(System.in);
Hotel hotel=new Hotel();
while(true){
System.out.print("请输入功能编号:");
int i=s.nextInt();
if(i==1){
//查看房间列表
hotel.print();
}else if(i==2){
//订房
System.out.print("请输入要订房的房间号码:");
int numNo=s.nextInt();
hotel.order(numNo);
}else if(i==3){
//退房
System.out.print("请输入要退房的房间号码:");
int numNo=s.nextInt();
hotel.exit(numNo);
}else if(i==0){
//退出系统
System.out.print("已退出系统");
return;
}else {
System.out.print("输入错误,请重新输入:");
}
}
}
}
Room.java
/**
* Created with IntelliJ IDEA.
* Description:酒店的房间
* User: Lenovo
* Date: 2022-07-02
* Time: 20:48
*/
import java.util.Objects;
import java.util.Scanner;
/**
* 酒店的房间
*/
public class Room {
/**
* 房间编号:int no
* 1楼:101 102 103...
* 2楼:201 202 203...
* 3楼:301 302 303...
* ...
*/
private int no;
/**
* 房间类型:标准间,单人间,总统套房
* String type
*/
private String type;
/**
* 房间状态
* true:表示空闲,房间可以被预定
* false:表示占用,房间不能被预定
* boolean status
*/
private boolean status;
//构造方法
public Room(int no, String type, boolean status) {
this.no = no;
this.type = type;
this.status = status;
}
public Room() {
}
//set和get方法
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
//equals方法重写
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Room room = (Room) o;
return no == room.no && status == room.status && Objects.equals(type, room.type);
}
@Override
public int hashCode() {
return Objects.hash(no, type, status);
}
//toString方法重写
@Override
public String toString() {
return "[" + "房间编号:" + no + ", 房间类型:'" + type + ", 房间状态:" + status + ']';
}
}