- github傳送門
psp2.1
personal software process stages
預估耗時(分鐘)
實際耗時(分鐘)
planning
計畫40
· estimate
· 估計這個任務需要多少時間
40development
開發970
· analysis
· 需求分析 (包括學習新技術)
240· design spec
· 生成設計文件
60· design review
· 設計複審 (和同事審核設計文件)
40· coding standard
· **規範 (為目前的開發制定合適的規範)
30· design
· 具體設計
120· coding
· 具體編碼
240· code review
· **複審
120· test
· 測試(自我測試,修改**,提交修改)
120reporting
報告150
· test report
· 測試報告
60· size measurement
· 計算工作量
30· postmortem & process improvement plan
· 事後總結, 並提出過程改進計畫
60合計
1160
整個專案有乙個類,三個函式。關係情況如下
init()函式用於初始化,print()函式用於列印出數獨解,dfs()函式用於求解過程,求解過程不斷回溯呼叫。
其實還可以再細分成輸入乙個類,輸出乙個類,增加判斷函式等……有很多待改進的地方。
思路上面已經提過了,就是按數字填格仔的方法,比如先把全1填好,再填全2……
想好了思路,就是實現的問題了。
三種制約條件,打算利用行數的制約為基本,填好一行就換下一行,其他兩種為判定條件。結束所有行的填數就換下乙個數字。
if(num == 9) print();
//判斷數字是否要更新,只需要判斷現在行數是否到8,row表示行數
if (row == 8) dfs(num + 1, 0);
else dfs(num, row + 1);
//判斷該位置是否可以填寫
//其中row表示行數,j表示列數,vis陣列代表該位置是否填過,col陣列表示該列是否填過,pal 表示該宮是否填過
//宮號為npal,計算方式為row / 3 * 3 + j / 3
if ( vis[row][j] || col[num][j] || pal[num][npal] ) continue;
else vis[row][j] = 1, col[num][j] = 1, pal[num][npal] = 1, map[row][j] = num;
//輸出的結果已經滿足時,結束程式
沒有用隨機數,第一位固定是 1,隨機方式不知道如何排重,待改進。
psp2.1
personal software process stages
預估耗時(分鐘)
實際耗時(分鐘)
planning
計畫60
· estimate
· 估計這個任務需要多少時間
60development
開發1160
· analysis
· 需求分析 (包括學習新技術)
300· design spec
· 生成設計文件
30· design review
· 設計複審 (和同事審核設計文件)
30· coding standard
· **規範 (為目前的開發制定合適的規範)
30· design
· 具體設計
150· coding
· 具體編碼
320· code review
· **複審
240· test
· 測試(自我測試,修改**,提交修改)
60reporting
報告150
· test report
· 測試報告
60· size measurement
· 計算工作量
30· postmortem & process improvement plan
· 事後總結, 並提出過程改進計畫
60合計
1370
軟體工程實踐第二次作業 個人專案實戰
我的github專案位址 經過今天的努力,總算把第乙個生成數獨的版本做出來了。原始碼傳到github上了。但是居然不能建立資料夾,還要安裝git外掛程式。昨天和今天的時間主要花在思考編碼和除錯上了。還久沒寫c 了,感覺有點生疏,所以第乙個版本不能接受命令行引數,也不能將輸出輸出到文字。這就有點傷了,...
軟體工程實踐第二次作業
一 github鏈結 psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫90 120 estimate 估計這個任務需要多少時間 700797 development 開發200 250 analysis 需求分析 ...
軟體工程實踐2017第二次作業
github鏈結 1 拿到題目後,覺得這題目和八皇后的題挺像的,都是行列衝突問題,因此覺得可以通過將乙個99的數獨圖變成9個33的圖,對每張33的圖進行數字的填充,例如先將1填入9張小圖中。按以上思路寫完程式後,在行數下移的同時還需要在對應的圖中找到下乙個數填入的位址,產生了可能會跳過某一行填入數值...