发表于: 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面向对象,类和对象的处理。


返回列表 返回列表
评论

    分享到