酒店订房退房管理系统(数组应用)
/*** 为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。* 1、该系统的用户是:酒店前台* 2、酒店使用一个二维数组来模拟。Room[][] rooms;* 3、酒店中的每一个房间应该是一个java对象:Room* 4、每一个房间Room应该有:房间编号、房间类型、房间是否空闲等属性。* 5、系统对外提供的方法有:* * 可以预定房间:输入房间编号,订房* * 可以退房:输入房间编号,退房* * 可任意查看所有房间的状态:用户输入某个指令能够查看所有房间状态*/
package com.javase.进阶.数组;/*** 酒店房间类*/ public class Room {/*** 房间编号* 一楼:101、102、103...* 二楼:201、202、203...* ......*/private int no;/*** 房间类型* 标准间、双人间、豪华间*/private String type;/*** 房间状态* true 表示占用,不能预定* false 表示空闲,可以预定*/private boolean status; // 无参构造方法public Room() {}// 有参构造方法public Room(int no, String type, boolean status) {this.no = no;this.type = type;this.status = status;}// set and get 方法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;} //IDEA提供的Boolean的构造方法是isXxx(),可以改成getXxx()public boolean getStatus() {return status;}public void setStatus(boolean status) {this.status = status;} // 重写equals()方法public boolean equals(Object o) {if (this == o) return true;if (o == null || !(o instanceof Room)) return false;Room room = (Room) o;return this.no == room.getNo();}// 重写toString()方法public String toString() {return "[" + no + " " + type + " " + (status? "占用]" : "空闲]");}public static void main(String[] args) {Room room = new Room(101,"标准间",false);System.out.println(room);} }
package com.javase.进阶.数组;import java.util.Arrays;/*** 酒店类,用二维数组模拟酒店大楼*/ public class Hotel {/*** 使用二维数组来模拟酒店中的所有房间*/private Room[][] rooms;/*** 默认创建一个三层楼,每层10个房间的酒店* 一层:标准间,二层:双人间,三层:豪华间* 房间编号:一层 101、102、103...* 二层 201、202、203...* 三层 301、302、303...*/ // 无参构造方法public Hotel() {rooms = new Room[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 Room((i + 1) * 100 + j + 1,"标准间",false);}else if (i == 1){ // 二楼双人间rooms[i][j] = new Room((i + 1) * 100 + j + 1,"双人间",false);}else { // 三楼豪华间rooms[i][j] = new Room((i + 1) * 100 + j + 1,"豪华间",false);}}}} // 有参构造方法public Hotel(Room[][] rooms) {this.rooms = rooms;} // set and get 方法public Room[][] getRooms() {return rooms;}public void setRooms(Room[][] rooms) {this.rooms = rooms;} // 重写equals()方法@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Hotel hotel = (Hotel) o;return Arrays.equals(rooms, hotel.rooms);}// 重写toString()方法@Overridepublic String toString() {return "Hotel{" +"rooms=" + Arrays.toString(rooms) +'}';}/*** 打印所有房间状态*/public void print(){ // 既然是所有房间,那就应该是遍历数组for (int i = 0; i < rooms.length; i++) {for (int j = 0; j < rooms[i].length; j++) {Room room = rooms[i][j];//下行代码会自动调用room.toString(),由此可以看出重写toString()方法的必要System.out.print(room);} // 换行System.out.println();}}/*** 订房方法* @param roomNo 调用此方法时,需要传递一个房间号码*/public void order(int roomNo){ // 需要通过房间号码转换成二维数组中对象的下标Room room = rooms[(roomNo / 100) - 1][(roomNo % 100) - 1]; // 订房的主要操作是将房间对象的属性status修改成true // 判断当前想订房间状态,如果是占用状态,就不能接受预定if (room.getStatus() == true){System.out.println(roomNo + "有人居住,当前不接受预订!");} // 如果是空闲状态,则能接受预定else {room.setStatus(true);System.out.println(roomNo + "房间预订成功!");}}/*** 退房方法* @param roomNo 调用此方法时,也需要传递一个房间号码*/public void exit(int roomNo){ // 需要通过房间号码转换成二维数组中对象的下标Room room = rooms[(roomNo / 100) - 1][(roomNo % 100) - 1]; // 订房的主要操作是将房间对象的属性status修改成falseif (room.getStatus() == false){System.out.println(roomNo + "房间已经退房,现在不接受退房服务!");}else {room.setStatus(false);System.out.println(roomNo + "房间退房成功!");}} }
public class HotelSystem {public static void main(String[] args) { // 创建酒店Hotel hotel = new Hotel();System.out.println("欢迎使用本酒店管理系统!"); // 将系统的运行代码放到while循环中,就避免了每次执行一个功能都需要执行一次主方法while (true) {System.out.println("请仔细阅读使用说明:【0】退出本系统,【1】查看本酒店房间状态,【2】预订房间,【3】退房");Scanner s = new Scanner(System.in);System.out.print("请输入对于功能编号:");int i = s.nextInt();if (i == 0) { // 退出系统System.out.println("即将退出本系统,再见!欢迎下次回来!");return;} else if (i == 1) { // 查看酒店房间状态hotel.print();} else if (i == 2) { // 预订房间System.out.print("请输入想订房间编号:");int roomNo = s.nextInt();hotel.order(roomNo);} else if (i == 3) { // 退房System.out.print("请输入需退房编号:");int roomNo = s.nextInt();hotel.exit(roomNo);} else {System.out.println("输入功能代码有误,请重新输入!");}}} }
酒店订房退房管理系统(数组应用)相关推荐
- 简单的酒店住房退房管理系统
运用java面向对象和二维数组的知识写了一个简单的酒店住房退房管理系统 适合初学java的同学 首先给大家看一下我的项目的目录结构,很简单就3个类 接下来给大家看一下我这3个类的代码 1,首先考虑一个 ...
- 为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。 1、该系统的用户是:酒店前台。 2、酒店使用一个二维数组来模拟。“Room[][] roo
代码 房间类 package com.bjpowernode.javase.day23homework; //每一个房间Room应该有:房间编号.房间类型.房间是否空闲 public class Ro ...
- 为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。
问题描述: 为某个酒店编写程序:酒店管理系统,模拟订房.退房.打印所有房间状态等功能. 1.该系统的用户是:酒店前台. 2.酒店使用一个二维数组来模拟."Room[][] rooms;&qu ...
- java:模拟酒店订房,退房,打印所有房间状态等功能
要求: 1.使用二维数组来模拟酒店 2.酒店中每一个房间都是一个对象 3.每一个房间都应该有:房间编号,房间类型,房间状态 4.系统对外提供的功能: 可以查看房间状态: 可以订房退房. (以下有程序截 ...
- 无理由退房退机票,做携程超级会员就是这么任性
行程有变,想退掉预订的酒店?旅行计划调整,想退掉已经订好的机票? 这些都是旅行达人和商务人士出门经常碰到的问题,也是旅行中的常见槽点和痛点. 近日,携程高调宣布再度升级其"超级会员权益&qu ...
- Axure 进阶 | 制作携程网酒店“入住日期”与“退房日期”控件
本次教程学习制作时间控件选择,根据选择的日期,在输入框中显示所选择的日期.制作内容包括携程网的酒店"入住日期"时间控件与"退房日期"时间控件. 部件使用:动 ...
- 通过学生信息管理系统(数组版)学习C语言
我的知识星球<C语言解惑课堂>的[第159篇]到[167篇]是学生信息管理系统(数组版)的一个C语言源码实现,[第340.341.342.343.344篇]详解了源码中的C程序知识点,需要 ...
- 在南京怎么购买退房的资格
原文:https://m.house365.com/nj/quicktopic/26279/?newsid=028252070 退房信息: http://www.njhouse.com.cn/2016 ...
- 基于PHP的预约看房管理系统
有需要请私信或看评论链接哦 可远程调试 基于PHP的预约看房管理系统 一 介绍 此预约看房管理系统基于原生PHP开发,数据库mysql,前端Jquery,Layui,ajax.系统角色分为用户和管理员 ...
最新文章
- GD32通用定时器、高级定时器PWM输出例程
- A Network-based End-to-End Trainable Task-oriented Dialogue System
- 第8章 SQL语言(一)
- LeetCode 1974. 使用特殊打字机键入单词的最少时间
- linux标准I/O——流的打开和关闭
- intern cookie 纠结之二
- python3 gui tk代码_python3 修改计算机名称GUI程序
- 《你不常用的c#之五》:Thread与ThreadPool的内存之战
- 从Ubuntu 14 04 LTS版升级到Ubuntu 16 04 LTS
- Java 1.1.4 检测字符串是否相等
- 算法 —— 实用程序片段
- SPSS统计检验中的边缘显著及其转化处理【SPSS 063期】
- 超好用的Redis管理及监控工具,使用后可大大提高你的工作效率!
- 考研如何设置桌面倒计时,便签设置桌面倒计时方法
- 如何修改背景色?证件照背景颜色怎样换成白色?
- 知识付费资源变现小程序源码+可开流量主/带教程
- ASP+VML制作统计图的源程序
- iOS常用功能 - 根据链接生成二维码图片
- solidworks动画制作教程——装配体爆炸动画
- 红队渗透测试技术:如何通过鱼叉式网络钓鱼获得攻击机会?
热门文章
- 手机火狐浏览器怎么开启flash_如何开启Firefox浏览器flash支持?开启Firefox浏览器flash支持的方法...
- 小米无线路由器关闭WPS
- English:怎样辨别英语中 表语 宾语 定语 状语 等结构
- 公钥加密私钥解密私钥加密公钥解密
- 快手如何引流淘宝?快手上推广电商产品如何做?
- Ubuntu零基础教学-Ubuntu20.04安装Rosbridge并进行小乌龟测试 | 超级干货,建议收藏
- 张驰咨询:为什么企业需要走精益生产的道路?
- python设计模式名片_Python 设计模式 简单工厂(设计模式之禅)
- 由XP引发的血案——XP装机
- 数学建模算法总结——04层次分析法