我們在剛開始上課的時候介紹過乙個小學四則運算自動生成程式的例子,請實現它,要求:
專案名稱
小學四則運算自動生成器
審查人王文博審查日期
2019/5/3
**名稱
main.cpp
**作者
徐子健 檔案結構
序號審查專案
重要性結論
備註 1
標頭檔案和定義檔案的名稱是否合理?重要是
2標頭檔案和定義檔案的目錄結構是否合理?是 3
版權和版本宣告是否完整?
完整 4
標頭檔案是否使用了
ifndef/define/endif 預處理塊?
不適用未使用自己定義的標頭檔案
5標頭檔案中是否只存放「宣告」而不存放「定義」?
不適用未使用自己定義的標頭檔案
程式版式
序號審查專案
重要性結論
備註 6
**段間的空行是否得體?是 7
**行內的空格是否得體?是 8
長行拆分是否得體?是 9
「」 是否各佔一行並且對齊於同一列?
是 10
一行**是否只做一件事?如只定義乙個變數,只寫一條語句。重要否
部分語句一行進行很多操作
11if、for、while、do等語句自佔一行,不論執行語句多少都要加
「{}」。重要是
12在定義變數(或引數)時,是否將修飾符 * 和 &
緊靠變數名?重要是
是 13
注釋是否清晰並且必要?重要是
足夠簡單清晰
14注釋是否沒有錯誤且不會導致誤解?重要是
15類結構的public, protected,
private順序是否在所有的程式中保持一致?
重要不適用
未使用類解構
命名規則
序號審查專案
重要性結論
備註 16
命名規則是否與所採用的作業系統或開發工具的風格保持一致?重要是
17識別符號是否直觀且可以拼讀?
是 18
識別符號的長度應當符合「min-length
&& max-information」原則?
是 19
程式中是否出現相同的區域性變數和全部變數?重要否
20類名、函式名、變數和引數、常量的書寫格式是否遵循一定的規則?
是 21
靜態變數、全域性變數、類的成員變數是否加字首?
否 表示式與基本語句
序號審查專案
重要性結論
備註 22
如果**行中的運算子比較多,是否已經用括號清楚地確定表示式的操作順序重要是
23是否編寫太複雜或者多用途的復合表示式?
是 24
是否將復合表示式與「真正的數學表示式」混淆?重要否
25是否用正確的方式寫if語句? 例如
重要 1)
將布林變數直接與true、false或者1、0進行比較。
否 2)
將浮點變數用「==」或「!=」與任何數字比較。
否未使用
3) 將指標變數用「==」或「!=」與null比較。
否 26
如果迴圈體內存在邏輯判斷,並且迴圈次數很大,是否已經將邏輯判斷移到迴圈體外面?
否 27
case語句的結尾是加了break?
重要不適用
未使用switch語句
28是否寫了switch的default分支?重要否
29使用goto 語句時是否留下隱患?
例如跳過了某些物件的構造、變數的初始化,重要的計算等。
重要不適用
未使用goto語句
常量 序號
審查專案
重要性結論
備註 30
是否使用含義直觀的常量來表示那些將在程式中多次出現的數字或字串?
否 31
是否誤解了類中的const資料成員?因為const資料成員只在某個物件
不適用未使用類
32如果某一常量與其它常量密切相關,是否在定義中包含了這種關係?重要是
33生存期內是常量,而對於整個類而言卻是可變的。
不適用未使用類
函式設計
序號審查專案
重要性結論
備註 34
引數的書寫是否完整?不要貪圖省事只寫引數的型別而省略引數名字。
是 35
引數命名、順序是否合理?
是 36
引數的個數是否太多?
否 37
是否使用型別和數目不確定的引數?
是使用了隨機數
38是否省略了函式返回值的型別?
否 39
函式名字與返回值型別在語義上是否衝突?
否 40
是否將正常值和錯誤標誌混在一起返回?正常值應當用輸出引數獲得,而錯誤標誌用return語句返回。
重要不使用
未使用正確,錯誤標誌
41在函式體的「入口處」,是否用assert對引數的有效性進行檢查?
重要不適用
未使用assert
42使用濫用了assert?
例如混淆非法情況與錯誤情況,後者是必然存在的並且
重要不適用
未使用assert
43return語句是否返回指向「棧記憶體」的「指標」或者「引用」?重要否
44是否使用const提高函式的健壯性?const可以強制保護函式的引數、返回值,甚至函式的定義體。「use
const whenever you need」
否未使用const
記憶體管理
序號審查專案
重要性結論
備註 45
用malloc或new申請記憶體之後,是否立即檢查指標值是否為null?重要否
未檢查指標值是否為null
46是否忘記為陣列和動態記憶體賦初值?重要是
陣列未賦初值
47陣列或指標的下標是否越界?重要否
48動態記憶體的申請與釋放是否配對?
重要不適用
未申請動態記憶體
49是否有效地處理了「記憶體耗盡」問題?重要否
50是否修改「指向常量的指標」的內容?重要否
指標未指向常量
51是否出現野指標?例如
重要 1)
指標變數沒有被初始化
是 2)
用free或delete釋放了記憶體之後,忘記將指標設定為null。
是 52
是否將malloc/free 和 new/delete
混淆使用?重要否
53malloc語句是否正確無誤?例如位元組數是否正確?型別轉換是否正
確?重要不適用
未使用 54
在建立與釋放動態物件陣列時,new/delete的語句是否正確無誤?
重要不適用
未使用動態物件陣列
其它常見問題
序號審查專案
重要性結論
備註 55
資料型別問題:
重要 1)
變數的資料型別有錯誤嗎?
否 2)
存在不同資料型別的賦值嗎?
否 3)
存在不同資料型別的比較嗎?
否 56
變數值問題:
重要 1)
變數的初始化或預設值有錯誤嗎?
否 2)
變數發生上溢或下溢嗎?
否 3)
變數的精度夠嗎?
是 57
邏輯判斷問題:
重要 1)
由於精度原因導致比較無效嗎?
否 2)
表示式中的優先順序有誤嗎?
否 3)
邏輯判斷結果顛倒嗎?
否 58
迴圈問題:
重要 1)
迴圈終止條件正確嗎?
是 2)
無法正常終止(死迴圈)嗎?
否 3)
錯誤地修改迴圈變數嗎?
否 4)
存在誤差累積嗎?
否 59
錯誤處理問題:
重要未編寫錯誤處理程式
1) 忘記進行錯誤處理嗎?
否 2)
錯誤處理程式塊一直沒有機會被執行?
否 3)
錯誤處理程式塊本身就有毛病嗎?
否 4)
錯誤處理程式塊是「馬後炮」嗎?如在被它被呼叫之前軟體已經出錯。
否 60
檔案i/o問題:
重要 1)
對不存在的或者錯誤的檔案進行操作嗎?
否 2)
檔案以不正確的方式開啟嗎?
否 3)
檔案結束判斷不正確嗎?
否 4)
沒有正確地關閉檔案嗎?否
軟體工程(2019)第二次作業
目錄 tou.h class sizeyunsuan sizeyunsuan double jia double x,double y double jian double x,double y double cheng double x,double y double chu double x,d...
2019軟體工程第二次作業
在第一篇部落格中我有講到目前想學習的技術方向是機器學習,機器學習是人工智慧的核心,了解到機器學習涵蓋了很多,比如python的學習就是我首先要攻克的問題,還包括一些數學理論以及很多的演算法等等。在以前呢,想自學都是隨性的,沒有什麼具體的計畫,這次也希望通過這樣的路線圖可以幫助我從空想到行動吧。我想在...
軟體工程(2019)第二次作業
1.點選安裝 2.選擇安裝目錄 3.選擇功能 4.安裝完成,啟動!1.新建空專案,命名為 1 2.編寫 依次為實現加減乘除的函式 int add int a,int b int subtract int a,int b int multiply int a,int b int divide int ...