为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能. 1、该系统的用户是:酒店前台。 2、酒店使用一个二维数组来模拟。"Room[][] rooms ;" 3、酒店中的每一个房间应该是一个java对象: Room 4、每一个房间Room应该有:房间编号、房间类型、房间是否空闲. 5、系统应该对外提供的功能: 可以预定房间:用户输入房间编号,订房。 可以退房:用户输入,房间编号,退房。 可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态。简单代码编写,其中还有很多bug需要细化
房间
package com.bjpowernode.javase.array.homework; import java.util.Objects; public class Room { //房间编号:101 102 103 104...... private int no; //房间状态:true表示空闲 false 表示占用 private boolean status; //房间种类:标间、单人间、总统套房 private String type; public Room() { } public Room(int no, boolean status, String type) { this.no = no; this.status = status; this.type = type; } public int getNo() { return no; } public void setNo(int no) { this.no = no; } public boolean isStatue() { return status; } public void setStatue(boolean statue) { this.status = statue; } public String getType() { return type; } public void setType(String type) { this.type = type; } //例如:两个房间的编号相同表示同一个房间 @Override public boolean equals(Object obj) { if (obj == null || !(obj instanceof Room)) return false; if (this == obj ) return true; //因为obj里面没有Room,所以要先转换成Room类型 Room m = (Room)obj; //当前房间编号等于传过来的房间编号,等于同一间 return this.getNo() == m.getNo(); } @Override public String toString() { return "[" + no +","+ (status ? "空闲" : "占用") + "," + type + "]"; } /*public static void main(String[] args) { Room m = new Room(101,true,"单人间"); //Room m1 = new Room(102,true,"单人间"); //System.out.println(m.equals(m1)); System.out.println(m); }*/ }
酒店:
package com.bjpowernode.javase.array.homework; public class Hotel { //用二维数组模拟大厦中的所有房间 private Room[][] rooms; //通过构造方法来盖楼 public Hotel() { rooms = new Room[3][8];//三层楼,每层8个房间 //创建24个对象,放入数组中 //遍历 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++){ Room room = rooms[i][j]; System.out.print(room); } System.out.println(); } } //订房 roomNo调用此方法时需要传递一个房间编号过来,这个是前台输入的 public void order(int roomNO){ //例如定的房间为206 Room room = rooms[roomNO/100-1][roomNO%100-1]; //需要把订的房间状态改为false room.setStatue(false); System.out.println(roomNO + "已订房!"); } //退房 public void exit(int roomNo){ Room room = rooms[roomNo/100-1][roomNo%100-1]; room.setStatue(true); System.out.println(roomNo + "已退房!"); } }
酒店管理系统
package com.bjpowernode.javase.array.homework; 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、退房 4、退出" ); Scanner s = new Scanner(System.in); while(true){ System.out.println("请输入功能编号: "); int i = s.nextInt(); if(i == 1){ //查看房间列表 h.print(); }else if(i==2){ //订房 System.out.println("请输入订房编号:"); int roomNo = s.nextInt();//前台输入 h.order(roomNo); }else if(i==3){ //退房 System.out.println("请输入退房编号:"); int roomNo = s.nextInt(); h.exit(roomNo); }else if(i == 4){ //退出 System.out.println("再见,欢迎您下次到来"); }else{ System.out.println("对不起,您输入的编号有误,请重新输入"); } } } }
运行界面:
Java实现——酒店管理系统
最新推荐文章于 2024-03-24 23:01:35 发布