軟體工程個人專案 數獨

2021-10-02 06:53:21 字數 1748 閱讀 2765

專案位址 github倉庫

psp 2.1

personal software process stages

預計耗時(分鐘)

實際耗時(分鐘)

planning

計畫50

60estimate

估計這個任務需要多久

300360

development

開發240

270analysis

需求分析

2525

design spec

生成設計文件

6060

design review

設計複審

1010

coding standard

**規範55

design

具體設計

2020

coding

具體編碼

240240

code review

**複審55

test

測試30

30reporting

報告60

60test report

測試報告

size measurement

計算工作量

postmortem & process improvement plan

事後總結,提出過程改進意見

p.s. orz 我是真的好菜啊,都大三了這些東西居然還不會用

需求分析

實現乙個命令列程式,程式能:

生成不重複的數獨終局至檔案

讀取檔案內的數獨問題,求解並將結果輸出到檔案

生成終局

在命令列中使用-c引數加數字n(1<=n<=1000000)控制生成數獨終局的數量,例如下述命令將生成20個數獨終局至檔案中:

sudoku.exe -c 20

將生成的數獨終局用乙個文字檔案(假設名字叫做 sudoku.txt)的形式儲存起來,每次生成的txt檔案需要覆蓋上次生成的txt檔案,檔案內的格式如下,數與數之間由空格分開,終局與終局之間空一行,行末無空格

程式在處理命令列引數時,不僅能處理格式正確的引數,還能處理各種異常的情況,如:

shudoku.exe -c abc

在生成數獨矩陣時,左上角第乙個數為:(學號後兩位相加)%9+1。例如學號後倆位是63,則該數字為(6+3)%9+1 = 1,那麼生成的數獨棋盤的第乙個數字應為1。

求解數獨

在命令列中使用-s引數加檔名的形式求解數獨,並將結果輸出至檔案,如:

sudoku.exe -s absolute_path_puzzlefile

程式將從路徑中讀取數獨題目並將數獨題目的乙個可行解輸出至與sudoku.exe同目錄的sudoku.txt中,要求與生成終局相同。

格式如下,其中0代表空格,題目與題目之間空一行,行末無空格,最後乙個數獨題目後無空行。

sudoku.txt的格式與生成終局的要求相同。

數獨題目個數n(1<=n<=1000000),保證檔案中數獨格式正確。

什麼是數獨

數獨(shù dú)是源自18世紀瑞士的一種數學遊戲。是一種運用紙、筆進行演算的邏輯遊戲。玩家需要根據9×9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行、每一列、每乙個粗線宮(3*3)內的數字均含1-9,不重複

軟體工程基礎 個人專案 數獨

任務 實現乙個能夠生成數獨局並且能求解數獨問題的控制台程式。1 github 2 時間耗費 psd2.1 personnal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫40 40.estimate 估計這個任務需要多長時間 developm...

軟體工程基礎 個人專案 數獨(2)

第乙個數字為 9 6 9 1 7 其餘八個數字為1 6,8,9的隨機排序,共8!種 1 從網上查閱資料得知,如果從第二行開始,每行為第一行左移3 6 1 4 7 2 5 8的結果,則生成的結果為合格的數獨終局 2 隨意交換數獨的1 2 3行,4 5 6行,7 8 9行,或者交換1 2 3列,4 5 ...

軟體工程基礎 個人專案 數獨(5)

1.生成終局時,加入2,3 4,5,6 7,8,9行交換的情況以增加不重複的終局數量 原情況下,第2 9行為第一行左移固定數量得到,移動量由陣列move陣列儲存,行交換的實現只需交換對應的移動量。將move陣列設為二維陣列,每一行對應乙個移動量的情況,共72行。將原 中move的使用方式 num i...