【C++】電卓アプリを作成しよう!

電卓アプリアイキャッチ画像 C++

はじめに

このC++の電卓アプリケーションは、ユーザーが数値と演算子を入力して計算を行い、アプリを閉じるかどうかを選択できるプログラムです。

アプリの完成動画

このコードの主な内容は以下になります。

  1. プログラミングの基本構造と制御フロー
  2. ユーザー入力の処理
  3. 演算子に基づく計算
  4. エラーハンドリング
  5. プログラムの終了判定

ゲームを実行するための環境構築がまだの方は「C++を実行するための環境構築|初心者でも簡単!(Windows)」をご覧ください。

電卓アプリ作成方法

完成コード

#include <iostream>
using namespace std;

int main() {
    double num1, num2, result = 0.0; // result変数を初期化

    char op, closeApp = 'n';

    while (closeApp == 'n' || closeApp == 'N') {
        cout << "電卓アプリへようこそ!\n";
        cout << "数値と演算子を入力してください (例: 3+5): ";
        while (!(cin >> num1 >> op >> num2)) {
            cout << "無効な入力です。数値と演算子を再入力してください: ";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
        }

        switch (op) {
        case '+': result = num1 + num2; break;
        case '-': result = num1 - num2; break;
        case '*': result = num1 * num2; break;
        case '/':
            if (num2 != 0) result = num1 / num2;
            else cout << "エラー: 0で割ることはできません。\n";
            break;
        default:
            cout << "無効な演算子です。\n";
            continue;
        }

        cout << "計算結果: " << result << "\n";

        cout << "アプリを閉じますか? (y/n): ";
        cin >> closeApp;

        while (closeApp != 'y' && closeApp != 'n' && closeApp != 'Y' && closeApp != 'N') {
            cout << "無効な入力です。'y' または 'n' を押してください。\n";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
            cout << "アプリを閉じますか? (y/n): ";
            cin >> closeApp;
        }
    }

    return 0;
}

コード解説

変数の宣言と初期化

    double num1, num2, result = 0.0; // result変数を初期化

    char op, closeApp = 'n';
  • num1num2、およびresultは、それぞれ最初に0.0で初期化されています。これらは計算に使用される数値と結果を格納するための変数です。
  • opは演算子を格納するための変数です。
  • closeAppはアプリを閉じるかどうかを判定するための変数です。

メインループ

 while (closeApp == 'n' || closeApp == 'N') {

whileループは、ユーザーがアプリを閉じるまで続きます。closeAppが’n’または’N’の場合、ループが継続します。

ユーザーにメッセージを表示して、数値と演算子の入力を促す

cout << "電卓アプリへようこそ!\n";
        cout << "数値と演算子を入力してください (例: 3+5): ";
        while (!(cin >> num1 >> op >> num2)) {
            cout << "無効な入力です。数値と演算子を再入力してください: ";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
        }
  • coutを使用して、ユーザーにメッセージを表示します。
  • cinを使用して、ユーザーから数値と演算子を入力します。無効な入力がある場合は再試行を促します。

演算子に基づく計算

switch (op) {
        case '+': result = num1 + num2; break;
        case '-': result = num1 - num2; break;
        case '*': result = num1 * num2; break;
        case '/':
            if (num2 != 0) result = num1 / num2;
            else cout << "エラー: 0で割ることはできません。\n";
            break;
        default:
            cout << "無効な演算子です。\n";
            continue;
        }
  • switchステートメントは、入力された演算子に基づいて計算を実行します。
  • +-*/の演算子に対応して、適切な計算を行います。/の場合は0で割るエラーを処理します。

計算結果の表示

 cout << "計算結果: " << result << "\n";

計算結果を表示します。

アプリの終了判定

 cout << "アプリを閉じますか? (y/n): ";
        cin >> closeApp;

ユーザーにアプリを閉じるかどうかを尋ね、yまたはnの入力を待ちます。無効な入力がある場合は再試行を促します。

ループの継続または終了

while (closeApp != 'y' && closeApp != 'n' && closeApp != 'Y' && closeApp != 'N') {
            cout << "無効な入力です。'y' または 'n' を押してください。\n";
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');
            cout << "アプリを閉じますか? (y/n): ";
            cin >> closeApp;
        }

closeAppyまたはYの場合、アプリは終了します。それ以外の場合はループが続きます。

まとめ

このC++の電卓アプリケーションは、数値と演算子を入力して計算を行い、アプリを閉じるかどうかを選択できるプログラムです。ユーザーが無効な入力をした場合には再試行を促し、0で割るエラーを適切に処理します。

今回のコードの主な内容

  1. プログラミングの基本構造と制御フロー
  2. ユーザー入力の処理
  3. 演算子に基づく計算
  4. エラーハンドリング
  5. プログラムの終了判定

ゲームを実行するための環境構築がまだの方は「C++を実行するための環境構築|初心者でも簡単!(Windows)」をご覧ください。

コメント

タイトルとURLをコピーしました