模拟一个机器人与人对话的情景(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 + "]";
}
}
|
|