c++實(shí)踐報告書(shū)

時(shí)間:2022-07-03 12:22:11 報告范文 我要投稿
  • 相關(guān)推薦

c++實(shí)踐報告書(shū)范文2篇

【c++實(shí)踐報告書(shū)例一】

c++實(shí)踐報告書(shū)范文2篇

本科生課程設計(實(shí)踐)設計報告

(程序設計基礎)

題 目

學(xué)生學(xué)號 學(xué)生姓名

指導教師 學(xué) 院 專(zhuān)業(yè)班級 MFC課程設計

計算機基礎教學(xué)實(shí)驗中心

2015年 06月 14 日

一、引言

MFC(Microsoft Foundation Class Library, 微軟基礎類(lèi)庫)是微軟基

Windows平臺下的C++類(lèi)庫集合。MFC包含了所有與系統相關(guān)的類(lèi),其中封裝了大多數的API(Application Program Interface)函數,提供了應用程序框架和開(kāi)發(fā)應用程序的工具,如應用程序向導、類(lèi)向導、可視化資源設計等高效工具,用消息映射處理消息響應,大大簡(jiǎn)化了Windows應用程序的開(kāi)發(fā)工作,使程序員可以從繁重的編程工作中解脫出來(lái),提高了工作效率。

程序設計實(shí)踐旨在課堂學(xué)習的基礎上幫助學(xué)生掌握C++應用系統的開(kāi)發(fā)方法和技巧。在系統學(xué)習完《C++程序設計》這門(mén)課程后,通過(guò)實(shí)踐對幾個(gè)小型C++應用程序實(shí)例設計與實(shí)現過(guò)程分析,幫助學(xué)生利用C++開(kāi)發(fā)應用系統的一般方法和步驟,掌握MFC的基本知識。

這次實(shí)踐采用學(xué)生上機與老師集體輔導的方式,以完成老師下發(fā)的《C++語(yǔ)言課程設計任務(wù)書(shū)》為要求和目的,運用課堂上學(xué)習的C++基礎知識,采用Visual C++ MFC編程系統,以全新的角度和感知去認識C++語(yǔ)言在編程方面的優(yōu)越性。在實(shí)踐過(guò)程中,基于對話(huà)框的MFC應用程序,達到了解基本控件,如靜態(tài)文本框、命令按鈕、編輯框、列表框、組合框等的使用的目的。還有理解Windows應用程序采用“消息傳遞、事件驅動(dòng)”的運行機制。

本次實(shí)踐的任務(wù)主要分為兩個(gè)部分:

(一) 使用Visual C++ MFC編程實(shí)現以下功能:

1. 輸入一元二次方程ax2+bx+c=0 的系數a、b、c,計算并輸出兩個(gè)根x1、x2.

2. 編寫(xiě)一個(gè)能對列表框進(jìn)行項目添加、修改和刪除操作的應用程序。

3. 編寫(xiě)一個(gè)程序,繪制-2π~2π之間的sin曲線(xiàn)。

4. 用定時(shí)器控制蝴蝶在窗口中飛舞。等共10道。

(二) 將第一部分中選擇3~5題,做一個(gè)綜合程序,要求有登陸界面和調

用各部分的功能。

二、總體設計

本次實(shí)踐的主要目的就是了解和掌握運用MFC編程的一般思想和具體的操作步驟。實(shí)踐主要是基于MFC的多文檔對話(huà)框和單文檔視圖,通過(guò)實(shí)踐完成第一大部分的任務(wù)之后,還要完成第二部分的綜合題目。第二部分的任務(wù)由學(xué)生自主發(fā)揮,自主找資料,詢(xún)問(wèn)同學(xué)和老師。

第一部分的任務(wù)比較簡(jiǎn)單,具體的就不再描述。關(guān)于第二部分,我做了一個(gè)基于對文檔對話(huà)框。首頁(yè)為一個(gè)登陸頁(yè)面,需要輸入用戶(hù)名和密碼才能登陸,登陸后的頁(yè)面是把第一大部分的幾個(gè)題目連接起來(lái)。達到預覽的目的。

三、詳細設計

實(shí)踐前首先要認識AppWizard的工作環(huán)境。其項目工作區一共有三個(gè)選項卡分別為“ResourceView”“ClassView”“FileView”,中間是對話(huà)框設計界面,右邊是控件工具欄。

實(shí)踐過(guò)程中,我們是先完成第一大部分的任務(wù)。雖然在第一次上機實(shí)踐前,我仔細地閱讀了老師給我們下發(fā)的資料,并且結合《C++程序設計實(shí)踐教程》了

解相關(guān)知識,但是在實(shí)踐時(shí)結果不理想。主要是對創(chuàng )建對話(huà)框程序的步驟沒(méi)有掌握。在經(jīng)過(guò)幾次嘗試失敗后,總結其一般步驟為:(1)建立基于對話(huà)框的MFC應用程序框架;(2)放置控件;(3)設置控件屬性;(4)為控件連接變量,即為控件命名;(5)添加并且編寫(xiě)消息處理函數。

基于對話(huà)框的MFC程序設計,對各種控件的了解和使用顯得特別重要。這里就不一一詳細介紹它們的功能?丶刂茩谝粋(gè)有26個(gè)控件圖標,每一個(gè)圖標都可以看做一個(gè)對象,消息便是通過(guò)函數對它們進(jìn)行操作。每一個(gè)控件都有兩個(gè)重要而且必不可少的基本屬性:ID和標題。ID便是該控件的標識,某些函數需要通過(guò)ID對控件進(jìn)行操作。

了解一定相關(guān)知識后,對課程實(shí)踐有了很大的幫助。其中“輸入一元二次方程ax2+bx+c=0 的系數a、b、c,計算并輸出兩個(gè)根x1、x2”這個(gè)題目比較復雜,而且與C++連續很緊密。其中的有這樣的語(yǔ)句m_x1=(-b+sqrt(b*b-4*a*c))/(2*a); m_x2=(-b-sqrt(b*b-4*a*c))/(2*a),這就是我們在課堂上學(xué)習的C++基本語(yǔ)句,在實(shí)踐過(guò)程中考驗學(xué)生的靈活運用能力。完成這個(gè)題目的關(guān)鍵是把每個(gè)編輯框(控件)連接好變量和選的數據類(lèi)型,接下來(lái)的就是編寫(xiě)消息處理函數。這道題很全面地體現了MFC的“消息傳遞、事件驅動(dòng)”的思想,在操作步驟方面也在很多地方得到了實(shí)踐。

MFC編程除了基于多文本對話(huà)框以外,還有很重要的一部分是基于單文檔界面的應用程序,如Windows自帶的Notepad程序。在本次實(shí)踐的第一大部分的后5個(gè)小題就是基于單文檔的。那么首先要對其有一定的了解:文檔/視圖結構的思想是將數據的管理與顯示分離,其中文檔用于管理應用程序的數據,而視圖是用戶(hù)界面,用于顯示、打印文檔中的數據,并管理與用戶(hù)的交互。SDI具有文檔/視圖結構的應用程序框架,該框架包括應用程序類(lèi)、窗口框架類(lèi)、文檔類(lèi)和視圖類(lèi),編程的任務(wù)是在文檔類(lèi)和視圖類(lèi)中添加適當的代碼。其中文檔類(lèi)中一個(gè)重要的成員函數是OnNewDocument(),用戶(hù)在此添加代碼完成對數據的初始化;而視圖類(lèi)中最重要的成員函數是OnDraw(),通過(guò)在該函數中添加代碼實(shí)現窗口內容的輸出。

本次實(shí)踐是對單文檔的典型實(shí)例,包括:

? 利用畫(huà)筆、畫(huà)刷等工具及位圖處理的方法實(shí)現文字和圖形的輸出。

? 利用定時(shí)器控件制作動(dòng)畫(huà)程序。

? 對鼠標和鍵盤(pán)進(jìn)行編程的基本方法。

? 文件、字體、顏色等幾種通用對話(huà)框的使用方法及自定義對話(huà)框的設計、調用方法。 ? 菜單的設計方法。

雖然進(jìn)行充分的準備,實(shí)踐中還是遇到了很多的困難和問(wèn)題。在完成題目“用定時(shí)器控制蝴蝶在窗口中飛舞”時(shí),主要的問(wèn)題就是在插入蝴蝶圖片的,嘗試了幾次都沒(méi)有編譯成功。最終再詢(xún)問(wèn)同學(xué)后,才知道是要把GIF格式的圖片分割成一幀一幀,然后才能插入。最后用定時(shí)器控制,達到動(dòng)態(tài)的效果。

在完成了第一大部分的任務(wù)后,第二部分的綜合題是一個(gè)不小的挑戰對我來(lái)說(shuō)。要靠自己去網(wǎng)上或者圖書(shū)館查找資料。在經(jīng)過(guò)一番準備后,最終決定做一個(gè)相對簡(jiǎn)單的基于多文檔對話(huà)框的登陸界面,把幾個(gè)原來(lái)的程序文件連接起來(lái)。但是在這個(gè)過(guò)程中,完全要靠自己一步一步去探索,當然也遇到了各種各樣的困難和挑戰。

關(guān)鍵是在連接各部分對話(huà)框,經(jīng)過(guò)不斷的實(shí)驗,不斷的調試程序,總結的操作步驟如下:(1)創(chuàng )建工程,MFC Application(exe),工程命名按要求命名;(2)工程建立后有如圖對話(huà)框,將途中的靜態(tài)文本框和按鈕都刪掉,留下空白,再使用靜

態(tài)文本,編輯框,按鈕和靜態(tài)圖片重新排版,并進(jìn)行命名。注意靜態(tài)圖框應該第一個(gè)布置,不然運行時(shí)圖片會(huì )將其他控件覆蓋;(3)右擊密碼對應的編輯框,選擇屬性,選樣式中的密碼;(4)在Dialog上右擊選擇插入DIG,重復插入4個(gè),依次作為菜單,題目1,題目2和題目3的對話(huà)框,并對其分別創(chuàng )建類(lèi),以菜單對話(huà)框為例,改一下表頭為“菜單”,在對話(huà)框空白處雙擊,點(diǎn)OK創(chuàng )建類(lèi),并對其命名(假如命名為MyMenu);(5)回到登錄界面的對話(huà)框,雙擊登錄控件,出現如圖按鈕,點(diǎn)擊OK,在頂端添加#include”MyMenu.h”,并OnButton1下添加以下代碼CString c_user,c_password;

m_user.GetWindowText(c_user);

m_password.GetWindowText(c_password);

if(c_user.IsEmpty()||c_password.IsEmpty())

{

MessageBox("用戶(hù)名或密碼不能為空","用戶(hù)登錄信息");

return;

}

if(c_user=="123"&&c_password=="123")

{

CMyMenu dlg;

dlg.DoModal();//這兩段代碼是用于調用菜單對話(huà)框

}

else

{

MessageBox("用戶(hù)名或密碼不正確","提示",MB_ICONINFORMATION); return;

(6)對對話(huà)框添加背景圖片。在如下圖文件上右擊,選擇引入,然后導入已準備好的bmp格式的圖片,然后選擇登錄界面的靜態(tài)圖框右擊,進(jìn)行如圖操作,這樣圖片就加入了,它會(huì )改掉按鈕和編輯框,這沒(méi)關(guān)系,運行后會(huì )顯示出來(lái)的;

(7)通過(guò)以上操作,已經(jīng)做好了登錄界面和實(shí)現和登錄界面與菜單對話(huà)框的連接,現在進(jìn)行菜單對話(huà)框的編輯。將原有的按鈕刪除,自己加入按鈕并命名;(8)雙擊題目1,點(diǎn)OK,在代碼頁(yè)的頂端加入如圖代碼,并在OnButton1下加入以下代碼 CT1 dlg; dlg.DoModal();其他的按相同操作。

四、設計總結

為期為兩周的課程實(shí)踐中,我體會(huì )頗多,學(xué)到的東西也很多。我懂得了如何運用MFC編寫(xiě)可視化界面的應用程序,加強了對C++的認識,復習了以前的知識,自己的邏輯思考能力,解決問(wèn)題的能力也提高了不少。從而對Microsoft Visual C++有了更加深刻的認識和體會(huì )!在這次課程設計實(shí)踐過(guò)程中我還懂得了一些程序開(kāi)發(fā)的重要步驟,總之,在這次課程設計實(shí)踐中,我收獲頗豐。

對于對任務(wù)的完成情況,第一部分主要按老師的步驟完成。第二部分,由學(xué)生自主選題,自主設計完成?偟膩(lái)說(shuō),我個(gè)人對自己的完成情況感覺(jué)良好。當然,老師的悉心指導和同學(xué)的幫助是不能忽視的,在此感謝所有在本次課程設計實(shí)踐過(guò)程中對我細心指導的老師和不斷鼓勵和幫助我的同學(xué)們。

總之,此次課程實(shí)踐是對學(xué)生動(dòng)手動(dòng)腦的一次很好的鍛煉,為學(xué)生的今后發(fā)展奠定基礎。

【c++實(shí)踐報告書(shū)例二】

本科生課程設計(實(shí)踐)任務(wù)書(shū)、設計報告

(C++程序設計)

題 目 科學(xué)計算器應用程序系統 學(xué)生姓名

指導教師

學(xué) 院

專(zhuān)業(yè)班級 學(xué)生學(xué)號 吳金星 嚴暉 材料科學(xué)與工程學(xué)院 1206 0607120610

計算機基礎教學(xué)實(shí)驗中心

2013年 7 月 3 日

科學(xué)計算器管理信息系統

摘要:本設計是簡(jiǎn)單計算器,日常計算機使用中,常常涉及到一些有關(guān)計算的問(wèn)題,一個(gè)小型的計算器軟件變得非常有用,該校型計算器需要空間資源較少,對電腦其他程序的應用影響較小。它的設計按軟件工程的方法進(jìn)行,系統具有良好的界面、必要的交互信息和較好的健壯性;醒目美觀(guān)的軟件封面。使用人員能快捷簡(jiǎn)單地進(jìn)行操作。即時(shí)準確地獲得需要的計算的結果,充分降低了數字計算的難度和節約了時(shí)間,對人們的生活有一定的幫助。

關(guān)鍵詞:程序設計;計算器;MFC;按鈕控件

1. 計算器系統開(kāi)發(fā)設計思想

⑴實(shí)驗目的

①通過(guò)實(shí)踐加強對程序設計語(yǔ)言課程知識點(diǎn)的理解和掌握,培養對課程知識綜合運用能力、實(shí)際分析問(wèn)題能力及編程能力,養成良好的編程習慣。

②通過(guò)實(shí)踐進(jìn)一步領(lǐng)會(huì )程序設計的特點(diǎn)和應用,提高運用C++ 以及面向對象知識解決實(shí)際問(wèn)題的能力。

③通過(guò)實(shí)踐掌握用C++ 編寫(xiě)面向對象的實(shí)用程序的設計方法,對面向對象方法和思想增加感性的認識;學(xué)會(huì )利用C++程序設計語(yǔ)言編寫(xiě)出一些短小、可靠的Windows實(shí)用程序,切實(shí)提高面向對象的程序設計能力。為后續的相關(guān)課程的學(xué)習打下基礎。

⑵實(shí)驗要求

①二進(jìn)制、八進(jìn)制、十進(jìn)制及十六進(jìn)制數的加、減、乘、除、乘方、取模等簡(jiǎn)單計算

②科學(xué)計算函數,包括(反)正弦、(反)余弦、(反)正切、(反)余切、開(kāi)方、指數等函數運行

③以角度、弧度兩種方式實(shí)現上述部分函數

④具備歷史計算的記憶功能

⑤對不正確的表達式能指出其錯誤原因

⑥整理上機步驟,完成實(shí)驗報告、提交可運行的程序,給出實(shí)驗數據和實(shí)驗結果

2、計算器系統功能及系統設計介紹

⑴功能說(shuō)明

它的設計按軟件工程的方法進(jìn)行,系統具有良好的界面;必要的交互信息;簡(jiǎn)約美觀(guān)的效果。使用人員能快捷簡(jiǎn)單地進(jìn)行操作。即可單機按鈕進(jìn)行操作,也可直接通過(guò)鍵盤(pán)直接輸入。即時(shí)準確地獲得需要的計算的結果,充分降低了數字計算的難度和節約了時(shí)間,對人們的生活有一定的幫助。

①包含的功能有:加、減、乘、除運算,開(kāi)方、求倒數等功能。②計算器上數字09為一個(gè)控件數組,加、減、乘、除為一個(gè)控件數組,其余為單一的控件。③給對話(huà)框添加菜單。④計算功能基本上是用系統內部函數。⑤程序可以能自動(dòng)判斷輸入數據的正確性,保證不出現多于一個(gè)小數點(diǎn)、以0開(kāi)頭等不正,F象。⑥“C”按鈕可以清除所有已輸入的數據從頭計算。

⑵設計思路

①算法基本流程,數值計算及功能:②主要部分為按鍵后的接受處理

③鍵入為數字則檢查和增長(cháng)操作數,有前算符則增長(cháng)操作數1,否則增長(cháng)操作數

2。計算器基本按:鍵入操作數1,鍵入運算符(若為單目算符即直接運算),鍵入操作數2,再鍵入算符即運算前算符,若為當前鍵入為單目算符即再運算,結果保留在操作數1中,并返回在界面顯示。

④在每次運算前將操作數進(jìn)行進(jìn)制轉為十進(jìn)制,在運算結束后操作數還原進(jìn)制。 ⑤其中鍵入特殊算符和功能鍵作特殊處理,如:退格,進(jìn)制選鍵和”=”,”CE”,”C”等。顯示鍵入的相關(guān)信息,如果鍵入不合法即提示錯誤。 ⑶算法流程圖

⑷關(guān)鍵功能實(shí)現

①操作數的輸入,編輯框所關(guān)聯(lián)的變量為m_num,程序開(kāi)始時(shí)為零。每按下一個(gè)數字鍵按鈕,就把它累加到m_num里并刷新顯示。BOOL型變量ele來(lái)判斷是否有小數點(diǎn)和一個(gè)整型數dint來(lái)表示小數點(diǎn)后的數據的位數。當ele=TRUE時(shí),表示有小數點(diǎn),否則則表示無(wú)小數點(diǎn)。按下小數點(diǎn)按鈕后執行ele=TRUE。當按下一個(gè)數字鍵時(shí),首先根據ele判斷是否按下小數點(diǎn),若有則把小數點(diǎn)后數的位數加1,dint則為此次鍵入的數所處的位數,將鍵入的數除以dint個(gè)10然后累加到編輯框所關(guān)聯(lián)的變量m_num上,若沒(méi)有則把m_num乘以10,然后累加到編輯框所關(guān)聯(lián)的變量m_num上。

②單目運算符功能的實(shí)現,由于單目運算符中必須有執行運算的函數,因而頭文件中要加入math.h,如m_num=sqrt(m_num).按下按鈕即可實(shí)現其功能。為實(shí)現連續運算,程序有所改動(dòng)。

③雙目運算符功能的實(shí)現,雙目運算符需要兩個(gè)操作數才能運算,所以在執行雙目運算符按鈕的函數代碼中,要把m_num中的值保存到變量num2中,然后把m_num清零。這樣即可保存第一個(gè)操作數。另外先定義了一個(gè)整形變量addt,在不同的雙目運算符中給addt賦不同的值,然后在等號中用switch語(yǔ)句來(lái)匹配addt值來(lái)判斷需要執行何種雙目運算。為實(shí)現連續運算,程序有所改動(dòng)。 ④退格鍵功能的實(shí)現,當按下一次退格按鈕時(shí),若m_num為整數,只需對其中數據除以10再取整即可,若按下一次退格按鈕為小數,則根據小數點(diǎn)后數據的位數dint進(jìn)行操作,先對m_num執行(dint-1)次乘以10運算,然后取整,接著(zhù)執行(dint-1)次除以10的運算即可。完成后需要把dint將減小1。

⑤正負號功能的實(shí)現,在頭文件中定義一個(gè)BOOL型變量ele2來(lái)判斷m_num的正負。ele2=TRUE時(shí)表示為正。在鍵入操作數時(shí)需要用到ele2。在正負號按鈕的消息響應函數內容為m_num=-m_num;ele2=!ele2。

3.計算器系統開(kāi)發(fā)的體會(huì )

實(shí)踐是獲取知識的一個(gè)極其重要的途徑,無(wú)論是過(guò)去還是現在抑或是將來(lái),我都堅信這一點(diǎn)。在這個(gè)實(shí)驗中,我堅持以實(shí)踐為導向,雖然,我沒(méi)有對CLR與.NET的系統的學(xué)習,理論理解并不多,但是在實(shí)際摸索應用的過(guò)程中,我還是學(xué)到很多東西,特別是理解了一個(gè)功能的使用方法之后,這種快樂(lè )的心情是無(wú)法描述的,F在可以靈活運用一些常用的屬性,進(jìn)行一些基本操作,以實(shí)現預期目標。

實(shí)現該計算器,當時(shí)的想法是盡量向Windows計算器靠攏?梢钥吹,這個(gè)計算器有很多Windows計算器的影子。雖然這個(gè)計算器還有很多不足,比如表達式的處理。 這個(gè)計算器的代碼都是自己思考過(guò)后寫(xiě)出來(lái)的,特別是錯誤排除部分,經(jīng)歷了很多Bug的時(shí)期。由于時(shí)間限制,可視化計算器的基本實(shí)現告一段落,在時(shí)間允許的以后再進(jìn)一步完善計算器功能。


【c++實(shí)踐報告書(shū)】相關(guān)文章:

社會(huì )實(shí)踐報告書(shū)店范文07-03

旅游類(lèi)社會(huì )實(shí)踐報告書(shū)07-03

寒假社會(huì )實(shí)踐報告書(shū)3篇07-05

2017年寒假社會(huì )實(shí)踐報告書(shū)07-08

C++基礎面試題07-13

華為C/C++筆試題07-11

經(jīng)典C/C++面試題07-11

華為C++/MFC面試題07-11

暑期社會(huì )實(shí)踐報告書(shū)(通用14篇)02-24

C/C++面試題目集錦07-13

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆