从老师那学到的写菜单指令的方法,可以不用再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);
}