问题描述:

为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。
1、该系统的用户是:酒店前台。
2、酒店使用一个二维数组来模拟。“Room[][] rooms;”
3、酒店中的每一个房间应该是一个java对象:Room
4、每一个房间Room应该有:房间编号、房间类型、房间是否空闲.
5、系统应该对外提供的功能:
可以预定房间:用户输入房间编号,订房。
可以退房:用户输入房间编号,退房。
可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态。

问题分析:

定义Room和Hotel类,Hotel里面包含一个Room类的二维数组用来模拟每一个不同楼层的房间号。依次实现相应要求。

代码实现:

Room类:

public class Room {//房间编号private int no;//房间类型private String type;//房间状态,true表示可以被预定,false表示不可被预定private boolean status;public int getNo() {return no;}//构造方法public Room() {}public Room(int no, String type, boolean status) {this.no = no;this.type = type;this.status = status;}//封装public void setNo(int no) {this.no = no;}public String getType() {return type;}public void setType(String type) {this.type = type;}public boolean getStatus() {return status;}public void setStatus(boolean status) {this.status = status;}//toString方法重写@Overridepublic String toString() {return "[" + no + "," + type + "," + (status ? "可预订":"不可预定") + "]";}//equals方法重写@Overridepublic boolean equals(Object obj) {if(obj == null || !(obj instanceof Room)) return false;//传来的为空或不是Room类直接返回falseif (this == obj) return true;//如果内存地址一样,直接返回trueRoom r = (Room)obj;//强制类型转换return this.getNo() == r.getNo();}

Hotel类:

public class Hotel {private Room[][] rooms;//构造方法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,"单人间",true);else if (i == 1) rooms[i][j] = new Room((i+1) * 100 + j + 1,"双人间",true);else if (i == 2) rooms[i][j] = new Room((i+1) * 100 + j + 1,"豪华间",true);}}}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]);}System.out.println();}}//订房间方法public void order(int roomNo){//根据房间编号计算在数组中的坐标Room room = rooms[roomNo / 100 - 1][roomNo % 10 - 1];room.setStatus(false);System.out.println(roomNo + "已预订");}//退房public void exit(int roomNo){Room room = rooms[roomNo / 100 -1][roomNo % 10 - 1];room.setStatus(true);System.out.println(roomNo + "已退房");}
}

HotelMgtSystem类:

import java.util.Scanner;
public class HotelMgtSystem {public static void main(String[] args) {Hotel h = new Hotel();System.out.println("欢迎使用九点管理系统,请认真阅读以下使用说明:");System.out.println("请输入对应的功能编号:[1]表示查看房间状况;[2]表示订房;[3]表示退房;[0]表示退出");System.out.println("请输入功能编号:");while (true) {Scanner s = new Scanner(System.in);int i = s.nextInt();if (i == 1) {h.print();} else if (i == 2) {System.out.println("请输入要预定的房间编号:");Scanner n = new Scanner(System.in);int roomNo = n.nextInt();h.order(roomNo);} else if (i == 3) {System.out.println("请输入要退房的房间编号:");Scanner n = new Scanner(System.in);int roomNo = n.nextInt();h.exit(roomNo);} else if (i == 0) {System.out.println("欢迎下次光临");return;} else System.out.println("输入的功能编号有误,请重新输入:");}}
}

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

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

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

  2. Java黑皮书课后题第2章:*2.20(金融应用:计算利息)编写程序,读取余额和年利率百分比,打印下个月的利息

    *2.20(金融应用:计算利息)编写程序,读取余额和年利率百分比,打印下个月的利息 题目 题目概述 运行示例 题目槽点 代码/验证:居然不用考虑那么复杂 题目 题目概述 *2.20(金融应用:计算利息 ...

  3. 编写程序,实现判断用户输入的数是正书还是负数的功能。

    实现判断用户输入的数是正书还是负数的功能. a = int(input('请输入一个整数或负数:')) if a > 0:print('你输入的是正数') elif a < 0:print ...

  4. c语言编写程序“输入任意一个年份和月份,打印当月日历。”

    日常生活中我们所见到的日历如图所示: 代码思路: 1. 我们想打印某年某月的日历,我们就得知道这个月是从星期几开始,且这个月有多少天. 2. 要想知道这个月是从星期几开始的,就得知道上一个月的最后一天 ...

  5. c语言:编写程序,把你的名和姓打印在一行,然后把名和姓各打印一行。

    思路:print函数并注意\n的使用. #include<stdio.h> int main() {printf("Guang shu\n");printf(" ...

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

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

  7. c语言大作业酒店管理系统,用C语言编写的酒店管理系统

    #include #include #include int max=1;//用于计数用户登录 int room[5][5];//声明一个2维数组保留每个房间的入住 int jishi[5][5];/ ...

  8. 用c语言编写一个酒店点菜菜单,C课程设计报告酒店点菜管理系统设计.doc

    C课程设计报告酒店点菜管理系统设计 PAGE C++面向对象课程设计报告 院(系): 专业: 学生姓名: 班级 学号: 题目: 酒店点菜管理系统设计_______ 起迄日期: _ 设计地点: 指 导 ...

  9. 酒店/度假村等客房管理系统实例源代码51aspx

    1.选题背景 本课题来自金海湖度假村的实际业务需求.金海湖度假村是一家从事旅游休闲工作的私营性质的企业,金海湖度假村是以休闲.娱乐.度假与团队会务活动为主要业务的星级休闲度假场所,该假村现有市.区级民 ...

最新文章

  1. linux 磁盘扩容_当LINUX服务器磁盘空间不够时如何进行磁盘扩容?
  2. NET插件系统之四——提升系统搜索插件和启动速度的思考
  3. block关键字的使用
  4. docker mysql映射端口映射_docker的简单操作和端口映射
  5. Android Ormlite 学习笔记1 -- 基础
  6. H.264边缘块进行帧内预测时,上边缘和左边缘块的预测情况。
  7. 程序员熬夜写代码,用C/C++打造一个安全的即时聊天系统
  8. android intent拍照,Android通过Intent方式调用相机拍照取得图片
  9. 雪花算法id长度_【Java】分布式自增ID算法雪花算法 (snowflake,Java版)
  10. mac电脑装java环境变量_Mac系统下安装jdk并配置环境变量的方法
  11. TListView列表拒绝添加重复信息
  12. UR+RealSense手眼标定(eye-to-hand)
  13. 06-函数参数和文档
  14. 京东自营客服初级考试
  15. contentprovider与resolver使用
  16. torch学习 (二十四):卷积神经网络之GoogleNet
  17. vmware缩写涵义
  18. KDD2022推荐系统论文集锦
  19. java ssm汽车销售管理系统
  20. Bugtags 远程配置功能介绍

热门文章

  1. 佟年计算机天才不会打游戏,韩商言为什么会自卑?来看看佟年的家境,难怪佟母看不上富二代...
  2. 浪涌/ESD的基础与对策零部件
  3. 2019年证券从业 证券市场基本法律法规(新大纲) 精讲班
  4. Android开发实例——倒计时器——Android多线程编程
  5. book_shop 实验十
  6. TokenGazer评级 | Bancor:经济模型架设具备创新 未来发展存在较多挑战
  7. pb使用记录 关于pbt、pbr、pbd
  8. mysql类似于excel的删除重复项_sql删除重复项并保留其中一条(含sql优化)
  9. 机器学习入门3--回归之正则化及评价指标
  10. *** glibc detected *** java: free(): invalid next size (fast): 0x00000000024b19d0 ***