軟體工程第二次作業

2022-08-17 21:06:15 字數 2690 閱讀 4942

psp2.1

personal software process stages

預估耗時(分鐘)

實際耗時(分鐘)

planning

計畫40

60· estimate

· 估計這個任務需要多少時間

4060

development

開發1010

1180

· analysis

· 需求分析 (包括學習新技術)

360400

· design spec

· 生成設計文件

4030

· design review

· 設計複審 (和同事審核設計文件)00

· coding standard

· **規範 (為目前的開發制定合適的規範)

1010

· design

· 具體設計

120120

· coding

· 具體編碼

360400

· code review

· **複審

3020

· test

· 測試(自我測試,修改**,提交修改)

120200

reporting

報告100

90· test report

· 測試報告

3030

· size measurement

· 計算工作量

3020

· postmortem & process improvement plan

· 事後總結, 並提出過程改進計畫

4040

合計1150

1330

剛開始看到這個題目的時候就想可不可以直接直接自己先生成乙個數獨,然後通過各種變換,生成新的數獨,但是想法是有了,卻不知道該如何實現(無奈)。於是開始拼命的在網上查詢資料,卻意外知道了可以用回溯法和置換法。受到網上的啟發,又想到了下面這條可行的思路:

//每次生成新的數獨之前,先生成乙個新的一維陣列,將數字1-9的順序打亂

//之後在生成9*9數獨的每行時都隨機從該一維陣列中抽取元素

void sudokugenerate::initarray()

; count[11] = ;

int h=0;

for(h=0;h<9;) }

}//利用回溯法生成數獨

bool sudokugenerate::generate(int k)

//如果9*9方格中位置(i,j)已經放置了數字

else if (num[i][j] != 0) }

//對空位(i,j)生成數字

else

}} //不合法,則位置(i,j)重置為0,回溯

num[i][j] = 0;

} return false;

}//判斷填入的數字是否合法

bool sudokugenerate::isrightplace(int number, int row, int col)

} //同行不同列行中是否存在與之相同的數字

for (int i = 0; i < 9; i++) }

//判斷3*3九宮格是否合法

n=1000時

軟體工程第二次作業

題目鏈結位址 github鏈結位址 難度瓶頸 最終選擇 改進版本 只是生成數獨終盤,不考慮附加作業,就沒有考慮類,只是函式。array 0 0 7 basic.erase 7 basic為集合名稱 if basic.size 0 for int k 0 k row k else 版本二 void c...

軟體工程第二次作業

github 位址 我剛開始打 的時候覺得打完就好,能過樣例就ok。經歷過一段時間後會發現有可能樣例過了其他測試點全錯,所以就會開始多測試幾組資料,希望自己的 能夠盡量準確。當準確性開始有保障後,我就會去思考程式本身是不是可以進一步改進,使 執行速度變的更快。在我看來自己出資料測試就相當於書中說的單...

軟體工程第二次作業

1.簡述軟體過程 軟體生存週期 軟體過程模型 軟體生存週期模型 三者之間的概念區別。軟體過程 軟體生存週期中的一系列相關過程所涉及的活動 軟體生存週期 軟體生命週期 同任何事物類似,軟體也有乙個從生到死的過程,這個過程一般稱為軟體生存週期或生命週期 軟體過程模型 軟體生存週期模型 為了能高效地開發乙...