C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++で作るメニュー方式のシンプルな電卓プログラム

本チュートリアルでは、メニュー方式で動作するシンプルな電卓プログラムをC++で作成する方法を解説します。

このプログラムを使うと、ユーザーは以下の数学演算の中から希望する処理を選択できます。

  • 加算(足し算)
  • 減算(引き算)
  • 乗算(掛け算)
  • 除算(割り算)
  • 最大公約数(HCF/GCD)
  • 最小公倍数(LCM)

メニュー方式とは、選択肢を番号付きで画面に表示し、ユーザーが入力した番号に応じて処理を分岐させる方式のことです。switch文と組み合わせることで、直感的に操作できる対話型プログラムを簡単に実装できます。

サンプルコード

#include <bits/stdc++.h>
using namespace std;

// メニューを表示する関数
void menu(){
    cout << "Press 1 to calculate Sum of Numbers\n";
    cout << "Press 2 to calculate Difference of Numbers\n";
    cout << "Press 3 to calculate Product of numbers\n";
    cout << "Press 4 to calculate Division of numbers\n";
    cout << "Press 5 to calculate HCF of numbers\n";
    cout << "Press 6 to calculate LCM of numbers\n";
    cout << "Press 7 to exit\n";
}

// 選択内容に応じて計算し、結果を出力する関数
void result(int choice, int a, int b){
    switch (choice) {
        case 1: {
            cout << "Sum is " << (a + b) << "\n";
            break;
        }
        case 2: {
            cout << "Difference is " << (a - b) << "\n";
            break;
        }
        case 3: {
            cout << "Product is " << (a * b) << "\n";
            break;
        }
        case 4: {
            cout << "Division is " << (a / b) << "\n";
            break;
        }
        case 5: {
            cout << "GCD is " << __gcd(a, b) << "\n";
            break;
        }
        case 6: {
            cout << "LCM is " << ((a * b) / __gcd(a, b)) << "\n";
            break;
        }
        case 7: {
            cout << "Thank you\n";
            break;
        }
        default:
            printf("Wrong Input\n");
    }
}

int main(){
    int a = 5, b = 7;
    int choice, res;
    menu();
    cout << "Enter your choice:\n";
    choice = 1;
    cout << "Choice is " << choice << endl;
    result(choice, a, b);
    return 0;
}

コードのポイント

  • menu()関数: 各演算に対応する番号付きのメニューを画面に表示します。
  • result()関数: ユーザーの選択(choice)を受け取り、switch文で対応する計算処理に分岐します。
  • __gcd()関数: GCCが提供する組み込み関数で、2つの整数の最大公約数(GCD)を効率的に求められます。最小公倍数(LCM)は「a × b ÷ GCD」という公式から算出しています。
  • default句: 1〜7以外の無効な入力に対して「Wrong Input(不正な入力)」と表示します。

なお、このサンプルでは説明を簡潔にするため、対象となる数値(a = 5, b = 7)と選択番号(choice = 1)がプログラム内に固定値として記述されています。実際に対話型の電卓として使う場合は、cin >> choice; のように標準入力から値を受け取るよう改良するとよいでしょう。

実行結果

Press 1 to calculate Sum of Numbers
Press 2 to calculate Difference of Numbers
Press 3 to calculate Product of numbers
Press 4 to calculate Division of numbers
Press 5 to calculate HCF of numbers
Press 6 to calculate LCM of numbers
Press 7 to exit
Enter your choice:
Choice is 1
Sum is 12

この実行例では選択番号「1」が指定されたため、5 + 7 の計算結果である「12」が出力されています。このようにメニュー方式を採用することで、複数の機能を1つのプログラムにまとめながら、コードの見通しを保ちやすくなります。ぜひ除算やGCDなど、他の選択肢でも正しく動作するか試してみてください。

  1. C++でピラミッドの体積を計算するプログラムの作り方|底面の形状別の公式と実装例

    ピラミッドの底面の種類に応じた辺の長さが与えられたとき、そのピラミッドの体積を計算するのが本記事のテーマです。 ピラミッドとは、外側の面がすべて三角形で構成され、それらが共通の一点(頂点)で交わることで鋭い角を形成する3次元図形です。ピラミッドの体積は、底面がどのような形状であるかによって異なります。 ピラミッドの底面にはさまざまな種類があり、代表的なものは以下の通りです。 底面の形状別の体積の求め方 三角形の底面(三角錐) 底面が三角形の場合、ピラミッドの体積は次の公式で求められます。 体積 = (1/6) × a × b × h 正方形の底面(四角錐) 底面が正方形の場合、ピラミッドの体

  2. C++で学ぶクイックソート(QuickSort)の仕組みと実装方法

    クイックソートとはクイックソート(Quicksort)は、比較に基づいて未ソートのリスト(配列)を並べ替えるソートアルゴリズムの一つです。「パーティション交換ソート(partition exchange sort)」とも呼ばれます。クイックソートは安定ソートではありません。これは、等しい値を持つ要素同士の相対的な順序が保持されないためです。ただし、配列に対してごくわずかな追加メモリだけで動作するため、メモリ効率に優れています。選択ソートと非常に似ていますが、常に最悪のパーティションを選んでしまうわけではない点が異なり、より洗練された形の選択ソートと捉えることもできます。クイックソートは最も効率