2013-07-26 89 views
0

我目前正在研究一個小而簡單的計算器程序,它很好,但我只是想做一些改進。它包括爲sin/cos/tan和abs添加函數。在簡單的計算器中包含三角函數,C++

我想不出任何其他可以包含它們的方式,因爲我已經在代碼中將我的變量聲明爲float。

#include <iostream> 

int main() { 
    //Variables that user inputs. 
    float a, b; 
    char op; 

    //Input them in the order 
    std::cin >> a >> op >> b; 

    //Addition 
    if (op == '+') { 
     std::cout << a << '+' << b << '=' << a+b; 
    } 
    //Subtraction 
    else if (op == '-') { 
    std::cout << a << '-' << b << '=' << a-b; 
    } 
    //Multiplication 
    else if (op == '*') { 
     std::cout << a << '*' << b << '=' << a*b; 
    } 
    //Division 
    else if (op == '/') { 
     std::cout << a << '/' << b << '=' << a/b; 
    } 

    return 0; 
} 

任何幫助,非常感謝!

編輯:道歉。意識到我沒有包括這個問題。我如何包含三角函數?

+2

有什麼問題嗎?我不明白這個問題。 – patrickvacek

+0

你確切的問題是什麼?你有什麼嘗試過,沒有工作/不是你想要的? – JBL

+1

因此,作爲開始,您可能需要弄清楚如何讀取字符串而不是「op」的字符。其餘的應該相當簡單。 –

回答

2

你真的不希望這樣做,但對你的好奇心,可以有類似以下內容:

(確保你做一些必要的檢查)

 /* Sine */ 
    else if (op == 's') { 
     std::cout << a<<"*sin(" << b << ")=" << a*sin(b); 
    } 

    /* Cosine */ 
    else if (op == 'c') { 
     std::cout << a<<"*cos(" << b << ")=" << a*cos(b); 
    } 

    /* Tangent */ 
    else if (op == 't') { 
     std::cout << a<<"*tan(" << b << ")=" << a*tan(b); 
    } 

    /* Absolute */ 
    else if (op == 'a') { 
     std::cout << a<<"*abs(" << b << ")=" << a*fabs(b); 
    } 
+0

有沒有辦法將它包含爲'cos'或'sin'之類的詞?我本來可以做到這一點,但認爲用言語來做它會更好。 :\ – xbili

+0

@xbili你需要讀取字符串作爲輸入並相應地解析它們 – P0W

+0

#include std :: string op; 如果(OP == 「A」) ELSEIF(OP == 「COS」) ELSEIF(OP == 「魔」) – Chemistpp