switch 文を使ったメニュー駆動型の C 言語プログラム

CCBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、C言語を使ってswitch文を使ったメニュー駆動型のプログラムを作成します。メニュー駆動型のプログラムとは、ユーザにメニューを提示し、ユーザがメニューからオプションを選んで特定のタスクを実行するプログラムです。このプログラムでは、ユーザに数の階乗を計算したり、数が素数か合成数かをチェックしたり、数が偶数か奇数かをチェックするなど、様々なタスクを実行できるメニューを作成します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/switch("Switch") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/ControlFlowGroup -.-> c/while_loop("While Loop") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} c/if_else -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} c/switch -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} c/for_loop -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} c/while_loop -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} c/function_declaration -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} c/create_files -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} c/user_input -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} c/output -.-> lab-123285{{"switch 文を使ったメニュー駆動型の C 言語プログラム"}} end

新しいCファイルを作成する

最初のステップは、~/project/ ディレクトリに新しいCファイルを作成することです。このファイルの名前を main.c とします。

必要なライブラリの読み込み

このステップでは、プログラムに標準入出力ライブラリを読み込みます。このライブラリは、C言語における入出力操作に関する関数を提供します。

#include <stdio.h>

main() 関数の定義

main() はC言語のプログラムのエントリーポイント関数です。このステップでは、main() 関数を定義します。

int main()
{
    // コードをここに記述します
    return 0;
}

メニューの表示

このステップでは、ユーザにメニューを表示します。このメニューでは、ユーザが様々なオプションから選べるようになっています。このプログラムでは、以下のオプションを使用します。

  • オプション1: 数の階乗を計算する
  • オプション2: 数が素数かどうかをチェックする
  • オプション3: 数が奇数か偶数かをチェックする
  • オプション4: プログラムを終了する
int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
    int choice, num, i;
    unsigned long int fact;

    while(1)
    {
        printf("1. Factorial \n");
        printf("2. Prime\n");
        printf("3. Odd\\Even\n");
        printf("4. Exit\n\n\n");
        printf("Enter your choice :  ");
        scanf("%d",&choice);
    }
    return 0;
}

switch文の実装

このステップでは、switch文を実装します。ユーザの選択に基づいて、異なるケースを実行します。

int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
    int choice, num, i;
    unsigned long int fact;

    while(1)
    {
        printf("1. Factorial \n");
        printf("2. Prime\n");
        printf("3. Odd\\Even\n");
        printf("4. Exit\n\n\n");
        printf("Enter your choice :  ");
        scanf("%d",&choice);

        switch(choice)
        {
            case 1:
                /*
                * 数の階乗を計算するコード
                */
                break;

            case 2:
                /*
                * 数が素数か合成数かをチェックするコード
                */
                break;

            case 3:
                /*
                * 数が偶数か奇数かをチェックするコード
                */
                break;

            case 4:
                /*
                * プログラムを終了するコード
                */
                break;
        }
    }
    return 0;
}

数の階乗を計算する

このステップでは、ユーザがオプション1を選択したときにユーザが要求する数の階乗を計算します。

int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
    int choice, num, i;
    unsigned long int fact;

    while(1)
    {
        printf("1. Factorial \n");
        printf("2. Prime\n");
        printf("3. Odd\\Even\n");
        printf("4. Exit\n\n\n");
        printf("Enter your choice :  ");
        scanf("%d",&choice);

        switch(choice)
        {
            case 1:
                printf("Enter number:\n");
                scanf("%d", &num);
                fact = 1;
                for(i = 1; i <= num; i++)
                {
                    fact = fact*i;
                }
                printf("\n\nFactorial value of %d is = %lu\n\n\n",num,fact);
                break;

            case 2:
                /*
                * 数が素数か合成数かをチェックするコード
                */
                break;

            case 3:
                /*
                * 数が偶数か奇数かをチェックするコード
                */
                break;

            case 4:
                printf("\n\n\t\t\tCoding is Fun!\n\n\n");
                exit(0);
        }
    }
    return 0;
}

数が素数かどうかをチェックする

このステップでは、数が素数か合成数かをチェックします。プログラムは、ユーザが入力した数が素数かどうかを示すメッセージを出力します。

int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
    int choice, num, i;
    unsigned long int fact;

    while(1)
    {
        printf("1. Factorial \n");
        printf("2. Prime\n");
        printf("3. Odd\\Even\n");
        printf("4. Exit\n\n\n");
        printf("Enter your choice :  ");
        scanf("%d",&choice);

        switch(choice)
        {
            case 1:
                /*
                * 数の階乗を計算するコード
                */
                break;

            case 2:
                printf("Enter number:\n");
                scanf("%d", &num);
                if(num == 1)
                    printf("\n1は素数でも合成数でもありません\n\n");
                for(i = 2; i < num; i++)
                {
                    if(num%i == 0)
                    {
                        printf("\n%dは素数ではありません\n\n", num);
                        break;
                    }

                }
                /*
                    1とそれ自身以外のどの数でも割り切れない
                */
                if(i == num)
                {
                    printf("\n\n%dは素数です\n\n", num);
                    break;
                }
                break;

            case 3:
                /*
                * 数が偶数か奇数かをチェックするコード
                */
                break;

            case 4:
                printf("\n\n\t\t\tCoding is Fun!\n\n\n");
                exit(0);
        }
    }
    return 0;
}

数が偶数か奇数かをチェックする

このステップでは、数が偶数か奇数かをチェックします。プログラムは、ユーザが入力した数が偶数か奇数かを示すメッセージを出力します。

int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
    int choice, num, i;
    unsigned long int fact;

    while(1)
    {
        printf("1. Factorial \n");
        printf("2. Prime\n");
        printf("3. Odd\\Even\n");
        printf("4. Exit\n\n\n");
        printf("Enter your choice :  ");
        scanf("%d",&choice);

        switch(choice)
        {
            case 1:
                /*
                * 数の階乗を計算するコード
                */
                break;

            case 2:
                /*
                * 数が素数か合成数かをチェックするコード
                */
                break;

            case 3:
                printf("Enter number:\n");
                scanf("%d", &num);

                if(num%2 == 0) // 0は偶数と見なされる
                    printf("\n\n%dは偶数です\n\n",num);
                else
                    printf("\n\n%dは奇数です\n\n",num);
                break;

            case 4:
                printf("\n\n\t\t\tCoding is Fun!\n\n\n");
                exit(0);
        }
    }
    return 0;
}

プログラムを終了する

このステップでは、ユーザがオプション4を選択したときにプログラムを終了するケースを追加します。

int main()
{
    printf("\n\n\t\tLabEx - Best place to learn\n\n\n");
    int choice, num, i;
    unsigned long int fact;

    while(1)
    {
        printf("1. Factorial \n");
        printf("2. Prime\n");
        printf("3. Odd\\Even\n");
        printf("4. Exit\n\n\n");
        printf("Enter your choice :  ");
        scanf("%d",&choice);

        switch(choice)
        {
            case 1:
                /*
                * 数の階乗を計算するコード
                */
                break;

            case 2:
                /*
                * 数が素数か合成数かをチェックするコード
                */
                break;

            case 3:
                /*
                * 数が偶数か奇数かをチェックするコード
                */
                break;

            case 4:
                printf("\n\n\t\t\tCoding is Fun!\n\n\n");
                exit(0);
        }
    }
    return 0;
}

まとめ

この実験では、switch文を使ってC言語でメニュー駆動型のプログラムを作成しました。このプログラムはユーザにメニューを表示し、ユーザは数の階乗を計算したり、数が素数か合成数かをチェックしたり、数が偶数か奇数かをチェックしたりなど、さまざまなタスクを実行するためにさまざまなオプションから選択できます。この実験が、C言語でswitch文を使ってメニュー駆動型のプログラムを作成することを十分に理解してもらえたことを願っています。