JAVA day06 酒店管理系统

 酒店管理系统分析

业务:
1.查房(show)  
   1001    1002    1003    1004    1005
    null    null    null    null    null
    2001    2002    2003    2004    2005
    null    null    rose    null    null
    3001    3002    3003    3004    3005
    null    null    null    null    null
    4001    4002    4003    4004    4005
    null    null    null    null    null
    5001    5002    5003    5004    5005

2.办理入住(in) 
  控制台获取信息: 房间名 和 客户名
    例如: 1001 小丽
    还需要判断这个房间里边原本有没有人,没有人才可以入住

3.办理退房(out) 
  控制台获取信息: 房间名
    例如: 1001 小丽
        把 名字改成 null
        如果 原来就是 null 就不需要退房

4.退出程序(exit)
  按0,退出程序 -> 退出死循环 -> break;

分析

对象:客人,房间,酒店

类:客人类,房间类,酒店类,主方法

客人类(Guest):成员变量:name,sex,id... ;构造方法name;成员方法:无

房间类(Room):成员变量:roomNumber,Guest;构造方法roomNumber;成员方法:无

酒店类(Hotel):成员变量:Room ;构造方法(无参);成员方法:checkIn,out,show

主方法:Scanner;调用;循环;选择判断

代码说明

//主方法
import java.util.Scanner;

//酒店管理系统
public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Hotel hotel = new Hotel();
        System.out.println("欢迎使用霄云大酒店业务小程序!");
        while(true) {
            System.out.println("请选择您要办理的业务sc1:1(办理入住);2(办理退房);3(查阅空房);0(退出程序)");
            int num = sc.nextInt();
            switch (num){
                case 1:
                    System.out.println("您的姓名是?");
                    String name = sc.next();
                    System.out.println("您想入住的房间号是?(1001-1005;2001-2005;3001-3005;4001-4005;5001-5005)");
                    int roomNumber = sc.nextInt();
                    hotel.checkIn(name,roomNumber);
                    break;
                case 2:
                    System.out.println("您需要退房的房间号是?");
                    int roomNumber2 = sc.nextInt();
                    hotel.out(roomNumber2);
                    break;
                case 3:
                    System.out.println("++++++++++++++霄云大酒店+++++++++++++++");
                    hotel.show();
                    break;
                case 0:
                    System.out.println("感谢您使用霄云大酒店业务小程序!");
                    return;
                default:
                    System.out.println("您输入的业务数字有误噢!");
                    break;
            }

        }

    }
}

//客人类
public class Guest {
    //入住所需客人信息
    String name;//客人姓名
    char sex;//性别
    int age;//年龄


    //构造方法
    Guest(){}
    Guest(String name){
        this.name = name;
    }
}
//房间类
public class Room {
    int roomNumber;//房间号
    Guest guest;//客人

    Room(){}

    Room(int roomNumber){
        this.roomNumber = roomNumber;
    }

}
//酒店类
public class Hotel {
    Room[][] room;

    //无参构造方法:酒店房间数 5层5个房间
    Hotel(){
        room = new Room[5][5];
        for (int i = 0; i < room.length; i++) {
            for (int j = 0; j < room[i].length; j++) {
                int number = (1+i)*1000+(j+1);
                room[i][j] = new Room(number);
            }
        }
    }

    //成员方法1.入住checkIn
    void checkIn(String name,int roomNumber){
        int i = roomNumber / 1000-1;
        int j = roomNumber % 10-1;
        //判断是否是空房间
        if(room[i][j].guest == null){
            room[i][j].guest = new Guest(name);
            System.out.println("您的业务办理成功!"+name+"成功入住"+roomNumber);
        } else{
            System.out.println("抱歉,房间已经住人了,请换一间房!");
        }

    }
    //成员方法1.退房out
    void out(int roomNumber){
        int i = roomNumber / 1000-1;
        int j = roomNumber % 10-1;
        //判断房间是否住人
        if(room[i][j].guest != null ){
            room[i][j].guest = null;
            System.out.println(roomNumber+"退房成功,期待您的下次入住!");
        }else{
            System.out.println("您提供的房间号有误,请确认您需要退房的房间号!");
        }


    }
    //成员方法3.查房show
    void show() {
        //1.显示每层楼的房间号
        for (int i = 0; i < room.length; i++) {
            for (int j = 0; j < room[i].length; j++) {
                System.out.print(room[i][j].roomNumber + "\t");
            }
            System.out.println();
            for (int j = 0; j < room[i].length; j++) {
                //如果房间有客户,则显示客户名字
                if (room[i][j].guest != null) {
                    System.out.print(room[i][j].guest.name + "\t");

                } else {
                    room[i][j].guest = null;
                    System.out.print(room[i][j].guest + "\t");
                }
            }
            System.out.println();
            System.out.println("****************************************");

        }

    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值