需求分析:显示房间状态、订房、退房。

需要三个类:测试类、酒店类、房间类

房间类有三个attribute:房间编号、房间类型、房间状态

酒店类三个operation:显示房间状态、订房、退房

public class Room
{private int no;private String type;private boolean occupancy;public int getNo(){return no;}public void setNo(){this.no = no;}public String getType(){return type;}public void setType(String type){this.type = type;}public boolean getOccupancy(){return occupancy;}public void setOccupancy(boolean occupancy){this.occupancy = occupancy;}public Room(int no,String type,boolean occupancy){this.no = no;this.type = type;this.occupancy = occupancy;}public String toString(){String str = occupancy ? "占用" : "空闲";return "[no="+no+",房型="+type+",状态"+str+"]";}
}
public class Hotel
{Room[][] rooms;public Hotel(){rooms = new Room[3][9];//3层,每层9个房间//给房间编号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);}if(i==1){rooms[i][j] = new Room((i+1)*100+j+1,"标准间",false);}if(i==2){rooms[i][j] = new Room((i+1)*100+j+1,"豪华间",false);}}}}public void display(){for(int i = 0;i < rooms.length;i++){for(int j =0;j < rooms[i].length;j++){if(j%3==0){//每行显示3个房间信息System.out.println();}System.out.print(rooms[i][j]+"\t");}}}public void reserve(int no){for(int i = 0;i < rooms.length;i++){for(int j =0;j < rooms[i].length;j++){if(rooms[i][j].getNo()==no){rooms[i][j].setOccupancy(true);System.out.println("预定成功!您预定的房间编号为:"+no);return;}}}}public void checkout(int no){for(int i = 0;i < rooms.length;i++){for(int j =0;j < rooms[i].length;j++){if(rooms[i][j].getNo()==no){rooms[i][j].setOccupancy(false);System.out.println("您已成功退掉:"+no+"号房!");return;}}}}public boolean getRoomOccupancy(int no){for(int i = 0;i < rooms.length;i++){for(int j =0;j < rooms[i].length;j++){if(rooms[i][j].getNo()==no){return rooms[i][j].getOccupancy();}}}System.out.println("您输入的房间不存在!");return false;}
}
import java.util.*;
public class Test
{public static void main(String[] agrs){Scanner input = new Scanner(System.in);Hotel hotel = new Hotel();int no;System.out.println("-------------------欢迎来到XX酒店-------------------");while(true){System.out.println("请选择服务(输入数字):1、查询房间情况  2、预定房间  3、退房");switch(input.nextInt()){case 1:{System.out.println("------------------- 酒店房间情况--------------------");hotel.display();break;}case 2:{while(true){try{System.out.println("请输入您想要入住的房间编号");no = input.nextInt();if(hotel.getRoomOccupancy(no)){System.out.println("对不起,该房间已有人入住,请重新选择!");}else{hotel.reserve(no);break;}}catch(Exception e){System.out.println("您输入的信息有误,请重新进入系统!");}}break;}case 3:{while(true){try{System.out.println("请输入您想退的房间号");no = input.nextInt();if(hotel.getRoomOccupancy(no)){hotel.checkout(no);break;}else{System.out.println("该房间无人入住,请重新输入!");}}catch(Exception e){System.out.println("您输入的信息有误,请重新进入系统!");}}break;}}System.out.println("\n按任意键继续使用,按q退出");if(input.next().charAt(0)=='q'){break;}}}
}

二维数组模拟酒店订房系统相关推荐

  1. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  2. php 读取mysql 二维数组_PHP操作 二维数组模拟mysql函数

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

  3. java二维数组模拟用户登录_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)...

    这里分享三道编程题, 下面是我个人的视频讲解我的解题思路以及代码运行演示https://www.zhihu.com/video/1253424180936724480 1. 编程实现以下需求: 定义一 ...

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

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

  5. JAVA进阶开发之(二维数组)

    1.二维数组其实是一个特殊的一维数组,特殊在这个二维数组中每一个元素是一个一维数组 2.就是一维数组里面都是一样的元素,二维数组就是把元素换成了一维数组 3.实际开发中,使用最多的就是一维数组,二维数 ...

  6. Go 语言-二维数组 -- 十安辰

    一.二维数组应用 比如我们开发一个五子棋游戏,棋盘就是需要二维数组来表示.如图 二.如何定义二维数组 1. 先声明/定义,再赋值 语法: var 数组名 [大小][大小]类型 比如: var`` `` ...

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

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

  8. Java----使用二维数组完成一个电影院选座系统

    用Java的二维数组来完成模拟一个电影院选座系统 模拟座位 这里先定义一个二维数组,用来模拟电影院的座位 public class ChooseSeat{public static void main ...

  9. c语言程序设计歌手大奖赛,C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委...

    导航:网站首页 > C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委 C语言二维数组怎么做:设计青年歌手参加歌曲 ...

最新文章

  1. MemoryMappingFile泄漏分析过程
  2. Integer.valueOf(String) 方法之惑
  3. 无人机集群定位与编队方式研究总结(最详细的鸟群模型分析)
  4. 计算机键盘大赛活动总结,参加技能大赛的活动总结
  5. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
  6. python def函数报错详解_python自定义函数def的应用详解
  7. Shiro的多Realm验证的实现--shiro实现不同身份使用不同Realm进行验证
  8. MyCat分布式数据库集群架构工作笔记0009---Mycat主--从复制配置上
  9. 【LOJ】#2479. 「九省联考 2018」制胡窜
  10. C#中combobox 控件属性、事件、方法
  11. Pulseaudio调用alsalib open()流程(十五)
  12. python查询千万级数据_Python批量删除mysql中千万级大量数据
  13. 永洪bi mysql连接配置_永洪BI 如果不同步数据是做的数据库直连吗?
  14. think PHP前台模板,thinkphp5(二)前台模板的引入
  15. Enhancing Social Recommendation with Adversarial Graph Convolutional Networks个人笔记
  16. PCB板-叠层详细介绍
  17. SSM框架-MyBatis(一)
  18. android 图片热点区域,Android开发之扫描附近wifi热点并列表显示
  19. 如何将vectror<char>转换成string(C++)
  20. 什么是环境变量?道理在这四个故事中

热门文章

  1. H265码流结构分析
  2. python filter求素数-埃拉托色尼筛选法
  3. R语言临床预测模型的评价指标与验证指标实战:ROC曲线、AUC(C-Statistics)
  4. canvas学习总结四:绘制虚线
  5. 2019春招美团笔试
  6. #python字典(dic缩写Dictionary)基础语法及代码实战
  7. hdr与sdr_sdr和hdr区别
  8. 《HTML5+ CSS3+JavaScript 网页设计实战(视频教学版)》代码下载、简介与前言
  9. DataBinding?资料绑定? #7 -- 伤脑筋的 GridView加总、小计(原来如此 / 范例下载)...
  10. 【20保研】北京大学前沿交叉学科研究院关于举办2019年交叉学科优秀大学生夏令营的通知...