C写菜单指令的快捷方法

从老师那学到的写菜单指令的方法,可以不用再switch,case一条一条打过去了

//***********写菜单指令的方法*********
//typedef struct SeqTable* ST;
typedef void (*FUNC)(ST); //函数指针,内部的函数参数都为ST类型

struct
{
    const char* desc;
    FUNC func;
}acts[] = 
{
    {"退出(销毁)", destroy},
    {"显示顺序表属性", show},   //是否为空  是否满了    元素个数    容量 ...
    {"在末尾插入", push},
    {"在指定位置插入", insert},
    {"在末尾删除", pop},
    {"删除指定位置元素", my_remove},
    {"删除指定元素", delete},
    {"更新", update},
    {"根据元素值查找", find},
    {"根据条件查找", search},
    {"统计", count},
    {"清空", clear}
};

void menu(void)
{
    puts("******测试******");
    int i;
    for(int i = 0;  i < sizeof(acts)/sizeof(acts[0]); i++)
        printf("***%d.%s\n", i, acts[i].desc);
    printf(">>>");
}

void test_seqtable(void)
{
    ST st = create_sqrtable(10);
    while(true)
    {
        menu();
        int in = 0;
        scanf("%d", &in);
        if(in >= 0 && in < sizeof(acts)/sizeof(acts[0]))
            acts[in].func(st);
        else
            printf("Error!\n");
    }
}
//*******************************************

写函数就类似这种

void clear(ST st)
{
    clear_seqtable(st);
    show(st);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值