介绍
在本实验中,我们将使用 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 语言中创建菜单驱动的程序。



