A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© UZI 中级黑马   /  2016-10-28 01:23  /  716 人查看  /  0 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

模拟一个机器人与人对话的情景(16’) 创建一个机器人类(Robot), 该类有状态(String型,
         * 默认是关闭)和话术(HashMap<String,String>)两个属性.
         * a. 添加话术(将以下的话术分别添加到Map中)
         * b. 根据用户在控制台输入的指令, 打印出对应的话术. 如果用户输入的指令没有对应的应答, 则提示”对不起, 我不知道怎么回答, 请换个问题问我”
         * 直到用户说拜拜, 并且应答拜拜后才可以停止键盘录入(键盘录入前需要检查当前机器人的状态, 如果为关闭, 则将机器人状态改为打开,
         * 不能不做状态就直接修改当前状态)
         * c. 将以上和机器人所有的对话内容存入到当前项目info.txt中 写入格式如下

public static void main(String[] args) throws Exception {
                Robot1 r = new Robot1();
                HashMap<String, String> hm = new HashMap<>();
                hm.put("你好", "您好,主人");
                hm.put("我饿了", "您想吃什么,但是我不会做");
                hm.put("拜拜", "拜拜");
               
                r.setHm(hm);
               
                if ("关闭".equals(r.getZhuangTai())) {
                        r.setZhuangTai("打开");
                }
               
                Scanner sc = new Scanner(System.in);
                System.out.println("输入的指令, 打印出对应的话术");
                FileOutputStream fs = new FileOutputStream("info1.txt",true);
               
                while (true) {
                        StringBuffer sb = new StringBuffer();
                        String s = sc.nextLine();
                        if ("拜拜".equals(s)) {
                                sb = sb.append(s).append(" - ").append(hm.get(s)).append("\r\n");
                                fs.write(sb.toString().getBytes());
                                System.out.println(hm.get("拜拜"));
                                fs.close();
                                break;
                        }else if (hm.containsKey(s)) {
                                System.out.println(hm.get(s));
                                sb = sb.append(s).append(" - ").append(hm.get(s)).append("\r\n");
                                fs.write(sb.toString().getBytes());
                        }else {
                                System.out.println("对不起, 我不知道怎么回答, 请换个问题问我");
                                sb = sb.append(s).append(" - ").append("对不起, 我不知道怎么回答, 请换个问题问我").append("\r\n");
                                fs.write(sb.toString().getBytes());
                        }
                }
        }
class Robot1{
        private String zhuangTai = "关闭";
        private HashMap<String, String> hm;
        public Robot1() {
                super();
               
        }
        public Robot1(String zhuangTai, HashMap<String, String> hm) {
                super();
                this.zhuangTai = zhuangTai;
                this.hm = hm;
        }
        public String getZhuangTai() {
                return zhuangTai;
        }
        public void setZhuangTai(String zhuangTai) {
                this.zhuangTai = zhuangTai;
        }
        public HashMap<String, String> getHm() {
                return hm;
        }
        public void setHm(HashMap<String, String> hm) {
                this.hm = hm;
        }
        @Override
        public String toString() {
                return "Robot [zhuangTai=" + zhuangTai + ", hm=" + hm + "]";
        }
       
       
}


您需要登录后才可以回帖 登录 | 加入黑马