使用 Switch Case 的菜单驱动 C 程序

CBeginner
立即练习

介绍

在本实验中,我们将使用 C 语言中的 switch case 创建一个菜单驱动的程序。菜单驱动程序是一种向用户展示菜单的程序,用户可以从菜单中选择一个选项来执行特定任务。在这个程序中,我们将创建一个菜单,允许用户执行各种任务,例如计算一个数的阶乘、检查一个数是质数还是合数,以及检查一个数是偶数还是奇数。

创建一个新的 C 文件

第一步是在 ~/project/ 目录下创建一个新的 C 文件。将此文件命名为 main.c

引入所需的库

在这一步中,我们将在程序中包含标准输入输出库。这个库提供了 C 语言中用于输入输出操作的函数。

#include <stdio.h>

定义 main() 函数

main() 是 C 程序的入口函数。在这一步中,我们将定义 main() 函数。

int main()
{
    // Code goes here
    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 Case

在这一步中,我们将实现 switch case 语句。根据用户的选择,我们将执行不同的分支逻辑。

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:
                /*
                * Code to calculate factorial of a number
                */
                break;

            case 2:
                /*
                * Code to check if a number is prime or composite
                */
                break;

            case 3:
                /*
                * Code to check if a number is even or odd
                */
                break;

            case 4:
                /*
                * Code to exit the program
                */
                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:
                /*
                * Code to check if a number is prime or composite
                */
                break;

            case 3:
                /*
                * Code to check if a number is even or odd
                */
                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:
                /*
                * Code to calculate factorial of a number
                */
                break;

            case 2:
                printf("Enter number:\n");
                scanf("%d", &num);
                if(num == 1)
                    printf("\n1 is neither prime nor composite\n\n");
                for(i = 2; i < num; i++)
                {
                    if(num%i == 0)
                    {
                        printf("\n%d is not a prime number\n\n", num);
                        break;
                    }

                }
                /*
                    Not divisible by any number other
                    than 1 and itself
                */
                if(i == num)
                {
                    printf("\n\n%d is a Prime number\n\n", num);
                    break;
                }
                break;

            case 3:
                /*
                * Code to check if a number is even or odd
                */
                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:
                /*
                * Code to calculate factorial of a number
                */
                break;

            case 2:
                /*
                * Code to check if a number is prime or composite
                */
                break;

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

                if(num%2 == 0) // 0 被认为是偶数
                    printf("\n\n%d is an Even number\n\n",num);
                else
                    printf("\n\n%d is an Odd number\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:
                /*
                * Code to calculate factorial of a number
                */
                break;

            case 2:
                /*
                * Code to check if a number is prime or composite
                */
                break;

            case 3:
                /*
                * Code to check if a number is even or odd
                */
                break;

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

总结

在这个实验中,我们使用 switch case 创建了一个菜单驱动的 C 程序。该程序向用户显示一个菜单,用户可以选择不同的选项来执行各种任务,例如计算一个数的阶乘、检查一个数是质数还是合数,以及检查一个数是偶数还是奇数。我们希望这个实验能帮助你更好地理解如何使用 switch case 在 C 语言中创建菜单驱动的程序。