2017-03-19 3 views
1

ユーザーとのやりとりよりもAIプログラムを作成して、ユーザーの入力に基づいて応答する必要があります。私はあまり経験はありません。これはすでに数時間かかっていますが、私はオンラインで見ましたが、実際にコードを投稿して助けやアドバイスをしようと思いました。プロジェクトのAIプログラムを作成する。ユーザー入力を認識することができません

基本的にAIは数学に役立ちますが、自分自身を紹介して助けたいと尋ねていますが、追加、減算などを入力すると、「大歓迎です。 !追加/(どんなユーザー入力)」最初の実行中のプログラムの

スクリーンショットに:どのようなユーザーのニーズを入力した後http://prntscr.com/elw7b4 スクリーンショットを支援:http://prntscr.com/elw7kyは (もちろん、それは少し、現時点ではすべての場所でだ、私は電卓はなかったです何よりも先に結果が得られる理由

calc ulatorは、次のコードを入力する前に働いていた:(あなたが見ることができるようにます。http:// prntscr.com/elwavs 2つのリンクだけのcosは持っていない以上10レップ)

void Inpsum() 
{ 

cout << "Hello, my name is Eva! I am able to help you with basic Maths! How may I be of Assistance today?" << endl; 

float inpsum; 

cin >> inpsum; 

cout << "Great!, I will help you with " << (inpsum) << endl; 
} 

が、上記のコードを入力します計算機を破った。

は、ここに完全なコードです:基本的に

#include <iostream> 
#include <cstdlib> 
#include <cmath> 
#include <iomanip> 

using namespace std; 

//user inputs what he needs help with/program output 
void Inpsum() 
{ 
    cout << "Hello, my name is Eva! I am able to help you with basic Maths! How may I be of Assistance today?" << endl; 

cin >> inpsum; 
cout << "Great!, I will help you with " << (inpsum) << endl; 
} 

//addition function 
void Add() { 
float add1, add2; 
cout << "Please enter two values you want added together" << endl; 
cin >> add1; 
cin >> add2; 
cout << "The answer is: " << (add1 + add2) << endl; 
} 

//subtraction function 
void Subt() { 
float subt1, subt2; 
cout << "Please enter two values you want subtracted" << endl; 
cin >> subt1; 
cin >> subt2; 
cout << "The answer is: " << (subt1 - subt2) << endl; 
} 

//division function 
void Div() 
{ 
    float div1, div2; 
    cout << "Please enter two values you want divided" << endl; 
    cin >> div1; 
    cin >> div2; 
    cout << "The answer is: " << (div1/div2) << endl; 
} 

//multiplication function 
void Mult() { 
float mult1, mult2; 
cout << "Please enter two values you want multiplacted" << endl; 
cin >> mult1; 
cin >> mult2; 
cout << "The answer is: " << (mult1 * mult2) << endl; 
} 



int main() 
{ 
Inpsum(); //user inputs what they want help with 
Add(); 
Subt(); 
Div(); 
Mult(); 

    return 0 ; 
} 

- 私は電卓を設定して、それが働いていました。しかし、ユーザーとプログラムの間で入出力を実装しようとすると、私は間違ってしまい、すべてを壊してしまいます。プログラムの代わりに "素晴らしい私はあなたを助けてくれるでしょう"と言われています。 "大げさで、私は-134567432でお手伝いします"

私は誰でも私のためにそれをするのを頼むのではなく、私は実際に将来何をすべきかを知ることができます。

+0

本当にこれがAIについてだと思いますか? – juanchopanza

+0

なぜ私はここにいるのか分かりません。私たちは皆、どこかで始まります。 – csfl0

+0

スタックオーバーフローは開始には適していません。あなたが終わった後に行くのが良い場所であり、それでも動作しません。ここでプログラムを教えることはできません。 – user4581301

答えて

1

float inpsum;を使用して定義することに注意してください。ただし、保存しようとしているのは文字列または単語です。彼らは互換性がありません。 C++では、データ型や文字列についてもっと知ることができます。

+0

Lmao私はバカです。ありがとうございます – csfl0

+0

私はAIがあなたの質問に関連していないと思う、多分あなたはより具体的に次回、歓声する必要があります! – xhg

1

いくつかの選択肢しかないので、列挙型を使用すると役立ちます。次の文字列にはcin代わりにその後を

enum class OPERATION : char { 
    Addition  = 'A', 
    Subtraction = 'S', 
    Division  = 'D', 
    Multiplication = 'M' 
}; 

とがあります:あなたはこのような何かを行うことができ

std::string input; 
std::cin >> input; 

switch(static_cast<OPERATION>(input[0])) { 
    case OPERATION::Addition: 
     Add(); 
     break; 

    case OPERATION::Subtraction: 
     Subt(); 
     break; 

    case OPERATION::Division: 
     Div(); 
     break; 

    case OPERATION::Multiplication: 
     Mult(); 
     break; 

    default: 
     std::cerr << "Invalid input" << std::endl; 
     exit(1); 

} 

あなたがその値と一致し、それまでの値をキャストすることができます列挙型を定義します。これにより、プログラムの実行中に見えると予想される入力が定義されたスイッチを安全に実行できます。

+0

ご協力いただきありがとうございます! – csfl0

+0

これは非常に建設的な提案です、あなたは間違いなくそうすることを検討すべきです – xhg

関連する問題