實(shí)驗(yàn)五:用callback增強(qiáng)鏈表模塊來(lái)實(shí)現(xiàn)命令行菜單小程序V2.8

路過(guò)的小游俠 + 《軟件工程(C編碼實(shí)踐篇)》MOOC課程作業(yè)http://mooc.study.163.com/course/USTC-1000002006

GitHub: [lab5]:https://github.com/littleRanger/SoftwareEngineering/tree/master/lab5

一. 實(shí)驗(yàn)?zāi)康?/h2>

給Linktable增加Callback方式的接口
在menu中用Callback方式查詢鏈表
進(jìn)一步改進(jìn)Linktable的Callback方式的接口
用callback函數(shù)實(shí)現(xiàn)的多態(tài)淺析
信息隱藏

二. 實(shí)驗(yàn)內(nèi)容

給lab5-1.tar.gz找bug,quit命令無(wú)法運(yùn)行的bug
利用callback函數(shù)參數(shù)使Linktable的查詢接口更加通用
注意接口的信息隱藏

三. 實(shí)驗(yàn)過(guò)程

  1. 找到bug
    問(wèn)題: quit 命令找不到命令
    一層一層函數(shù)棧, 尋找, 發(fā)現(xiàn)在SearchLinkTableNode函數(shù)中, 遍歷到鏈表尾巴就結(jié)束了,while(pNode!=pTail) 導(dǎo)致如果命令是尾巴節(jié)點(diǎn), 則無(wú)法進(jìn)去while循環(huán)體內(nèi)部, 也就無(wú)法執(zhí)行condition(pNode)的確認(rèn)鉤子函數(shù).
    只要while語(yǔ)句的結(jié)束條件為 pNode!=NULL即可
修復(fù)quit的bug

2.利用callback函數(shù)參數(shù)使Linktable的查詢接口更加通用
先將cmd字符串取消定義為全局變量,然后修改callback函數(shù)。

tLinkTableNode * SearchLinkTableNode(tLinkTable *pLinkTable,intConditon(tLinkTableNode * pNode,void* args),void* args);

記得同時(shí)修改該函數(shù)的申明和使用

效果截圖

3. 注意信息的隱藏

在linktable.c中定義Linktable結(jié)構(gòu)體,而在linktable.h中只留下LinkTable結(jié)構(gòu)的聲明。

總結(jié):

本次實(shí)驗(yàn)主要學(xué)會(huì)了如何callback函數(shù)的處理方式.
實(shí)踐了對(duì)外暴露接口的處理, 提高了對(duì)模塊化理解.
最后git 實(shí)踐了git pull自動(dòng)merge功能, 原因在于在網(wǎng)頁(yè)給lab4 commit 過(guò)readme,

lab5-git.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 教程一:視頻截圖(Tutorial 01: Making Screencaps) 首先我們需要了解視頻文件的一些基...
    90后的思維閱讀 4,980評(píng)論 0 3
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,626評(píng)論 18 399
  • 第一章 Nginx簡(jiǎn)介 Nginx是什么 沒(méi)有聽(tīng)過(guò)Nginx?那么一定聽(tīng)過(guò)它的“同行”Apache吧!Ngi...
    JokerW閱讀 33,011評(píng)論 24 1,002
  • “瀘水”在中國(guó)有許多條。縣一級(jí)地名帶“瀘”的就有云南省怒江州瀘水市、云南省紅河州瀘西縣、湖南省湘西州瀘溪縣,而諸葛...
    逸仙無(wú)患閱讀 3,611評(píng)論 2 2
  • 1.申城 頭一次去江南,過(guò)了長(zhǎng)江我就沿途欣賞兩岸的景色,出了車站開(kāi)始蒙蒙的細(xì)雨。坐在出租車?yán)?,我透過(guò)車窗看著窗外的...
    從前慢者閱讀 438評(píng)論 4 5

友情鏈接更多精彩內(nèi)容