刚学了数组,感觉应用起来有点晕,而且在放假时有一道题
没什么思路,贴出来大家看看
为某酒店设计一套简单的前台房间管理系统,该系统可以通过在命令行输入命令来为客人办理入住和退房手续。要求该系统支持通过命令行输入以下命令来进行入住、退房及查询的操作。
Search all:查询所有房间的状态
In1202 tangliang:姓名为tangliang的客人入住1202房间
Ouit1202:1202房间退房
Quit:退出程序
说明:
1)该习题主要考察的知识点:控制台输入,循环控制,数组的使用,方法调用等。
2)酒店房间的状态可以用一个二维数组来存放,如果有客人已经入住 ,则存放该客人的姓名,如果没有客人入住,则存放null值。

解决方案 »

  1.   

    二维数组放房间,怎么规定法,是 1202 代表数组[12][02] 还是代表数组 [120][2]或者数组[1][202]
    个人思路:
    先定义这个旅馆有多少房间,也就是二维数组的大小
    Search all: 也就是遍历二维数组,2个循环搞掂In1202 tangliang和Ouit1202: 就要截取字符把“In1202 tangliang” 分开成并用数组记录等都可以:In,12,02,tangliang,其中也用split等方法 若 分开的字符组第一个是 In 的 执行把刚才分开的数组赋值 ,若是out 就setnull
      

  2.   

    楼主:各个房间的信息不要存数据库吗?
    所以,有多少个房间应该算是基本资料,是在第一次运行你的管理系统之后就维护好的。
    Search All的時候,通過SQL查詢出未登記入住的房間号出來。存二维数组?程序关闭和开启的时候二维数组要初始化,初始化信息保存在哪里?数据的安全性怎么保证?
      

  3.   

    如果只是简单的程序,不用挂库的话 我是这样想的:
    类:客户类 ,酒店管理员类,客房类
    客户类属性:姓名,身份证号,房间号,
    酒店管理员:属性:密码,账户,方法 :登记,退房,查看
    客房类:属性:房间号,是否入住(boolean)
    主界面 就是:
    1,登记
    2,退房
    3,查看
    4,退出系统
      

  4.   

    一:Search all  将二维数组打印到终端 双层循环即可二:In1202 tangliang  截取串 若In开头 将tangliang存入 二维数组12行02列处 输出现状三:Ouit1202 截取串 若Quit开头 将null存入数组12行02列 输出现状
      

  5.   

    四:Quit:退出程序  退出主循环
      

  6.   

    首先初始化 二维数组 null值入住时 若1202位置为null值则存入 tangliang  若不为null 则输出房间已有人入住
      

  7.   

    如果按照LZ的题目而做的话 ,只是在前用二维数据来摸拟房间管理的话,个人提供以下方案,仅供参考题目中要求有三个功能:
    查询:serarch all
    入住:in1202 tangliang
    退房:ouit1202
    退出:quit
    个人感觉首先应该定义一个函数用来解析你所输入的指令,从简单层面上来说
    try{
    //数据的BufferedReader读入操作、Scanner也可以
    String readStr = br.readLine();
    if(readStr!=null){
    if("serach all".equals(readStr.trim())){
    //调用查询操作函数
    }else if("in".equals(readStr.trim().subString(0,2))){
    //获取房间号
    String roomid = readStr.trim().subString(2,readStr.trim().indexOf(" ")); //不知房间号 是不是都是四位的 ,这里通过中间的空间来区分 没有用subString(2,6)
    //获取顾客名称
    String customer = readStr.trim().subString(readStr.trim().indexOf(" ")+1,readStr.trim().length);
    //调用入住处理函数
    }else if("outit".equals(read.trim().subString(0,4))){
    //截取房间号
    //调用退房函数
    }else if("quit".equals(read.trim())){
    exit();
    }else{
    重新输入
    }
    }catch(Excepiton ex){}
    在二维数组中 同1楼看法 可以这样存放数据
    a[楼层][房间号]
    //入住操作
    public int in(a[][],String roomid,String customername){
    //对roomid进行拆分操作,分成楼层及房间号
    //判断roomid所对应的a[][]是否为null 
    如果不为null
    System.out.println("房间已住人");
    else
    a[][] = customername;
    }
    //退房操作
    public int out(String roomid){
    //判断是否已住人
    //在住人的情况下进行退房操作
    }//查询操作
    public void query(){
    //遍历a[][]
      //判断是否为null 进行信息输出
    }以上一点簿见 仅供参考