【Java】酒店管理系统

一 需求:

编写程序 模拟酒店管理系统 : 预订和退订以及查看所有房间

1 需要有一个酒店类

2 需要有一个房间类

3 需要有一个客户端类

public class Test {

}

二 分析:

客户端 :

1 先打印所有房间

2 等待用户输入,根据输入情况 判断是预订还是退订

3 等待用户输入房间号

4 调用酒店的 预订/退订方法 把房间号传入 完成预订/退订功能

5 完成之后,做出相应提示 , 然后再次打印所有房间

6 死循环 依次执行以上步骤

class Client{

}

酒店类 :

规模 : 五层,每层10个房间

其中 : 1,2 层为标准间

3,4 层为双人间

5层为豪华间

房间编号 : 1层 : 101, 102, ....110 , 2层 : 201,202...210 ... 以此类推

房间默认都为空闲

需要提供

预订房间方法 : 需要根据 房间编号 预订房间

如果该房间已经被预订了,需要提示

退订房间方法 : 需要根据 房间编号 退订房间

如果该房间没有被预订 需要提示

查看所有房间的方法 :

打印格式为 :

[101 标准间 占用] [102 标准间 空闲]....

[201 标准间 空闲] ......

[501 豪华间 空闲] .... [510 豪华间 占用]

三 代码实现

客户端(Client)

java 复制代码
package HotelSystem;

import java.util.Scanner;

public class Client {
public static void main(String[] args) {
	Hotel hotel=new Hotel();
	Scanner s=new Scanner(System.in);
	while (true) {
		System.out.println("请输入你要选择的功能: 1 查看房间  2 房间预订 3 退房  0 退出");
		int a=s.nextInt();
		switch (a) {
		case 1:
			hotel.show();
			break;
		case 2:
			System.out.println("请输入房间号");
			int b=s.nextInt();
			hotel.order(b);
			break;
		case 3:
			System.out.println("请输入房间号");
			int c=s.nextInt();
			hotel.checkOut(c);
		break;
		case 0:
			return;
		}
		
	}
}
}

酒店类(Hotel):

java 复制代码
package HotelSystem;//包名
import java.security.PublicKey;
public class Hotel {
	private Room[][] rooms=new Room[5][10];  //创建酒店房间的个数
    //构造方法
	public Hotel(){
		//对酒店进行初始化
		for(int i=0;i<rooms.length;i++){
			for(int j=0;j<rooms[i].length;j++){
				if(i<=2){
					rooms[i][j]=new Room((i+1)*100+j+1, "标准间", true);
				}
				if(i>2&&i<4){
					rooms[i][j]=new Room((i+1)*100+j+1, "双人间", true);
				}
				if(i==4){
					rooms[i][j]=new Room((i+1)*100+j+1, "豪华间", true);
				}
			}
		}
	}	 
	
	//房间展示
	public  void show(){
		for(int i=0;i<rooms.length;i++){
			for(int j=0;j<rooms[i].length;j++){
				System.out.print(rooms[i][j]+"      ");
			}
			System.out.println();
		}
	}	 
	//房间预订
	public void order(int num){
		if (num/100-1>4 || num%100-1>9){
			System.err.println("该房间不存在,请输入正确的房间号!");
		}else {
			if(num==rooms[num/100-1][num%100-1].getNumber()){
				if(rooms[num/100-1][num%100-1].isFlab()==false){
					System.err.println("该房间已被占用,请选择其他房间");
				}else {
					rooms[num/100-1][num%100-1].setFlab(false);
					System.out.println("预订成功!!!");
				}				
	}
		}
					}
	//退房
	public void checkOut(int num){
		if (num/100-1>4 || num%100-1>9){
			System.err.println("该房间不存在,请输入正确的房间号!");
		}else {
			if(rooms[num/100-1][num%100-1].isFlab()==true){
				System.err.println("该房间无需退房!!!");
			}else {
				rooms[num/100-1][num%100-1].setFlab(true);
				System.out.println("退房成功!!!");	
			}
		}		
	}
}

房间类(Room):

java 复制代码
package HotelSystem;

public class Room {
private int number;
private String type;
private boolean flab;
//getSet方法
public int getNumber() {
	return number;
}
public void setNumber(int number) {
	this.number = number;
}
public String getType() {
	return type;
}
public void setType(String type) {
	this.type = type;
}
public boolean isFlab() {
	return flab;
}
public void setFlab(boolean flab) {
	this.flab = flab;
}
// 构造方法
public Room(int number, String type, boolean flab) {
	super();
	this.number = number;
	this.type = type;
	this.flab = flab;
}
@Override
public String toString() {
	return "Room ["+ number +"  "+  type +"  "+ (flab==true?"空闲":"占用") + "]";
}

}
相关推荐
Amarantine、沐风倩✨29 分钟前
设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)
java·物联网·音视频·webrtc·html5·视频编解码·七牛云存储
Kisorge1 小时前
【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
c语言·开发语言
IT规划师1 小时前
Visual Studio - API调试与测试工具之HTTP文件
visual studio·http文件
路在脚下@1 小时前
spring boot的配置文件属性注入到类的静态属性
java·spring boot·sql
森屿Serien2 小时前
Spring Boot常用注解
java·spring boot·后端
轻口味2 小时前
命名空间与模块化概述
开发语言·前端·javascript
苹果醋33 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
晓纪同学3 小时前
QT-简单视觉框架代码
开发语言·qt
威桑3 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
Hello.Reader3 小时前
深入解析 Apache APISIX
java·apache