发表于: 2017-07-29 23:12:24
1 870
今天学习的内容:
1.二维数组的声明,初始化和遍历数组
在遍历数组时,可以用普通的双重for循环,也可以用foreach语句(难理解,但是写起来简便一点)。
2.做了一个酒店前台管理系统的实例,具体看代码吧
/*
酒店前台管理系统
某酒店有12层楼,每层楼有10个房间,要求为该酒店设计一套简单的前台房间管理程序,
该程序可以通过在命令行输入命令来为客人办理入住和退房手续。
要求:该程序支持通过命令行输入以下命令进行入住,退房及查询的操作
1、search():查询所有房间的状态 empty
2、in(房间号码 姓名):客人入住
命令:in
请输入客人入住的房间号
1202
请输入入住的1202房间的顾客姓名
parker
提示:姓名为parker的客人入住1202房间
3、out(房间号码):客人退房
命令:out 1202
提示:1202房间退房
注意:某个房间已经有客人入住,再办理入住时,系统将提示:该房间已有客人
4、quit:退出程序
*/
import java.util.Scanner;
class Hotel
{
public static void main(String[] args)
{
String[][] rooms = new String[12][10];
//字符串数组如果没有初始化,默认为null
System.out.println("欢迎来到皇家壹号大酒店!");
System.out.println("请输入要操作的命令:search查询,in办理入住,out办理退房,"+"quit退出程序");
Scanner s = new Scanner(System.in);
//比较字符串相同: ”in".equals(command)
while(true)
{
String command = s.next();
if("init".equals(command))
init(rooms);
else if("search".equals(command))
search(rooms);
else if("in".equals(command))
in(rooms);
else if("out".equals(command))
out(rooms);
else if("quit".equals(command))
{
System.out.println("退出系统");
break;
//return;
}
else
{
System.out.println("输入有误,请重新输入");
}
}
}
//查询房间状态,可以根据入住情况进行查询,也可以根据房间号进行查询
public static void search(String[][] rooms)
{
System.out.println("请输入您要查询的房间号");
Scanner s = new Scanner(System.in);
for(int i = 0;i<rooms.length;i++)
{
//打印房间号
for(int j = 0;j<rooms[i].length;j++)
{
if(i<9)
System.out.print("0");
int roomNo = (i + 1)*100+j+1;
System.out.print(roomNo+"\t");
}
System.out.println();
//打印房间状态
for(int k = 0;k < rooms[i].length;k++)
System.out.print(rooms[i][k]+"\t");
System.out.println();
}
}
//办理入住,输入in命令,
public static void in(String[][] rooms)
{
System.out.println("请输入您要入住的房间:");
Scanner s = new Scanner(System.in);
int roomNo = s.nextInt();
//要把房间号转换成楼层和房间,对应数组
int floor = roomNo/100;
int no = roomNo%100;
if(floor<1||floor>12||no<1||no>10)
{
System.out.print("输入的房间号有误,请输入in命令继续");
return;
}
if(!"EMPTY".equals(rooms[floor-1][no-1]))
{
System.out.print(roomNo+"房间已有人入住,请输入in命令继续进行");
return;
}
System.out.print("请输入姓名:");
String name = s.next();
rooms[floor-1][no-1] = name;
System.out.println("恭喜您入住成功!");
}
//办理退房
public static void out(String[][] rooms)
{
System.out.print("请输入房间号");
Scanner s = new Scanner(System.in);
int roomNo = s.nextInt();
int floor = roomNo/100;
int no = roomNo%100;
if(floor<1||floor>12||no<1||no>10)
{
System.out.print("输入的房间号有误,请输入out命令继续");
return;
}
if("EMPTY".equals(rooms[floor-1][no-1]))
{
System.out.println("该房间无人入住,不需要退房");
return;
}
rooms[floor-1][no-1] = "EMPTY";
System.out.println("退房成功!");
}
//初始化所有房间
public static void init(String[][] rooms)
{
for(int i = 0;i<rooms.length;i++)
{
for (int j = 0;j<rooms[i].length;j++)
{
rooms[i][j] = "EMPTY";
}
}
System.out.println("房间初始化完毕!");
}
}
发现问题:这只是一个简单的管理系统,很多细节都注意不到。还是要自己多写代码,才能发现自己存在的问题和容易忽略的细节。
明天的计划:一直都在用Notead++写代码,明天Eclipse安装与熟悉,java面向对象,类和对象的处理。
评论