版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> C++面向?qū)ο笳n程設(shè)計(jì)報(bào)告</p><p> 院(系): 計(jì)算機(jī)工程專業(yè) </p><p> 專業(yè): 軟件 </p><p> 學(xué)生姓名: XXX </p><p> 班級:
2、_XXX___ 學(xué)號: XXX </p><p> 題目: 瀏覽器 </p><p> 起迄日期: 2011.7.5—2011.7.13 </p><p> 設(shè)計(jì)地點(diǎn): 機(jī)房209 </p>
3、<p> 指 導(dǎo) 教 師: XXX </p><p> 完成日期: 2010 年 7 月 13 日</p><p><b> 課程設(shè)計(jì)目的</b></p><p> 進(jìn)行C++面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)主要是在學(xué)習(xí)C++這門面向?qū)ο笳Z言的基礎(chǔ)上,在完成C++面向?qū)ο蟪绦?/p>
4、設(shè)計(jì)各部分實(shí)驗(yàn)的基礎(chǔ)上,通過自學(xué)MFC,掌握一種可視化編程的方法,并通過實(shí)踐加深對可視化編程與C++面向?qū)ο蟪绦蛟O(shè)計(jì)語言特點(diǎn)的認(rèn)識與理解。同時(shí),可以提高運(yùn)用C++編程語言解決實(shí)際問題的能力;鍛煉實(shí)際的編程能力、創(chuàng)新能力及團(tuán)隊(duì)組織、協(xié)作開發(fā)軟件的能力;還能提高調(diào)查研究、查閱技術(shù)文獻(xiàn)、資料以及編寫軟件設(shè)計(jì)文檔的能力。</p><p> 課程設(shè)計(jì)內(nèi)容與實(shí)現(xiàn)的功能</p><p><b&g
5、t; 內(nèi)容</b></p><p> 利用chtmlview基類,選擇單文檔,利用C++自帶的封裝類產(chǎn)生基本的瀏覽器,然后再通過添加一些功能函數(shù)實(shí)現(xiàn)瀏覽器的功能。</p><p><b> 功能</b></p><p> 所設(shè)計(jì)的瀏覽器可以實(shí)現(xiàn)前進(jìn),后退,搜索,停止,主頁,刷新等基本功能,還可以瀏覽相應(yīng)網(wǎng)址的網(wǎng)頁以及超鏈接時(shí)
6、將超鏈接的網(wǎng)址顯示在地址欄中。</p><p><b> 系統(tǒng)分析與設(shè)計(jì)</b></p><p><b> 1.系統(tǒng)分析</b></p><p><b> 1.需求分析</b></p><p> 網(wǎng)頁瀏覽器第一要能實(shí)現(xiàn)輸入網(wǎng)址后對相應(yīng)網(wǎng)址的瀏覽,這是最基本的功能。第二要
7、能實(shí)現(xiàn)打開瀏覽器后自動(dòng)產(chǎn)生一個(gè)主頁,主頁的地址可以自己設(shè)置。第三是可以實(shí)現(xiàn)后退到前一個(gè)網(wǎng)頁以及前進(jìn)到下一個(gè)網(wǎng)頁,第四是要有相應(yīng)的搜索功能使用戶在必要時(shí)實(shí)現(xiàn)進(jìn)行搜索,第五可以在網(wǎng)頁有內(nèi)容更改后可以對網(wǎng)頁進(jìn)行更新以顯示新的內(nèi)容,第六是可以停止網(wǎng)頁上的一切操作,包括視頻,音樂等下載,第七是當(dāng)用戶對網(wǎng)頁上的網(wǎng)址進(jìn)行超鏈接時(shí)可以在地址欄中顯示相應(yīng)的網(wǎng)址讓用戶明白自己的位置。</p><p><b> 2.系統(tǒng)結(jié)
8、構(gòu)</b></p><p><b> ?。?)信息</b></p><p> 在瀏覽器中處理的主要信息就是當(dāng)在地址欄中輸入網(wǎng)址后會按enter鍵,此時(shí)會有一個(gè)消息發(fā)送到框架類窗口,調(diào)用響應(yīng)函數(shù)瀏覽網(wǎng)址。</p><p><b> ?。?)行為</b></p><p> 當(dāng)輸入網(wǎng)址后按
9、下enter鍵會瀏覽相應(yīng)網(wǎng)頁,可以點(diǎn)擊后退或是前進(jìn)鍵瀏覽下一個(gè)或是后一個(gè)網(wǎng)頁,當(dāng)點(diǎn)擊搜索鍵后會進(jìn)入系統(tǒng)設(shè)置的搜索網(wǎng)頁,主頁鍵可以讓用戶回到瀏覽器的主頁,點(diǎn)擊停止鍵后會停止瀏覽器對網(wǎng)頁的一切操作。</p><p><b> ?。?)表示</b></p><p> 瀏覽器是屬于網(wǎng)絡(luò)類的程序,基類為chtmlview類,利用詞類MFC會自動(dòng)產(chǎn)生一個(gè)瀏覽器的基本窗口,以及一
10、個(gè)地址欄。</p><p><b> 2、系統(tǒng)設(shè)計(jì):</b></p><p><b> 2.1、模塊設(shè)計(jì):</b></p><p> 2.2、數(shù)據(jù)結(jié)構(gòu)說明:</p><p> 此瀏覽器中對隊(duì)列以及棧等抽象數(shù)據(jù)類型沒有太多的應(yīng)用,故在此不做過多敘述。</p><p>
11、 2.3、算法流程圖:</p><p> (1)基本功能實(shí)現(xiàn)流程圖-----------------------(2)實(shí)現(xiàn)超鏈接流程圖</p><p> 四、系統(tǒng)測試與調(diào)試分析</p><p><b> 1、系統(tǒng)測試</b></p><p> 測試方法:黑盒、白盒等</p><p> 測
12、試技術(shù):單元測試、功能測試、場景測試</p><p> 測試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯(cuò)誤的輸入及其輸出結(jié)果。</p><p><b> 測試報(bào)告:</b></p><p> 1.enter鍵消息測試</p><p><b> 2.超鏈接測試</b></p><
13、;p><b> 2、調(diào)試分析:</b></p><p> 第一次運(yùn)用MFC編寫上網(wǎng)類的程序還是出現(xiàn)了很多的問題。</p><p> 這個(gè)瀏覽器的編寫在剛開始建工程時(shí)會有好幾步不同于其他程序的建立,并不是每一步都用那個(gè)默認(rèn)的,需要根據(jù)需要進(jìn)行選擇,第一次進(jìn)行編寫時(shí)忽略了這些問題導(dǎo)致程序無法按照想象的運(yùn)行。</p><p> 在編寫程
14、序時(shí)需要對前進(jìn)等基本功能設(shè)置ID號并添加相應(yīng)的功能函數(shù)和代碼,第一運(yùn)用這些東西沒有在正確的類中的正確位置進(jìn)行添加,使得出現(xiàn)了錯(cuò)誤,功能無法正確運(yùn)行,經(jīng)過各種嘗試和查閱圖書后解決了問題。</p><p> 在解決超鏈接顯示網(wǎng)址的問題上出了較多的問題,第一是無法解決函數(shù)的代碼編寫及函數(shù)的位置,第二就是對網(wǎng)址的存儲有一些迷惑,經(jīng)過思考和詢問同學(xué)最后解決了此類問題。</p><p><b&
15、gt; 五、用戶手冊</b></p><p> 1.程序的系統(tǒng)運(yùn)行環(huán)境具體如下:</p><p> Microsoft Visual C++ 6.0</p><p> 系統(tǒng)開發(fā)語言:C++</p><p> 運(yùn)行平臺:Windows 7</p><p> 2.使用時(shí)無需安裝。</p>
16、<p> 3. 運(yùn)行程序后出現(xiàn)入圖所示就可以根據(jù)用戶需要進(jìn)行操作了</p><p><b> 六、程序清單</b></p><p> (1)在myWebView.cpp實(shí)現(xiàn)文件中,添加上述六個(gè)事件處理函數(shù)的代碼。</p><p> //前進(jìn)到下一個(gè)網(wǎng)頁</p><p> void CMyWebVi
17、ew::OnFoward() { GoForward(); }</p><p><b> //退到前一個(gè)網(wǎng)頁</b></p><p> void CMyWebView::OnBack() { GoBack(); }</p><p><b> //停止網(wǎng)頁的下載</b></p><p>
18、void CMyWebView::OnStop() { Stop(); } </p><p><b> //刷新當(dāng)前的網(wǎng)頁</b></p><p> void CMyWebView::OnUpdate() { Refresh(); }</p><p><b> //回到主頁</b></p><
19、p> void CMyWebView::OnHomepage() { GoHome(); }</p><p><b> //進(jìn)行搜索</b></p><p> void CMyWebView::OnSearch() { GoSearch(); }</p><p> ?。?)在MainFrm.h文件中,添加消息處理函數(shù)的聲明:&l
20、t;/p><p><b> public:</b></p><p> void OnNew();</p><p> 在MainFrm.cpp文件中,添加該函數(shù)的實(shí)現(xiàn)代嗎:</p><p> void CMainFrame::OnNew()</p><p> {CString pp;&l
21、t;/p><p> //獲得用戶在地址欄中輸入的URL(網(wǎng)頁地址)</p><p> m_wndDlgBar.GetDlgItem(IDC_ADDR)->GetWindowText(pp);</p><p><b> //瀏覽指定的網(wǎng)頁</b></p><p> ((CMyWebView*)GetActiveV
22、iew())->Navigate(pp);</p><p><b> }</b></p><p> 其中m_wndDlgBar是代表地址欄文本框所在的對話框條控件的成員變量,利用它的GetDlgItem方法取得地址欄控件的ID,再利用地址欄控件的GetWindowText方法獲得用戶輸入的網(wǎng)址。另外,由GetActiveView()函數(shù)返回的是一個(gè)CView
23、類的指針,必須將它強(qiáng)制轉(zhuǎn)換成本應(yīng)用程序視圖類的指針,才能調(diào)用Navigate()函數(shù)。 </p><p> (3)在MainFrm.cpp文件中,再消息映射(MESSAGE_MAP)段中添加自己的消息映射的宏。用ON_COMMAND命令建立IDOK消息和處理函數(shù)OnNew的映射關(guān)系。</p><p> BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)&l
24、t;/p><p> //{{AFX_MSG_MAP(CMainFrame)</p><p> ON_WM_CREATE()</p><p> //}}AFX_MSG_MAP</p><p> ON_COMMAND(IDOK, OnNew) //自己的消息映射宏</p><p> END_MESSAGE_M
25、AP() </p><p> ?。?)在myWebView.h文件的類定義前面添加包含語句</p><p> #include "myWebDoc.h"</p><p> ?。?)在MainFrm.h文件中,添加處理函數(shù)的聲明:</p><p><b> public:</b></p>
26、<p> void SetPage(LPCTSTR lpszURL); </p><p> 在MainFrm.cpp文件中,添加該函數(shù)的實(shí)現(xiàn)代嗎:</p><p> void CMainFrame::SetPage(LPCTSTR lpszURL)</p><p><b> {</b></p><p&g
27、t; m_wndDlgBar.GetDlgItem(IDC_ADDR)->SetWindowText(lpszURL);</p><p><b> }</b></p><p> 該函數(shù)頁使用了地址欄所在的對話框條控件對應(yīng)的成員變量,將指定的URL顯示在地址欄中。 </p><p> 用類向?qū)閼?yīng)用程序的CMyWebView類添加O
28、nDocumentComplete()事件處理函數(shù)。并在myWebView.cpp文件中添加它的實(shí)現(xiàn)代碼</p><p> void CMyWebView::OnDocumentComplete(LPCTSTR lpszURL) </p><p><b> {</b></p><p> // TODO: Add your speciali
29、zed code here and/or call the base class</p><p> ((CMainFrame*)GetParentFrame())->SetPage(lpszURL);</p><p> //CHtmlView::OnDocumentComplete(lpszURL);</p><p><b> }</b&
30、gt;</p><p> ?。?)在MainFrm.cpp文件前面添加包含語句</p><p> #include "myWebView.h"</p><p> 在myWebView.cpp文件前面添加包含語句。</p><p> #include "MainFrm.h"</p>&
31、lt;p><b> 七、體會與自我評價(jià)</b></p><p> 為期兩個(gè)周的C++課程設(shè)計(jì)在不知不覺中結(jié)束了?;叵雱倓傞_始課設(shè)的日子,那時(shí)有些憧憬,想一展身手看看自己的水平,但是也望而卻步,因?yàn)橐龅膶?shí)驗(yàn)竟然是用MFC來實(shí)現(xiàn)的。兩個(gè)周學(xué)會一門新的語言總是一個(gè)很大的挑戰(zhàn),當(dāng)選定了瀏覽器程序的課程設(shè)計(jì)題目之后,大概了解了一下課設(shè)需要用到的MFC的工具和運(yùn)行環(huán)境,然后就開始照著網(wǎng)上的教
32、程學(xué)習(xí)MFC,主要的參考教程為西安交大的網(wǎng)上教程。</p><p> 剛剛開始課程設(shè)計(jì)的時(shí)候,感覺MFC有太多系統(tǒng)默認(rèn)的類、函數(shù)、變量的名字以及需要用到的數(shù)據(jù)類型和指針類型,也有很多函數(shù)是搞不清楚具體的使用的,不過經(jīng)過潛心學(xué)習(xí),還是初步弄懂了MFC的主要功能和使用方法。在這個(gè)過程中要特別感謝同學(xué)給我的幫助和老師的指導(dǎo)。那時(shí)候同學(xué)都在網(wǎng)上下載MFC的教程來學(xué)習(xí),只要有好的教程,這份教程一定會通過實(shí)驗(yàn)室內(nèi)的飛鴿軟件
33、傳到我的電腦上。用了兩天半的時(shí)間對MFC進(jìn)行學(xué)習(xí)之后,就轉(zhuǎn)入了對瀏覽器程序的開發(fā)和設(shè)計(jì)。</p><p> 瀏覽器的設(shè)計(jì)需要基本前進(jìn)后退等功能,但最大的困難是解決在超鏈接時(shí)將用戶正在瀏覽的網(wǎng)址顯示在地址欄中,通過請教同學(xué)以及查閱資料解決了此問題,這次的課程設(shè)計(jì)對我來說收獲很大,即培養(yǎng)了自己的編程能力,也看到了老師們治學(xué)的嚴(yán)謹(jǐn)性,更加感覺到自己的差距,有的同學(xué)的編程能力非常強(qiáng),也有的同學(xué)語言表達(dá)能力和制作的人性化
34、界面讓我欽佩。這些都讓我看到了自己的不足,我想在以后的學(xué)習(xí)過程中我會更加努力地讓自己的各方面的素養(yǎng)提升,尤其是編程的能力。在此,還是要特別感謝李蘭老師給予我的幫助和鼓勵(lì),帶領(lǐng)我走進(jìn)C++這個(gè)神秘且豐富多彩的編程世界。感謝同學(xué)在課設(shè)的過程中給予我的無私的幫助。課程設(shè)計(jì)結(jié)束了,但我卻更加清楚未來的路應(yīng)該如何更好的走下去。我相信未來編程的路雖然難,但是我會用自己的堅(jiān)持和信心將自己武裝好,努力地把自己的路走得豐富多彩。</p>&
35、lt;p><b> 八、參考文獻(xiàn)</b></p><p> 1.鄭莉.C++語言程序設(shè)計(jì)(第3版).北京:清華大學(xué)出版社,2005.7</p><p> 2.錢能.C++程序設(shè)計(jì)教程(第2版).北京:清華大學(xué)出版社,2005.8</p><p> 3. 黃維通. Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì)(第2版).北京:清華大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++面向?qū)ο笳n程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)-- c++面向?qū)ο蟪绦蛟O(shè)計(jì)
- c++面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 圖片瀏覽器課程設(shè)計(jì)報(bào)告
- 圖片瀏覽器課程設(shè)計(jì)報(bào)告
- java瀏覽器課程設(shè)計(jì)--web瀏覽器開發(fā)
- 圖片瀏覽器課程設(shè)計(jì)報(bào)告.doc
- 圖片瀏覽器課程設(shè)計(jì)報(bào)告(vb)
- 網(wǎng)絡(luò)編程課程設(shè)計(jì)報(bào)告--圖片瀏覽器
- 網(wǎng)頁瀏覽器--java課程設(shè)計(jì)
- c++課程設(shè)計(jì)面向?qū)ο笳n程設(shè)計(jì)--銀行管理系統(tǒng)
- 網(wǎng)頁瀏覽器--java課程設(shè)計(jì)
- c++面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報(bào)告---學(xué)籍管理系統(tǒng)
- vb課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---圖片瀏覽器
- vb課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---圖片瀏覽器
- 面向?qū)ο骳++課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)--計(jì)算器設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--簡單計(jì)算器
- 面向?qū)ο笳n程設(shè)計(jì)報(bào)告
評論
0/150
提交評論