首页 > 编程语言 >Java实现简易酒店管理系统

Java实现简易酒店管理系统

时间:2023-03-19 20:14:05浏览次数:43  
标签:DingDan Java 管理系统 int System 简易 println public out

实现订房 退房 查房 退出四个基本功能

酒店有三楼,每楼5个房间,房间号按照101,102,...201,202·有双人间,单人间,地铺间

能实现订房退房查房等基本功能
在控制台中实现,操作便捷一些

首先是Hotel类

public class Hotel {
    int RoomId;//定义整型的房间号
    String RoomName;//定义String类型的房间类型
    boolean RoomZt;//定义布尔型的房间状态


    public Hotel(int roomId, String roomName, boolean roomZt) {//含参的构造方法,将房间号、房间类型、房间状态传进来
        RoomId = roomId;
        RoomName = roomName;
        RoomZt = roomZt;
    }
//下面的方法为alt+insert自动生成的,该程序中用不到
//    public int getRoomId() {
//        return RoomId;
//    }
//
//    public void setRoomId(int roomId) {
//        RoomId = roomId;
//    }
//
//    public String getRoomName() {
//        return RoomName;
//    }
//
//    public void setRoomName(String roomName) {
//        RoomName = roomName;
//    }
//
//    public boolean isRoomZt() {
//        return RoomZt;
//    }

    public void setRoomZt(boolean roomZt) { //创建RoomZt方法,接受DingDan类中DingDan方法中循环设置的true以及设置ding和tui方法中的true或false

        RoomZt = roomZt;

    }

    @Override
    public String toString() {//toString方法,继承自Object
        String zt = "";//初始化zt为" "
        if(RoomZt == true)//如果setRoomZt返回的zt为true
        {
            zt = "空闲";
        }
        else if(RoomZt == false)//如果setRoomZt返回的zt为false
        {
            zt = "有客";
        }

        return  "["+RoomId +" " + RoomName +" "  + zt+"]"+" ";//返回例:[101 单人 空闲 ]
    }


}

其次是DingDan类

 

public class DingDan {
    Hotel[][] on = new Hotel[3][5];//定义一个二维数组 3行5列的
    public  DingDan(){//订单方法
        for (int i = 0; i < on.length; i++) { //for循环 i小于3
            for(int j = 0 ; j<on[i].length;j++){ //j小于5
                if(i==0)
                {
                    on[i][j]=new Hotel((i+1)*100+j+1,"单人",true);//当i=1时roomld:(0+1)*100+0+1=1*100+1=101,roomZt:房间状态,在Hotel类里面向构造方法传递参数
                }
                else if(i==1)
                {
                    on[i][j]=new Hotel((i+1)*100+j+1,"双人",true);
                }
                else if(i==2)
                {
                    on[i][j]=new Hotel((i+1)*100+j+1,"地铺",true);
                }
            }
        }
    }
    public void ding(int s){
        on[s/100-1][s%100-1].setRoomZt(false);//含参构造,把s传进来,计算,on[101/100-1][101%100-1]=on[1-1][1-1]=[0][0],所以当i=0,j=0时,将101的状态设置为false
         }
    public void tui(int s){
        on[s/100-1][s%100-1].setRoomZt(true);//含参构造,把s传进来,计算,on[305/100-1][305%100-1]=on[3-1][5-1]=[2][4],所以当i=2,j=4时,将305的状态设置为true
    }

    public void cha(){
        for (int i = 0; i < on.length; i++) {//for循环 i小于3
            for (int j = 0; j < on[i].length; j++) {//j小于5
                System.out.print(on[i][j]);//打印on[i][j]的值
            }
            System.out.println();
        }
    }
}

再次是主类

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        DingDan ding = new DingDan();//创建一个DingDan对象
        Scanner in = new Scanner(System.in);//从键盘接受in的值
        System.out.println("*******欢迎来到旅馆*******");
        System.out.println("1:查房");
        System.out.println("2:订房");
        System.out.println("3:退房");
        System.out.println("4:退出");
        while(true){
            int re = in.nextInt();//将in的值放入re
            if(re == 1)
            {
                System.out.println("查询中......");
                ding.cha();//调用ding对象的cha方法
            }
            else if(re == 2) {
                System.out.println("输入序号");
                ding.ding(in.nextInt());//将从键盘接收的值放入DingDan类的public void ding(int s)的s中

                System.out.println("已订房,请继续");

            }
            else if(re == 3)
            {
                System.out.println("输入序号");
                ding.tui(in.nextInt());//将从键盘接收的值放入DingDan类的public void tui(int s)的s中
                System.out.println("已取消,请继续");
            }
            else if(re == 4)
            {
                break;//退出
            }
        }




    }
}

运行结果

 

标签:DingDan,Java,管理系统,int,System,简易,println,public,out
From: https://www.cnblogs.com/bakid/p/17234063.html

相关文章

  • Java NIO Socket学习
    前言这周学习尼恩编著的《Netty、Redis、ZooKeeper高并发实战》,这本书写的很不错,通过十几个例子带领大家去体会高并发如何实现,这周我看了最基础的JavaNOI部分,读书的时......
  • Java中的恍然大悟
    Java中的恍然大悟数组与集合最大的区别数组里既可以装8钟基本数据类型,还可以装包装类型。集合里只能装包装类型集合工具类给你封装了排序方法java.util.Collections......
  • java文本获取
     使用正则方式提取文本中间内容获取文本中间(单次)参数1:文本参数2:文本前参数3:文本后返回一个StringpublicstaticStringgetSubString(Stringtext,Stringleft......
  • 【JavaScript】50_终篇_编程进阶与BOM编程概览(3k字+)
    12、节点的复制使用cloneNode()方法对节点进行复制时,它会复制节点的所有特点包括各种属性这个方法默认只会复制当前节点,而不会复制节点的子节点可以传递一个true作为参数,......
  • Java多线程开发CompletableFuture的应用
    ​做Java编程,难免会遇到多线程的开发,但是JDK8这个CompletableFuture类很多开发者目前还没听说过,但是这个类实在是太好用了,了解它的一些用法后相信你会对它爱不释手(呸渣男,......
  • java的数据类型
    2023-03-19java是强类型语言要求变量的使用严格符合规定,所有的变量需要先定义、后才能使用java的数据类型分为两大类1、基本类型 2、引用类型引用数据类型包括类......
  • 关于java.lang.ThreadDeath线程发生场景及模拟代码测试
    当调用stop()方法时会发生两件事:1.即刻停止run()方法中剩余的全部工作,包括在catch或finally语句中,并抛出ThreadDeath异常(通常情况下此异常不需要显示的捕获),因此可能会导......
  • java——Zookeeper学习——zk实现分布式锁了解
                   ......
  • 使用vue2+element-ui+axios实现后台管理系统的增删改查
    以下仅作为自己个人学习使用前言:需要后端的接口已经在另外一篇博客写了,需要的小伙伴们可以去那边参考,下面是链接https://www.cnblogs.com/Amyel/p/17233060.html正片......
  • Java基础字符串练习
    ​定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。要求:1、如果传递的参数为空,返回null2、如果传递的数组元素个数为0......