酒店管理系统:
需求: 实现一个简单的酒店客房管理系统,房间信息包含,类型、楼层,房间号,价格,入住状态,它具备5个功能:
分别为【1:查看所有房间 功能;2:订房功能;3:退房功能;4:修改价格功能;5:退出本系统功能】
分析:
酒店的房间信息可以用二维数组装起来,此篇博客我使用一维数组,用五个一维数组分别存储类型,房间号,价格,入住状态,楼层的信息可以用一个数组下标,输出不同的数组的值,组成一个房间的所有信息。
五个功能,分别定义五个不同的方法,代表不同的功能。同时定义一个菜单方法,显示管理系统的所有功能。
1.在主函数中用switch case语句输入哪个值调用对应的功能。同时使用while语句不断循环case语句,选择退出功能时,结束循环
package com.company.day12;
import java.util.Scanner;
public class roomsys {
//房间信息
static int roomprice[]={200,199,400,600,1000,7000};
static int folur[]={2,3,4,5,6,7};
static int roomnumber[]={201,302,404,505,506,701};
static String type[]={"单人间","单人间","双人间","双人间","豪华单人间","总统套房"};
static String state[]={"已入住","无人","无人","已入住","无人","无人"};
static int a=1;//while循环的变量
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用酒店管理系统");
System.out.println("请选择功能:");
menu();//菜单显示,选择功能
//while不断循环,要执行的功能。
while (a!=0) {
int look = scanner.nextInt();
switch (look) {
case 1:
all();
break;
case 2:
revervation();
break;
case 3:
roomout();
break;
case 4:
changeprice();
break;
case 5:
System.out.println("已退出酒店管理系统");
exiting();
break;
}
}
}
2.选择菜单方法:把五个功能for循环输出
//菜单功能
public static void menu(){
String[] menu={"1.查看所有房间","2.订房","3.退房","4.修改价格","5.退出本系统"};
for (int i = 0; i
System.out.print(menu[i]+" ");
}
}
查看所有房间功能。把五个数组循环遍历输出
public static void all() {
// String allroom[][] = {{"类型:单人间", "楼层:二楼", "房间号:201", "价格:200", "入住状态:已入住"},
// {"类型:单人间", "楼层:3楼", "房间号:302", "价格:199", "入住状态:无人"},
// {"类型:双人间", "楼层:4楼", "房间号:404", "价格:400", "入住状态:无人"}, {"类型:双人间", "楼层:5楼", "房间号:505", "价格:600", "入住状态:已入住"},
// {"类型:豪华单人间", "楼层:5楼", "房间号:506", "价格:1000", "入住状态:已入住"}, {"类型:总统套房", "楼层:7楼", "房间号:701", "价格:7000", "入住状态:已入住"},};
for (int i = 0; i < roomnumber.length; i++) {
System.out.print("类型:"+type[i]+" "+"楼层:"+folur[i]+" "+"房间号:"+roomnumber[i]+" "+"价格: "+roomprice[i]+" "+"入住状态:"+state[i]);
System.out.println();
}
// System.out.println(allroom[i][j]);
}
订房功能:找到并且输出无人的房间信息,客户选择房间后,把房间状态改为已入住。
注意的是:当房间状态全部为已入住时,提示已住满(定义一个count,当count等于房间总数时,输出已住满)
订房功能:
1.一维数组把每个房间信息分别装起来,订房的时候先查看这个入住状态,无人就输出。
2.用户选择房间,选择的房间的入住状态标记为已入住
*/
public static void revervation () {
//循环找到,未入住的房间。
for (int i = 0; i
if(state[i].equals("无人")){
System.out.print("类型:"+type[i]+" "+"楼层:"+folur[i]+" "+"房间号:"+roomnumber[i]+" "+"价格: "+roomprice[i]+" "+"入住状态:"+state[i]);
System.out.println();
}
}
//客户选择入住的房间。
int count=0;//定义一个计数器
System.out.println("请选择房间类型:");
Scanner room=new Scanner(System.in);
String roomtypeselect=room.nextLine();//房间类型
System.out.println("请选择房间号:");
int roomnumber1=room.nextInt();//用户输入的房间号
for (int i = 0; i
if(roomtypeselect.equals(type[i])&&state[i].equals("无人")&&roomnumber1==roomnumber[i]){
System.out.println("你选择的房间为:");
System.out.print("类型:"+type[i]+" "+"楼层:"+folur[i]+" "+"房间号:"+roomnumber[i]+" "+"价格: "+roomprice[i]);
state[i]="已入住";
}
//循环整个数组,找不到无人的状态,提示酒店已住满(如何判断整个数组都为已入住)
if(state[i].equals("已入住")){
count++;
if(count==6){ //房间数
System.out.println("本酒店已住满");
}
}
}
}
退房功能:找到退的房间号,把改房间状态改为无人。
注意:不可重复退相同的房间。
public static void roomout () {
// int count=0;//定义计数器,退房次数。当大于一时提示 已退房,请误重复退房
Scanner tuitui=new Scanner(System.in);
System.out.println("退房功能");
System.out.println("请输入要退的房间类型:");
String tuitype=tuitui.nextLine();
System.out.println("请输入要退的房间号:");
int tui=tuitui.nextInt();
//把退房的状态改为无人
for (int i = 0; i
if(roomnumber[i]==tui){
// count++;
state[i]="无人";
System.out.println("退房成功,祝您生活愉快");
}
//输入房间号错误
// else if(roomnumber[i]!=tui&&type[i]!=tuitype){
// System.out.println("输入房间号错误");
// }
//重复退房
// if(count==2){
// System.out.println("已退房,请误重复退房");
// }
}
}
修改价格功能:修改房间价格,要知道修改什么房间类型,并且改为多少钱
修改价格功能
1.输入要修改房间价格的类型,输入修改后的价格。
2.找到房间类型的下标索引,把修改的价格赋值给roomprice数组,完成价格修改。
*/
public static void changeprice () {
System.out.println("要修改的价格的房间类型");
Scanner change1=new Scanner(System.in);
String change=change1.nextLine();//修改价格的房间类型
System.out.println("修改的价格为:");
int changeprice=change1.nextInt();//输入该房间类型的修改价格
for (int i = 0; i
if(change.equals(type[i])){
roomprice[i]=changeprice;
System.out.println("房间价格修改完成");
}
}
}
退出本系统:return一个变量值,作为while循环的结束条件
public static int exiting(){
return a=0;
}
运行结果:



