0

聊天机器人类:

聊天机器人是一种计算机程序,旨在模拟与一个或多个人类的智能对话。在这个实验室中,我们将为我们的聊天机器人建立框架,该框架将在整个学期中得到增强。

ChatBot 类将定义一个标识聊天机器人的名称字段(将您的聊天机器人命名为您喜欢的任何名称。)这将是一个不可变字段;name 字段只需要一个访问器方法。名称字段应在默认构造函数中设置。

ChatBot 类定义了两种附加方法,一种返回包含聊天机器人名称的介绍性消息。另一个接受一个字符串并产生一个字符串回复。此时,reply 方法总是返回相同的消息。

这就是 UML 图的样子

聊天机器人(类或构造函数)

减号(-私有)名称:字符串

加 (+ public) getName() : 字符串

加 (+ public) introbot() : 字符串

加(+公开)公开回复(用户输入:字符串):字符串

聊天机器人客户端:

客户端应用程序将管理最终用户和聊天机器人之间的聊天。客户端负责检索最终用户的评论,将其传递给聊天机器人,并检索和显示聊天机器人的响应。用户或聊天机器人的名称应用作输入提示。以下是客户端的示例运行:

输入您的姓名:杰夫

你好!我叫静音机器人

杰夫>你好

mutebot > 我只是在学习说话

这是我的服务班

/*
 * Java Car service class
 * @author blake
 * 2/13/2012
 */

public class Chatbot
{
    private final String name;
    private String introbot;
    private String reply;
    
    public Chatbot(String newName, String newIntrobot, String newReply)
    {
    name = newName;
    }
    
    
    public String getName()
    {
    return name;
    }
}

这是我的应用程序类

import java.util.Scanner;
public class ChatbotClient
{
   public static void main(String[] args)
    {
       Scanner input = new Scanner(System.in);
       System.out.println("What is your name? ");
       String name = input.nextLine();
       
       System.out.println("\nHi " + name + " My name is copbot");
       
       
         System.out.println(name);
         String reply = input.nextLine();
         
         System.out.println("/ncopbot" + "I'm just learning how to talk " );
    }
}

我不确定这是否正是问题所要求或要求的,或者这是否是解决问题的方法。

我认为服务类可能没问题,但我不太确定应用程序类,因为您将在其中执行访问器、变异器和诸如此类的事情,我猜您只是在服务中设置字段和实例班级。

4

1 回答 1

1

有一些事情需要解决,但你正朝着正确的方向前进。

您的聊天机器人的导入线损坏,但我认为这只是复制/粘贴故障。

说明指定聊天机器人的名称是只读的,但您有一个 setter 方法,所以您可能不希望这样。;) 此外,UML 将“introbot”和“reply”描述为返回字符串而不是字符串变量的方法。

完成这些更改后,您应该可以从聊天机器人客户端调用这两种方法。您当前有“System.out.println”行的地方,这些应该是对聊天机器人的调用。例如,片段:

 "My name is copbot"

应该变成类似的东西

 "My name is " + myChatbot.getName()

reply(userInput : String) 方法应该通过参数列表将用户输入传递给它。然后可以使用它的返回值(也是一个字符串)来填写“我只是在学习如何说话”println。

祝你好运!

于 2012-02-20T00:41:57.737 回答