要求:

1、使用二维数组来模拟酒店

2、酒店中每一个房间都是一个对象

3、每一个房间都应该有:房间编号,房间类型,房间状态

4、系统对外提供的功能:

可以查看房间状态;

可以订房退房。

(以下有程序截图和程序文本)

=========================================================================

以下是程序截图:

房间类:

 

酒店类:

 

测试系统:

=========================================================================

以下是程序文本:

房间类:

public class Room {//定义一个int类型的变量,表示房间号:101,102...private int no;//定义一个String类型的变量,表示房间的类型:单人间,双人间private String type;//定义一个boolean类型的变量,表示房间现在的状态//true表示房间为空,现在可以被订房private boolean b;//无参构造public Room() {}//有参构造public Room(int no, String type, boolean b) {this.no = no;this.type = type;this.b = b;}//重写toString()方法public String toString() {//返回值return "[" + no + ", " + type + "," + (b ? "空闲" : "占用" ) +"]";}//重写equals()方法public boolean equals(Object obj){//如果obj为空或者obj指向的对象类型不是一个Room,返回falseif (obj == null || !(obj instanceof Room)) return false;//如果调用equals方法的引用和obj的地址相同,返回一个trueif (this == obj) return true;//程序执行到这一步,就说明需要进行比较,向下转型Room room = (Room)obj;//对房间号进行比较,如果房间号相同则返回一个true//return this.no == room.no;(这样写是错误的,必须通过getter方法去调用no)return this.getNo() == room.getNo();}//setter and getterpublic 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 getB() {return b;}public void setB(boolean b) {this.b = b;}
}

酒店类:

public class Hotel {//二维数组,模拟大厦内所有房间private Room[][] rooms;//通过构造方法来创建房间public Hotel() {//一共有两层,每层6个房间this.rooms = new Room[2][6];//二维数组遍历,i是下标,i+1是楼层for (int i = 0; i < rooms.length; i++) {//j是下标,j+1是房号for (int j = 0; j < rooms[i].length; j++) {//错误的写法/*Room room = rooms[i][j];if(i == 0){System.out.print((i + 1) * 100 + (j + 1) + "," + "单人间" + true );}else if (i == 1) {System.out.print((i + 1) * 100 + (j + 1) + "," + "单人间" + true );}*///第一层if(i == 0){rooms[i][j] = new Room((i + 1) * 100 + j + 1 ,"单人间" ,true );//第二层}else if (i == 1) {rooms[i][j] = new Room((i + 1) * 100 + j + 1 ,"双人间" ,true );}}}}//提供一个打印所有房间状态的方法public void print() {//打印所有房间状态,就是遍历二维数组for (int i = 0; i < rooms.length; i++) {//里面for循环负责输出一行for (int j = 0; j < rooms[i].length; j++) {Room room = rooms[i][j];System.out.print(room);}System.out.println();}}//提供一个订房的方法,调用此方法时需要传递一个房间编号过来public void order(int roomNO){//订房最主要的是将房间对象的b修改为falserooms[roomNO / 100  - 1][roomNO % 100 - 1].setB(false);}//提供一个退房的方法,调用此方法时需要传递一个房间编号过来public void exit(int roomNO){//订房最主要的是将房间对象的b修改为falserooms[roomNO / 100  - 1][roomNO % 100 - 1].setB(true);}//setter and getterpublic Room[][] getRooms() {return rooms;}public void setRooms(Room[][] rooms) {this.rooms = rooms;}
}

测试程序:

import java.util.Scanner;public class Test {public static void main(String[] args) {//创建酒店对象Hotel hotel = new Hotel();//输出说明System.out.println("使用说明:[1]查看房间列表。[2]订房。[3]退房。[0]退出系统。");Scanner s = new Scanner(System.in);//while循环可以一直输入编号while (true){System.out.println("输入功能编号:");int i = s.nextInt();//判断输入的数字if (i == 1) {hotel.print();}else if (i ==2){System.out.println("输入房间号:");int j = s.nextInt();hotel.order(j);}else if (i ==3){System.out.println("输入房间号:");int j = s.nextInt();hotel.exit(j);}else if (i ==0){System.out.println("再见!");return;}}}
}

java:模拟酒店订房,退房,打印所有房间状态等功能相关推荐

  1. 为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。 1、该系统的用户是:酒店前台。 2、酒店使用一个二维数组来模拟。“Room[][] roo

    代码 房间类 package com.bjpowernode.javase.day23homework; //每一个房间Room应该有:房间编号.房间类型.房间是否空闲 public class Ro ...

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

    问题描述: 为某个酒店编写程序:酒店管理系统,模拟订房.退房.打印所有房间状态等功能. 1.该系统的用户是:酒店前台. 2.酒店使用一个二维数组来模拟."Room[][] rooms;&qu ...

  3. 酒店订房退房管理系统(数组应用)

    /*** 为某个酒店编写程序:酒店管理系统,模拟订房.退房.打印所有房间状态等功能.* 1.该系统的用户是:酒店前台* 2.酒店使用一个二维数组来模拟.Room[][] rooms;* 3.酒店中的每 ...

  4. java模拟登录qq网站,实现一键签到等等功能

    qq的网页登录是通过加密的,直接上最关键代码 使用JavaScript引擎调用qqRSA.js的加密文件 参数包含 用户名 密码 验证码 /*** * @return 返回加密后的字符串*/publi ...

  5. Vue使用photo-sphere-viewer360°×180°全景插件模拟VR看房、房间切换和自定义标注

    Vue使用photo-sphere-viewer360°×180°全景插件模拟VR看房.房间切换和自定义标注 photo-sphere-viewer 下载插件 使用 常用参数 Markers插件 使用 ...

  6. Java多线程 模拟 购买 退订 机票

     Java多线程 模拟 购买 退订 机票 package cn.com.cloud.sea.thread; /*** @author HenryLee* @version 1.0* 买票*/ publ ...

  7. 简单的酒店住房退房管理系统

    运用java面向对象和二维数组的知识写了一个简单的酒店住房退房管理系统 适合初学java的同学 首先给大家看一下我的项目的目录结构,很简单就3个类 接下来给大家看一下我这3个类的代码 1,首先考虑一个 ...

  8. java模拟旅馆床位管理系统

    --------更新(代码不更了--)-------- 实现了一个很丑.很简单的界面--可以控制模拟天数--并且说明模拟的旅馆房间详情-- 嘻嘻,实现了输入到excel中,使用的是jxl(据说已经很久 ...

  9. Java模拟实现一个基于文本界面的《家庭记账软件》

    主要涉及以下知识点: 变量的定义 基本数据类型的使用 循环语句 分支语句 方法声明.调用和返回值的接收 简单的屏幕输出格式控制 需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能 ...

最新文章

  1. ubuntu 14.04 LTS 右键菜单解压压缩包时出错
  2. php下关于Cannot use a scalar value as an array的解决办法
  3. 第4章 Python 数字图像处理(DIP) - 频率域滤波4 - 单变量的离散傅里叶变换DFT
  4. Android之Volley 源码解析
  5. proc编译手册_Expect 手册 中文版
  6. JS函数addEventListener的浏览器差异性封装
  7. CTF web题 wp:
  8. 晨哥真有料丨你喜欢人家啊,你追求人家。你到了什么地步就该放弃了?
  9. c语言中static 用法
  10. Jzoj5445【NOIP2017提高A组冲刺11.2】失格
  11. ASP.NET MVC 3和Razor中的@helper
  12. unity 罗技G29开发
  13. 计算机图形学 实验二 OpenGL简单动画
  14. 如何查看linux是grub还lilo,linux中LILO及GRUB配置实例
  15. 微信小程序图片(单图多图上传显示)
  16. 抢救DB2数据之终极工具:db2dart
  17. 性能篇 | 17 | jmeter | BeanShell内置变量prev的使用技巧
  18. 调用接口时报:Required String parameter '' is not present
  19. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java课堂考勤管理系统t6x5x
  20. Spring Cache 注解详解

热门文章

  1. 03.《C#基础》--Visual Stadio基本操作
  2. 大鼠半月板撕裂模型动物模型 用于评估潜在药物的疗效的有效模型
  3. 快速编译黑苹果引导OpenCore文字与视频
  4. 电力英语计算机题库,历年国家电网计算机考试笔试真题题库.doc
  5. CSS中常用的文本样式
  6. 男人怎样提升自己的气质
  7. div css 制作表格
  8. 【不要做学究】回忆孔先生IT版
  9. Solidworks三维模型导入Simscape联合仿真的步骤
  10. 【经验】渗透测试信息收集步骤、网站、工具分享