Java实验1:酒店管理系统

这是一个简单的酒店管理系统实现,包括房间类`Room`和管理员类`HotelAdmin`。系统支持房间预订、退房和查看房间状态等功能。房间编号由字母`F`、楼层和房间号组成,房间状态为0表示未订,1表示已订。管理员可以进行房间初始化、展示所有房间状态,并通过输入功能选项进行交互操作。
package com.hotel;

public class Room {
    private String Room_number;    //房间编号
    private String Room_style;     //房间类型
    private int using;             //使用状态,无人订房为0,已订为1

    //构造函数
    public Room(String Room_number,String Room_style){
        this(Room_number,Room_style,0);
    }

    public Room(String Room_number,String Room_style,int using){
        this.Room_number = Room_number;
        this.Room_style = Room_style;
        this.using = using;
    }

    //设置房间使用状态
    public void setUsing(int using){
        this.using = using;
    }

    //获取房间使用状态
    public int getUsing(){
        return this.using;
    }

    //获取房间编号
    public String getRoom_number(){
        return Room_number;
    }

    //获取房间类型
    public String getRoom_style(){
        return Room_style;
    }
}
package com.hotel;

public class HotelAdmin {
    public static void main(String[] args){
        Room[][] rooms = new Room[10][20];
        boolean flag = true;
        roomInit(rooms);
        while(flag){
            System.out.println("0.退出系统");
            System.out.println("1.预定房间");
            System.out.println("2.退房");
            System.out.println("3.查看房间状态");
            Frs:System.out.println("请输入您要使用的功能:");
            java.util.Scanner input = new java.util.Scanner(System.in);
            int n = input.nextInt();
            System.out.println();
            switch(n){
                case(1):{
                    System.out.print("请输入你要预定的房间编号:");
                    String num = input.next();
                    while(Search(rooms,"F01-010")==null){
                        System.out.print("没有找到该房间,请重新输入房间编号:");
                        num = input.next();
                    }
                    Room findroom = Search(rooms,num);
                    if(findroom.getUsing() == 0){
                        findroom.setUsing(1);
                        System.out.println("订房成功!\n");
                    }
                    else{
                        System.out.println("该房间已被使用,请换其他房间试试\n");
                    }
                    break;
                }
                case(2):{
                    System.out.print("请输入你要退的房间编号:");
                    String num = input.next();
                    while(Search(rooms,num)==null){
                        System.out.print("没有找到该房间,请重新输入房间编号:");
                        num = input.next();
                    }
                    Room findroom = Search(rooms,num);
                    if(findroom.getUsing() == 1){
                        findroom.setUsing(0);
                        System.out.println("退房成功!\n");
                    }
                    else{
                        System.out.println("该房没有使用记录,无需退房\n");
                    }
                    break;
                }
                case(3):{
                    roomShow(rooms);
                    break;
                }
                case(0):
                default:
                    System.out.println("退出系统\n");
                    flag = false;
            }
        }
    }

    public static void roomInit(Room[][] rooms) {
        for (int i = 0; i < rooms.length; i++) {
            for (int j = 0; j < rooms[i].length; j++) {
                rooms[i][j] = new Room(((i<9)?"F0":"F") + (i + 1) + ((j<9)?"-00":"-0") + (j + 1),
                        (j < 9) ? "标准单间" : "双人间");        //三目运算符
            }
        }
    }

    public static void roomShow(Room[][] rooms){
        for(int i=rooms.length-1;i>=0;i--) {
            for(int j=rooms[i].length-1;j>=0;j--) {
                System.out.print(rooms[i][j].getRoom_number()+":\t"+rooms[i][j].getUsing()+"\t");
                if((j)%5==0){
                    System.out.println();
                }
            }
            System.out.println();
        }
        System.out.println();
    }

    public static Room Search(Room[][] rooms,String num){
        if(num.length() != 7||num.charAt(0)!='F'||num.charAt(3)!='-'||num.charAt(4)!='0'){
            return null;
        }
        for(int i=1;i<num.length();i++) {
            if (i == 3) {
                continue;
            }
            if (num.charAt(i) < 48 || num.charAt(i) > 57) {
                return null;
            }
        }
        String i_1 = String.valueOf(num.charAt(1));
        String i_2 = String.valueOf(num.charAt(2));
        int i = Integer.parseInt(i_1)*10 + Integer.parseInt(i_2)-1;
        String j_1 = String.valueOf(num.charAt(5));
        String j_2 = String.valueOf(num.charAt(6));
        int j = Integer.parseInt(j_1)*10 + Integer.parseInt(j_2)-1;
        return rooms[i][j];
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值