c++八皇后問題課程設(shè)計(jì)

c++八皇后問題課程設(shè)計(jì)

ID:2057231

大?。?85.77 KB

頁(yè)數(shù):20頁(yè)

時(shí)間:2017-11-14

c++八皇后問題課程設(shè)計(jì)_第1頁(yè)
c++八皇后問題課程設(shè)計(jì)_第2頁(yè)
c++八皇后問題課程設(shè)計(jì)_第3頁(yè)
c++八皇后問題課程設(shè)計(jì)_第4頁(yè)
c++八皇后問題課程設(shè)計(jì)_第5頁(yè)
資源描述:

《c++八皇后問題課程設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、C++課程設(shè)計(jì)課程設(shè)計(jì)題目:八皇后問題姓名:xxx專業(yè):xxx班級(jí):xxxxxx學(xué)號(hào):xxxxxxxx指導(dǎo)教師:xxx日期:2014年6月17日目錄1課題綜述…………………………………………………………………………………………21.1課題的來源及意義21.2預(yù)期目標(biāo)21.3八皇后問題課題要求31.4面對(duì)的問題42需求分析…………………………………………………………………………………………42.1涉及到的知識(shí)42.2總體方案62.3軟件的需求......................................................

2、.............................................................................72.4功能需求.......................................................................................................................................73模塊及算法設(shè)計(jì)……………………………………………………………………………………73.1算法描述73.2.詳細(xì)

3、流程圖94.程序代碼…………………………………………………………………………………………105程序調(diào)試分析……………………………………………………………………………………146運(yùn)行與測(cè)試………………………………………………………………………………………157總結(jié)……………………………………………………………………………………………188致謝………………………………………………………………………………………………19參考文獻(xiàn)………………………………………………………………………………………191.課題綜述1.1課題的來源及意義八皇后問題是一個(gè)古老而

4、著名的問題,該問題是十九世紀(jì)著名的數(shù)學(xué)家高斯1850年提出的。在國(guó)際象棋中,皇后是最有權(quán)利的一個(gè)棋子;只要?jiǎng)e的棋子在它的同一行或同一列或同一斜線(正斜線或反斜線)上時(shí),它就能把對(duì)方棋子吃掉。所以高斯提出了一個(gè)問題:在8*8的格的國(guó)際象棋上擺放八個(gè)皇后,使其不能相互攻擊,即任意兩個(gè)皇后都不能處于同一列、同一行、或同一條斜線上面,問共有多少種解法。到了現(xiàn)代,隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,這一古老而有趣的數(shù)學(xué)游戲問題也自然而然的被搬到了計(jì)算機(jī)上。運(yùn)用所學(xué)計(jì)算機(jī)知識(shí)來試著解決這個(gè)問題是個(gè)鍛煉和提高我自己編程能力和獨(dú)立解決問題能力的好機(jī)會(huì),可以使我增強(qiáng)信心,為

5、我以后的編程開個(gè)好頭,故我選擇了這個(gè)有趣的課題。1.2預(yù)期目標(biāo)運(yùn)用C++程序設(shè)計(jì)的編程思想編寫代碼,實(shí)現(xiàn)八皇后問題的所有(92種)擺放情況。要求在DOS界面上顯示出每一種方式。1.3八皇后問題課題要求輸入后,顯示X,Y以及共有多少種布局方案,并顯示每一種方案的具體情況77:(0,2)(1,0)(2,6)(3,4)(4,7)(5,1)(6,3)(7,5)78:(0,7)(1,1)(2,4)(3,2)(4,0)(5,6)(6,3)(7,5)輸出樣式實(shí)例1.4面對(duì)的問題需要用三種方法解決八皇后問題,在這里需要查閱大量資料并多加練習(xí),才能成功編寫程序。主

6、要要解決下面的問題:沖突:包括列、行、兩條對(duì)角線;1.列:規(guī)定每一列放一個(gè)皇后,就不會(huì)造成列上的沖突;2.行:當(dāng)?shù)趇行被某個(gè)皇后占據(jù)時(shí),該行所有空格就都不能放置其他皇后;3.對(duì)角線:對(duì)角線有兩個(gè)方向,在同一對(duì)角線上的所有點(diǎn)都不能有沖突。2.需求分析2.1涉及到的知識(shí)在本次的課程設(shè)計(jì)中,用到的知識(shí)點(diǎn)主要有:類、函數(shù)、選擇結(jié)構(gòu)里的條件語句、循環(huán)結(jié)構(gòu)里的while語句以及for循環(huán)語句、控制語句里的break語句、以及字符串函數(shù)的運(yùn)用等等,并且應(yīng)用到遞歸、回溯及窮舉等比較經(jīng)典的算法。2.1.1類2.1.1.1類定義類就是用戶自定義的數(shù)據(jù)類型。類定義的一

7、般形式如下:  class類名  {   細(xì)節(jié);(數(shù)據(jù)成員,成員函數(shù))};2.1.1.2類函數(shù)定義類成員函數(shù)類的成員函數(shù)通常在類外定義,一般形式如下: 返回類型類名::函數(shù)名(形參表) {   函數(shù)體; }雙冒號(hào)::是域運(yùn)算符,主要用于類的成員函數(shù)的定義。2.1.2函數(shù)2.1.2.1函數(shù)的定義定義函數(shù)需要指明:函數(shù)執(zhí)行結(jié)果返回值的類型、函數(shù)名、形式參數(shù)(簡(jiǎn)稱形參)和函數(shù)體。一般形式為:數(shù)據(jù)類型函數(shù)名(行參表){語句序列;Return合適類型數(shù)值}2.1.2.2數(shù)據(jù)類型規(guī)定了函數(shù)返回值類型。執(zhí)行函數(shù)體中的語句后,通常會(huì)產(chǎn)生一個(gè)結(jié)果,這就是函數(shù)的返回

8、值,它可以是任何有效的類型。若函數(shù)執(zhí)行后不返回值,數(shù)據(jù)類型習(xí)慣用void來表示。如果在函數(shù)定義時(shí)沒有數(shù)據(jù)類型出現(xiàn),則默認(rèn)為函數(shù)返回值為整

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。