如何用java创建一个简单的订房管理程序呢
首先,我们需要明确功能,该订房管理程序有4个基本功能:
1. 订房 2. 退房 3. 查询 4. 退出
我们假设某酒店有3层客房,一层为单人间,二层为标准间,三层为豪华间,每层相应的房间数量都为10个,用户输入所对应的数字进行相应操作,如果不退出的话会一直循环,直到输入4才能退出。订房时不考虑每次订房数量问题。
其次,我们需要分析各层功能该如何编写。
程序首先要进行初始化,定义数组,记录房型,房间号,和房间状态
对三种房型分别进行定义初始化。
由于不退出的话会一直循环,所以要定义一个外层循环判断
订房功能:
若有空余房间,则可以根据选择预订需要的房间,每次成功订完后,相应剩余空闲房间数-1,直到房间订完提示没有空房
退房功能:
如果没有订房就退房,肯定不行,会提示尚未预订,若订过房后退房,则剩余空闲房间数+1,只考虑客户退房房型输入正确的情况
查询功能:
客户订房退房后,酒店可以查询空房状态,显示各房型有哪些空余闲房间
退出功能:
客户输入4后跳出循环,退出程序
最后,编写运行。
public static void main(String[] args) {
// 功能:
// 1、订房 2、退房 3、查询 4、退出
System.out.println("================");
System.out.println("=== 1、订房");
System.out.println("=== 2、退房");
System.out.println("=== 3、查询");
System.out.println("=== 4、退出");
System.out.println("================");
// 初始化房间容量
int sig = 10;
int dou = 10;
int nic = 10;
// 初始剩余房间量
int sigRemain = 10;
int douRemain = 10;
int nicRemain = 10;
// 初始化单人间状态
String[][] sigRoom = new String[10][3];
for (int i = 0; i < sigRoom.length; i++) {
for (int j = 0; j < sigRoom[i].length; j++) {
sigRoom[i][0] = "单人间 ";
sigRoom[i][1] = (i + 101) + " ";
sigRoom[i][2] = "空闲";
}
}
// 初始化标准间状态
String[][] douRoom = new String[10][3];
for (int i = 0; i < douRoom.length; i++) {
for (int j = 0; j < douRoom[i].length; j++) {
douRoom[i][0] = "标准间 ";
douRoom[i][1] = (i + 201) + " ";
douRoom[i][2] = "空闲";
}
}
// 初始化豪华间状态
String[][] nicRoom = new String[10][3];
for (int i = 0; i < nicRoom.length; i++) {
for (int j = 0; j < nicRoom[i].length; j++) {
nicRoom[i][0] = "豪华间 ";
nicRoom[i][1] = (i + 301) + " ";
nicRoom[i][2] = "空闲";
}
}
// 不考虑每次订房数量且不同房型和退房房型输入不正确的情况,且仅考虑输入情况为数字
// 定义初始订房历史记录数为0,防止一直退房成功
int sigHistory = 0;
int douHistory = 0;
int nicHistory = 0;
while (true) {
System.out.println("请选择你要进行的功能:");
int num = new Scanner(System.in).nextInt();
switch (num) {
// 1、订房
// 订房时从每层第一间开始订
case 1:
System.out.println("======================");
System.out.println("请选择你要预定的房间类型:");
System.out.println("=== 1、单人间");
System.out.println("=== 2、标准间");
System.out.println("=== 3、豪华间");
System.out.println("======================");
// 定义输入判断1,若输入错误则需一直输入直到正确
boolean flag1 = true;
while (flag1) {
int select = new Scanner(System.in).nextInt();
if (select > 0 && select < 4) {
// 预订单人间
if (select == 1 && sigRemain > 0) {
// 预订一次剩余房间数-1
sigRemain--;
// 订过房则有订房记录,可以退房
sigHistory++;
System.out.println("恭喜您单人间预定成功!");
// 预订标准间
} else if (select == 2 && douRemain > 0) {
// 预订一次剩余房间数-1
douRemain--;
// 订过房则有订房记录,可以退房
douHistory++;
System.out.println("恭喜您标准间预定成功!");
// 预订豪华间
} else if (select == 3 && nicRemain > 0) {
// 预订一次剩余房间数-1
nicRemain--;
// 订过房则有订房记录,可以退房
nicHistory++;
System.out.println("恭喜您豪华间预定成功!");
// 如果没房则无法订房
} else {
System.out.println("不好意思,房间已经全部订完!");
break;
}
// 预定成功跳出循环
flag1 = false;
} else {
System.out.println("选择房间类型错误,请重新输入!");
}
}
break;
// 2、退房
case 2:
System.out.println("请选择你要退订的房间类型:");
// 定义输入判断2,若输入房间类型错误则需一直输入直到正确
boolean flag2 = true;
while (flag2) {
// 接收要退订的房间类型
int select2 = new Scanner(System.in).nextInt();
if (select2 > 0 && select2 < 4) {
switch (select2) {
case 1:
// 若未订过单人间,报错退出
if (sigHistory - 1 < 0) {
System.out.println("您尚未预订单人间!请重新选择功能!");
break;
}
sigRemain++;
sigHistory--;
System.out.println("恭喜您单人间退房成功!");
break;
case 2:
// 若未订过标准间,报错退出
if (douHistory - 1 < 0) {
System.out.println("您尚未预订标准间!请重新选择功能!");
break;
}
douRemain++;
douHistory--;
System.out.println("恭喜您标准间退房成功!");
break;
case 3:
// 若未订过豪华间,报错退出
if (nicHistory - 1 < 0) {
System.out.println("您尚未预订豪华间!请重新选择功能!");
break;
}
nicRemain++;
nicHistory--;
System.out.println("恭喜您豪华间退房成功!");
break;
}
// 退订成功跳出循环
flag2 = false;
} else {
System.out.println("输入房间型错误,请重新输入");
}
}
break;
// 3、查询
case 3:
System.out.println("*************************");
System.out.println("空房状态:");
System.out.println("*************************");
// 输出空闲的单人间
for (int i = sig - sigRemain; i < sig; i++) {
for (int j = 0; j < sigRoom[i].length; j++) {
System.out.print(sigRoom[i][j] + " ");
}
System.out.println();
}
System.out.println("*************************");
// 输出空闲的标准间
for (int i = dou - douRemain; i < dou; i++) {
for (int j = 0; j < douRoom[i].length; j++) {
System.out.print(douRoom[i][j] + " ");
}
System.out.println();
}
System.out.println("*************************");
// 输出空闲的豪华间
for (int i = nic - nicRemain; i < nic; i++) {
for (int j = 0; j < nicRoom[i].length; j++) {
System.out.print(nicRoom[i][j] + " ");
}
System.out.println();
}
break;
// 4、退出系统
case 4:
System.exit(0);
default:
System.out.println("输入错误,请重新输入!");
}
}
}
有兴趣的小伙伴们可以尝试自己动手编写运行一下哦!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83634.html