题目要求
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/61687cfd633d5186b8308df7a6603d31.png)
首先将房间对象程序写出
package hoteltest;
public class Room {
int roomnum;
String type;
boolean statu;
public Room() {
super();
}
public Room(int roomnum) {
super();
this.roomnum = roomnum;
}
public Room(int roomnum, String type) {
super();
this.roomnum = roomnum;
this.type = type;
}
public Room(int roomnum, String type, boolean statu) {
super();
this.roomnum = roomnum;
this.type = type;
this.statu = statu;
}
@Override
public String toString() {
return "房间号" + roomnum + ", 房间类型" + type + ", 房间是否住人" + statu;
}
}
再写出酒店类(包括订房、退房、打印所有房间信息方法)
package hoteltest;
public class Hotel {
Room[][] room;
public Hotel() {
super();
}
public Hotel(int a) {
this.room = new Room[a][];
}
public Hotel(int a,int b) {
this.room = new Room[a][b];
}
public void inroom(int roomnum) {
int a = (roomnum / 100) - 1;
int b = (roomnum % 100) - 1;
if(room[a][b].statu == true) {
System.out.println("这间房已经被预定了!");
return ;
}
room[a][b].statu = true;
}
public void outroom(int roomnum) {
int a = (roomnum / 100) - 1;
int b = (roomnum % 100) - 1;
if(room[a][b].statu == false) {
System.out.println("您可能输入错误,这间房没有人住不能退订!");
return ;
}
room[a][b].statu = false;
}
public void printroom() {
for(int i = 0 ; i < room.length ; i++) {
for(int j = 0 ; j < room[i].length ; j++) {
System.out.println(room[i][j]);
}
}
}
}
最后是测试程序(包括酒店规模、酒店房间的初始化、功能选择系统等)
package hoteltest;
import java.util.Scanner;
public class Hoteltest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您酒店的规格(层数,每层房间数):");
int floor,number;
floor = sc.nextInt();
number = sc.nextInt();
Hotel hotel = new Hotel(floor,number);
Room[][] room = hotel.room;
for(int i = 0 ; i < room.length ; i++) {
for(int j = 0 ; j < room[i].length ; j++) {
Room rooms = new Room();
room[i][j] = rooms;
rooms.roomnum = (i + 1) * 100 + (j + 1);
rooms.statu = false;
rooms.type = "第" + (i + 1) + "层";
}
}
int num,num1;
for(;;) {
System.out.println("提示:(1订房 2退房 3打印房间信息 4退出)");
System.out.print("请入数字:");
num1 = sc.nextInt();
if(num1 == 1) {
System.out.print("请输入房间号(例如:205、909、1205等):");
num = sc.nextInt();
if((num % 100) > number || (num / 100) > floor) {
System.out.println("您输入了错误的房间号,请重新输入!!!");
}else {
hotel.inroom(num);
}
}else if(num1 == 2) {
System.out.print("请输入房间号(例如:205、909、1205等):");
num = sc.nextInt();
if((num % 100) > number || (num / 100) > floor) {
System.out.println("您输入了错误的房间号,请重新输入!!!");
}else {
hotel.outroom(num);
}
}else if(num1 == 3) {
hotel.printroom();
}else if(num1 == 4) {
break;
}else {
System.out.println("您输入了错误的数据");
}
}
}
}
其实还可以将测试程序继续简化,将功能继续对象化。懒得写了。
接下来贴一张结果图
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e3fd8bf7fc5e4ecb817d6907fc03fd72.png)