import java.util.Scanner;

public class HelloWorld {
	public static void main(String[] args){

		String [][] room = new String[12][10];
		System.out.println("欢迎来到本酒店");
		System.out.println("请输入要操作的命令:" +
						   "serach:查询房间的状态"
							+"in:办理入住"+
						    "out:办理退房"+
							"quit:退出本系统");
		Scanner s = new Scanner(System.in);
		//比较字符串相同---->"in. equals(command)"
		while(true)
		{
			String command = s.next() ;
			if("init".equals(command)){
				init(room);
			}else if("serach".equals(command)){
				search(room);
			}else if("quit".equals(command)){
				System.out.println("欢迎再次光临本酒店!");
				break ;
			}else if("in".equals(command)){
				in(room);
			}else if("out".equals(command)){
				out(room);
			}else{
				System.out.println("输入有误,请重新输入:");
			}

		}
	}
	//输入房间号,直接退房---->需要判断房间是否存在,是否有入住
	public static void out(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.println("输入的房间号有误,请输入out命令继续操作:");
			return ;
		}
		if("EMPTY".equals(rooms[floor-1][no-1])){
			System.out.println("该房间没人入住,不需要退房,请输入out命令继续操作:");
			return ;
		}
		rooms[floor-1][no-1] = "EMPTY";
		System.out.println("该房间退房成功");
	}
	public static void search(String[][] rooms)
	{
		//打印房间号
		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();
		}
	}
	//可拓展,可以先列出可入住的房间,在让用户输入房间号
	public static void in(String[][] rooms)
	{
		System.out.println("图示的房间代号为:EMPTY的为可入住房间");
		//打印现有的房间信息
		search(rooms);
		System.out.println();
		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.println("输入的房间号有误,请输入in命令继续操作:");
			return ;
		}
		//判断房间是否有人入住
		if("EMPTY".equals(rooms[floor-1][no-1])){
			System.out.println("请输入您的姓名:");
			String name = s.next();
			rooms[floor-1][no-1] = name ; //对数组进行赋值操作
			System.out.println("恭喜您,入住成功!");

		}else
		{
			System.out.println(roomNo+"已经有人入住,请输入in命令继续操作:");
			return ;
		}

	}
	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("房间初始化完毕");
	}
}

Java项目案例:酒店前台客服管理系统的更多相关文章

  1. java 网站用户在线和客服聊天

    注:本文来源于<java 网站用户在线和客服聊天> 这是应用到项目中的一个例子. 实现原理是将信息存储到Application域里面.然后使用Struts2 Action 用json格式的 ...

  2. Java项目案例之--封装的实例

    Java项目案例之---封装的实例 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值 有一个学生 ...

  3. 项目接入即时聊天客服系统(环信系统)PHP后端操作

    环信工作原理: 一.由于环信没有直接的接口来主动调取本项目中的用户数据,所有用户信息必须在环信服务器上注册对应信息成为环信的用户:(这样才能当用户进入聊天时显示其基本信息,如:名称.昵称.电话.邮箱等 ...

  4. JAVA结合WebSocket实现简单客服聊天功能

    说明:该示例只简单的实现了客服聊天功能. 1.聊天记录没有保存到数据库中,一旦服务重启,消息记录将会没有,如果需要保存到数据库中,可以扩展 2.页面样式用的网上模板,样式可以自己进行修改 3.只能由用 ...

  5. 大数据项目之_15_电信客服分析平台_01&02_项目背景+项目架构+项目实现+数据生产+数据采集/消费(存储)

    一.项目背景二.项目架构三.项目实现3.1.数据生产3.1.1.数据结构3.1.2.编写代码3.1.3.打包测试3.2.数据采集/消费(存储)3.2.1.数据采集:采集实时产生的数据到 kafka 集 ...

  6. Java项目案例之---登录和修改(JSP)

    登录和修改(JSP) 通过案例学习jsp的常用知识点: 1.创建一个Map集合,用于存放学生信息,将学生信息存入Map中 2.通过page将需要的包导入 3.用request.getParameter ...

  7. 大数据项目之_15_电信客服分析平台_03&04_数据分析

    3.3.数据分析3.3.1.Mysql 表结构设计3.3.2.需求:按照不同的维度统计通话3.3.3.环境准备3.3.4.编写代码:数据分析3.3.5.运行测试3.3.6.bug 解决 3.3.数据分 ...

  8. Java项目案例之---计算公司员工的工资(面向对象复习)

    计算公司员工的工资(面向对象复习) 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:double getSalary(int month) ...

  9. Java项目案例之---常用工具类练习

    常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...

随机推荐

  1. jquery easyui combobox 从指定位置开始模糊查询

    $("#bzr").combobox({ url: "ClassSave.aspx?opt=bzr&bzr=<%=arrbj[2]%>", ...

  2. Linux的管理类命令及其使用方法

    文件操作相关有一些命令可以帮助我们"修剪"之前看到的文件树. $touch a.txt 如果a.txt不存在,生成一个新的空文档a.txt.如果a.txt存在,那么只更改该文档的时 ...

  3. Linux下安装oracle的一般步骤

    1.配置内核参数2.创建用户和用户组3.创建安装目录4.配置oracle用户环境5.安装数据库软件6.创建数据库7.配置监听

  4. Kirill And The Game CodeForces - 842A

    CodeForces - 842A 需要将除法改换成乘法进行计算 #include<bits/stdc++.h> using namespace std; int main() { lon ...

  5. Go 语言多维数组

    Go 语言支持多维数组,以下为常用的多维数组声明方式: var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type 以下实例声明了三维的整型数组: ...

  6. 更新git源以便安装最新版本

    sudo add-apt-repository ppa:git-core/ppa sudo apt-get update

  7. Java中Semaphore(信号量)的使用

    Semaphore的作用: 在java中,使用了synchronized关键字和Lock锁实现了资源的并发访问控制,在同一时间只允许唯一了线程进入临界区访问资源(读锁除外),这样子控制的主要目的是为了 ...

  8. 安卓高级9 用原生intent分享

    大家都用过安卓app时发现有个分享按钮如下: 所以今天特此分享用用原生完成: package qianfeng.com.simplesharedemo; import android.content. ...

  9. 修改hosts立刻生效不必重启

    有时我们会通过修改Hosts文件(路径为系统盘:\WINDOWS\system32\drivers\etc\hosts),在修改并保存Hosts文件后需要重启才能使设置生效. 这时可以打开命令提示符 ...

  10. 使用Kubernetes需要注意的一些问题(FAQ of k8s)

    本篇文章并不是介绍K8S 或者Docker的,而仅仅是使用过程中一些常见问题的汇总. 重启策略:http://kubernetes.io/docs/user-guide/pod-states/, 对于 ...