網易雲課堂暱稱 + 《軟件工程(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思想使程序體更加通用,提高了代碼能力。