软件工程实验5

SA17225400

哪来的妖精 + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006 

GitHub :https://github.com/littlewulei/Software-Engineering-Lab.git

实验要求(参照视频中的具体实验过程)

本实验在提供的代码基础上进行

  • 给lab5-1.tar.gz找bug,quit命令无法运行的bug
  • 利用callback函数参数使Linktable的查询接口更加通用
  • 注意接口的信息隐藏

实验过程

将老师给的源代码拷贝到lab5文件夹下,编译运行

发现quit命令错误传入的p是NULL,但是根据help命令的结果,quit命令显然是在链表里的。所以错误应该是在findcmd

函数里,定位到findcmd函数

发现findcmd函数返回的是SearchLinkTableNode 的结果,定位到SearchLinkTableNode函数

为什么返回的是NULL呢,原来是while 循环的条件是pNode != pLinkTable->pTail,也就是说循环并没有遍历尾节点,

而quit恰好是链表的尾节点。由此将循环条件修改为 pNode != NULL,程序运行正常

修改callback函数参数,使LinkTable更通用:

修改Searchcondition 参数:

修改SearchLinkTableNode参数:

编译运行出错,错误应该在findcmd函数里,向SearchLinkTableNode传入第三个参数void * args 是个未知参数,但是老师又没有定义

全局变量,而且老师把这一段给掐掉了,所以暂时无法给出正确代码。

上传到github:

实验总结

通过这次实验让我明白了回调函数的作用,我们不需要知道接口具体是怎样实现的,我们只需要传入需要的参数,回调函数会自动处理好,

并把结果返回给我们。这样我们就可以设计出更通用的接口来。

 

转载于:https://www.cnblogs.com/raincute/p/7715838.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值