0

チャットボット クラス:

チャットボットは、1 人以上の人間とのインテリジェントな会話をシミュレートするように設計されたコンピューター プログラムです。このラボでは、学期を通じて強化されるチャットボットのフレームワークを確立します。

ChatBot クラスは、チャットボットを識別する名前フィールドを定義します (チャットボットに好きな名前を付けます)。これは不変フィールドになります。name フィールドにはアクセサ メソッドのみが必要です。name フィールドは、デフォルトのコンストラクターで設定する必要があります。

ChatBot クラスは 2 つの追加メソッドを定義します。1 つは、チャットボットの名前を含む紹介メッセージを返します。もう 1 つは String を受け入れ、String 応答を生成します。この時点で、reply メソッドは常に同じメッセージを返します。

これはUMLダイアグラムがどのように見えるかです

チャットボット (クラスまたはコンストラクター)

マイナス (- プライベート) name : 文字列

plus (+ public) getName() : 文字列

plus (+ public) introbot() : 文字列

plus (+ public) public reply (userInput : String ) : String

チャットボット クライアント:

クライアント アプリケーションは、エンドユーザーとチャットボットの間のチャットを管理します。クライアントは、エンドユーザーのコメントを取得してチャットボットに渡し、チャットボットの応答を取得して表示する責任があります。ユーザーまたはチャットボットの名前を入力プロンプトとして使用する必要があります。以下は、クライアントの実行例です。

あなたの名前を入力してください: ジェフ

やあ!私の名前はミュートボットです

ジェフ > こんにちは

ミュートボット > 私は話すことを学んでいます

これは私のサービスクラスです

/*
 * 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" を、文字列変数ではなく文字列を返すメソッドとして説明しています。

これらの変更を行ったら、チャットボット クライアントからこれら 2 つのメソッドを呼び出すことができるはずです。現在「System.out.println」行がある場合、これらはチャットボットへの呼び出しである必要があります。たとえば、フラグメント:

 "My name is copbot"

のようなものになるはずです

 "My name is " + myChatbot.getName()

reply(userInput : String) メソッドには、パラメーターのリストを介してユーザー入力が渡される必要があります。その戻り値 (これも文字列) を使用して、"I'm just learning how to talk" println を埋めることができます。

幸運を!

于 2012-02-20T00:41:57.737 に答える