【數獨個人專案】SudokuPuzzle類的編碼
4. 實現階段
SudokuPuzzle類中SolveAll()的函式流程圖
ConsolePuzzle類的編碼
和流程圖中一樣,需要從檔案解所有數獨時呼叫SolveAll()函式,先判斷是否開啟檔案成功,不成功返回-2
然後函式先呼叫GetNextPuzzle(),從檔案中讀81個0~9字元,作為一個數獨題儲存至puzzle[][]
如果檔案中剩餘的0~9字元不足81個,則break出迴圈,函式結束,返回可解的數獨題的個數
如果讀了81個字元,則接著呼叫SolveCurrentPuzzle()函式,此函式先判斷輸入的數獨題是不是本身矛盾,若矛盾,無解處理
如果確實題目沒錯,則呼叫dfs_solve(1)函式,回溯求解數獨,然後又回到while的開始,接著呼叫GetNextPuzzle()從檔案中讀取數獨。
ConsolePuzzle類的程式碼分析
這回因為有了前兩次的經驗,程式碼分析直接通過了,沒有任何警告,可喜可賀
相關推薦
【數獨個人專案】SudokuPuzzle類的單元測試
5. 測試階段 SudokuPuzzle類的單元測試 SudokuPuzzle類用來生成數獨的解 測試用例: (測試用例:期望輸出) 1. 輸入:錯誤的-s之後的路徑: 輸出:控制檯輸出“開啟數獨問題的輸入檔案失敗” 2. 輸入:開啟數獨題解的輸出檔案失敗: 輸出:控
【數獨個人專案】SudokuPuzzle類的編碼
4. 實現階段 SudokuPuzzle類中SolveAll()的函式流程圖 ConsolePuzzle類的編碼 和流程圖中一樣,需要從檔案解所有數獨時呼叫SolveAll()函式,先判斷是否開啟檔案成功,不成功返回-2 然後函式先呼叫GetNextPuzzle(),從檔案中讀
【數獨個人專案】SudokuSolution類的單元測試
SudokuSolution類的單元測試 測試用例: 因為該模組功能是生成指定數量數獨,所以測試用例是生成1個、2個、10個、100個、1000個、999999個、1000000個數獨,以及開啟要寫入的檔案失敗的情況(-c時的輸入數值) 測試結果: 均成功生成,互相不重複,輸出符合格
【數獨個人專案】SudokuSolution類的編碼
4. 實現階段 SudokuSolution類的函式流程圖: Generate()函式流程圖 SudokuSolution類的編碼 設計方面,在Generate()基礎上,增加了一個Generate(int amount)的過載函式,所以可以不用非得按照parameter物件中
【數獨個人專案】ConsolePatameter類的單元測試
5. 測試階段 ConsolePatameter類的單元測試 用的vs自帶的單元測試,在解決方案資源管理器裡新建“本機單元測試“專案,將測試程式碼寫入,(不是自動測試)需要手寫測試測試程式碼和用例進去。。 1. 寫測試程式碼和用例:2小時 測
【數獨個人專案】ConsolePatameter類的編碼
github地址:https://github.com/Duuang/Project-Sudoku 日期:2018-12-16 程式碼規範 編碼之前,程式碼規範:Google C++ 程式碼規範(有個pdf檔案,一搜就有),儘量按照裡面的程式碼規範來 4. 實現階段
【數獨個人專案】關鍵程式碼說明
github地址:https://github.com/Duuang/Project-Sudoku 關鍵程式碼說明 目錄 一、main.cpp int main() 二、ConsoleParameter類:ConsoleParameter.cpp 建構函式 Extract
【數獨個人專案】效能改進
github地址:https://github.com/Duuang/Project-Sudoku 日期:2018-12-26 6. 效能分析: 1. 記憶體分析 取的是生成10萬個數獨的情況,可見記憶體正常,無記憶體洩露等問題 2. 函式時間佔比分析、函
【數獨個人專案】3. 設計階段
github地址:https://github.com/Duuang/Project-Sudoku 日期:2018-12-15 3. 設計階段 設計分結構化設計方法,和麵向物件的設計方法。結構化程式寫太多了,這次打算試試面向物件的。
【數獨個人專案】2. 拿到題目之後
github地址:https://github.com/Duuang/Project-Sudoku 日期:2018-12-15 2. 拿到題目之後 這個就是相當於自己做一個專案嘛,體驗專案的全套開發過程。 於是我打算,一定不能上
【個人專案】基於scrapy-redis的股票分散式爬蟲實現及其股票預測演算法研究
前言 都說做計算機的,專案實踐是最能帶給人成長的。之前學習了很多的大資料和AI的知識,但是從來沒有自己做過一個既包含大資料又包含AI的專案。後來就決定做了個大資料+AI的分散式爬蟲系統。下面筆者會講述整個專案的架構,以及所用到技術點的些許介紹。 專案介紹 這個專
【個人專案】--微信群聊抄襲重複檢查--使用說明
基礎功能已經開發完畢,現在已經可以上線使用。先看效果: 經過系統分析: 介紹使用方法: ####1.開啟群聊 先想好想要查重的聊天記錄,長按某一條,點選【更多】 ####2.選擇需要查重的群聊
【數據庫系列】MySql中的select的鎖表範圍
nbsp 範圍 nod 指定 lock 無數據 才會 rdb sele 由於InnoDB預設的是Row-Level Lock,只有明確指定主鍵的時候MySql才會執行Row lock,否則MySql將會執行Table Lock. 1、明確指定主鍵則是行鎖 2、明確指定主鍵,
MySQL 之【約束】【數據庫設計】
方式 -- 間接 所有 lan incr 主表 三範式 一個 1.MySQL 約束: 1.約束的概念: 約束是一種限制,它通過對表的行或列的數據做出限制,來確保表的數據的完整性、唯一性。 MySQL中,常用的幾種約束: 約束類型: 非空 主鍵 唯一 外
【數據蔣堂】第40期:倍增分段技術
margin 內容 padding pad 就是 存儲 class 必須 align 區塊分段方案能夠滿足我們設定的4個目標。不過,除了處理區塊標記的麻煩外,這個辦法對於列存也不是非常適合。數據按列分別存儲後,分段時必須保證各列同步,即各列的分段點對應的是同一條記錄的列,否
5、【華為HCIE-Storage】--RAID類型
HCIE storage hostman ------------------------------------重要說明------------------------------------以下部分內容來自華為存儲官方教材具體教材內容請移步華為存儲官網進行教材下載---------------
【C#復習總結】匿名類型由來
數據類型 over 無效 訪問性 屬性。 知乎 私有 不能 默認構造函數 1 屬性 這得先從屬性開始說,為什麽外部代碼訪問對象內部的數據用屬性而不是直接訪問呢,這樣豈不是更方便一些,但是事實證明直接訪問是不安全的。那麽,Anders Hejlsberg(安德斯&mid
【數據猿導讀】?當前人工智能(AI)的現狀是呼聲突發!大理蒼山發生森林
ML 消息 you 統架構 動態路由 打開 組織 mac fmt ? ? 從大一開始,我就加入了我們系的Tocoder工作室, 並進入了項目組開始學習PHP基礎知識,一直持續到現在。期間在學習的同時,完成了我們工作室網站版權聲明:本文為博主原創文章,未經博主允許不得轉載。
MySQL 之【視圖】【觸發器】【存儲過程】【函數】【事物】【數據庫鎖】【數據庫備份】
單位 說明 bar 大量 sum 字符串拼接 觸發事件 加密 cto 視圖:是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據 視圖有如下特點; 1. 視圖的列可以來自不同的表,是表的抽象和邏輯意義上建立的新關系。 2. 視圖是由
【LeetCode】【數組歸並】Merge k Sorted Lists
output null 避免 size 數組 bsp leetcode turn color 描述 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its