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など、他の選択肢でも正しく動作するか試してみてください。
-
C++でピラミッドの体積を計算するプログラムの作り方|底面の形状別の公式と実装例
ピラミッドの底面の種類に応じた辺の長さが与えられたとき、そのピラミッドの体積を計算するのが本記事のテーマです。 ピラミッドとは、外側の面がすべて三角形で構成され、それらが共通の一点(頂点)で交わることで鋭い角を形成する3次元図形です。ピラミッドの体積は、底面がどのような形状であるかによって異なります。 ピラミッドの底面にはさまざまな種類があり、代表的なものは以下の通りです。 底面の形状別の体積の求め方 三角形の底面(三角錐) 底面が三角形の場合、ピラミッドの体積は次の公式で求められます。 体積 = (1/6) × a × b × h 正方形の底面(四角錐) 底面が正方形の場合、ピラミッドの体
-
C++で学ぶクイックソート(QuickSort)の仕組みと実装方法
クイックソートとはクイックソート(Quicksort)は、比較に基づいて未ソートのリスト(配列)を並べ替えるソートアルゴリズムの一つです。「パーティション交換ソート(partition exchange sort)」とも呼ばれます。クイックソートは安定ソートではありません。これは、等しい値を持つ要素同士の相対的な順序が保持されないためです。ただし、配列に対してごくわずかな追加メモリだけで動作するため、メモリ効率に優れています。選択ソートと非常に似ていますが、常に最悪のパーティションを選んでしまうわけではない点が異なり、より洗練された形の選択ソートと捉えることもできます。クイックソートは最も効率