在C语言编程中,菜单编程是一种常见的用户界面设计方式。通过菜单,用户可以直观地选择他们想要执行的操作。掌握菜单编程对于提高C语言编程技能非常有帮助。以下是一些实用的C语言菜单编程源码,帮助你从基础学起,逐步提高。
1. 简单文本菜单
这是一个简单的文本菜单示例,用于演示基本的菜单编程概念。
#include <stdio.h>
int main() {
int choice;
while (1) {
printf("\n--- Menu ---\n");
printf("1. Add\n");
printf("2. Subtract\n");
printf("3. Multiply\n");
printf("4. Divide\n");
printf("5. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Addition operation selected.\n");
break;
case 2:
printf("Subtraction operation selected.\n");
break;
case 3:
printf("Multiplication operation selected.\n");
break;
case 4:
printf("Division operation selected.\n");
break;
case 5:
printf("Exiting the program.\n");
return 0;
default:
printf("Invalid choice. Please try again.\n");
}
}
return 0;
}
2. 动态菜单
动态菜单可以根据用户的输入动态地改变内容。
#include <stdio.h>
void displayMenu() {
printf("\n--- Menu ---\n");
printf("1. Add\n");
printf("2. Subtract\n");
printf("3. Multiply\n");
printf("4. Divide\n");
printf("5. Exit\n");
}
int main() {
int choice;
while (1) {
displayMenu();
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Addition operation selected.\n");
break;
case 2:
printf("Subtraction operation selected.\n");
break;
case 3:
printf("Multiplication operation selected.\n");
break;
case 4:
printf("Division operation selected.\n");
break;
case 5:
printf("Exiting the program.\n");
return 0;
default:
printf("Invalid choice. Please try again.\n");
}
}
return 0;
}
3. 菜单嵌套
有时候,你可能需要创建一个嵌套菜单,以便用户可以进一步选择他们想要执行的操作。
#include <stdio.h>
void displayMenu() {
printf("\n--- Main Menu ---\n");
printf("1. File Operations\n");
printf("2. Edit Operations\n");
printf("3. View Operations\n");
printf("4. Exit\n");
}
void displayFileMenu() {
printf("\n--- File Menu ---\n");
printf("1. Open\n");
printf("2. Save\n");
printf("3. Close\n");
}
int main() {
int choice;
while (1) {
displayMenu();
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
displayFileMenu();
break;
case 2:
printf("Edit operation selected.\n");
break;
case 3:
printf("View operation selected.\n");
break;
case 4:
printf("Exiting the program.\n");
return 0;
default:
printf("Invalid choice. Please try again.\n");
}
}
return 0;
}
4. 使用函数处理菜单项
将菜单项的处理逻辑封装到函数中,可以使代码更加模块化和易于维护。
#include <stdio.h>
void add() {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
printf("Sum: %d\n", a + b);
}
void subtract() {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
printf("Difference: %d\n", a - b);
}
void multiply() {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
printf("Product: %d\n", a * b);
}
void divide() {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
if (b != 0) {
printf("Quotient: %d\n", a / b);
} else {
printf("Division by zero is not allowed.\n");
}
}
int main() {
int choice;
while (1) {
printf("\n--- Menu ---\n");
printf("1. Add\n");
printf("2. Subtract\n");
printf("3. Multiply\n");
printf("4. Divide\n");
printf("5. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add();
break;
case 2:
subtract();
break;
case 3:
multiply();
break;
case 4:
divide();
break;
case 5:
printf("Exiting the program.\n");
return 0;
default:
printf("Invalid choice. Please try again.\n");
}
}
return 0;
}
通过以上示例,你可以学习到如何创建基本的文本菜单、动态菜单、嵌套菜单以及使用函数处理菜单项。这些示例可以帮助你更好地理解C语言菜单编程的原理和实践。随着你技能的提高,你可以尝试添加更多的功能,如错误处理、数据验证和用户输入提示等。
