1. 程式人生 > 其它 >2022-2023-1 20221313《計算機基礎與程式設計》第十四周學習總結

2022-2023-1 20221313《計算機基礎與程式設計》第十四周學習總結

2022-2023-1 20221313《計算機基礎與程式設計》第十四周學習總結

作業資訊

作業課程 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP
作業要求 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14
作業目標 學習《C語言程式設計》第十三章
作業正文 https://www.cnblogs.com/lu-yu/p/16929085.html

教材學習內容總結

《C語言程式設計》第十三章:
主要講了文字檔案和二進位制檔案的定義以及區別;
檔案的開啟方式以及如何開啟檔案和關閉檔案,即fopen()函式和fclose()函式;
如何讀寫檔案中的字元,以及如何讀寫檔案中的字串,即fgetc()函式和fputc()函式;
如何按指定格式從檔案讀資料和向檔案寫入資料,即fscanf()函式和fprintf()函式;
如何按資料塊讀寫檔案,即fread()函式和fwrite()函式。

教材學習中的問題和解決過程

  • 問題1:什麼是檔案系統?檔案系統就是某一類檔案的組合嗎?
  • 問題1解決方案:
    檔案系統是作業系統用於明確儲存裝置(常見的是磁碟,也有基於NAND Flash的固態硬碟)或分割槽上的檔案的方法和資料結構;即在儲存裝置上組織檔案的方法。作業系統中負責管理和儲存檔案資訊的軟體機構稱為檔案管理系統,簡稱檔案系統。
    檔案系統由三部分組成:檔案系統的介面,對物件操縱和管理的軟體集合,物件及屬性。從系統角度來看,檔案系統是對檔案儲存裝置的空間進行組織和分配,負責檔案儲存並對存入的檔案進行保護和檢索的系統。具體地說,它負責為使用者建立檔案,存入、讀出、修改、轉儲檔案,控制檔案的存取,當用戶不再使用時撤銷檔案等。
  • 問題2:什麼是緩衝區?有什麼作用?
  • 問題2解決方案:
    緩衝區就是我們常說的快取,屬於記憶體的一部分。它依據對應的輸入裝置和輸出裝置把記憶體的一部分空間分為輸入緩衝區和輸出緩衝區。
    可以減少對磁碟的讀寫次數,提高計算機的執行效率。系統呼叫時需要時間的,程式中頻繁的使用系統呼叫會降低程式的執行效率 ,庫函式訪問檔案的時候根據需要,設定不同型別的緩衝區,從而減少了直接呼叫IO系統呼叫的次數,也就提高了效率。
  • 問題3:fflush()函式有什麼更多的的用法呢?
  • 問題3解決方案:
    函式的定義:int fflush(FILE *stream);
    如果stream指向輸出流或者更新流(updatestream),並且這個更新流最近執行的操作不是輸入,那麼fflush函式將把任何未被寫入的資料寫入stream指向的檔案(如標準輸出檔案stdout)。否則,fflush函式的行為是不確定的。
    fflush(NULL)清空所有輸出流和上面提到的更新流。如果發生寫錯誤,fflush函式會給那些流打上錯誤標記,並且返回EOF,否則返回0。
    由此可知,如果 stream 指向輸入流(如stdin),那麼 fflush函式的行為是不確定的。故而使用 fflush(stdin)是不正確的,至少是移植性不好的。

程式碼除錯中的問題和解決過程

  • 問題1:無法將資料讀入文件中。

  • 問題1解決方案:通過翻閱課本,發現exit()函式是在stdlib標頭檔案中的,應當在開頭加上#include <stdlib.h>。

學習進度條

程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 200/200 2/2 10/10
第二週 300/500 2/4 18/28
第三週 300/800 3/7 20/48
第四周 300/1100 2/9 20/68
第五週 300/1400 2/11 20/88
第六週 300/1700 4/15 20/108
第七週 300/2000 1/16 20/128
第八週 300/2300 1/17 20/148
第九周 300/2600 3/20 20/168
第十週 300/2900 1/21 20/188
第十一週 200/3100 1/21 20/208
第十二週 200/3300 1/22 20/228
第十三週 200/3500 1/23 20/248
第十四周 200/3700 1/24 20/268
  • 計劃學習時間:20小時

  • 實際學習時間:20小時

參考資料