




已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 C 代碼編寫規(guī)范 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 目錄目錄 目錄目錄 1 目的目的 2 1 目的目的 3 2 適應范圍適應范圍 3 3 術(shù)語及縮略語術(shù)語及縮略語 4 4 規(guī)范內(nèi)容規(guī)范內(nèi)容 4 4 1 命名總體規(guī)則 4 4 2 命名規(guī)范 4 4 2 1變量命名 4 4 2 2常量命名 6 4 2 3類 Class 命名 6 4 2 4接口 Interface 命名 7 4 2 5方法 Method 命名 7 4 2 6命名空間 NameSpace 命名 7 4 2 7屬性 Property 命名 7 4 3 注釋規(guī)范 7 4 3 1概述 7 4 3 2自建代碼文件注釋 8 4 3 3模塊 類 注釋 9 4 3 4類屬性注釋 9 4 3 5方法注釋 10 4 3 6代碼間注釋 10 4 4 編碼規(guī)則 10 4 4 1錯誤檢查規(guī)則 10 4 4 2大括號規(guī)則 11 4 4 3小括號規(guī)則 11 4 4 4縮進規(guī)則 11 4 4 5對齊規(guī)則 11 4 4 6比較規(guī)則 11 4 4 7 Case規(guī)則 12 4 4 8 If Else規(guī)則 12 4 4 9單語句規(guī)則 12 4 4 10單一功能準則 12 4 4 11簡單功能準則 12 4 4 12明確條件規(guī)則 12 4 4 13選用False規(guī)則 13 4 4 14獨立賦值規(guī)則 13 4 4 15定義常量規(guī)則 13 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 4 4 16模塊化規(guī)則 13 4 4 17交流規(guī)則 13 4 5 編程準則 14 4 5 1變量使用 14 4 5 2數(shù)據(jù)庫操作 14 4 5 3對象使用 14 4 5 4模塊設計原則 14 4 5 5結(jié)構(gòu)化要求 14 4 5 6函數(shù)返回值原則 15 4 6 代碼包規(guī)范 15 4 6 1代碼包的版本號 15 4 6 2代碼包的標識 16 4 7 代碼控制 17 4 7 1代碼庫 目錄的建立 17 4 7 2代碼歸檔 17 附件 1 數(shù)據(jù)類型縮寫表 17 附件 2 控件名縮寫表 18 a NET控件 18 b html控件 19 c ADO NET控件 20 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 1 目的目的 a 為了統(tǒng)一公司軟件開發(fā)設計過程的編程規(guī)范 b 使開發(fā)人員能方便的理解每個目錄 變量 控件 類 方法的意義 c 為了保證編寫出的程序都符合相同的規(guī)范 保證一致性 統(tǒng)一性而建立的 程序編碼規(guī)范 d 編碼規(guī)范和約定必須能明顯改善代碼可讀性 并有助于代碼管理 2 適應范圍適應范圍 本規(guī)范適用于企業(yè)所有基于 NET 平臺的軟件開發(fā)人員 作用于軟件項目開 發(fā)的代碼編寫階段和后期維護階段 3 術(shù)語及縮略語術(shù)語及縮略語 4 規(guī)范內(nèi)容規(guī)范內(nèi)容 4 1 命名總體規(guī)則命名總體規(guī)則 a 名字應該能夠標識事物的特性 b 名字一律使用英文單詞 而不能為拼音 c 名字盡量不使用縮寫 除非它是眾所周知的 d 名字可以有兩個或三個單詞組成 但不應多于三個 控制在 3 至 30 個 字母以內(nèi) e 在名字中 多個單詞用大寫第一個字母 其它字母小寫 來分隔 例 如 IsSuperUser f 名字盡量使用前綴而不是后綴 g 名字中的單詞盡量使用名詞 如有動詞 也盡量放在后面 例如 FunctionUserDelete 而不是 FunctionDeleteUser 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 4 2 命名規(guī)范命名規(guī)范 4 2 1 變量命名變量命名 1 程序文件程序文件 cs 中的變量命名中的變量命名 程序中變量名稱 變量的前綴 代表變量含意的英文單詞或單詞縮寫 類模塊級的變量請用 m 數(shù)據(jù)類型縮寫作為前綴 其中 m 為 module 縮寫 數(shù)據(jù)類型縮寫見附件中的 數(shù)據(jù)類型縮寫表 public class Hello private string m strName private DataTable m dtblTable 類的屬性所對應的變量 采用屬性名前加 m 類型縮寫 前綴的形式 public class Hello private string m strName private DataTable m dtblTable public string Name get return m strName 過程級的變量使用類型縮寫前綴 void Say string strSayWord 過程的參數(shù)使用 p 類型縮寫作為前綴 其中 p 為 parameter 縮寫 void Say string pStrSayWord string strSayWord 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 補充說明 針對異常捕獲過程中的 Exception 變量命名 在沒有沖突的情況下 統(tǒng)一 命名為 ex 如果有沖突的情況下 可以用 ex 標志名稱 如 exSql try 代碼 catch Exception ex 代碼 補充 如果捕獲異常不需要作任何處理 則不需要定義 Exception 實例 例 try 代碼 catch 鑒于大多數(shù)名稱都是通過連接若干單詞構(gòu)造的 請使用大小寫混合的格式 以簡化它們的閱讀 每個單詞的第一個字母都是大寫 即使對于可能僅出現(xiàn)在幾個代碼行中的生存期很短的變量 仍然使用有意 義的名稱 僅對于短循環(huán)索引使用單字母變量名 如 i 或 j 在變量名中使用互補對 如 min max begin end 和 open close 不要使用原義數(shù)字或原義字符串 如 For i 1 i 7 i 而是使用 命名常數(shù) 如 For i 1 i NUM DAYS IN WEEK i 以便于維護和理解 2 2 控件命名控件命名 控件命名 控件縮寫前綴 名稱 如 DataGrid dg UserList 或 dgUserlist 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 4 2 2 常量命名常量命名 常量名也應當有一定的意義 格式為 NOUN 或 NOUN VERB 常量名均 為大寫 字之間用下劃線分隔 例 private const bool WEB ENABLEPAGECACHE DEFAULT true private const int WEB PAGECACHEEXPIRESINSECONDS DEFAULT 3600 private const bool WEB ENABLESSL DEFAULT false 注 變量名和常量名最多可以包含 255 個字符 但是 超過 25 到 30 個 字符的名稱比較笨拙 此外 要想取一個有實際意義的名稱 清楚地表達變量 或常量的用途 25 或 30 個字符應當足夠了 4 2 3 類類 Class 命名命名 a 名字應該能夠標識事物的特性 b 名字盡量不使用縮寫 除非它是眾所周知的 c 名字可以有兩個或三個單詞組成 但通常不應多于三個 d 在名字中 所有單詞第一個字母大寫 例如 IsSuperUser 包含 ID 的 ID 可 以全部大寫 如 CustomerID e 使用名詞或名詞短語命名類 f 少用縮寫 g 不要使用下劃線字符 例 public class FileStream public class Button public class String 4 2 4 接口接口 Interface 命名命名 和類命名規(guī)范相同 唯一區(qū)別是 接口在名字前加上 I 前綴 例 interface IMap 或 interface IMapDocument 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 4 2 5 方法方法 Method 命名命名 和類命名規(guī)范相同 4 2 6 命名空間命名空間 NameSpace 命名命名 和類命名規(guī)范相同 4 2 7 屬性屬性 Property 命名命名 和類命名規(guī)范相同 4 3 注釋規(guī)范注釋規(guī)范 4 3 1 概述概述 a 注釋要求英文及英文的標點符號 b 注釋中 應標明對象的完整的名稱及其用途 但應避免對代碼過于詳細的描 述 c 每行注釋的最大長度為 100 個字符 d 將注釋與注釋分隔符用一個空格分開 e 不允許給注釋加外框 f 編碼的同時書寫注釋 g 重要變量必須有注釋 h 變量注釋和變量在同一行 所有注釋必須對齊 與變量分開至少四個 空格 鍵 如 int m iLevel m iCount m iLevel tree level m iCount count of tree items string m strSql SQL i 典型算法必須有注釋 j 在循環(huán)和邏輯分支地方的上行必須就近書寫注釋 k 程序段或語句的注釋在程序段或語句的上一行 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 l 在代碼交付之前 必須刪掉臨時的或無關(guān)的注釋 m 為便于閱讀代碼 每行代碼的長度應少于 100 個字符 4 3 2 自建代碼文件注釋自建代碼文件注釋 對于自己創(chuàng)建的代碼文件 如函數(shù) 腳本 在文件開頭 一般編寫如下注釋 FileName Copyright c 2004 xxxx 公司技術(shù)開發(fā)部 Writer Create Date Rewriter Rewrite Date Impact Main Content Function Name parameters returns 4 3 3 模塊模塊 類類 注釋注釋 模塊開始必須以以下形式書寫模塊注釋 Module ID Depiction Author 作者中文名 Create Date 如果模塊只進行部分少量代碼的修改時 則每次修改須添加以下注釋 Rewriter Date Start1 原代碼內(nèi)容 End1 將原代碼內(nèi)容注釋掉 然后添加新代碼使用以下注釋 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 Added by Add date Start2 End2 如果模塊輸入輸出參數(shù)或功能結(jié)構(gòu)有較大修改 則每次修改必須添加以下注釋 Log ID depiction Writer 修改者中文名 Rewrite Date 4 3 4 類屬性注釋類屬性注釋 在類的屬性必須以以下格式編寫屬性注釋 描述信息 4 3 5 方法注釋方法注釋 在類的方法聲明前必須以以下格式編寫注釋 depiction param name Writer 作者中文名 Create Date 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 4 3 6 代碼間注釋代碼間注釋 代碼間注釋分為單行注釋和多行注釋 多行注釋 1 多行注釋 2 多行注釋 3 代碼中遇到語句塊時必須添加注釋 if for foreach 添加的注釋必須 能夠說明此語句塊的作用和實現(xiàn)手段 所用算法等等 4 4 編碼規(guī)則編碼規(guī)則 4 4 1 錯誤檢查規(guī)則錯誤檢查規(guī)則 a 編程中要考慮函數(shù)的各種執(zhí)行情況 盡可能處理所有流程情況 b 檢查所有的系統(tǒng)調(diào)用的錯誤信息 除非要忽略錯誤 c 將函數(shù)分兩類 一類為與屏幕的顯示無關(guān) 另一類與屏幕的顯示有關(guān) 對 于與屏幕顯示無關(guān)的函數(shù) 函數(shù)通過返回值來報告錯誤 對于與屏幕顯示有關(guān) 的函數(shù) 函數(shù)要負責向用戶發(fā)出警告 并進行錯誤處理 d 錯誤處理代碼一般放在函數(shù)末尾 e 對于通用的錯誤處理 可建立通用的錯誤處理函數(shù) 處理常見的通用的錯誤 4 4 2 大括號規(guī)則大括號規(guī)則 將大括號放置在關(guān)鍵詞下方的同列處 例如 4 4 3 小括號規(guī)則小括號規(guī)則 a 不要把小括號和關(guān)鍵詞 if while 等 緊貼在一起 要用空格隔開它們 b 不要把小括號和函數(shù)名緊貼在一起 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 c 除非必要 不要在 Return 返回語句中使用小括號 因為關(guān)鍵字不是函數(shù) 如果小括號緊貼著函數(shù)名和關(guān)鍵字 二者很容易被看成是一體的 4 4 4 縮進規(guī)則縮進規(guī)則 使用一個 Tab 為每層次縮進 例如 4 4 5 對齊規(guī)則對齊規(guī)則 變量的申明和初始化都應對齊 例如 int m iCount int i j float m fIncome m fPay m iCount 0 i 1 m fIncome 0 3 4 4 6 比較規(guī)則比較規(guī)則 總是將恒量放在等號 不等號的左邊 一個原因是假如你在等式中漏了一個 等號 語法檢查器會為你報錯 第二個原因是你能立刻找到數(shù)值而不是在你的 表達式的末端找到它 例如 if 6 errorNum 4 4 7 Case 規(guī)則規(guī)則 default case 總應該存在 如果不允許到達 則應該保證 若到達了就會 觸發(fā)一個錯誤 Case 的選擇條件最好使用 int 或 string 類型 4 4 8 If Else 規(guī)則規(guī)則 如果你有用到 else if 語句的話 通常最好有一個 else 塊以用于處理未處理 到的其他情況 可以的話放一個記錄信息注釋在 else 處 即使在 else 沒有任 何的動作 其格式為 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 if 條件 1 注釋 else if 條件 2 注釋 else 注釋 4 4 9 單語句規(guī)則單語句規(guī)則 除非這些語句有很密切的聯(lián)系 否則每行只寫一個語句 4 4 10 單一功能準則單一功能準則 原則上 一個程序單元 函數(shù) 例程 方法 只完成一項功能 4 4 11 簡單功能準則簡單功能準則 原則上 一個程序單元的代碼應該限制在一頁內(nèi) 25 30 行 4 4 12 明確條件規(guī)則明確條件規(guī)則 不要采用缺省值測試非零值 例如 使用 if 0 f 而不用 if f 4 4 13 選用選用 False 規(guī)則規(guī)則 大部分函數(shù)在錯誤時返回 FALSE 0 或 NO 之類的值 但在正確時返回值就 不定了 不能用一個固定的 TRUE 1 或 YES 來代表 因此檢測一個布爾值時應 該用 FALSE 0 NO 之類的不等式來代替 例如 使用 if False f 而不用 if TRUE f 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 4 4 14 獨立賦值規(guī)則獨立賦值規(guī)則 嵌入式賦值不利于理解程序 同時可能會造成意想不到的副作用 應盡量 編寫獨立的賦值語句 例如 使用 a b c e a d 而不用 e a b c d 4 4 15 定義常量規(guī)則定義常量規(guī)則 對于代碼中引用的常量 尤其是數(shù)字 應該 define 成一個大寫的名字 在代碼中引用名字而不直接引用值 4 4 16 模塊化規(guī)則模塊化規(guī)則 某一功能 如果重復實現(xiàn)一遍以上 即應考慮模塊化 將它寫成通用函數(shù) 并向小組成員發(fā)布 同時要盡可能利用其它人的現(xiàn)成模塊 4 4 17 交流規(guī)則交流規(guī)則 共享別人的工作成果 向別人提供自己的工作成果 在具體任務開發(fā)中 如果有其它的編碼規(guī)則 則在相應的軟件開發(fā)計劃中 予 以明確定義 4 5 編程準則編程準則 4 5 1 變量使用變量使用 a 不允許隨意定義全局變量 b 一個變量只能有一個用途 變量的用途必須和變量的名稱保持一致 c 所有變量都必須在類和函數(shù)最前面定義 并分類排列 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 4 5 2 數(shù)據(jù)庫操作數(shù)據(jù)庫操作 a 查找數(shù)據(jù)庫表或視圖時 只能取出確實需要的那些字段 b 使用無關(guān)聯(lián)子查詢 而不要使用關(guān)聯(lián)子查詢 c 清楚明白地使用列名 而不能使用列的序號 d 用事務保證數(shù)據(jù)的完整性 4 5 3 對象使用對象使用 盡可能晚地創(chuàng)建對象 并且盡可能早地釋放它 4 5 4 模塊設計原則模塊設計原則 a 不允許隨意定義公用的函數(shù)和類 b 函數(shù)功能單一 不允許一個函數(shù)實現(xiàn)兩個及兩個以上的功能 c 不能在函數(shù)內(nèi)部使用全局變量 如要使用全局變量 應轉(zhuǎn)化為局部變量 d 函數(shù)與函數(shù)之間只允許存在包含關(guān)系 而不允許存在交叉關(guān)系 即兩者之間 只存在單方向的調(diào)用與被調(diào)用 不存在雙向的調(diào)用與被調(diào)用 4 5 5 結(jié)構(gòu)化要求結(jié)構(gòu)化要求 a 禁止出現(xiàn)兩條等價的支路 例如 if a 2 else if a 3 else if a 2 else b 避免使用 GOTO 語句 c 用 IF 語句來強調(diào)只執(zhí)行兩組語句中的一組 禁止 ELSE GOTO 和 ELSE 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 RETURN d 用 CASE 實現(xiàn)多路分支 e 避免從循環(huán)引出多個出口 f 函數(shù)只有一個出口 g 不使用條件賦值語句 h 避免不必要的分支 i 不要輕易用條件分支去替換邏輯表達式 4 5 6 函數(shù)返回值原則函數(shù)返回值原則 避免使用結(jié)構(gòu)體等復雜類型 使用 bool 類型 該函數(shù)只需要獲得成功或者失敗的返回信息時候 使用 int 類型 錯誤代碼用負數(shù)表示 成功返回 0 4 6 代碼包規(guī)范代碼包規(guī)范 本項目中 每個任務在完成一個穩(wěn)定的版本后 都應打包并且歸檔 4 6 1 代碼包的版本號代碼包的版本號 項目中 代碼包的版本號由圓點隔開的兩個數(shù)字組成 第一個數(shù)字表示發(fā) 行號 第二個數(shù)字表示該版的修改號 具體用法如下 1 當代碼包初版時 版本號為 V1 00 2 當代碼包被局部修改或 bug 修正時 發(fā)行號不變 修改號第二個數(shù)字增 1 例如 對初版代碼包作了第一次修訂 則版本號為 V1 01 3 當代碼包在原有的基礎上增加部分功能 發(fā)行號不變 修改號第一個數(shù) 字增 1 例如 對 V1 12 版的基礎上增加部分功能 則新版本號為 V1 20 4 當代碼包有重要修改或局部修訂累積較多導致代碼包發(fā)生全局變化時 發(fā)行號增 1 例如 在 V1 15 版的基礎上作了一次全面修改 則新版本號為 V2 00 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 4 6 2 代碼包的標識代碼包的標識 本項目所產(chǎn)生的代碼包都有唯一 特定的編碼 其構(gòu)成如下 S 項目標識 代碼包類型 版本號 序號 其中 1 S 本項目的標識 表明本項目是 XXXX 2 項目標識 簡要標識本項目 此標識適用于整個項目的文檔 3 代碼包類型 取自以下表的兩位字母編碼 4 版本號 本代碼包的版本號 5 序號 四位數(shù)字編碼 指明該代碼包在項目代碼庫的總序號 例如 一個 Windows 下 RAR 源碼的壓縮代碼包命名為 S XXXX WS V1 02 0001 項目的代碼包分類表 類 型 編 碼 注 釋 RAR 包 web 源碼文件 WS 源代碼文件包 編譯文件 WB 編譯文件包 安裝文件 WI 安裝文件包 源碼代碼 安裝文件 WA 源代碼和安裝文件包 項目中所有代碼包的標識清單將在 項目開發(fā)計劃 中予以具體定義 4 7 代碼控制代碼控制 4 7 1 代碼庫代碼庫 目錄的建立目錄的建立 項目負責人在 VSS 中建立項目的文檔庫目錄 即為 Software 目錄 以 便快速查詢 4 7 2 代碼歸檔代碼歸檔 所有代碼在完成一個穩(wěn)定的版本后 項目負責人都應打包后 存放于 VSS 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 中該目的 Software 目錄下 并且依據(jù)代碼包的命名規(guī)范為代碼包分配一個 唯一名稱 附件附件 1 數(shù)據(jù)類型縮寫表 數(shù)據(jù)類型縮寫表 數(shù)據(jù)類型 縮寫 string str int i char chr sbyte sb byte bt uint ui long l ulong ul float f double d bool b decimal dec 附注 數(shù)據(jù)庫服務器命名規(guī)范 控件名縮寫 控件作用單詞的全稱 如 btnNext txtPassword 密碼文本框 txtRPassword 密碼確認文本框 單詞的第一個字 母必須大寫如果有多個單詞 則為控件縮寫 控件作用的第一個單詞 第二個單 詞的全稱 每個單詞名的第一個字母必須大寫 附件附件 2 控件名縮寫表 控件名縮寫表 a NET 控件控件 web 控件名 縮寫 AdRotator art Button btn 部分內(nèi)容來源于網(wǎng)絡 有侵權(quán)請聯(lián)系刪除 Calendar cd CheckBox chk CheckBoxList chkl CompareValidator cpv CustomValidator ctv DataGrid dg DataList dl DropDownList ddl HyperLink hl Image img ImageButton Ibtn Label lab LinkButton lbtn ListBox lst Panel pl PlaceHolder ph RadioButton rb RadioButtonList rbl RangeValidator rv RegularExpres
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 塔吊設備操作人員勞務派遣與風險控制合同
- 科技園區(qū)研發(fā)大樓場地租賃合同書范例
- 2025年中考考前最后一卷化學(廣東省卷)(全解全析)
- 義診活動拍照活動方案
- 標書制作教材
- 國際學生安全管理制度
- 廚房冰箱冰柜管理制度
- 年處理6000噸廢舊塑料再生項目環(huán)境影響評價報告
- 醫(yī)院麻醉安全管理制度
- 崗位競聘流程管理制度
- 日北京SOLANA藍色港灣項目定位與運營推廣方案
- 2022-2023學年石家莊市橋西區(qū)三下數(shù)學期末聯(lián)考試題含解析
- 無創(chuàng)呼吸機使用中面部壓瘡的發(fā)生原因及護理進展
- 機械制圖與識圖基礎知識培訓
- 2023年德國專利法中文版
- 常見異常心電圖正確識別理論考核試題題庫及答案
- GB/T 13540-2009高壓開關(guān)設備和控制設備的抗震要求
- 歐陸EV500變頻器使用手冊附錄1
- 夜宿山寺-優(yōu)質(zhì)課件
- 國開現(xiàn)代漢語專題形考任務4試題及答案
- 填石路堤沉降差檢測記錄表
評論
0/150
提交評論