軟體工程實踐第二次作業 個人專案實戰

2022-08-15 12:39:11 字數 1336 閱讀 1157

我的github專案位址

經過今天的努力,總算把第乙個生成數獨的版本做出來了。原始碼傳到github上了。。。但是居然不能建立資料夾,還要安裝git外掛程式。。。昨天和今天的時間主要花在思考編碼和除錯上了。還久沒寫c++了,感覺有點生疏,所以第乙個版本不能接受命令行引數,也不能將輸出輸出到文字。。。這就有點傷了,不過做專案就是這樣,在不斷晚上的過程中提公升自己的能力,明天繼續改**。今天先說說思路,這個數獨主要是每生成乙個數就判斷這個數能不能符合要求。現將判斷的**貼到下面:

bool judgeposition(vector> &a, int row, int col)

for (int j = 0; j < col; j++)

//接著判斷小九宮格裡是否滿足要求,首先得算出需要判斷的這個點所在九宮的位置

int temp1 = row / 3;

int row_begin = temp1 * 3;

int row_end = row_begin + 2;

int temp2 = col / 3;

int col_begin = temp2 * 3;

int col_end = col_begin + 2;

int i = row_begin, j = col_begin;

for (int k = 1; k <= 8; k++)

else

}return true;

}

該判斷方法呼叫遞迴,個人感覺效率上很差。。。接下來要用效能分析進行改進。利用隨機數來生成數字,使用的rand()和srand()函式參見該部落格。下面就是生成數字的**:

bool generator(vector> &a, int row, int col)

int nextrow, nextcol;

if (col == 8)

else

bool nextpoint = generator(a, nextrow, nextcol);

if (nextpoint)

return true;

} if (generate.empty())

}

一開始那個生成隨機數的算式如下

這樣會出現不能取到不重複數的情況:

但是記憶體好像每次都爆掉,產生數的generator函式每次都返回false,所以現改為直接對generate陣列的大小取餘。。。

軟體工程實踐第二次作業 個人專案

github傳送門 psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫40 estimate 估計這個任務需要多少時間 40development 開發970 analysis 需求分析 包括學習新技術 240 de...

軟體工程實踐第二次作業

一 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張小圖中。按以上思路寫完程式後,在行數下移的同時還需要在對應的圖中找到下乙個數填入的位址,產生了可能會跳過某一行填入數值...