freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言代碼統(tǒng)計器-文庫吧資料

2025-08-10 17:46本頁面
  

【正文】 tion name: CharJudge** Descriptions: 判斷文件中的單個字符,并改變相關(guān)的變量***************************************************************************/int CharJudge(char ch, char NextCh, int k){ int static iCountNote = 0。統(tǒng)計并顯示的數(shù)據(jù)分別是: 單個文件:代碼行數(shù)、有效代碼行數(shù)、注釋行數(shù)、空白行數(shù)、注釋率; 文件夾:除了該文件夾中所有文件的相關(guān)信息外,還統(tǒng)計了文件夾中的文件總數(shù)、代碼總行數(shù)、有效代碼總行數(shù)、總注釋行數(shù)、總空白行數(shù)、還有總注釋率。第6章 設計結(jié)果和使用說明 程序運行界面開始界面:單個文件統(tǒng)計界面:文件夾統(tǒng)計界面:上圖是對文件夾中子文件夾的文件進行統(tǒng)計上圖是輸出整個文件夾的整體信息 使用說明該統(tǒng)計器由于是控制臺程序,所以操作十分簡單。amp。由于換一行之后,所有情況都是未知的,所以在換行符這里還要對各個數(shù)據(jù)進行初始化。}這里只說了雙引號的處理,單引號同樣的處理,這里不再贅述。amp。\\39。amp。\\39。 (iQuotation_mark1 || iQuotation_mark2)){ /* 排除轉(zhuǎn)義字符\在字符串中的干擾*/ i = 0。 == NextCh amp。 39。 == ch amp。大致代碼如下:else if (39。 轉(zhuǎn)義字符有幾個特殊的轉(zhuǎn)義字符:“\\”、“\’”、“\””,這三個字符它們會互相干擾,比如在字符串中出現(xiàn)“\”” ,就會導致字符串的邊界判斷出錯,所以把它們單獨列出來處理。這是為了避免“/*/”這樣的字符串,有了這個i的判斷后,就不會出現(xiàn)統(tǒng)計完“/*”馬上統(tǒng)計“*/”的情況,而是跳過“*/”統(tǒng)計下一對字符。另外還有兩處出現(xiàn)如下語句:if (iHaveNote == 0){ i = 0。 }這里只說明了“/*…*/”的處理,“//…..”同理。 } iC_or_N = 1。amp。amp。amp。*39。amp。/39。詳細使用見附錄A中相應部分。有必要說明的是,這里全都定義成了靜態(tài)變量,這樣做的目的是在遞歸調(diào)用該函數(shù)時,保持這些變量不改變,其作用相當于全局變量。 /*判斷字符是否在引號中 */int static i = 1。 /*判斷該行是否有注釋*/ int static iC_or_N2 = 0, iC_or_N = 0。 /*統(tǒng)計代碼總行數(shù) */int static iHaveCode = 0。 /*統(tǒng)計有效代碼行數(shù) */int static iCountblank = 0。在該模塊程序設計中,一共涉及到了十一個靜態(tài)變量,它們分別如下:int static iCountNote = 0。 文件字符的判斷和變量處理這部分是整個項目程序的核心部分,該模塊基本上實現(xiàn)了對單個文件的統(tǒng)計,所以內(nèi)容比較多,這里分開來闡述。正如代碼所示,該代碼統(tǒng)計器是采用遞歸算法來遍歷文件夾的,即如果用戶輸入的文件夾路徑下,有子文件夾,則再對該子文件夾調(diào)用上述函數(shù),直至某一子文件夾沒有子文件夾為止。有了這些信息,我們就能準確的對整個文件夾子目錄中的各個元素進行判斷,也就實現(xiàn)了給定目錄下的文件遍歷了。利用這三個函數(shù),就能夠?qū)崿F(xiàn)對一個文件夾路徑進行檢索,并返回所給文件夾路徑的子文件或子文件夾指針,并且關(guān)閉文件夾。 /* may include spaces. */}。 _fsize_t size。 time_t time_access。前面講過在頭文件 中,定義了一個結(jié)構(gòu)體:struct _finddata_t{ Unsigned attrib。具體的字符串倒置和判斷方法見附錄A,代碼中的子函數(shù)int FileJudge(char const *p)部分。由于由函數(shù)接收來的文件名是正常次序的,因此需要另外設定函數(shù)將文件名字符串倒置,然后再依據(jù)文件名后綴來進行判斷篩選。 文件類型判斷C和C++源代碼文件加起來一共有三類,、.H、.CPP為后綴名,有了這個依據(jù),我們就能準確地從一系列文件中找出我們所需要的這三種文件。大致流程如下:這就是該代碼統(tǒng)計器的設計思路,至于一些關(guān)鍵部分的處理,接下來會有詳細的說明。這些字符的判斷以及相應的處理在后面會相對詳細的給出說明,這里就不贅述。由于代碼中存在許多關(guān)鍵字符,如:“/*”,“*/”,“//”等,這都需要兩個字符連續(xù)判斷,所以在讀取時,需要從文件中連續(xù)讀取兩個字符。文件遍歷是一個很關(guān)鍵的部分,遍歷是否完全關(guān)系到統(tǒng)計的精確度,該統(tǒng)計器采用的是遞歸遍歷法,其流程如下: 字符判斷如果說文件遍歷很重要,那么對文件字符的判斷則是整個程序的核心部分。因為該代碼統(tǒng)計器是專門用來統(tǒng)計C語言或C++語言的,所以當接收路徑名為文件時,就需要判斷該文件的種類,如果是C或C++程序代碼文件,則直接進行統(tǒng)計;否則報錯,提示用戶文件格式不正確。第4章 概要設計 路徑判斷為了高效統(tǒng)計用戶所需的代碼文件,就要求統(tǒng)計器能夠批量統(tǒng)計文件夾。這款軟件能識別用戶所輸入的參數(shù)是否為文件(夾)路徑,并且會給出相應的語言提示。 在判斷文件是否為C或C++代碼文件時,和第二種情況差不多,也是用來防止接收的文件名指針為空。 在遞歸遍歷文件夾時,函數(shù)入口參數(shù)是一個指針變量,接受文件夾路徑。為了防止指針出錯,本程序在關(guān)鍵處使用了C標準庫函數(shù)中,頭文件下void assert(int exp) 這個函數(shù),它是用于表達式結(jié)果的正確性測試并且當表達式結(jié)果為假時使程序終止。這樣做減少了函數(shù)之間值的地址的傳遞,出錯也就更少,安全性也就越高。為此,在該統(tǒng)計器的程序設計中,一共使用了五個全局變量、九個靜態(tài)變量。 變量處理由于要統(tǒng)計代碼源文件中的文件行數(shù)、代碼函數(shù)、注釋行數(shù)、空白行數(shù)等信息,則需要使用多個變量來分別統(tǒng)計各種信息。從而,我們就可以從這個返回的結(jié)構(gòu)體指針中獲取文件夾子目錄的全部相關(guān)信息,例如:文件或文件夾名、文件類型、文件大小以及更改日期等得知這些信息之后,我們只需要對不同類型的文件分別進行處理,就能實現(xiàn)對整個目錄的遍歷。}。 _fsize_t size。 time_t time_access。 遍歷文件夾 在頭文件 中,定義了一個結(jié)構(gòu)體:struct _finddata_t { unsigned attrib。int fclose(void) :關(guān)閉所有已打開的文件。由于該程序中需要連續(xù)讀取兩個字符,而這個函數(shù)在讀取時會自動移動文件內(nèi)部指針,所以必須采取特殊措施才能實現(xiàn)連續(xù)讀取。為什么選只讀呢?因為以只讀方式打開的文件,無論是否有其他程序在使用它,都不會影響到對它的統(tǒng)計,這樣使用起來也是更加的方便。 文件的打開與讀取在C標準庫函數(shù)中,頭文件下包含了各種輸入輸出函數(shù),其中就包括了實現(xiàn)文件操作的一系列函數(shù):FILE *fopen(char *filename, char *mod
點擊復制文檔內(nèi)容
教學教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1