📜  C++中的菜单驱动程序,可以对数组执行各种基本操作(1)

📅  最后修改于: 2023-12-03 14:39:59.013000             🧑  作者: Mango

C++中的菜单驱动程序

C++中的菜单驱动程序可以让程序员通过菜单选择来执行数组的各种基本操作,如添加、删除、搜索、排序等。下面介绍如何编写一个简单的菜单驱动程序。

步骤
  1. 首先,我们需要定义一个数组,如下所示:
int arr[100];
int n = 0; // 数组元素的数量
  1. 然后,我们需要编写一个函数来显示菜单,根据用户的选择执行相应的操作。菜单如下:
1. 添加元素
2. 删除元素
3. 搜索元素
4. 排序数组
5. 显示数组
6. 退出程序

菜单驱动程序的主要思想是使用一个while循环来运行程序,不断显示菜单并接收用户的选择,然后根据选择执行相应的操作,直到用户选择退出程序。

  1. 接下来,我们需要编写具体的函数来执行各种操作。以下是各函数的伪代码:
// 添加元素
void addElement() {
    // 接收用户输入的元素值
    // 将元素值加入数组
}

// 删除元素
void delElement() {
    // 接收用户输入的元素值
    // 在数组中查找并删除该元素
}

// 搜索元素
void searchElement() {
    // 接收用户输入的元素值
    // 在数组中查找并返回该元素的位置
}

// 排序数组
void sortArray() {
    // 使用排序算法对数组进行排序
}

// 显示数组
void showArray() {
    // 遍历数组并输出每个元素的值
}
  1. 最后,在while循环中,根据用户的选择调用相应的函数,直到用户选择退出程序:
int choice = 0;
while (true) {
    // 显示菜单
    // 接收并检查用户输入的选择
    // 根据选择调用相应的函数
    // 如果用户选择退出程序,退出循环
}
示例代码

下面是一个完整的示例代码:

#include <iostream>
using namespace std;

int arr[100];
int n = 0;

void menu() {
    cout << "1. 添加元素" << endl;
    cout << "2. 删除元素" << endl;
    cout << "3. 搜索元素" << endl;
    cout << "4. 排序数组" << endl;
    cout << "5. 显示数组" << endl;
    cout << "6. 退出程序" << endl;
}

void addElement() {
    if (n >= 100) {
        cout << "数组已满,无法添加元素!" << endl;
        return;
    }
    int x;
    cout << "请输入要添加的元素值:";
    cin >> x;
    arr[n] = x;
    n++;
}

void delElement() {
    int x;
    cout << "请输入要删除的元素值:";
    cin >> x;
    int index = -1;
    for (int i = 0; i < n; i++) {
        if (arr[i] == x) {
            index = i;
            break;
        }
    }
    if (index == -1) {
        cout << "数组中不存在该元素!" << endl;
        return;
    }
    for (int i = index; i < n - 1; i++) {
        arr[i] = arr[i + 1];
    }
    n--;
}

void searchElement() {
    int x;
    cout << "请输入要搜索的元素值:";
    cin >> x;
    int index = -1;
    for (int i = 0; i < n; i++) {
        if (arr[i] == x) {
            index = i;
            break;
        }
    }
    if (index == -1) {
        cout << "数组中不存在该元素!" << endl;
        return;
    }
    cout << "该元素在数组中的位置为:" << index << endl;
}

void sortArray() {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(arr[j], arr[j + 1]);
            }
        }
    }
}

void showArray() {
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

int main() {
    while (true) {
        menu();
        cout << "请选择要执行的操作:";
        int choice;
        cin >> choice;
        switch (choice) {
            case 1:
                addElement();
                break;
            case 2:
                delElement();
                break;
            case 3:
                searchElement();
                break;
            case 4:
                sortArray();
                showArray();
                break;
            case 5:
                showArray();
                break;
            case 6:
                return 0;
            default:
                cout << "无效的选择,请重新输入!" << endl;
        }
    }
}

该程序可以根据用户的选择执行相应的操作,如添加元素、删除元素、搜索元素、排序数组、显示数组和退出程序。用户可以通过菜单来选择操作,程序会不断循环显示菜单,直到用户选择退出程序。