欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

酒店管理系统部分功能实现

程序员文章站 2022-10-03 20:21:52
酒店管理系统部分功能实现用二维数组,为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。1.房间类2.酒店类3.酒店前台类总结用二维数组,为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。1.房间类代码如下(示例)://房间类public class Room1 { //房间编号 private int no; //房间类型 private String type; //房间状态 private bool...

用二维数组,为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。

1.房间类

代码如下(示例):

//房间类
public class Room1 {
    //房间编号
    private int no;
    //房间类型
    private String type;
    //房间状态
    private boolean status;

    //构造方法
    public Room1() {
    }

    public Room1(int no, String type, boolean status) {
        this.no = no;
        this.type = type;
        this.status = status;
    }

    //setter and getter
    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 getStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    //重写toString方法
    public String toString(){
        return " "+ "房间号: " + this.no + " " + "房间状态:" + " " +  this.type + " " + "房间类型:" + " " + (this.status ? "空闲" : "占用" + " ");
    }

    //重写equals方法
    public boolean equals(Object obj){
        if (obj == null || !(obj instanceof Room1)) return false;
        if (this == obj) return true;
        Room1 room1 = (Room1)obj;
        if (this.no == room1.no){
            return true;
        }
        return false;
    }
}

2.酒店类

代码如下(示例):

//酒店类
public class Hotel1 {
    private Room1[][] rooms;

    //构造方法
    public Hotel1(){
        /**
         * 1层单人间        101 102 103...
         * 2层双人间        201 202 203...
         * 3层总统间        301 302 303...
         */
        rooms = new Room1[3][10];
        for (int i = 0; i < rooms.length; i++){
            for (int j = 0; j < rooms[i].length; j++){
                if (i == 0) {
                    rooms[i][j] = new Room1((i + 1) * 100 + j + 1,"单人间",true);
                } else if (i== 1) {
                    rooms[i][j] = new Room1((i + 1) * 100 + j + 1,"双人间",true);
                } else if (i == 2) {
                    rooms[i][j] = new Room1((i + 1) * 100 + j + 1,"总统间",true);
                }
            }
        }
    }

    //打印房间信息的方法
    public void print(){
        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 roomNo){
        Room1 room1s = rooms[roomNo / 100 - 1][roomNo % 100 - 1];
        room1s.setStatus(false);
        System.out.println(roomNo + "订房成功");
    }

    //退房方法
    public void exit(int roomNo){
        Room1 room1s = rooms[roomNo / 100 - 1][roomNo % 100 - 1];
        room1s.setStatus(true);
        System.out.println(roomNo + "退房成功");
    }
}


3.酒店前台类

代码如下(示例):

import java.util.Scanner;

//酒店前台类
public class HotelMgtSystem {
    public static void main(String[] args) {
        Hotel1 h = new Hotel1();
        System.out.println("欢迎使用酒店管理系统,请阅读以下功能,以便您使用");
        System.out.println("功能如下: [1]查询所有房间信息 [2]订房 [3]退房 [4]退出系统");
        Scanner s = new Scanner(System.in);
        while(true){
            System.out.print("请输入功能编号:");
            int i = s.nextInt();
            switch (i){
                case 1:
                    h.print();
                    break;
                case 2:
                    System.out.print("请输入订房编号:");
                    int roomNo1 = s.nextInt();
                    h.order(roomNo1);
                    break;
                case 3:
                    System.out.println("请输入退房编号:");
                    int roomNo2 = s.nextInt();
                    h.exit(roomNo2);
                    break;
                case 4:
                    System.out.println("欢迎下次使用该系统,已退出");
                    System.exit(0);
                default:
                    System.out.println("您输入的编号有误,请重新输入");
                    break;

            }
        }
    }
}


总结

用到了二维数组。
还有很多地方还是可以优化,并且还是有些小bug的。
如有错误,请大佬指出。

本文地址:https://blog.csdn.net/MaoEoow/article/details/110839122