githubgit
提交日誌截圖
github
c語言課本的第十章詳細的介紹了c語言中如何對文件進行輸入與輸出,學習課本後我總結了一些要點:算法
我以爲commit信息主要先掌握
此次題目是上一次題目的升級版,因而我按照上次做業的思路開始構建框架,我先構造了兩個結構體類型分別表明指令和電梯,此次學習過文件的輸入輸出後,我運用fprintf函數構造了一個專門用來輸出的Print函數,方便在其餘功能中的調用,再按照老師提示構造了一個taximode函數,這個函數的功能是用來實現電梯接到一個乘客就直接把乘客送到目的地,途中再也不響應其餘乘客的需求也就是順序執行指令,這裏出現了一個bug,在該函數中我調用了Print函數,Print函數須要一個文件指針做爲參數,可是我沒有再taximode中定義,而是再main函數中定義,我將mian中的定義移到taximode函數中,完成了bug的修復。 我作了一個在時間上的優化將指令按照時間排序,構造了一個Exchange函數來實現這一功能,用冒泡排序後進行了測試,而後我又進行了對重複指令過濾的優化,相同的指令若是直接使用taximode的話會被屢次處理,我設計了一個對比函數用來實現對兩條指令的對比,先無條件執行排序後的第一條指令,再用循環和條件語句來一直判斷該指令和後一條指令是否相同,相同則不處理後一條,不相同則處理後一條,並進行了測試,測試是出現了一個bug,經過debug,我發現我跳了一次循環,我發現我忘記了continue完,進入到下一循環for時,會先i++完再進入循環體,本身再循環體中加了i++,致使了會跳過循環的bug,修復後又進行了測試。我又想了想同一層上同一層下的優化問題,按照現實生活中的狀況,他仍是要進入電梯按一下的,電梯也是會停留一秒的,因此問題不是很大。 關於busmode和進一步的優化,我想了一些可是和個人程序的切合度不是很高就被我推翻了,到如今仍是想不出一個很好的算法來解決這個電梯難題。
代碼行數 | bug數 | 耗時 |
113 | 6 | 17h |
第一組爲五條按時間順序的命令,第二組爲前五條打亂事後的數據,輸出結果比較,發現徹底相同,排序函數的功能正常。函數
兩次測試後重復的部分都被過濾了,過濾功能正常。學習