运用java面向对象和二维数组的知识写了一个简单的酒店住房退房管理系统
适合初学java的同学
首先给大家看一下我的项目的目录结构,很简单就3个类
接下来给大家看一下我这3个类的代码
1,首先考虑一个酒店的住房退房管理系统,首先用面向对象的的思维思考,这个系统里面有几个对象(找对象可以去找名词)
2,找名词那应该是一个小菜一碟的事对吧,我们可以找到房和酒店(由很多个房间组成)这2个名词对吧
3,竟然找到了有几个对象那我们是不是应该有房和酒店这2个对象的实体类(完全用面向对象的思维做)
下面我们来看一下这2个实体类的代码
Hotel.java
package hotel;
public class Hotel {
//用二维数组模拟酒店的所有房间
private Room[][] rooms;
public Hotel(){
//3层 每层10个房间 用二维数组装起来
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++) {
//Room room = rooms[i][j];
System.out.print(rooms[i][j]+"\t");
}
System.out.println();
}
}
/**
* 订房方法,需要传进来一个房间编号
* */
public void order(int roomNo) {
Room room = rooms[roomNo/100-1][roomNo%100-1];
if(room.isStatus()==false) {
System.out.println("房间状态为占用,无法订阅");
}else {
room.setStatus(false);
System.out.println("订房成功");
}
}
/**
* 退房方法,需要传进来一个房间编号
* */
public void exit(int roomNo) {
Room room = rooms[roomNo/100-1][roomNo%100-1];
if(room.isStatus()==true) {
System.out.println("房间状态为空闲,无法退房");
}else {
room.setStatus(true);
System.out.println("退房成功");
}
}
}
Room.java
package hotel;
public class Room {
//房间编号
private int no;
//房间类型
private String type;
//房间状态
private boolean status;
public Room(int no, String type, boolean status) {
this.no = no;
this.type = type;
this.status = status;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
//重写toString方法
@Override
public String toString() {
return "["+no+","+type+","+(status ? "未借出":"借出")+"]";
}
//重写equals方法
@Override
public boolean equals(Object obj) {
if(obj == null || !(obj instanceof Room)) {
return false;
}
if(this == obj) {
return true;
}
Room room = (Room)obj;
return this.getNo() == room.getNo();
}
}
最后还有一个测试类 Test.java
package hotel;
public class Test {
public static void main(String[] args) {
//创建一个酒店
Hotel hotel = new Hotel();
boolean flog = true;
while(flog) {
System.out.println("=====欢迎使用酒店管理系统=====");
System.out.println("请选择对应的功能编号: [1]查看房间列表 [2]订阅 [3]退房 [0]退出系统");
java.util.Scanner sc = new java.util.Scanner(System.in);
int num = sc.nextInt();
switch(num) {
case 1:
hotel.print();
break;
case 2:
System.out.println("请输入订房编号:");
int roomNo = sc.nextInt();
hotel.order(roomNo);
break;
case 3:
System.out.println("请输入退房编号:");
int roomNo1 = sc.nextInt();
hotel.exit(roomNo1);
break;
case 0:
System.out.println("再见");
flog = false;
break;
default :
System.out.println("输入房间编号有误,,请重新输入");
break;
}
}
}
}
看看最后的效果是什么
1查看房间列表
2订阅和3退房
以上就是一个用java写的管理系统(控制台(console)版),谢谢观看