




已閱讀5頁(yè),還剩12頁(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)介
青島理工大學(xué)C+面向?qū)ο笳n程設(shè)計(jì)報(bào)告院(系): 計(jì)算機(jī)工程學(xué)院 專業(yè): 網(wǎng)絡(luò)工程專業(yè) 學(xué)生姓名: abc 班級(jí):123學(xué)號(hào): 000 題目: 吹泡泡課程設(shè)計(jì) 起迄日期: 2011-7-3到2011-7-16設(shè)計(jì)地點(diǎn): 學(xué)院機(jī)房 指 導(dǎo) 教 師: 源程序 qq:793572097完成日期: 2011 年 7 月 14號(hào)一需求分析: 1.要求與功能:世界經(jīng)濟(jì)的快速發(fā)展和計(jì)算機(jī)技術(shù)的日益成熟,計(jì)算機(jī)被應(yīng)用到人類生活的各個(gè)領(lǐng)域,各種應(yīng)用軟件相繼問(wèn)世,嚴(yán)峻的形勢(shì)在提醒我們要跟上時(shí)代的步伐,不斷的去創(chuàng)新和完善。所以,我們必須學(xué)習(xí)更多的知識(shí)和編程工具來(lái)提高自身的能力。要求用鼠標(biāo)左鍵隨機(jī)在客戶區(qū)任何地方單擊,可產(chǎn)生一個(gè)圓形的泡泡(泡泡的大小隨機(jī)產(chǎn)生);可通過(guò)顏色對(duì)話框選擇不同的顏色,繪出不同顏色的泡泡;可以保存文檔,并能打開(kāi)文檔。程序?qū)儆谝粋€(gè)簡(jiǎn)單的小游戲,需要用到畫(huà)圖,文檔等的操作,更考驗(yàn)了對(duì)MFC對(duì)程序的封裝性及內(nèi)聯(lián)函數(shù)的掌握與應(yīng)用。當(dāng)代社會(huì),目前Windows已成為微機(jī)上的主流操作系統(tǒng),幾乎成為大家離不開(kāi)的必要需求,在Windows平臺(tái)上進(jìn)行軟件開(kāi)發(fā)也已成為程序設(shè)計(jì)的主流,所以熟悉并掌握初級(jí)的可視化編程方法對(duì)我們未來(lái)的發(fā)展有直觀重要的作用,也幫助我們把握了現(xiàn)代化使用工具的流行趨勢(shì)。程序使用的MFC應(yīng)用程序必須有且只能有一個(gè)從WinApp類派生的全局應(yīng)用程序?qū)ο螅藢?duì)象在運(yùn)行時(shí)刻控制應(yīng)用程序中所有其他對(duì)象的活動(dòng)。通過(guò)此項(xiàng)設(shè)計(jì),了解C+編程的基本工作原理和思想,培養(yǎng)分析,解決問(wèn)題的能力。2. 程序功能分析:能夠在客戶區(qū)任意地方點(diǎn)擊即產(chǎn)生一個(gè)圓形的泡泡;利用基于框架窗口的應(yīng)用程序使編程更加簡(jiǎn)單清晰。能夠?qū)Ξa(chǎn)生的文檔進(jìn)行保存,打印,打印預(yù)覽等一些的功能;并可以在窗口區(qū)新建文檔或者關(guān)閉,打開(kāi)新文檔。程序運(yùn)行過(guò)程中須保證不因操作頻繁而產(chǎn)生系統(tǒng)錯(cuò)誤,系統(tǒng)安全,可靠,功能齊全,操作方便,界面友好,容易對(duì)程序的不足之處進(jìn)行修改,在程序已有的功能上利用修改,或添加一些數(shù)據(jù)成員或函數(shù)來(lái)增加更多的功能,保證程序有良好的移植性和可擴(kuò)充性。例如可以改善文檔的打印預(yù)覽效果,進(jìn)一步可以添加函數(shù)使得在泡泡窗口可以畫(huà)出矩形或其他圖形并錄入字符,且對(duì)字符可是進(jìn)行各種增刪,修改操作。程序應(yīng)用了對(duì)話框,程序利用它可以和用戶進(jìn)行交互式操作,對(duì)話框是應(yīng)用程序,用于顯示或提示并等待用戶輸入一個(gè)或多個(gè)控件,利用這些控件,用戶可以輸入文本,選擇選項(xiàng),并完成某一些特定命令。二.設(shè)計(jì)內(nèi)容1.程序模塊圖 文檔保存新建打開(kāi)打印預(yù)覽打印視圖初始化消息響應(yīng)打印參數(shù)畫(huà)圖框架窗口CMainFrame應(yīng)用程序建立文檔登記模板據(jù)初始化 吹泡泡程序設(shè)計(jì)程序流程圖 開(kāi)始 設(shè)置數(shù)組,數(shù)據(jù)成員及函數(shù)建立文檔,畫(huà)出泡泡,修改視圖關(guān)閉?打開(kāi)?保存?新建? 是 否 更新視圖數(shù)據(jù),登記模板結(jié)束3.程序代碼/ 文檔類 /class CMyDoc : public CDocumentDECLARE_DYNCREATE(CMyDoc)CArray m_rectBubble;public:CMyDoc();intGetListSize()return m_rectBubble.GetSize();CRectGetBubble(int index)return m_rectBubbleindex;voidAddBubble(CRect rect)m_rectBubble.Add(rect);virtual BOOL OnNewDocument();virtual void DeleteContents();virtual void Serialize(CArchive& ar);IMPLEMENT_DYNCREATE(CMyDoc, CDocument)/ 構(gòu)造函數(shù):調(diào)用SDI,做初始化工作.SDI為單文檔界面程序CMyDoc:CMyDoc()m_rectBubble.SetSize(256, 256);/ 設(shè)置數(shù)組參數(shù)/ 打開(kāi)新文檔時(shí)調(diào)用,做初始化工作BOOL CMyDoc:OnNewDocument()if (!CDocument:OnNewDocument() return FALSE;srand(unsigned)time(NULL); / 初始化隨機(jī)數(shù)發(fā)生器return TRUE;/ 關(guān)閉文檔、建立新文檔前調(diào)用void CMyDoc:DeleteContents() m_rectBubble.RemoveAll(); / 泡泡數(shù)組清零CDocument:DeleteContents();/讀寫(xiě)文檔時(shí)自動(dòng)調(diào)用void CMyDoc:Serialize(CArchive &ar) m_rectBubble.Serialize(ar);/ 視圖類 / class CMyView : public CViewDECLARE_DYNCREATE(CMyView)public:CMyDoc* GetDocument()return (CMyDoc*)m_pDocument;virtual void OnInitialUpdate();virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnDraw(CDC* pDC);afx_msg void OnLButtonDown(UINT nFlags, CPoint point); /afx_msg標(biāo)記的消息處理成員函數(shù)DECLARE_MESSAGE_MAP();IMPLEMENT_DYNCREATE(CMyView, CView)BEGIN_MESSAGE_MAP(CMyView, CView)ON_WM_LBUTTONDOWN()ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()/ 建立新文檔,打開(kāi)文檔時(shí)調(diào)用void CMyView:OnInitialUpdate()CView:OnInitialUpdate();Invalidate(); void CMyView:OnDraw(CDC* pDC)CMyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);pDC-SelectStockObject(LTGRAY_BRUSH); for(int i=0; iGetListSize(); i+) pDC-Ellipse(pDoc-GetBubble(i);/ 消息響應(yīng)函數(shù)void CMyView:OnLButtonDown(UINT nFlags, CPoint point) CMyDoc* pDoc = GetDocument();/ 取文檔指針 ASSERT_VALID(pDoc); int r = rand()%50+5; CRect rectBubble(point.x-r, point.y-r, point.x+r, point.y+r); pDoc-AddBubble(rectBubble);/ 修改文檔數(shù)據(jù) pDoc-SetModifiedFlag(); InvalidateRect(rectBubble, FALSE);/文檔數(shù)據(jù)產(chǎn)生變更后,要更新試圖數(shù)據(jù)/ 設(shè)置打印參數(shù)BOOL CMyView:OnPreparePrinting(CPrintInfo* pInfo)pInfo-SetMaxPage(1); return DoPreparePrinting(pInfo);/ 框架窗口類 / class CMainFrame : public CFrameWndDECLARE_DYNCREATE(CMainFrame);IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)/ 應(yīng)用程序類 / #define IDR_MAINFRAME128class CMyApp : public CWinApppublic:virtual BOOL InitInstance();DECLARE_MESSAGE_MAP();BEGIN_MESSAGE_MAP(CMyApp, CWinApp)ON_COMMAND(ID_FILE_NEW, CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN, CWinApp:OnFileOpen)ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp:OnFilePrintSetup)END_MESSAGE_MAP()/ 建立,登記文檔BOOL CMyApp:InitInstance()CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate( / 登記文檔模板 IDR_MAINFRAME, RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CMyView);AddDocTemplate(pDocTemplate);CCommandLineInfo cmdInfo; / 創(chuàng)建及處理命令行信息 SDIParseCommandLine(cmdInfo);if (!ProcessShellCommand(cmdInfo) return FALSE;m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-UpdateWindow();return TRUE;/ 全局應(yīng)用程序?qū)ο驝MyApp theApp;資源腳本文件:#include afxres.h#define IDR_MAINFRAME128IDR_MAINFRAME MENU PRELOAD DISCARDABLE BEGINPOPUP 網(wǎng)絡(luò)082 張?zhí)靽?guó)吹泡泡程序設(shè)計(jì)BEGINMENUITEM 新建(&N)tCtrl+N, ID_FILE_NEWMENUITEM 打開(kāi)(&O).tCtrl+O, ID_FILE_OPENMENUITEM 保存(&S)tCtrl+S, ID_FILE_SAVEMENUITEM 另存為(&A)., ID_FILE_SAVE_ASMENUITEM SEPARATORMENUITEM 打印(&P).tCtrl+P, ID_FILE_PRINTMENUITEM 打印預(yù)覽(&V), ID_FILE_PRINT_PREVIEWMENUITEM 打印設(shè)置(&R)., ID_FILE_PRINT_SETUPMENUITEM SEPARATORMENUITEM 退出(&X), ID_APP_EXITENDENDSTRINGTABLE PRELOAD DISCARDABLE BEGINIDR_MAINFRAME 吹泡泡nnBubnBub 文件 (*.egg)n.eggEND#include l.chsafxres.rc#include l.chsafxprint.rc三.調(diào)試分析 1.程序完成的功能及支持的數(shù)據(jù)類型:程序完成了在客戶區(qū)打開(kāi)一窗口程序,并在其中任意位置點(diǎn)擊即可產(chǎn)生一隨機(jī)的圓形泡泡。在菜單欄可對(duì)文檔進(jìn)行保存,打印,預(yù)覽,設(shè)置,新建,打開(kāi)等的功能。程序支持的數(shù)據(jù)類型:程序支持int型,bool型,(非true即false) 數(shù)組型。2,程序的性能分析:程序中一共用到4個(gè)類,即CMyApp、CMyWnd、CMyView和CMyDoc,它們分別是應(yīng)用程序類CWinApp、框架窗口類CFrameWnd、視圖類CView和文檔類CDocument的派生類。 文檔派生類CMyDoc用于管理吹泡泡程序的數(shù)據(jù),由于泡泡的數(shù)量是不定的,而大小和位置是通過(guò)int r = rand()%50+5;CRect rectBubble(point.x-r, point.y-r, point.x+r, point.y+r);實(shí)現(xiàn)的,所以聲明了一個(gè)數(shù)組m_rectBubble來(lái)存放所有泡泡的數(shù)據(jù)。m_rectBubble是CMyDoc類的私有數(shù)據(jù)成員,在類外不可見(jiàn);所以要定義一組成員函數(shù)作為該數(shù)據(jù)成員與外界的接口函數(shù)。函數(shù)GetListSize()用來(lái)統(tǒng)計(jì)數(shù)組中泡泡的個(gè)數(shù);函數(shù)GetBubble()用于從數(shù)組中取一個(gè)泡泡數(shù)據(jù);函數(shù)AddBubble()用于將一個(gè)泡泡的數(shù)據(jù)加入數(shù)組。 視圖派生類的OnLButtonDown()函數(shù)用于響應(yīng)操作的鼠標(biāo)消息,OnDraw()函數(shù)是試圖標(biāo)準(zhǔn)輸出函數(shù),在框架窗口的客戶區(qū)輸出,應(yīng)用程序類設(shè)置了三個(gè)消息響應(yīng)宏,用于進(jìn)行文檔設(shè)置的菜單欄的選項(xiàng)。標(biāo)準(zhǔn)化的輸出函數(shù),不需要對(duì)這些消息響應(yīng)函數(shù)進(jìn)行重載。在應(yīng)用程序類的InitInstance()函數(shù)中建立了一個(gè)文檔模板。 3.上機(jī)過(guò)程出現(xiàn)的問(wèn)題及解決方案:最開(kāi)始編制的程序只是單純的畫(huà)出泡泡,本應(yīng)顯示的菜單欄沒(méi)有出現(xiàn),也不能完成相應(yīng)的操作,查找關(guān)于MFC的相關(guān)資料和請(qǐng)教他人發(fā)現(xiàn),問(wèn)題出在沒(méi)有將所建文檔與響應(yīng)的操作對(duì)應(yīng)聯(lián)系起來(lái),后來(lái)設(shè)置了文檔指針CMyDoc* pDoc = GetDocument();各個(gè)操作都必須將文檔初始化后利用指針進(jìn)行關(guān)聯(lián),用pDoc-AddBubble(rectBubble);修改文檔數(shù)據(jù),在每次對(duì)文檔的打開(kāi),關(guān)閉,創(chuàng)建新文檔前需進(jìn)行對(duì)視圖的更新操作。由于畫(huà)出的泡泡一開(kāi)始沒(méi)有設(shè)置大小和位置范圍,在對(duì)程序進(jìn)行了多次運(yùn)行后出現(xiàn)了錯(cuò)誤,有時(shí)候會(huì)在文檔邊角出現(xiàn)半個(gè)或者不完整的泡泡,仔細(xì)分析發(fā)現(xiàn)是沒(méi)有對(duì)泡泡的半徑進(jìn)行限制,后來(lái)加入設(shè)置位置和大小的函數(shù),int r = rand()%50+5;CRect rectBubble(point.x-r, point.y-r, point.x+r, point.y+r);重新運(yùn)行后解決了問(wèn)題。4.程序中可以改進(jìn)的地方及說(shuō)明:1. 在對(duì)文檔進(jìn)行打印預(yù)覽的時(shí)候,文檔中的泡泡出現(xiàn)在過(guò)于偏上的位置,用戶對(duì)文檔的內(nèi)容不能有很清楚的了解,修改一部分函數(shù),可以達(dá)到打印輸出與屏幕顯示的比例想接近。實(shí)現(xiàn)這個(gè)功能必須在CGraphicView類中重載虛函數(shù)OnPrepareDC()。首先,在CGraphicView類的聲明中加上:virtual void OnPrepareDC(CDC *pDC,CPrintInfo *pInfo=NULL);然后采用跟鼠標(biāo)響應(yīng)消息函數(shù)一樣的方法,設(shè)置映射模式。void CGraphicView:OnPrepareDC(CDC *pDC,CPrintInfo *pInfo)pDC-SetMapMode(MM_LOMETRIC);CView:OnPrepareDC(pDC,pInfo);在修改消息映射函數(shù)OnLButtonDown(),void CGraphicView:OnLButtonDown(UINT nFlags,CPoint point)CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);CClientDC dc(this); OnPrepareDC(&dc);int r = rand()%50+5; CRect rect(point.x-r,point.y-r,point.x+r,point.y+r);InvalidateRect(rect,FALSE); dc.DPtoLP(rect); pDoc-AddBubble(rect); pDoc-SetModifiedFlag(); 這樣打印預(yù)覽效果比較好,文檔基本顯示在打印紙中部。輸入輸出:用鼠標(biāo)左鍵在窗口客戶區(qū)吹泡泡。使用文件菜單中的打印選項(xiàng)可打印窗口圖象,圖象位于打印紙上部,比例恰當(dāng).分 析:由于OnDraw()函數(shù)輸出使用邏輯坐標(biāo),所以存儲(chǔ)數(shù)據(jù)(泡泡的包含矩形)也使用邏輯坐標(biāo)。在OnLButtonDown()函數(shù)中鼠標(biāo)位置參數(shù)point為物理坐標(biāo),首先據(jù)此生成泡泡的包含矩形(物理坐標(biāo)),更新窗口客戶區(qū)的相關(guān)區(qū)域(物理坐標(biāo)),然后將物理坐標(biāo)的泡泡包含矩形轉(zhuǎn)換為邏輯坐標(biāo)并存入文檔。CView類的虛函數(shù)OnPrepareDC()用于設(shè)置設(shè)備環(huán)境,其原型為:virtual void OnPrepareDC( CDC* pDC,CPrintInfo* pInfo = NULL );其中參數(shù)pDC為指向設(shè)備環(huán)境的指針,pInfo為指向CPrintInfo類對(duì)象的指針。CPrintInfo類用來(lái)存放與打印有關(guān)的信息,其數(shù)據(jù)成員m_nCurPage為當(dāng)前打印頁(yè)的號(hào)碼;m_rectPage存放著當(dāng)前打印紙上的可打印區(qū)域。常用成員函數(shù)有:設(shè)置從第幾頁(yè)開(kāi)始打印。其原型為:void SetMinPage( UINT nMinPage );其中參數(shù)nMinPage為開(kāi)始打印的頁(yè)號(hào)。如果從文檔的第1頁(yè)開(kāi)始打印,則nMinPage的值應(yīng)為1。2. 繪制五顏六色的泡泡1在程序首部添加文件包含命令:#include 2在框架窗口類聲明中添加一個(gè)COLORREF類型的數(shù)組,存放各泡泡的顏色:COLORREF m_colorBubble MAX_BUBBLE;3修改鼠標(biāo)左鍵消息映射函數(shù),添加使用顏色選擇公用對(duì)話框的代碼:void CMyWnd:OnLButtonDown ( UINT nFlags,CPoint point )if(m_nBubbleCount MAX_BUBBLE)m_colorBubblem_nBubbleCount = RGB(200,200,200);CColorDialog dlg(m_colorBubblem_nBubbleCount);if(dlg.DoModal() = IDOK)m_colorBubblem_nBubbleCount = dlg.GetColor();int r = rand()%50+10;CRect rect(point.x-r,point.y-r,point.x+r,point.y+r);m_rectBubblem_nBubbleCount = rect;m_nBubbleCount+;InvalidateRect(rect,FALSE);4修改OnPaint()成員函數(shù),添加根據(jù)泡泡顏色使用畫(huà)刷的代碼:void CMyWnd:OnPaint()CPaintDC dc(this);CBrush brushNew,*pbrushOld;for(int i=0; im_nBubbleCount; i+)brushNew.CreateSolidBrush(m_colorBubblei);pbrushOld = dc.SelectObject(&brushNew);dc.Ellipse(m_rectBubblei);dc.SelectObject(pbrushOld);brushNew.DeleteObject();輸入輸出:在窗口客戶區(qū)點(diǎn)擊鼠標(biāo)左鍵會(huì)彈出一顏色選擇公用對(duì)話框,用戶選擇泡泡顏色后可在窗口相應(yīng)位置顯示一彩色泡泡。分 析:在鼠標(biāo)左鍵消息響應(yīng)函數(shù)中,在添加泡泡前先將泡泡的顏色初始化為淺灰色。這樣,即使用戶按Cancel按鈕退出顏色選擇對(duì)話框,泡泡的顏色也已設(shè)置好。在顯示泡泡時(shí),由于各個(gè)泡泡的顏色均可能不同,因此將建立畫(huà)刷的工作放在循環(huán)中進(jìn)行。這時(shí)要注意在顯示完泡泡后要及時(shí)銷毀原來(lái)的畫(huà)刷(使用CBrush:DeleteObject()畫(huà)刷)。否則,再次創(chuàng)建畫(huà)刷時(shí)會(huì)出現(xiàn)錯(cuò)誤。5.程序中可以擴(kuò)充的功能及設(shè)計(jì)實(shí)現(xiàn)構(gòu)想:修改程序部分功能,希望實(shí)現(xiàn)在文檔區(qū)中央顯示一個(gè)矩形的框,并在其中可以顯示某個(gè)你提前設(shè)置的字符。在原程序中向派生類CmyWnd中添加OnPaint()函數(shù)。函數(shù)中設(shè)置畫(huà)筆以及繪制矩形的長(zhǎng),寬的參數(shù)。還要設(shè)置控制矩形位置的參數(shù),可以將上,下,左,右的坐標(biāo)賦值,以此限定矩形在文檔中出現(xiàn)的位置。再添加字符串處理函數(shù),對(duì)要鍵入的字符進(jìn)行錄入。更進(jìn)一步的,可以在文檔中對(duì)顯示的字符進(jìn)行刪除,修改等的操作。這需要設(shè)置數(shù)組指針,存放字符數(shù)組,便于對(duì)其進(jìn)行操作。由于程序中的鼠標(biāo)消息響應(yīng)函數(shù),所以,需設(shè)法將數(shù)組指針與消息宏映射聯(lián)系起來(lái)。四.用戶手冊(cè)1.運(yùn)行環(huán)境:操作系統(tǒng):windowXP開(kāi)發(fā)軟件:Visual C+ 6.02.操作過(guò)程及演示1.)用戶首先打開(kāi)VC+6.0運(yùn)行環(huán)境,在新建選項(xiàng)卡工程中選擇“win32 Application”,鍵入工程名,在新建文件中選擇選C+ source file鍵入文件名。2.)輸入源程序。3.)在新建選項(xiàng)卡中選擇資源腳本,鍵入名稱。將剛建立的資源文件關(guān)閉,然后使用菜單選項(xiàng)“File/Open”調(diào)出打開(kāi)文件對(duì)話框,在其中選擇資源文件XX.rc,并在對(duì)話框底部的Open As組合框中選擇Text(以文本方式打開(kāi)),按下“打開(kāi)(O)”按鈕以文本方式重新打開(kāi)資源文件。將原來(lái)的所有內(nèi)容刪除,替換為文本02.Txt的內(nèi)容。(02.txt內(nèi)容見(jiàn)附錄)。在菜單欄工程欄選擇設(shè)置,在常規(guī)選項(xiàng)卡下選擇“使用MFC作為共享的DLL”。如圖4.)運(yùn)行程序,出現(xiàn)畫(huà)出泡泡的界面。鼠標(biāo)左鍵點(diǎn)擊隨即畫(huà)出圓形泡泡,大小隨機(jī)。使用顏色設(shè)置對(duì)話框選擇改變泡泡顏色。完成后可以對(duì)文檔進(jìn)行新建,打開(kāi),保存,另存等的操作。至此,程序運(yùn)行結(jié)束。3.運(yùn)行結(jié)果程序截圖如下:畫(huà)泡泡:保存:打印預(yù)覽(可以改進(jìn))關(guān)閉,新建:五.設(shè)計(jì)總結(jié)此次課程設(shè)計(jì)的內(nèi)容為在客戶區(qū)實(shí)現(xiàn)吹泡泡的功能,程序的完成需要用到數(shù)組,類,派生,重載,以及封裝,內(nèi)聯(lián)函數(shù),以及對(duì)消息響應(yīng)函數(shù)的了解和簡(jiǎn)單操作。MFC中用包含矩形表示。需要設(shè)置一數(shù)組,每當(dāng)用戶按下鼠標(biāo)左鍵時(shí),就產(chǎn)生一個(gè)泡泡的數(shù)據(jù)存入數(shù)組中。首先程序中需設(shè)置一個(gè)存放所有泡泡的包含矩形的數(shù)組m_rectBubble。m_rectBubble設(shè)置為類CMyDoc的私有數(shù)據(jù)成員。函數(shù)函數(shù)GetBubble()用于從數(shù)組中取一個(gè)泡泡的包含矩形;函數(shù)AddBubble()用于將一個(gè)泡泡的包含矩形加入數(shù)組。以上為對(duì)泡泡數(shù)據(jù)的存放與處理過(guò)程。由于是首次接觸MFC編程,MFC的封裝性能使程序的書(shū)寫(xiě)變得很簡(jiǎn)單,但同時(shí)增加了理解難度,找了很多關(guān)于MFC的資料和視頻學(xué)習(xí)基本的類和派生,更重要的是它的消息響應(yīng)函數(shù)的實(shí)現(xiàn)功能;可視化的編程界面友好,清晰而美觀。通過(guò)吹泡泡的課程設(shè)計(jì),總結(jié)了一點(diǎn)經(jīng)驗(yàn),一開(kāi)始的程序只能實(shí)現(xiàn)單純的吹泡泡,因?yàn)橛辛说膹?qiáng)大的擴(kuò)展功能,在一個(gè)簡(jiǎn)單的程序中修改添加響應(yīng)函數(shù),進(jìn)一步實(shí)現(xiàn)了保存等的菜單功能,在此基礎(chǔ)上,程序可以實(shí)現(xiàn)更多的功能,為此提供了很好的平臺(tái)。在兩周的學(xué)習(xí)中,時(shí)間緊迫,有點(diǎn)手忙腳亂,程序做的也不盡人意,還有很多要改進(jìn)和完善的地方。最大的收獲是學(xué)習(xí)了新的編程知識(shí),擴(kuò)展了視野。自己學(xué)習(xí)的過(guò)程,對(duì)產(chǎn)生的錯(cuò)誤需要多方查證才能進(jìn)行改善,這樣比平時(shí)更加深了對(duì)知識(shí)的理解與掌握力。對(duì)學(xué)習(xí)是很好的鞏固和提高。 由于對(duì)MFC來(lái)說(shuō)我還是個(gè)初學(xué)者,一開(kāi)始照著資料慢慢的測(cè)試運(yùn)行,很多東西只看懂形勢(shì)而不懂意義。在調(diào)試與實(shí)現(xiàn)的過(guò)程中逐步開(kāi)始對(duì)程序有了深入的認(rèn)識(shí),逐漸熟練并掌握了它的編程方法。對(duì)各種控制結(jié)構(gòu)及語(yǔ)句、數(shù)組的基本與高級(jí)應(yīng)用、指針數(shù)組、字符數(shù)組、動(dòng)態(tài)數(shù)組、函數(shù)的定義、調(diào)用方式;函數(shù)在編程中的具體應(yīng)用;以及變量存儲(chǔ)特征
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦山資源管理信息化與智能化考核試卷
- 外貿(mào)英語(yǔ)函電易露露課件
- 船舶拆除作業(yè)中的質(zhì)量控制關(guān)鍵點(diǎn)考核試卷
- 塑造卓越行為模式
- 塑造活力校園文化
- 碩士論文攻略
- 寧夏警官職業(yè)學(xué)院《全面預(yù)算管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林省長(zhǎng)春市南關(guān)區(qū)市級(jí)名校2024-2025學(xué)年中考模擬最后十套:生物試題(八)考前提分仿真卷含解析
- 江蘇省無(wú)錫市錫東片2025屆初三下學(xué)期質(zhì)量檢查(一)化學(xué)試題含解析
- 江西省鄱陽(yáng)縣2025屆初三年級(jí)第三次月考語(yǔ)文試題含解析
- 急產(chǎn)分娩應(yīng)急演練方案
- JBT 11699-2013 高處作業(yè)吊籃安裝、拆卸、使用技術(shù)規(guī)程
- 24春國(guó)家開(kāi)放大學(xué)《離散數(shù)學(xué)》大作業(yè)參考答案
- 2024年1月普通高等學(xué)校招生全國(guó)統(tǒng)一考試適應(yīng)性測(cè)試(九省聯(lián)考)化學(xué)試題(適用地區(qū)安徽)(試卷)
- 新能源綜合能源系統(tǒng)的設(shè)計(jì)與優(yōu)化
- 中國(guó)居民膳食指南(全)
- 乳腺結(jié)節(jié)課件
- 小學(xué)綜合實(shí)踐活動(dòng)課二年級(jí)上冊(cè)《彩蛋不倒翁》公開(kāi)課教學(xué)課件
- 2023發(fā)電企業(yè)運(yùn)行管理辦法
- 醫(yī)院勞務(wù)派遣投標(biāo)方案(技術(shù)方案)
- 小學(xué)英語(yǔ)《Module-3-Things-around-us》課件設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論