數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告八皇后問(wèn)題_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告八皇后問(wèn)題_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告八皇后問(wèn)題_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告八皇后問(wèn)題_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告八皇后問(wèn)題_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

---優(yōu)質(zhì)資料.z.目錄TOC\o"1-3"\h\u1631第一章八皇后問(wèn)題概述 -1-24611.1課題的描述-1-170601.2需求分析-1-243171.2.1涉及到的知識(shí)-1-175571.2.2模塊的功能要求-1-289501.2.3軟硬件的需求-2-276811.2.4面對(duì)的問(wèn)題 -2-286791.3概要設(shè)計(jì)-2-248821.3.1構(gòu)造設(shè)計(jì)理念 -2-172251.3.2算法流程圖-3-142511.4詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)-4-62071.5程序調(diào)試-6-215771.5.1問(wèn)題思考及改良設(shè)想-6-5241.5.2運(yùn)行與測(cè)試-7-85921.6課設(shè)總結(jié)-9-7500第二章n階魔陣問(wèn)題概述-10-238582.1課題的描述-10-323562.2需求分析-10-188282.2.1涉及到的知識(shí)-10-101192.2.2模塊的功能需求-10-113112.2.3軟硬件的需求-10-275492.2.4面對(duì)的問(wèn)題-10-24482.3概要設(shè)計(jì)-11-35062.3.1算法設(shè)計(jì)理念-11-203032.3.2函數(shù)邏輯功能調(diào)用圖-11-103942.3.3算法流程圖-12-270732.4詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)-12-22792.4.1代碼編寫(xiě)及詳細(xì)設(shè)置-12-262592.5程序調(diào)試-15-131612.5.1問(wèn)題思考及改良設(shè)想-15-55722.5.2運(yùn)行與測(cè)試 -15-258062.6課設(shè)總結(jié)-18-25424參考文獻(xiàn)-19-31514完畢語(yǔ)-20-14137附錄-21-優(yōu)質(zhì)資料.z.第一章八皇后問(wèn)題概述1.1課題的描述八皇后問(wèn)題是一個(gè)古老而著名的問(wèn)題,該問(wèn)題是十九世紀(jì)著名的數(shù)學(xué)家高斯1850年提出的。八皇后問(wèn)題是在8*8的國(guó)際象棋棋盤上,安放8皇后,要求沒(méi)有一個(gè)皇后能夠"吃掉〞任何其他一個(gè)皇后,即沒(méi)有兩個(gè)或兩個(gè)以上的皇后占據(jù)棋盤上的同一行、同一列、或同一對(duì)角線。到了現(xiàn)代,隨著計(jì)算機(jī)技術(shù)的飛速開(kāi)展,這一古老而有趣的數(shù)學(xué)游戲問(wèn)題也自然而然的被搬到了計(jì)算機(jī)上。運(yùn)用所學(xué)計(jì)算機(jī)知識(shí)來(lái)試著解決這個(gè)問(wèn)題是個(gè)鍛煉和提高我自己編程能力和獨(dú)立解決問(wèn)題能力的好時(shí)機(jī),可以使我增強(qiáng)信心,為我以后的編程開(kāi)個(gè)好頭,故我選擇了這個(gè)有趣的課題。1.2需求分析1.2.1涉及到的知識(shí)本次課程設(shè)計(jì)中,用到的主要知識(shí)有:遞歸法的運(yùn)用,for語(yǔ)句的靈活運(yùn)用,數(shù)據(jù)構(gòu)造中樹(shù)知識(shí)的靈活運(yùn)用、棧及數(shù)組的有關(guān)知識(shí)的掌握。要求熟練運(yùn)用C++語(yǔ)言、根本算法的根底知識(shí),獨(dú)立編制一個(gè)具有中等難度的、解決實(shí)際應(yīng)用問(wèn)題的應(yīng)用程序。通過(guò)對(duì)題意的分析與計(jì)算,用遞歸法回溯法及枚舉法解決八皇后是比擬適合的。遞歸是一種比擬簡(jiǎn)單的且比擬古老的算法?;厮莘ㄊ沁f歸法的升華,在用來(lái)求問(wèn)題的所有解時(shí),要回溯到根,且根結(jié)點(diǎn)的所有子樹(shù)都已被搜索遍才完畢。而枚舉法,更是一種根底易懂簡(jiǎn)潔的方法。把它們綜合起來(lái),就構(gòu)成了今天的算法。不管用什么法做這個(gè)課題,重要的就是先搞清楚哪個(gè)位置是合法的放皇后的位置,哪個(gè)不能,要先判斷,后放置。1.2.2模塊的功能要求當(dāng)運(yùn)行程序時(shí),在屏幕上顯示每一種方法八個(gè)皇后的相對(duì)位置,要用比擬直觀的界面顯示。列:規(guī)定每一列放一個(gè)皇后,不會(huì)造成列上的沖突;行:當(dāng)?shù)贗行被*個(gè)皇后占領(lǐng)后,則同一行所不能再放皇后,要把以I為下標(biāo)的標(biāo)記置為被占領(lǐng)狀態(tài);對(duì)角線:對(duì)角線有兩個(gè)方向。在這我把這兩條對(duì)角線稱為:主對(duì)角線和從對(duì)角線。在同一對(duì)角線上的所有點(diǎn)〔設(shè)下標(biāo)為(i,j)〕,要么(i+j)是常數(shù),要么(i-j)是常數(shù)。因此,當(dāng)?shù)贗個(gè)皇后占領(lǐng)了第J列后,要同時(shí)把以(i+j)、(i-j)為下標(biāo)的標(biāo)記置為被占領(lǐng)狀態(tài)。用數(shù)組a[I]:a[I]表示第I個(gè)皇后放置的列;I的*圍:1-8;對(duì)角線數(shù)組:b[j](主對(duì)角線),c[j]〔從對(duì)角線〕,根據(jù)程序的運(yùn)行,去決定主從對(duì)角線是否放入皇后。1.2.3軟硬件的需求〔1〕系統(tǒng)要求:win98以上操作系統(tǒng);〔2〕語(yǔ)言平臺(tái):tc++或vc++6.0;1.2.4面對(duì)的問(wèn)題(1)列:規(guī)定每一列放一個(gè)皇后,不會(huì)造成列上的沖突;行:當(dāng)?shù)贗行被*個(gè)皇后占領(lǐng)后,則同一行上的所有空格都不能再放皇后,要把以I為下標(biāo)的標(biāo)記置為被占領(lǐng)狀態(tài);對(duì)角線:對(duì)角線有兩個(gè)方向。在這我把這兩條對(duì)角線稱為:主對(duì)角線和從對(duì)角線。在同一對(duì)角線上的所有點(diǎn)〔設(shè)下標(biāo)為(i,j)〕,要么(i+j)是常數(shù),要么(i-j)是常數(shù)。因此,當(dāng)?shù)贗個(gè)皇后占領(lǐng)了第J列后,要同時(shí)把以(i+j)、(i-j)為下標(biāo)的標(biāo)記置為被占領(lǐng)狀態(tài)。〔2〕使用數(shù)據(jù)構(gòu)造的知識(shí),用遞歸法解決問(wèn):。數(shù)組a[I]:a[I]表示第I個(gè)皇后放置的列;I的*圍:1..8;對(duì)角線數(shù)組:b[j](主對(duì)角線),c[j]〔從對(duì)角線〕,根據(jù)程序的運(yùn)行,去決定主從對(duì)角線是否放入皇后;1.3概要設(shè)計(jì)1.3.1構(gòu)造設(shè)計(jì)理念〔1〕從n列開(kāi)場(chǎng)擺放第n個(gè)皇后〔因?yàn)檫@樣便可以符合每一豎列一個(gè)皇后的要求〕,先測(cè)試當(dāng)前位置〔n,m〕是否等于0〔未被占領(lǐng)〕。如果是,擺放第n個(gè)皇后,并宣布占領(lǐng),接著進(jìn)展遞歸;如果不是,測(cè)試下一個(gè)位置〔n,m+1〕,但是如果當(dāng)n<=8,m=8時(shí),發(fā)現(xiàn)此時(shí)已無(wú)法擺放時(shí),便要進(jìn)展回溯。從問(wèn)題的*一種可能出發(fā),搜索從這種情況能出發(fā),繼續(xù)搜索,這種不斷"回溯〞的尋找解的方法,稱為"回溯法〞?!?〕使用數(shù)組實(shí)現(xiàn)回溯法的思想?!?〕當(dāng)n>8時(shí),便打印出結(jié)果。1.3.2算法流程圖圖1-1算法流程圖序圖1-11.4詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)#include<conio.h>#include<math.h>#include<stdlib.h>#include<stdio.h>#include<iostream.h>#defineQUEENS8intiCount=0;//!記錄解的序號(hào)的全局變量。intSite[QUEENS];//!記錄皇后在各行上的放置位置的全局?jǐn)?shù)組。voidQueen(intn);//!遞歸求解的函數(shù)。voidOutput();//!輸出一個(gè)解。intIsValid(intn);//!判斷第n個(gè)皇后放上去之后,是否有〉沖突。voidmain()/*Main:主函數(shù)。*/{system("title管理102孫海龍八皇后問(wèn)題");cout<<""<<"八皇后問(wèn)題:"<<endl;cout<<""<<""<<endl;Queen(0);//!從第0行開(kāi)場(chǎng)遞歸試探。getch();//!按任意鍵返回。}voidQueen(intn)/*Queen:遞歸放置第n個(gè)皇后,程序的核心!*/{inti;if(n==QUEENS)//!參數(shù)n從0開(kāi)場(chǎng),等于8時(shí)便試出了一個(gè)解,將它輸出并回溯。{Output();return;}for(i=1;i<=QUEENS;i++)//!n還沒(méi)到8,在第n行的各個(gè)行上依次試探。{Site[n]=i;//!在該行的第i行上放置皇后。if(IsValid(n))//!如果放置沒(méi)有沖突,就開(kāi)場(chǎng)下一行的試探。 Queen(n+1);}}intIsValid(intn)/*IsValid:判斷第n個(gè)皇后放上去之后,是否合法,即是否無(wú)沖突。*/{inti;for(i=0;i<n;i++)//!將第n個(gè)皇后的位置依次于前面n-1個(gè)皇后的位置比擬。{if(Site[i]==Site[n])//!兩個(gè)皇后在同一列上,返回0。return0;if(abs(Site[i]-Site[n])==(n-i))//!兩個(gè)皇后在同一對(duì)角線上,返回0。return0;}return1;//!沒(méi)有沖突,返回1。}voidOutput()/*Output:輸出一個(gè)解,即一種沒(méi)有沖突的放置方案。*/{ inti;printf("No.%-5d",++iCount);//!輸出序號(hào)。for(i=0;i<QUEENS;i++)//!依次輸出各個(gè)行上的皇后的位置,即所在的列數(shù)。 printf("%d",Site[i]);cout<<〞〞<<endl;}1.5程序調(diào)試1.5.1問(wèn)題思考及改良設(shè)想在完整程序調(diào)試時(shí)由于太急于求成導(dǎo)致程序進(jìn)展循環(huán)時(shí)出現(xiàn)無(wú)法運(yùn)行的問(wèn)題,邏輯錯(cuò)誤導(dǎo)致程序死循環(huán)或不循環(huán)或循環(huán)一小局部,后經(jīng)細(xì)心改正后才把調(diào)試工作做完。做程序真的不是三兩下就能完美的做好的,正應(yīng)了那句話"心急吃不了熱豆腐啊〞。但對(duì)于這個(gè)程序我由于c++語(yǔ)言學(xué)的不到位以至于有些摻雜了c語(yǔ)言的有關(guān)算法,要是都用c++來(lái)編寫(xiě)就再好不過(guò)了。在編寫(xiě)代碼時(shí),我希望能隨機(jī)選擇一數(shù)*(1~92)后,能輸出該種情況所對(duì)應(yīng)的八個(gè)皇后的擺放方式和每個(gè)皇后所在的位置,但想了好久,就是無(wú)法實(shí)現(xiàn)。而且,當(dāng)92種情況都輸出時(shí),前面的幾十種情況無(wú)法看到,要想讓擺放皇后的圖形和所在具體的位置一起輸出,就得修改程序讓使她們一個(gè)一個(gè)地輸出,這樣顯然比擬麻煩。倘假設(shè)有一種既能把八皇后的所在位置和把皇后所有情況連續(xù)輸出,我感覺(jué)就應(yīng)該算是一個(gè)完美的程序了,這還需要我一致的探索開(kāi)掘下去才行。1.5.2運(yùn)行與測(cè)試〔1〕由于在編寫(xiě)代碼時(shí)漏寫(xiě)了*個(gè)函數(shù)導(dǎo)致程序不能正常運(yùn)行出現(xiàn)了錯(cuò)誤提示;圖1-1錯(cuò)誤警告〔2〕在同學(xué)幫助下成功的運(yùn)行了該程序;圖1-2成功運(yùn)行〔3〕最后輸出了最終八皇后問(wèn)題的結(jié)果。圖1-3輸出八皇后結(jié)果1.6課設(shè)總結(jié)通過(guò)這次的課程設(shè)計(jì),讓我了解了八皇后這一經(jīng)典的問(wèn)題。同時(shí)讓我更好地掌握了棧思想以及一維數(shù)組等等知識(shí),以及一些書(shū)本上沒(méi)有的東西,這對(duì)我以后的學(xué)習(xí)生涯以及將來(lái)步入社會(huì)起到很大的幫助。這次課程設(shè)計(jì)雖然花了我很多時(shí)間和精力,但很值得,因?yàn)樗鼘?duì)我能力提高起到很大幫助。這次課程設(shè)計(jì)也提醒我以前知識(shí)的匱乏,它給我敲響了警鐘,讓我意識(shí)到自己根底的不扎實(shí).當(dāng)然這次實(shí)驗(yàn)還是有很多問(wèn)題的。比方程序設(shè)計(jì)的界面不夠好,一些程序并非自己所寫(xiě),而是修改*些程序而成,但這些不該,在下次課程設(shè)計(jì)時(shí)不會(huì)再發(fā)生.針對(duì)八皇后這個(gè)課題,也許表層只局限于對(duì)八個(gè)皇后的擺放,但還可以對(duì)更多的情況進(jìn)展探討分析,比方九皇后,十皇后等等。在報(bào)告正文中已經(jīng)屢次提到關(guān)于N皇后的設(shè)計(jì)方法,但只是一帶而過(guò),有些問(wèn)題很難通過(guò)一個(gè)報(bào)告設(shè)計(jì)就輕而易舉的得到解決,還需要花費(fèi)更多的時(shí)間。---優(yōu)質(zhì)資料.z.第二章n階魔陣問(wèn)題概述2.1課題的描述n階魔陣問(wèn)題在我國(guó)古代被稱作"縱橫圖〞,其主要設(shè)計(jì)要求是對(duì)于給定的一個(gè)奇數(shù)n,構(gòu)造一個(gè)n階魔陣。n階魔陣是一個(gè)n階方陣,其元素由自然數(shù)1,2,3,…,n^2組成。魔陣每一行元素之和,每一列元素之和,以及主,副對(duì)角線員素質(zhì)和均相等。2.2需求分析2.2.1涉及到的知識(shí)本次課程設(shè)計(jì)中,用到的主要知識(shí)有:二維數(shù)組的使用方法和一些根本的設(shè)計(jì)思路以及數(shù)據(jù)構(gòu)造與數(shù)據(jù)存儲(chǔ)的的有關(guān)知識(shí)。2.2.2模塊的功能需求(1)voidmain〔〕函數(shù),主函數(shù),調(diào)用以下子函數(shù),實(shí)現(xiàn)魔方陣填充與輸出,實(shí)現(xiàn)問(wèn)題要求功能;(2〕voidjishu〔intn〕函數(shù),n為奇數(shù)實(shí)現(xiàn)n階魔方陣;(3〕voidout〔intn,inta[MA*][MA*]〕函數(shù),此函數(shù)用以調(diào)整方陣元素位置,實(shí)現(xiàn)魔方陣n*n形式輸出〔4〕voidcheck〔intn,inta[MA*][MA*]〕函數(shù),計(jì)算并輸出n階魔方陣每行、每列以及每條對(duì)角線上各個(gè)數(shù)字的累加和,同時(shí)驗(yàn)證魔方陣的準(zhǔn)確性。2.2.3軟硬件的需求〔1〕系統(tǒng)要求:win98以上操作系統(tǒng);〔2〕語(yǔ)言平臺(tái):tc++或vc++6.0;2.2.4面對(duì)的問(wèn)題〔1〕每列每行以及主副對(duì)角線元素之和相等;〔2〕要求輸出結(jié)果的格式要具有n階方陣的形式。2.3概要設(shè)計(jì)2.3.1算法設(shè)計(jì)理念首先,輸入一個(gè)數(shù)字n〔1≤n≤99),則輸出對(duì)應(yīng)的n階魔方陣,并輸出每一行、每一列、每條對(duì)角線上各個(gè)數(shù)字累加和。假設(shè)輸入數(shù)字n超出要求*圍,則提醒用戶重新輸入n。但假設(shè)輸入數(shù)字0時(shí),操作完畢,退出程序。使用多維數(shù)組輸出魔方陣,分別用3個(gè)子函數(shù)實(shí)現(xiàn)相應(yīng)的功能。輸入形式:數(shù)字n〔1≤n≤99)。輸出形式:〔1〕以矩陣形式輸出n〔1≤n≤99)階魔方陣;〔2〕輸出每一行、每一列、每條對(duì)角線上各個(gè)數(shù)字累加和;2.3.2函數(shù)邏輯功能調(diào)用圖圖2-1邏輯功能2.3.3算法流程圖圖2-2算法流程圖2.4詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)2.4.1代碼編寫(xiě)及詳細(xì)設(shè)置voidjishu〔intn〕函數(shù),n為奇數(shù)實(shí)現(xiàn)n階魔方陣,實(shí)現(xiàn)思想如下;a.在1到n2的數(shù)字中,選擇1開(kāi)場(chǎng)填充魔方,將數(shù)字1填入第一行的中間方格中,即〔0,n/2〕的位置。b.向已填充的前一個(gè)數(shù)字位置〔p,q〕的左上角〔p-1,q-1〕填入下一個(gè)數(shù)字,如果出現(xiàn)以下情況,則修改填充位置:i〕假設(shè)填充位置超出上邊界,則修改為下邊界的相應(yīng)位置,即把p-1修改為n-1;ii〕假設(shè)填充位置超出左邊界,則修改為最右邊的相應(yīng)位置,即把q-1改為n-1;iii〕假設(shè)填充位置已有數(shù)字,則填充位置修改為下一行的同一位置。c.重復(fù)以上步驟,直至將n2個(gè)數(shù)字全部填入魔方中。最后調(diào)用函數(shù)函數(shù)out〔n,a〕和check〔n,a〕,實(shí)現(xiàn)魔方陣的輸出,檢驗(yàn)?zāi)Х疥嚨臏?zhǔn)確性。具體實(shí)現(xiàn)代碼如下:voidjishu(intn)/*奇數(shù)*/{intp,q,i,a[MA*][MA*];p=0;q=(n-1)/2;a[0][q]=1;/*第一個(gè)數(shù)字的填入位置*/for(i=2;i<=n*n;i++){p=(p-1+n)%n;/*計(jì)算填入的位置*/q=(q-1+n)%n;if(a[p][q]>0)/*如果填入位置已有數(shù)字,則重新計(jì)算填入位置*/ {p=(p+2)%n;/*由于前面p減了1,因此p應(yīng)該加1,才能表示下一行*/q=(q+1)%n;/*由于前面q減了1,因此q應(yīng)該加1,才能表示同一列*/ }a[p][q]=i;/*填入數(shù)字*/}out(n,a);/*調(diào)用輸出函數(shù)*/check(n,a);/*調(diào)用驗(yàn)證函數(shù)*/}(3〕voidout〔intn,inta[MA*][MA*]〕函數(shù),此函數(shù)用以調(diào)整方陣元素位置,實(shí)現(xiàn)魔方陣n*n形式輸出。具體實(shí)現(xiàn)代碼如下:voidout(intn,inta[MA*][MA*])/*魔方矩陣輸出函數(shù)*/{intp,q;for(p=0;p<=n-1;p++){for(q=0;q<=n-1;q++){cout<<setw(4)<<a[p][q]<<"";/*輸出魔方矩陣的結(jié)果*/}cout<<endl<<endl;}}〔4〕voidcheck〔intn,inta[MA*][MA*]〕函數(shù),計(jì)算并輸出n階魔方陣每行、每列以及每條對(duì)角線上各個(gè)數(shù)字的累加和,同時(shí)驗(yàn)證魔方陣的準(zhǔn)確性。具體實(shí)現(xiàn)代碼如下:voidcheck(intn,inta[MA*][MA*])/*魔方矩陣驗(yàn)證函數(shù)*/{intp,q,sum1=0,sum2=(n*n+1)*n/2,k;cout<<"此魔方陣的每行、每列、兩條對(duì)角線的和為:"<<sum2<<endl;/*輸出標(biāo)準(zhǔn)魔方陣的每行、每列、兩條對(duì)角線的和*/for(p=0;p<n;p++){for(q=0;q<n;q++){sum1=a[p][q]+sum1;/*計(jì)算矩陣橫行縱行的和*/}if(sum1!=sum2)/*判斷矩陣橫行縱行的和是否與標(biāo)準(zhǔn)一樣*/{cout<<"橫行縱行計(jì)算結(jié)果與標(biāo)準(zhǔn)不符,請(qǐng)修改程序錯(cuò)誤"<<endl;break;}sum1=0;}for(k=0;k<n;k++){sum1=a[k][k]+sum1;/*計(jì)算矩陣主對(duì)角線的和*/}if(sum1!=sum2)/*判斷矩陣主對(duì)角線的和是否與標(biāo)準(zhǔn)一樣*/cout<<"主對(duì)角線計(jì)算結(jié)果與標(biāo)準(zhǔn)不符,請(qǐng)修改程序錯(cuò)誤"<<endl;sum1=0;for(k=0;k<n;k++){sum1=a[k][n-k-1]+sum1;/*計(jì)算矩陣次對(duì)角線的和*/}if(sum1!=sum2)/*判斷矩陣次對(duì)角線的和是否與標(biāo)準(zhǔn)一樣*/cout<<"次對(duì)角線計(jì)算結(jié)果與標(biāo)準(zhǔn)不符,請(qǐng)修改程序錯(cuò)誤"<<endl;}2.5程序調(diào)試2.5.1問(wèn)題思考及改良設(shè)想就編寫(xiě)的程序而言,雖然能到達(dá)預(yù)期的結(jié)果,但總體構(gòu)造還不夠簡(jiǎn)潔,不太容易去理解。許多問(wèn)題還需要繼續(xù)研究,許多技術(shù)還需要更多的改良。去圖書(shū)館借了不少書(shū),也去網(wǎng)上看了些資料,只是對(duì)大概的知識(shí)有了點(diǎn)了解,但還是很難著手于寫(xiě)代碼,后來(lái)就按照教師說(shuō)的,先搞清楚原理,再考慮如何去實(shí)現(xiàn)!后來(lái)又去上網(wǎng)查看相關(guān)資料,又到圖書(shū)館借了很多書(shū)看,總算有頭緒了。但在調(diào)試過(guò)程中,還是遇到了很多困難,后來(lái)通過(guò)了很多同學(xué)的幫助才把問(wèn)題解決了。2.5.2運(yùn)行與測(cè)試〔1〕運(yùn)行順利沒(méi)有發(fā)現(xiàn)錯(cuò)誤。圖2-3準(zhǔn)確運(yùn)行〔2〕輸入1-99階魔陣。圖2-4輸入數(shù)據(jù)〔3〕當(dāng)輸入超出*圍時(shí),提示輸入有誤。圖2-5輸入有誤〔4〕當(dāng)輸入的魔陣階數(shù)為7時(shí)得到以下方陣。圖2-6正常輸入〔5〕當(dāng)輸入0時(shí)該程序完畢運(yùn)行。圖2-7完畢運(yùn)行2.6課設(shè)總結(jié)在編程實(shí)現(xiàn)的過(guò)程中,我進(jìn)一步掌握和熟悉了二為數(shù)組的應(yīng)用,并熟悉了將問(wèn)題分解在組裝的解決方法和函數(shù)的調(diào)用。編程過(guò)程中,使用另外完成輸出功能的子函數(shù)voidout(intn,inta),通過(guò)對(duì)其調(diào)用,大大節(jié)省了程序編寫(xiě)的復(fù)雜度,提高了效率。在實(shí)現(xiàn)奇數(shù)階魔方陣時(shí),遇到了一點(diǎn)問(wèn)題,請(qǐng)教了同學(xué),一起進(jìn)展了討論研究,最終解決了問(wèn)題。通過(guò)這次課程設(shè)計(jì),使我們學(xué)到了一些以前沒(méi)有學(xué)過(guò)的知識(shí),使我們對(duì)程序設(shè)計(jì)有了更深層次的認(rèn)識(shí)和理解,懂得了靈活運(yùn)用。---優(yōu)質(zhì)資料.z.參考文獻(xiàn)[1]*光然;數(shù)據(jù)構(gòu)造實(shí)踐訓(xùn)練教程;2009,4[2]李春葆,尹為民,李蓉蓉;數(shù)據(jù)構(gòu)造教程上機(jī)實(shí)驗(yàn)指導(dǎo);2009,1[3]胡元義,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論