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

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

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的。
如有错误,请大佬指出。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
登陆系统:用户通过用户编号和密码登录系统,调用表tb_Admin,同时在每次登陆的时候生成一条日志记录,添加记录到tb_LoginLog,同时显示主界面,根据登陆的用户的身份角色不同,在主界面显示的操作控件会有微小差异 主界面设计与后台:界面的控件布局,美化设计,主界面的后台控制 包含功能菜单: 前台:(可返回登录时的主页面,主页面显示所有房间的状态。下级子菜单:在住顾客,今日在住客人,今日离店客人,今日到+今日离,今日明细表(当日盈利),房态分析表,在住查账) 订单:(单击预定打开所有订单查询页面,子菜单:预定,转入住,入住,取消预定,换房,退房,购买(购买商品的时候需要提供R_RoomId(房间编号,通过这个就可以确定是什么人),C_ConsumeId(商品编号)这些信息。))) 报表:(子菜单:盈利报表,登录日志,住客分析,发票表单) 提醒: 宾客在登记订单的时候会填写预住多少天,时间在到之前(次日11时给服务员发出某房间将要到期的提醒)会提示时间要到了,以提醒宾客提前办理退房手续,弹出消息提示框提示。如有超过预定时间的,将会添加一条违约记录到超时表中 商品管理: 添加商品:新进商品需要登记信息,添加到表tb_ConsumeInfo,需要连接表tb_ConsumeType 更改商品信息 删除商品 设置(管理员权限) 备份设置 计费设置 用户设置 商品设置 房间设置 锁屏 报表:(图表与列表) 盈利报表(按天,按周,按月,按季度,按年,指定日期)(按客房汇总,按商品汇总) 登录日志(查询指定日期的登录日志) 住客分析(分类汇总查询,查询当日某类型房的住客率,楼层住客信息查询) 电子发票(结账时候对个人产生的消费记录)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值