纯数组,实现简单模拟酒店管理系统

package com.dxd.hotel;


import java.util.Scanner;


public class Main {


public static void main(String[] args) {
int[][][] rooms=initRoom(5,8);
printUI(rooms);
}

/**
* 打印用户界面
*/
private static void printUI(int[][][] rooms) {
System.out.println("=================欢迎光临速9大酒店=================");
while(true){
Scanner scanner=new Scanner(System.in);
System.out.println("1.查看酒店的房间的示意图;2.定房间;3.退房;4.查看房间;5.退出系统");
System.out.print("请选择你需要的服务:");
while(true){
if(scanner.hasNextInt()){
//选项
int no=scanner.nextInt();
if(no>=1&&no<=5){
checkServices(no,rooms);
System.out.println();
break;
}else{
System.out.println("输入错误,请重新输入!");
continue;
}
}else{
System.out.println("输入格式有误:应输入值为:1~5");
scanner.next();
}
}
}

}


/**
* 服务类型选择
* @param no 服务代号
*/
private static void checkServices(int no,int[][][] rooms) {
switch(no){
case 1:
//查看酒店的房间的示意图
hotelSchematic(rooms);
break;
case 2:
//订房间
reserveAndOutRoom(rooms,true);
break;
case 3:
//退房
reserveAndOutRoom(rooms,false);
break;
case 4:
//查看房间
lookAtRoom(rooms);
break;
case 5:
//退出
System.out.println("欢迎下次使用!bye");
System.exit(0);
break;
}
}


//查看房间
private static void lookAtRoom(int[][][] rooms) {
String s="";
for(int i=0;i<rooms.length;i++){
System.out.print("第"+(i+1)+"层:");
for(int j=0;j<rooms[i].length;j++){
//房间号的显示方式:1010(第一个1表示楼层,中间两位表示房间号,最后一位表示是否住人(0 or 1))
if(rooms[i][j][0]%2==0){
s="空闲";
}else{
s="已入住";
}
System.out.print((rooms[i][j][0]/10)+s+" ");
}
System.out.println();
}
}


/**

* @param rooms
* @param flag true为订房间,false为退房
*/
private static void reserveAndOutRoom(int[][][] rooms,boolean flag) {
Scanner scanner=new Scanner(System.in);
outer:while(true){
System.out.print("请输入房间号:");
if(scanner.hasNextInt()){
int no=scanner.nextInt();
inner:for(int i=0;i<rooms.length;i++){
for(int j=0;j<rooms[i].length;j++){
if(rooms[i][j][0]/10==no){
if(flag){
if(rooms[i][j][0]%2==0){
rooms[i][j][0]+=1;
System.out.println("房间订好啦,入住愉快!");
break outer;
}else{
System.out.println("手慢了,房间已经被定啦!");
continue outer;
}
}else{
if(rooms[i][j][0]%2!=0){
rooms[i][j][0]-=1;
System.out.println("房间已经退了,欢迎下次光临!");
break outer;
}else{
System.out.println("房间没有人入住!");
continue outer;
}
}
}
}
}
System.out.print("指定房间不存在!");
}else{
System.out.println("输入房间号格式错误!");
scanner.next();
}
}
}


/**
* 查看酒店的房间的示意图
*/
private static void hotelSchematic(int[][][] rooms) {
for(int i=0;i<rooms.length;i++){
System.out.print("第"+(i+1)+"层:");
for(int j=0;j<rooms[i].length;j++){
//房间号的显示方式:1010(第一个1表示楼层,中间两位表示房间号,最后一位表示是否住人(0 or 1))
System.out.print((rooms[i][j][0]/10)+" ");
}
System.out.println();
}
}


/**
* 初始化房间
* @param floor 楼层数
* @param no 房间编号
*/
public static int[][][] initRoom(int floor,int no){
int[][][] rooms=new int[floor][no][1];
for(int i=0;i<rooms.length;i++){
for(int j=0;j<rooms[i].length;j++){
//房间号的显示方式:1010(第一个1表示楼层,中间两位表示房间号,最后一位表示是否住人(0 or 1))
rooms[i][j][0]=(i+1)*1000+(j+1)*10;
}
}
return rooms;
}
}

猜你喜欢

转载自blog.csdn.net/isduxd/article/details/76339193
今日推荐