二维数组模拟实现酒店管理系统-java
业务分析
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的更多相关文章
- PHP操作 二维数组模拟mysql函数
PHP操作 二维数组模拟mysql函数<pre>public function monimysqltest(){ $testarray=array( array('ss'=>'1', ...
- 剑指offer面试题3 二维数组中的查找 (java)
注:java主要可以利用字符串的length方法求出长度解决这个问题带来方便 public class FindNum { public static void main(String[] args) ...
- SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )
图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...
- 11、增强型for循环对二维数组的输出(test8.java)
由于笔者原因,这部分知识,尚不能整理出代码,笔者会好好学习增强型for循环中迭代起的相关知识,在笔者有能力,书写好这段代码后,将对本篇文章,进行二次修改,也同时欢迎大家与笔者交流,共同学习,共同进步. ...
- 10、二维数组的申请(test7.java)
我个人认为,二维数组的构造就是在一位数组中存入一个地址,这个地址指向另一个一位数组,这样通过这种排列组合便构造成了二维数组. 二维数组的形状,有的时候二维数组看起来像是一个矩阵,所以一般情况下如果涉及 ...
- 剑指Offer-1.二维数组中的查找(C++/Java)
题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- 剑指Offer:面试题3——二维数组中的查找(java实现)
问题描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路:取数组中的元素与 ...
- 剑指offer第二版面试题3:二维数组中的查找(JAVA版)
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 1 2 8 9 2 4 ...
- Java一维与二维数组的拷贝与排序
Java一维与二维数组的拷贝与排序 目录 Java一维与二维数组的拷贝与排序 Arrays.sort() 一维数组升序排序 二维数组按行升序排序 二维数组按列升序排序 Java中的数组 Java中数组 ...
随机推荐
- KD树
k-d树 在计算机科学里,k-d树( k-维树的缩写)是在k维欧几里德空间组织点的数据结构.k-d树可以使用在多种应用场合,如多维键值搜索(例:范围搜寻及最邻近搜索).k-d树是空间二分树(Binar ...
- js拖拽的封装
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- 房上的猫:java中的包
包 1.作用: (1)包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件 (2)防止命名冲突: java中只有在不同包中的类才能重名 (3)包允许在更广的范围内保护类,数 ...
- jsonp及cors
一. jsonp实现原理是利用script标签可以获取不同源资源的特点,来达到跨域访问某个资源的目的.具体行为如下: 创建一个script标签,将请求地址写入它的src属性,将这个script外链插入 ...
- MySQL 优化实施方案
1.1 前言 在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已.更多关于MySQL查询相关参照 ...
- git强制push
Git 如何强制push? $ git push -u origin master –f 文章来源:刘俊涛的博客 地址:http://www.cnblogs.com/lovebing 欢迎关注,有 ...
- 前端自动化(三) 合并压缩css、压缩js、添加时间戳、打包上线操作
前端自动化(三) 合并压缩css.压缩js.添加时间戳.打包上线操作 此文在前两篇基础上对比参考,会很方便理解 gulp.task("delete",function(){ r ...
- 【Python3的函数初识】
一.函数 1.什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率,可扩展性强. 2.函数的分类 在python中函数分两类:内 ...
- python3之异常处理,断言和反射
1.异常基础 python在运行过程中,程序解释机制会测试代码,如检测不通过则会抛出异常. try: aa = 10 bb = ' cc = aa + bb except Exception as e ...
- SAP HANA中的SLT简介
在以SAP系统作为主要ERP的企业中,不同系统之间的数据库数据同步是个重要的工作.对于这种需求,除了开发ABAP接口之外,也有高效的工具可用.SLT就是其中之一. SLT是SAP的第一个ETL(Ext ...