繪制國際象棋棋盤_第1頁
繪制國際象棋棋盤_第2頁
繪制國際象棋棋盤_第3頁
繪制國際象棋棋盤_第4頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄一、設(shè)計任務(wù),目的與要求 11.設(shè)計內(nèi)容: 12.設(shè)計目的: 13.設(shè)計要求: 1二、概要設(shè)計 11.設(shè)計流程: 1三、運行結(jié)果及分析 41.程序運行測試: 42.應(yīng)用運行的結(jié)果: 5四、源代碼?????????????????????????????????? 6一、設(shè)計任務(wù),目的與要求1.設(shè)計內(nèi)容:在屏幕上繪制輸出國際象棋棋盤,分別利用命令提示行和 MFC制作輸出。2.設(shè)計目的:1)復習、鞏固C++語言的基礎(chǔ)知識,進一步加深對 C++語言的理解和掌握;2)課程設(shè)計為將課本上的理論知識和實際有機的結(jié)合起來,鍛煉分析解決實際問題的能力。提高適應(yīng)實際,實踐編程的能力;3)加強學生的團隊合作能力。3.設(shè)計要求:1)對系統(tǒng)進行功能模塊分析、控制模塊分析正確,符合課題要求,實現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;2)系統(tǒng)設(shè)計要實用,編程簡練,可用,功能全面;3)說明書、流程圖要清楚;4)記錄設(shè)計情況(備查,也為編寫設(shè)計說明書作好準備);5)要求采用模塊化程序設(shè)計方法,要求上機調(diào)試通過和按設(shè)計報告格式;6)設(shè)計上交內(nèi)容:設(shè)計報告一人一份(按格式書寫),源程序文件。二、概要設(shè)計1.設(shè)計流程:1)設(shè)計要求:(1)國際象棋棋盤是個正方形,由橫縱各8格、顏色一深一淺交錯排列的64個小方格組成,并且對奕時右下角為白色方格。2)能夠?qū)懗鱿鄳?yīng)的源程序代碼,采用結(jié)構(gòu)化、模塊化程序設(shè)計方法,功能完善,界面要美觀;3)所設(shè)計的系統(tǒng)要求運行沒有錯誤;14)當程序運行時彈出一個界面,并顯示棋盤;5)最后經(jīng)驗收合格后,按要求寫出課程設(shè)計報告。2)運行環(huán)境:本設(shè)計使用的運行環(huán)境是MicrosoftVisualC++6.0開發(fā)環(huán)境,所做的是基于MFC的打印國際象棋棋盤的應(yīng)用程序。3)總體設(shè)計:用命令提示行輸出棋盤是橫豎各8個方格排列而成的,將橫定為排,縱定為列。橫向有8排編號為0到7,縱向亦有8列編號為0到7。觀察棋盤特點黑白相間可知排號與列號相加為偶數(shù)的是白色方塊, 反之為黑色方塊。例如第 0排第5列為(0+5)=5,結(jié)果為奇數(shù)則為白色。再如第 3排每列為(3+1)=4,結(jié)果為偶數(shù)則為黑色。據(jù)此打印相應(yīng)的方塊形成整個棋盤。本設(shè)計中白色方格用兩個ASCII碼為219的符號(如圖)形成,黑色方格用兩個空格形成。圖1ASCII碼對照表ASCII碼使用指定的7位或8位二進制數(shù)組合來表示128或256種可能的字符。標準ASCII碼也叫基礎(chǔ)ASCII碼,使用7位二進制數(shù)來表示所有的大寫和小寫字母,數(shù)字0到9、標點符號,以及在美式英語中使用的特殊控制字符。其中:0~31及127(共33個)是控制字符或通信專用字符(其余為可顯示字2符),ASCII值為8、9、10和13分別轉(zhuǎn)換為退格、制表、換行和回車字符。它們并沒有特定的圖形顯示,但會依不同的應(yīng)用程序,而對文本顯示有不同的影響。48~57為0到9十個阿拉伯數(shù)字;65~90為26個大寫英文字母,97~122號為個小寫英文字母,其余為一些標點符號、運算符號等。后128個稱為擴展ASCII碼。擴展ASCII碼允許將每個字符的第8位用于確定附加的128個特殊符號字符、外來語字母和圖形符號。用MFC繪制輸出MFC(MicrosoftFoundationClasses),是微軟公司提供的一個類庫,以 C++類的形式封裝了Windows的API,并且包含一個應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。其中包含的類包含大量句柄封裝類和很多內(nèi)建控件和組件的封裝類。與其他所有的Windows應(yīng)用程序一樣,在使用MFC的應(yīng)用程序中也要處理系統(tǒng)消息,但是在MFC中消息處理更容易,封裝得更好,更易于維護。下圖為應(yīng)用程序的執(zhí)行過程輸入消息系統(tǒng)消息

開始初始化應(yīng)用程序初始化并創(chuàng)建應(yīng)用程序窗口進入消息循環(huán)并獲得消息 消息處理函數(shù)是 否 為WM_QUIT消息

YN 是否為應(yīng)用程序處理的消息Y N結(jié)束 默認處理函數(shù)圖2應(yīng)用程序的執(zhí)行過程3Windows使用圖形設(shè)備接口(GDI)進行圖形和文本輸出,MFC封裝了GDI對象,提供了CGdiObject類和CDC類支持圖形和文本輸出。應(yīng)用程序可以使用GDI創(chuàng)建矢量圖形、光柵圖形和文本3種類型的圖形輸出,本設(shè)計主要是輸出一定形狀的矢量圖形。MFC封裝了DC,提供CDC類及它的子類以訪問GDI。MFC提供的設(shè)備環(huán)境類包括CDC、CPaintDC、CClientDC、CWindowDC和CMetaFileDC等,其中CDC類是MFC設(shè)備環(huán)境類的基類,其他MFC設(shè)備環(huán)境類都是CDC類的派生類,CDC提供了基本的繪圖操作函數(shù),如畫點、畫線、畫圓、畫矩形、畫多邊形等。本設(shè)計主要用到Rectangle()函數(shù)。它根據(jù)指定的左上角和右下角坐標繪制一個矩形,其格式如下:CRectrect(0,0,100,100);//括號里的參數(shù)是左上角與右下角的坐標pDC->Rectangle(&rect);在繪制圖形和圖像時,顏色是一個重要的因素。Windows用COLORREF類型的數(shù)據(jù)存放顏色。它實際上是一個32位整數(shù)。任何一種顏色都是由紅、綠、藍3種基本顏色組成的,COLORREF類型數(shù)據(jù)的低位字節(jié)存放紅色強度值,第2個字節(jié)存放綠色強度值,第3個字節(jié)存放藍色強度值,高位字節(jié)為0,每一種顏色分量的取值范圍為0~255。直接設(shè)置COLORREF類型的數(shù)據(jù)不太方便。MFC提供了RGB宏,用于設(shè)置顏色,它將其中的紅、綠、藍分量值轉(zhuǎn)換為COLORREF類型的顏色數(shù)據(jù),其使用形式為:RGB(byRed,byGreen,byBlue)其中參數(shù) byRed、byGreen和byBlue分別表示紅、綠、藍分量值(范圍0~255)。設(shè)計中用到了RGB(192,192,192)和RGB(0,0,0),他們分別為灰色和黑色。程序中是以某一坐標為參考點在OnDraw函數(shù)中形成兩層循環(huán)利用筆刷繪制黑白間的64格棋盤。三、運行結(jié)果及分析1.程序運行測試:1.進入VC++環(huán)境,文件新建一個單文檔的 MFC應(yīng)用程序,命名為“繪制國際象棋棋盤”。2.選擇項目工作區(qū)的 ClassView,展開CMyView 類,找到成員函數(shù)OnDraw()并輸入繪制代碼。編譯、鏈接并運行程序,等到所要求的棋盤。42.應(yīng)用運行的結(jié)果:利用命令提示行輸出:利用MFC繪圖輸出:5四、源代碼1.用命令提示行打印棋盤#include"stdio.h"#include<windows.h>intmain(){inti,j;SetConsoleOutputCP(437);//顯示大于127的asc碼for(i=0;i<8;i++){for(j=0;j<8;j++)if((i+j)%2==0)printf("%c%c",219,219);elseprintf(" ");printf("\n");}return0;}2.用MFC應(yīng)用程序繪制棋盤為了節(jié)省篇幅,只寫出了實現(xiàn)本設(shè)計中OnDraw()函數(shù)中的主要繪制代碼,程序如下:voidCMyView::OnDraw(CDC*pDC){CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);CBrush*BrushOld,BrushNew; //建立刷指針COLORREFBrushClr[]={RGB(192,192,192),RGB(0,0,0)};//選用灰色和黑色COLORREFBrushColor;intx,y;pDC->TextOut(200,20,"國際象棋棋盤"); //在坐標處輸出標題for(inti=0;i<8;i++) //列控制{6for(intj=0;j<8;j++) //行控制{x=i+1;y=j+1;if((i+j)%2==0){BrushColor=BrushClr[0];BrushNew.CreateSolidBrush(BrushColor);//創(chuàng)建實心畫刷BrushOld=pDC->SelectObject(&BrushNew);//選用實心畫刷}else{BrushColor=BrushClr[1];BrushNew.CreateSolidB

溫馨提示

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

評論

0/150

提交評論