📜  在C中使用Switch-case的菜单驱动程序(1)

📅  最后修改于: 2023-12-03 15:07:52.698000             🧑  作者: Mango

在C中使用Switch-case的菜单驱动程序

在C语言中,使用Switch-case语句来实现菜单驱动程序是一种非常常见的方式。这种方式通常用于实现菜单选择功能,用户可以通过菜单选择想要执行的操作。

实现步骤

以下是使用Switch-case实现菜单驱动程序的步骤:

第一步:定义菜单项

首先,需要为每个菜单项定义唯一的标识符。这些标识符可以是整数、字符或字符串类型。例如:

#define NEW_ACCOUNT 1
#define DEPOSIT 2
#define WITHDRAW 3
#define BALANCE_ENQUIRY 4
#define EXIT 5
第二步:显示菜单选项

接下来,需要编写代码显示菜单选项。可以使用printf函数打印每个菜单项的标识符和对应的操作。例如:

printf("1. New Account\n");
printf("2. Deposit\n");
printf("3. Withdraw\n");
printf("4. Balance Enquiry\n");
printf("5. Exit\n");
第三步:读取用户输入

使用scanf函数读取用户输入的选项标识符。例如:

int option;
printf("Enter your choice: ");
scanf("%d", &option);
第四步:使用Switch-case执行对应操作

使用Switch-case语句根据读取到的标识符执行对应的操作。例如:

switch (option) {
    case NEW_ACCOUNT:
        // 添加新账户的代码
        break;

    case DEPOSIT:
        // 存款的代码
        break;

    case WITHDRAW:
        // 取款的代码
        break;

    case BALANCE_ENQUIRY:
        // 查询余额的代码
        break;

    case EXIT:
        // 退出程序的代码
        break;

    default:
        printf("Invalid option!\n");
        break;
}

当用户选择一个没有在菜单列表中出现的选项时,程序将进入default块并打印“Invalid option!”错误消息。

示例代码

以下是一个简单的示例程序,实现了银行账户功能的菜单驱动程序:

#include <stdio.h>

#define NEW_ACCOUNT 1
#define DEPOSIT 2
#define WITHDRAW 3
#define BALANCE_ENQUIRY 4
#define EXIT 5

int main() {
    int option;
    float balance = 0;

    do {
        printf("1. New Account\n");
        printf("2. Deposit\n");
        printf("3. Withdraw\n");
        printf("4. Balance Enquiry\n");
        printf("5. Exit\n");

        printf("Enter your choice: ");
        scanf("%d", &option);

        switch (option) {
            case NEW_ACCOUNT:
                printf("Account created!\n");
                break;

            case DEPOSIT:
                float amount;
                printf("Enter deposit amount: ");
                scanf("%f", &amount);
                balance += amount;
                printf("Deposit successful!\n");
                break;

            case WITHDRAW:
                printf("Enter withdrawal amount: ");
                scanf("%f", &amount);
                if (balance < amount) {
                    printf("Insufficient balance!\n");
                } else {
                    balance -= amount;
                    printf("Withdrawal successful!\n");
                }
                break;

            case BALANCE_ENQUIRY:
                printf("Your balance is %.2f\n", balance);
                break;

            case EXIT:
                printf("Goodbye!\n");
                break;

            default:
                printf("Invalid option!\n");
                break;
        }
    } while (option != EXIT);

    return 0;
}

该程序可以进行用户选项的选择,然后执行相应的操作,比如创建新的账户、存款、取款、查询余额等操作。