业务分析

1、需要一个房间类,包含房间的属性,比如房间编号、房间类型、是否占用。

2、需要一个旅馆类,旅馆有房间,提供的方法需要有 预订房间、打印房间信息、初始化房间、退房。

3、测试类,测试预订房间。

package javasimple;

import java.util.Scanner;

public class HotelTest {
public static void main(String[] args) {
Hotel h = new Hotel();
h.print();
while(true) {
System.out.println("请输入房间编号:");
Scanner s = new Scanner(System.in);
String no = s.next();
h.order(no);
h.print();
}
}
}
/**
* 旅馆类
* @author haokui
*
*/
class Hotel {
private Room [][]rooms;//旅馆有房间
public Hotel(){
rooms = new Room[5][10];
//初始化旅馆时,展示房间
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
if (i == 0 || i== 1) {
//1、2层为单人间
rooms[i][j] = new Room((i+1)*100 + j + 1 + "","单人间",false);
}
if (i == 2 || i== 3) {
//3、4层为双人间
rooms[i][j] = new Room((i+1)*100 + j + 1 + "","双人间",false);
}
if (i == 4) {
//5层为豪华间
rooms[i][j] = new Room((i+1)*100 + j + 1 + "","豪华间",false);
}
}
}
}
/**
* 打印房间信息
*/
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].toString());
}
System.out.println();
}
}
/**
* 预订房间
* @param no - 房间号
*/
public void order(String no){
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
if (rooms[i][j].getNo().equals(no)) {
//找到了要订的房间,把空闲改为占用
rooms[i][j].setIsuse(true);
}
}
}
}
/**
* 退房
* @param no - 房间号
*/
public void cancelorder(String no){
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
if (rooms[i][j].getNo().equals(no)) {
//找到了要退的房间,把占用改为空闲
rooms[i][j].setIsuse(false);
}
}
}
}
}
/**
* 房间类
* @author haokui
*
*/
class Room {
//
private String no;//房间编号
private String type;//房间类型
private boolean isuse;//是否占用
public Room (String no, String type, boolean isuse) {
this.no = no;
this.type = type;
this.isuse = isuse;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public boolean isIsuse() {
return isuse;
}
public void setIsuse(boolean isuse) {
this.isuse = isuse;
}
public String toString(){
return "["+no+","+type+","+(isuse ? "占用":"空闲")+"]";
} }

运行如下:

输入要预订的房间号,比如201,,回车,结果

会发现201已经被占用了,退房也是一样的原理。

二维数组模拟实现酒店管理系统-java的更多相关文章

  1. PHP操作 二维数组模拟mysql函数

    PHP操作 二维数组模拟mysql函数<pre>public function monimysqltest(){ $testarray=array( array('ss'=>'1', ...

  2. 剑指offer面试题3 二维数组中的查找 (java)

    注:java主要可以利用字符串的length方法求出长度解决这个问题带来方便 public class FindNum { public static void main(String[] args) ...

  3. SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )

    图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...

  4. 11、增强型for循环对二维数组的输出(test8.java)

    由于笔者原因,这部分知识,尚不能整理出代码,笔者会好好学习增强型for循环中迭代起的相关知识,在笔者有能力,书写好这段代码后,将对本篇文章,进行二次修改,也同时欢迎大家与笔者交流,共同学习,共同进步. ...

  5. 10、二维数组的申请(test7.java)

    我个人认为,二维数组的构造就是在一位数组中存入一个地址,这个地址指向另一个一位数组,这样通过这种排列组合便构造成了二维数组. 二维数组的形状,有的时候二维数组看起来像是一个矩阵,所以一般情况下如果涉及 ...

  6. 剑指Offer-1.二维数组中的查找(C++/Java)

    题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

  7. 剑指Offer:面试题3——二维数组中的查找(java实现)

    问题描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路:取数组中的元素与 ...

  8. 剑指offer第二版面试题3:二维数组中的查找(JAVA版)

    题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 1 2 8 9 2 4 ...

  9. Java一维与二维数组的拷贝与排序

    Java一维与二维数组的拷贝与排序 目录 Java一维与二维数组的拷贝与排序 Arrays.sort() 一维数组升序排序 二维数组按行升序排序 二维数组按列升序排序 Java中的数组 Java中数组 ...

随机推荐

  1. 由linux命令谈学习操作系统的重要性

    linux命令妙趣横生,喜欢敲命令行的人会深有体会,但是没有系统学习过操作系统的话,很多命令还是难以理解的.讲实在话,大多数linux爱好者常敲的都是这些方面的: 文件系统 磁盘 网络 系统状态 账户 ...

  2. js遍历 子节点 子元素

    Js 节点 子元素 属性 方法 // 添加子节点前 删除所有子节点 var usernameEle = document.getElementById("username"); v ...

  3. dubbo源码—dubbo简介

    dubbo是一个RPC框架,应用方像使用本地service一样使用dubbo service.dubbo体系架构 上图中的角色: 最重要的是consumer.registry和provider con ...

  4. MSSQLSERVER并行度

    Microsoft SQL Server最大并行度(MAXDOP) 配置选项控制并行计划用于执行查询的处理器的数目.此选项确定用于执行工作并行查询计划运算符的计算和线程资源.根据是否 SQL Serv ...

  5. golang 最和谐的子序列

    We define a harmonious array is an array where the difference between its maximum value and its mini ...

  6. Python开发之路

    详细内容见老男孩<<python入门与提高实践>> 第一篇:python入门 第二篇:数据类型.字符编码.文件处理 第三篇:函数 第四篇:模块与包 第五篇:常用模块 第六篇:面 ...

  7. python matplotlib 绘图基础

    在利用Python做数据分析时,探索数据以及结果展现上图表的应用是不可或缺的. 在Python中通常情况下都是用matplotlib模块进行图表制作. 先理下,matplotlib的结构原理: mat ...

  8. Mac安装Homebrew

    Homebrew的安装,打开终端复制.粘贴以下命令,回车 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/i ...

  9. 申请的服务器安装tomcat后不能访问的问题

    新申请的阿里云服务器,操作系统是CentOS6.5,安装jdk1.8版本,用java -version命令可以查看jdk版本,安装正确会有版本显示.然后安装tomcat,tomcat安装后默认端口是8 ...

  10. 【转】adb shell dumpsys 命令

    adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名 需要列出当前运行的服务,可运行: adb shell dumpsys | findstr DUM ...