Main.java
package day06;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Hotel hotel=new Hotel();
Scanner input=new Scanner(System.in);
do {
System.out.println("请输入你要进行的操作:");
System.out.println("1、查询 2、办理入住 3、办理退房 0、退出");
int choice=input.nextInt();
switch (choice){
case 1:{
hotel.show();
}break;
case 2:{
System.out.println("请输入房间号:");
int num=input.nextInt();
System.out.println("请输入客户姓名:");
String name=input.next();
hotel.in(num,name);
}break;
case 3:{
System.out.println("请输入房间号:");
int num=input.nextInt();
hotel.out(num);
}break;
case 0:
System.out.println("退出成功!");
System.exit(0);
default:
System.out.println("输入错误!");break;
}
}while (true);
}
}
Hotel.java
package day06;
import java.util.Scanner;
public class Hotel {
Room[][] room;//五层
Scanner input=new Scanner(System.in);
public void show(){
for (int i = 0; i < room.length; i++) {//循环五层
for (int j = 0; j < room[i].length; j++) {//循环每层的房间
boolean flag=false;//判断条件
System.out.print(room[i][j].num+"\t");
if (j==4)//如果已经达到最后一个房间了,flag变成true
{
flag=true;
System.out.println();
}
if (flag==true){//flag为true时,打印该层房间的对应用户
for (int k = 0; k < room[i].length; k++) {
System.out.print(room[i][k].guests.name+"\t");
if (j==4)//打印完成用户后flag变成false,并换行
{
flag=false;
}
}System.out.println();
}
}
}
}
public void in(int num,String name){
int numj=num%10-1;//计算房间号
int numi=num/1000-1;//计算层数
if (room[numi][numj].guests.name==null){//也可以room[numi][numj].guests.name==null
//room[numi][numj].guests= new Guest();
// 可以在这里新建对象,也可以在Room类里定义时就new Guest guests=new Guest();
room[numi][numj].guests.name=name;
System.out.println("入住成功!");
}
else {
System.out.println("房间已有人!");
}
}
public void out(int num){
int numj=num%10-1;
int numi=(num-numj)/1000-1;
if (room[numi][numj].guests.name!=null){
room[numi][numj].guests.name=null;
System.out.println( room[numi][numj].num+"房间"+room[numi][numj].guests.name+"退房成功!");
}
else {
System.out.println(room[numi][numj].num+"房间无人居住!");
}
}
public Hotel(){
room=new Room[5][5];//初始化五层,每层五个房间
for (int i = 0; i < room.length; i++) {
for (int j = 0; j < room[i].length; j++) {
int num=(i+1)*1000+j+1;
room[i][j]=new Room(num);//记得new一个对象,才能输入,否者空指针异常
//System.out.print(room[i][j].num);
//System.out.print(room[i][j].guests.name);
}
}
}
}
Guest.java
package day06;
public class Guest {
String name;//客户姓名
int age;//年龄
int id;//id
public Guest(){
}
public Guest(String name){
this.name=name;
}
}
Room.java
package day06;
public class Room {
int num;
Guest guests=new Guest();//在Room中调用Guest成员,成员信息在Guest中 Guest guests;
public Room(){
}
public Room(int num){
this.num=num;
}
}