网易云课堂昵称 + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
邬凯 SA17225394
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
一、实验要求:
- 给lab5-1.tar.gz找bug,quit命令无法运行的bug
- 利用callback函数参数使Linktable的查询接口更加通用
- 注意接口的信息隐藏
二、实验过程:
1.修改lab5.1中的bug。
编译后运行menu文件,发现输入quit命令时提示This is a wrong cmd!
查看代码发现在linktable.c文件中有如下错误
在SearchLinkTableNode())中,while循环结束的条件是pNode指向表的结尾,而quit函数就是在表的结尾,所以将while(pNode != pLinkTable->pTail)修改为while(pNode != NULL),修改后再次编译后运行menu文件,quit命令能正常运行,结果如下图
2.利用callback函数参数使Linktable的查询接口更加通用
将linktable.c中的代码作出如下修改,注释掉的为原代码。
3.信息的隐藏
在linktable.c中定义Linktable结构体,而在linktable.h中只留下LinkTable结构的声明。即将结构体LinkTableNode的实现从linktable.h转移到了linktable.c
运行结果如下
三、实验结果测试
四、实验总结
通过本次实验,我学习到增加callback思想使程序体更加通用,提高了代码能力。