酒店管理系统部分功能实现
程序员文章站
2022-10-03 20:21:52
酒店管理系统部分功能实现用二维数组,为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。1.房间类2.酒店类3.酒店前台类总结用二维数组,为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。1.房间类代码如下(示例)://房间类public class Room1 { //房间编号 private int no; //房间类型 private String type; //房间状态 private bool...
酒店管理系统部分功能实现
用二维数组,为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。
1.房间类
代码如下(示例):
//房间类
public class Room1 {
//房间编号
private int no;
//房间类型
private String type;
//房间状态
private boolean status;
//构造方法
public Room1() {
}
public Room1(int no, String type, boolean status) {
this.no = no;
this.type = type;
this.status = status;
}
//setter and getter
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 getStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
//重写toString方法
public String toString(){
return " "+ "房间号: " + this.no + " " + "房间状态:" + " " + this.type + " " + "房间类型:" + " " + (this.status ? "空闲" : "占用" + " ");
}
//重写equals方法
public boolean equals(Object obj){
if (obj == null || !(obj instanceof Room1)) return false;
if (this == obj) return true;
Room1 room1 = (Room1)obj;
if (this.no == room1.no){
return true;
}
return false;
}
}
2.酒店类
代码如下(示例):
//酒店类
public class Hotel1 {
private Room1[][] rooms;
//构造方法
public Hotel1(){
/**
* 1层单人间 101 102 103...
* 2层双人间 201 202 203...
* 3层总统间 301 302 303...
*/
rooms = new Room1[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 Room1((i + 1) * 100 + j + 1,"单人间",true);
} else if (i== 1) {
rooms[i][j] = new Room1((i + 1) * 100 + j + 1,"双人间",true);
} else if (i == 2) {
rooms[i][j] = new Room1((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){
Room1 room1s = rooms[roomNo / 100 - 1][roomNo % 100 - 1];
room1s.setStatus(false);
System.out.println(roomNo + "订房成功");
}
//退房方法
public void exit(int roomNo){
Room1 room1s = rooms[roomNo / 100 - 1][roomNo % 100 - 1];
room1s.setStatus(true);
System.out.println(roomNo + "退房成功");
}
}
3.酒店前台类
代码如下(示例):
import java.util.Scanner;
//酒店前台类
public class HotelMgtSystem {
public static void main(String[] args) {
Hotel1 h = new Hotel1();
System.out.println("欢迎使用酒店管理系统,请阅读以下功能,以便您使用");
System.out.println("功能如下: [1]查询所有房间信息 [2]订房 [3]退房 [4]退出系统");
Scanner s = new Scanner(System.in);
while(true){
System.out.print("请输入功能编号:");
int i = s.nextInt();
switch (i){
case 1:
h.print();
break;
case 2:
System.out.print("请输入订房编号:");
int roomNo1 = s.nextInt();
h.order(roomNo1);
break;
case 3:
System.out.println("请输入退房编号:");
int roomNo2 = s.nextInt();
h.exit(roomNo2);
break;
case 4:
System.out.println("欢迎下次使用该系统,已退出");
System.exit(0);
default:
System.out.println("您输入的编号有误,请重新输入");
break;
}
}
}
}
总结
用到了二维数组。
还有很多地方还是可以优化,并且还是有些小bug的。
如有错误,请大佬指出。
本文地址:https://blog.csdn.net/MaoEoow/article/details/110839122