zoukankan      html  css  js  c++  java
  • 软件工程实验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:

    实验总结

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

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

  • 相关阅读:
    几种类间关系:继承、实现、依赖、关联、聚合、组合及UML变现图(转)
    StarUML指导手册(转)
    hook(转)
    DancingLinks简介(转)
    (转)用宏获取函数名
    UML中关联和依赖的区别
    “智商平平”学软件(转)
    生产者消费者问题Semaphore
    [转] UML中关联、依赖、聚集等关系的异同
    最近要看的东西
  • 原文地址:https://www.cnblogs.com/raincute/p/7715838.html
Copyright © 2011-2022 走看看