1. 首页 > 游戏信息 >魔兽争霸技能附加属性的获取途径有哪些

魔兽争霸技能附加属性的获取途径有哪些

在C++中制作交互式选择菜单,主要通过条件分支结构函数指针两种核心方式实现。以下将详细分析两种方法的技术细节及适用场景,并附对比表格。

一、Switch语句实现菜单(基础方案)

原理:利用switch-case结构根据用户输入的选项值跳转到对应分支。这是最直观的实现方式,适合选项数量有限且静态的场景。

cpp

include

using namespace std;

魔兽争霸技能附加属性的获取途径有哪些

int main {

char choice;

while(true) {

cout<< "菜单: A(添加) D(删除) S(排序) Q(退出)

请选择:";

cin >> choice;

switch(toupper(choice)) {

case 'A': cout<< "数据已添加

; break;

case 'D': cout<< "数据已删除

; break;

case 'S': cout<< "数据已排序

; break;

case 'Q': exit(0);

default: cout<< "无效选项

;

return 0;

特点

  • 简洁性:代码结构清晰,适合新手快速实现。
  • 局限性:选项数量多时代码冗余,且无法动态扩展。
  • 二、函数指针实现菜单(进阶方案)

    原理:通过函数指针数组或结构体将菜单选项与处理函数动态绑定,适合需要灵活扩展的场景。

    cpp

    include

    using namespace std;

    // 定义函数指针类型

    typedef void (MenuFunc);

    // 菜单处理函数

    void Add { cout<< "执行添加操作

    ; }

    void Delete { cout<< "执行删除操作

    ; }

    struct MenuItem {

    char key;

    string desc;

    MenuFunc func;

    };

    int main {

    MenuItem items[] = {

    {'A', "添加", Add},

    {'D', "删除", Delete}

    };

    char input;

    while(true) {

    cout<< "==== 菜单 ====

    ;

    for(auto &item : items)

    cout<< item.key<< ") "<< item.desc<< endl;

    cout<< "Q) 退出

    选择:";

    cin >> input;

    if(toupper(input) == 'Q') break;

    for(auto &item : items) {

    if(toupper(input) == item.key) {

    item.func;

    break;

    return 0;

    优势

  • 可扩展性:新增菜单项只需修改结构体数组,无需改动主逻辑。
  • 模块化:处理函数与菜单定义分离,便于维护。
  • 三、方案对比与适用场景

    | 特性 | Switch语句 | 函数指针 |

    ||--|-|

    |代码复杂度 | 低(适合简单菜单) | 中(需设计数据结构) |

    |扩展性 | 差(需修改switch结构) | 优(动态添加/删除菜单项) |

    |维护成本 | 高(选项多时代码冗长) | 低(逻辑与数据分离) |

    |适用场景 | 选项少于10个的静态菜单 | 大型系统或需要动态加载的菜单 |

    四、高级技巧:结合控制台API

    对于需要方向键控制的图形化菜单(如控制台应用),可调用Windows API实现光标移动与颜色高亮:

    cpp

    include

    void SetColor(int color) {

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);

    void Gotoxy(int x, int y) {

    COORD pos = {x, y};

    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);

    通过Gotoxy控制光标位置,SetColor改变文本颜色,实现交互式菜单的动态效果。

    郑重声明:以上内容均源自于网络,内容仅用于个人学习、研究或者公益分享,非商业用途,如若侵犯到您的权益,请联系删除,客服QQ:841144146