はじめに
このC++の電卓アプリケーションは、ユーザーが数値と演算子を入力して計算を行い、アプリを閉じるかどうかを選択できるプログラムです。
アプリの完成動画
このコードの主な内容は以下になります。
- プログラミングの基本構造と制御フロー
- ユーザー入力の処理
- 演算子に基づく計算
- エラーハンドリング
- プログラムの終了判定
ゲームを実行するための環境構築がまだの方は「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';
num1
、num2
、および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;
}
closeApp
がy
またはY
の場合、アプリは終了します。それ以外の場合はループが続きます。
まとめ
このC++の電卓アプリケーションは、数値と演算子を入力して計算を行い、アプリを閉じるかどうかを選択できるプログラムです。ユーザーが無効な入力をした場合には再試行を促し、0で割るエラーを適切に処理します。
今回のコードの主な内容
- プログラミングの基本構造と制御フロー
- ユーザー入力の処理
- 演算子に基づく計算
- エラーハンドリング
- プログラムの終了判定
ゲームを実行するための環境構築がまだの方は「C++を実行するための環境構築|初心者でも簡単!(Windows)」をご覧ください。
コメント