軟體工程基礎 個人專案報告之求解數獨

2021-10-02 05:28:07 字數 1074 閱讀 2746

專案位址

1、個人專案報告之可行性分析、需求分析、概要設計:

2、個人專案報告之生成數獨終局:

3、個人專案報告之生成終局**優化:

4、個人專案報告之求解數獨:

5、個人專案報告之求解**優化:

6、個人專案報告之生成數獨題目:

7、個人專案報告之單元測試及分支覆蓋率:

解題思路

按照平時玩數獨的習慣,當然只是針對大多數人來說,最簡單的想法就是乙個乙個的填數然後不斷的進行更改。當然也不是隨隨便便的就瞎填,還是得按照數獨的規則進行遊戲。所以在求解數獨這一塊,我最初的想法是利用dfs暴力求解。既然是暴力求解,那麼只需要將1~9代入空格中(即「0」的位置上),然後利用數獨的規則進行判斷,如果填到某個空無法繼續的話,就重置該空為零然後回溯到上一步,直到得到第乙個解為止。因為9*9的數獨在挖空在30~60之間的話,是一定會存在解的,不過因為挖空數量的不確定性,並不能保證數獨的解唯一。而這種方法只能夠輸出第乙個解,但是這也能夠滿足專案需求,所以這種求解數獨的方法是可行的。

**實現

首先,想要求解數獨,就得先將數獨題目讀入。像生成數獨終局一樣,在最初的**中,我只是先實現了**的讀入,並沒有考慮到該方法在效率上的不足,所以在實現之前,就明確了在這方面的優化進行是非常有必要的觀點。

if (single_character <= '9'&& single_character >= '0')	//判斷是否是有效數獨數字(0表示該位為空)

}//讀出一整個,進行數獨的求解

if (s_count % 81 == 0)

至於dfs部分就不做過多的解釋了,具體**如下:

int dfs(int n)

// 當前位不為空時跳過

if (solve_sudoku[n / 9][n % 9] != 0)

else

}}}

軟體工程個人報告

在本學期中,軟體工程由我們敬愛的 親愛的 有責任心的王老師教我們。該課程採用全過程考核機制,從頭到尾,從第一周到最後一周,每一周都有不同的任務,每一周也要有不同的總結,讓我們一直在緊張而又豐富的學習生活中。在這整個學期中,我們的精力精神,都完全被 軟體工程 這門課所深深的吸引著,王老師明燈似的指引著...

軟體工程基礎 個人專案報告之生成數獨終局

專案位址 1 個人專案報告之可行性分析 需求分析 概要設計 2 個人專案報告之生成數獨終局 3 個人專案報告之生成終局 優化 4 個人專案報告之求解數獨 5 個人專案報告之求解 優化 6 個人專案報告之生成數獨題目 7 個人專案報告之單元測試及分支覆蓋率 解題思路 首先,我們應該明確一點的是,9 9...

軟體工程基礎 個人專案報告之生成數獨題目

專案位址 1 個人專案報告之可行性分析 需求分析 概要設計 2 個人專案報告之生成數獨終局 3 個人專案報告之生成終局 優化 4 個人專案報告之求解數獨 5 個人專案報告之求解 優化 6 個人專案報告之生成數獨題目 7 個人專案報告之單元測試及分支覆蓋率 從整個個人專案來看,生成數獨題目的部分似乎是...