2020軟件工程作業03
一、GitHub url
https://github.com/Firaymin/20177655
二、PSP表格
| PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
|---|---|---|---|
| Planning | 計劃 | 15 | 40 |
| Estimate | 估計這個任務需要多少時間 | 2160 | 2040 |
| Development | 開發 | 800 | 320 |
| Analysis | 需求分析 (包括學習新技術) | 60 | 1920 |
| Design Spec | 生成設計文檔 | 30 | 150 |
| Design Review | 設計復審 | 60 | 20 |
| Coding Standard | 代碼規范 (為目前的開發制定合適的規范) | 10 | 60 |
| Design | 具體設計 | 90 | 180 |
| Coding | 具體編碼 | 360 | 400 |
| Code Review | 代碼復審 | 60 | 10 |
| Test | 測試(自我測試,修改代碼,提交修改) | 60 | 60 |
| Reporting | 報告 | 20 | 20 |
| Test Repor | 測試報告 | 20 | 20 |
| Size Measurement | 計算工作量 | 20 | 20 |
| Postmortem & Process Improvement Plan | 事后總結, 并提出過程改進計劃 | 120 | 60 |
| 合計 | 2475 | 2270 |
三. 解題思路
題目:玩家需要根據9×9盤面上的已知數字,推理出所有剩余空格的數字,并滿足每一行、每一列、每一個同色九宮內的數字均含1-9,不重復。數獨的答案都是唯一的,所以,多個解也稱為無解。
看到題目,什么東西???這么多?直接退出瀏覽器
過了一會又默默打開了博客園。。。

看到題目的第一反應就是深搜和回溯然后就開始了漫長而又美妙的百度之旅
還去嗶哩嗶哩看了數獨怎么玩,我以前覺得數獨超級難來著。(現在也覺得)
四. 設計實現過程
DFS
對當前遞歸狀態進行判斷
對當前坐標格狀態進行判斷
根據不同條件進行遞歸
驗證失敗時,回溯
check
用于循環中,如果條件不成立則結束下面的操作直接進入下一次循環
流程圖

五. 改進程序性能
輸出

代碼靜態檢測及分析




六. 主要代碼
### void DFS(int x, int y) { //深度優先搜索
if (x > 8) { //排除不符合條件的
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
cout << num[i][j]; //滿足條件輸出
}
cout << endl;
}
return;
}
if (num[x][y] != '0') {
DFS(x + (y + 1) / 9, (y + 1) % 9);
}
else {
for (int i = 1; i <= 9; i++) {
if (check(x, y, i)) {//check 用于循環中,如果條件不成立則結束下面的操作直接進入下一次循環
num[x][y] = i + '0';
DFS(x + (y + 1) / 9, (y + 1) % 9);
num[x][y] = '0';
}
}
}
七. 心歷路程與收獲
軟件真的多,每一個都學到吐血,一個GitHub創建文件夾里面再創個文件夾再加入一些文件就搞了幾個小時,才明白了為什么有的年紀稍微大一些的人剛開始接觸手機,開始學習用那些軟件需要研究那么久了。我研究GITHUB的時候我就感覺我已經80了。VS輸出命令框總是一閃而過,各種百度各種修改設置,過了一天之后驚奇的發現只要按F5的同時要把Fn鍵一起按了就可以了,我:???

收獲就是:盡管我學地慢了點,懂的少了點,腦子笨了點。為此付出了很多的時間和精力,但是得到回報的時候是真的很開心。笨鳥先飛勤能補拙的道理這不就體現出來了嗎。還有我發現有些問題在網上搜不到,你重組一下你的詞語就能搜到了。
八. 總結:
-
寫代碼的時候不要鉆牛角尖
-
不會就問問不到就換一種方法問
-
多花時間,總比啥也不干坐著憂慮強
-
勇敢地走出第一步,你會發現,第二步也很難。。。
-
不輕易放棄,放棄了還是要重來,還不如一做到底
-
戰勝困難最好的方法就是面對困難,奧利給
九. 自我評估
| 學號 | 姓名 | 作業頭 | Github地址 | 消除警告 | PSP表格 | 設計實現過程 | 改進程序性能 | 代碼說明 | 解題思路描述 | 結合構建執法談心路歷程和感想 | 總分 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 12 | ||
| 20177655 | 劉敏 | 2 | 1 | 0.5 | 1 | 0.5 | 0 | 0.5 | 1 | 1 | 7.5 |

浙公網安備 33010602011771號