2020軟體工程作業03

2022-08-02 12:09:09 字數 3292 閱讀 6828

這個作業屬於哪個課程

/homework/10494

這個作業的目標

個人編寫程式

作業正文

此文其他參考文獻

personal software process stages預估耗時(分鐘)實際耗時(分鐘)

planning

計畫60

40estimate

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

6060

development

開發50

60analysis

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

4040

design spec

生成設計文件

4040

design review

設計複審

4040

coding standard

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

7060

design

具體設計

150120

coding

具體編碼

360360

code review

**複審

6060

test

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

5050

reporting

報告60

60test repor

測試報告

3030

size measurement

計算工作量

3030

postmortem & process improvement plan

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

3030

合計1130

1080

看到數獨宮格題目的時候,由於我從來沒有玩過數獨。。。所以本人還得先去了解了數獨是個什麼玩法由於本人實在程式設計能力太差勁,所以只能去參考帶佬的解數獨**,講實話這個題目看的我人都是暈的。。最開始我是想著對整個x宮格進行乙個乙個的檢查,定義了三維陣列,前兩維是用來存x宮格的盤面,第三維是用來存這個格仔所能填的數字。對每乙個各自進行檢查,檢查這個格仔的行和列還有小宮格有哪些數字已經出現過,將其標記。最後檢查哪些格仔只有乙個數字沒有被標記就直接將其填入這個格仔。然後重複上面的操作。當格仔裡沒有0的時候就停止,輸出。之後我通過在網上的學習,學習到了遞迴的做法,對每個格仔可能的數進行嘗試,嘗試失敗就返回來,嘗試成功就可以完成了。

這個題目最關鍵的解決方法是使用遞迴回溯

回溯法:是一種選優搜尋法,又稱為試探法,按選優條件向前搜尋,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術為回溯法,而滿足回溯條件的某個狀態的點稱為「回溯點」

遞迴回溯部分

對所有格仔進行編號n 從0開始從左到右從上到下

以公式法計算每個編號的所在列所在行 以及 所在小宮的左上角座標

遍歷編號 並對為0的格仔 嘗試填入數字1~9

通過check函式判斷填入的數字是否合法 如果合法對編號n+1繼續深搜下去 進行步驟三

不合法 退後一位 並將編號第n位的格仔 還原為0

check函式的作用是檢查行合法性,列合法性,

對於某些特殊階數獨的小宮格合法性

需要判斷小宮格合法性的數獨通過思考發現計算小宮格左上角座標的公式

大致的思維導圖如下

1.函式check:判斷該空格待填數字是否符合(行/列/宮)

bool check(int num, int now_line, intnow_column)

if (block != 0)}}

return true;

}

2.函式work:遞迴回溯嘗試每乙個數字的填入

上面顯示waringc4715,但是我每個結尾都加上了返回值還是顯示,不過成功執行程式沒有問題我就沒有再深究,一方面的技術不允許

另乙個方面是我害怕又會有更多的問題出現,所以我就沒有再改動了。

說實話安裝這個工具都費了我不少的時間,而且又是第一次使用,所以完全不知道這是些啥意思,所以也就沒有根據上面的進行效能改動了,而且我也確實不會改了

三階

四階

五階

六階

七階

八階

九階

講實話一看題目我就懵逼了,我連數獨都不會更別說程式設計了。。。而且看到一大堆的要求,同時都沒有見過這些工具啥的,我的內心真的是崩潰的,

帶佬,去查詢**,雖然自己的能力有限,但是網路上的資源與知識是無限的,所以還是能夠勉強做出來,只是要做到像其他的帶佬一樣,我還欠

缺了許多的條件,不過只能一步步慢慢來,什麼事情都會有解決的方案和方法,主要還是看你自己想不想去做罷了,雖然說可能不會做的很好,但

至少自己還是去做了,而且下次要爭取做的更好。

2020軟體工程作業03

這個作業屬於哪個課程 這個作業要求在 homework 10494 這個作業的目標 實現乙個命令列程式sudoku 作業正文 如下其他參考文獻 2.psp psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫60 60...

2020軟體工程作業03

這個作業屬於哪個課程 這個作業要求在 homework 11354 這個作業的目標 畫出阿里雲的原型圖 其他參考文獻 碼雲位址 本次作業採用的原型工具 墨刀 登入頁面實現過程主要採用了乙個圖示導航欄 兩個單行輸入框實現賬號與密碼的輸入 乙個登入按鈕乙個註冊 按鈕實現登入 使用者也可以點選 或支付寶兩...

2020軟體工程作業03

軟體需求分析與系統設計 作業要求 homework 11354 作業目標 碼雲位址 學號20189667 使用工具 原型效果圖 點選 管控 頁面登陸註冊按鈕可跳轉到 登陸 頁面 在 登陸 頁面中輸入賬號密碼點選登陸 可跳轉到 我的 頁面 在 我的 頁面中點選下方發現可 跳轉到 雲產品 頁面 設計截圖...