第一篇:C++實(shí)踐報(bào)告
中南大學(xué)
本科生課程設(shè)計(jì)(實(shí)踐)任務(wù)書(shū)、設(shè)計(jì)報(bào)告
(C++程序設(shè)計(jì))
題 目 學(xué)生姓名 指導(dǎo)教師
C++程序設(shè)計(jì)實(shí)踐
* *
孫 岱
學(xué) 院 地球科學(xué)與信息物理學(xué)院 專業(yè)班級(jí) 信息物理工程類1106班 學(xué)生學(xué)號(hào)
01451106**
計(jì)算機(jī)基礎(chǔ)教學(xué)實(shí)驗(yàn)中心
2012年 7 月 日
C++程序設(shè)計(jì)實(shí)踐報(bào)告書(shū)
C++是一種使用非常廣泛的電腦程式設(shè)計(jì)語(yǔ)言,在當(dāng)今網(wǎng)絡(luò)如此發(fā)達(dá)的時(shí)代能夠運(yùn)用C++語(yǔ)言進(jìn)行編程顯得尤為重要。它是一種靜態(tài)資料類型檢查的,支援多范型的通用程式設(shè)計(jì)語(yǔ)言。C++支援程序化程式設(shè)計(jì)、資料抽象化、面向?qū)ο蟪淌皆O(shè)計(jì)、泛型程式設(shè)計(jì)、基于原則設(shè)計(jì)等多種程式設(shè)計(jì)風(fēng)格。在系統(tǒng)學(xué)習(xí)完《C++程序設(shè)計(jì)基礎(chǔ)》課程后,我們?cè)诶蠋煹闹笇?dǎo)下進(jìn)行了這次C++程序設(shè)計(jì)實(shí)踐,主要以visual C++6.0為編譯環(huán)境,重點(diǎn)使用了visual C++ MFC編程實(shí)現(xiàn)實(shí)踐所要求的功能。
【任務(wù)描述】
這次實(shí)踐采用了上機(jī)實(shí)踐與老師集體輔導(dǎo)結(jié)合的方式,以完成輔導(dǎo)老師下發(fā)的《C++語(yǔ)言課程設(shè)計(jì)任務(wù)書(shū)》中指定任務(wù)與要求為目的,要求我們?cè)谝褜W(xué)過(guò)的《C++程序設(shè)計(jì)基礎(chǔ)》所掌握的一些C++語(yǔ)言的結(jié)構(gòu)和函數(shù)的基礎(chǔ)上,以全新的角度去感知和運(yùn)用C++語(yǔ)言進(jìn)行一些具有相關(guān)目的和功能的程序設(shè)計(jì)和編譯。在這次實(shí)踐中,我們統(tǒng)一以visual C++ 6.0為編譯系統(tǒng),使用visual C++ MFC編程來(lái)達(dá)到和完成輔導(dǎo)老師給的《C++語(yǔ)言課程設(shè)計(jì)任務(wù)書(shū)》中給出的題目,其中部分題目以基本對(duì)話框?yàn)閼?yīng)用程序的框架,另一部分則設(shè)計(jì)為單文檔界面(SDI)應(yīng)用程序。這些程序都具有不同的設(shè)計(jì)目的和應(yīng)用功能,運(yùn)用了常用的基本控件,如靜態(tài)文本框、命令按鈕、編輯框、復(fù)選框、列表框、組合框、滾動(dòng)條等。
本次實(shí)踐可分為三部分:
一、基于對(duì)話框的Windows應(yīng)用程序:
這部分以知識(shí)要點(diǎn)掌握與編程實(shí)例主輔結(jié)合的方式,讓我們基本掌握了基于對(duì)話框的應(yīng)用程序的創(chuàng)建過(guò)程,建立基于對(duì)話框的 MFC 應(yīng)用程序框架,放置控件并設(shè)置控件屬性,以及為控件連接變量(即為控件命名),添加并且編寫(xiě)消息處理函數(shù)。在這部分實(shí)踐中,我按照任務(wù)書(shū)中要求按照任務(wù)書(shū)所給的實(shí)例,基本掌握了基于對(duì)話框的 MFC 應(yīng)用程序中各常用的基本控件的使用。在完成對(duì)MFC編程的初步了解后,我們按《C++語(yǔ)言課程設(shè)計(jì)任務(wù)書(shū)》所給出的題目和要求完成了相關(guān)基于對(duì)話框的 MFC 應(yīng)用程序的編譯。實(shí)踐完成了以下任務(wù)和要求:
1.編寫(xiě)一個(gè)如圖所示的應(yīng)用程序。若單擊“復(fù)制”按鈕,則把上面的編輯框中的內(nèi)容復(fù)制到下面的編輯框中;若單擊“結(jié)束”按鈕,則退出程序的運(yùn)行。
2.輸入一元二次方程 ax2 +bx+c=0 的系數(shù) a、b、c,計(jì)算并輸出兩個(gè)根 x1、x2。
3.編寫(xiě)一個(gè)能對(duì)列表框進(jìn)行項(xiàng)目添加、修改和刪除操作的應(yīng)用程序。
4.設(shè)計(jì)如圖所示的對(duì)話框。若選定了“日期”或“時(shí)間”復(fù)選框,則在對(duì)應(yīng)的只讀編輯框中顯示系統(tǒng)當(dāng)前日期或時(shí)間。
5.設(shè)計(jì)如圖所示的對(duì)話框。單擊“確定”按鈕后,在列表框中顯示選擇的信息。
二、文檔/視圖結(jié)構(gòu)應(yīng)用程序:
文檔/視圖結(jié)構(gòu)的思想是將數(shù)據(jù)的管理與顯示分離,其中文檔用于管理應(yīng)用程序的數(shù)據(jù),而視圖是用戶界面,用于顯示、打印文檔中的數(shù)據(jù),并管理與用戶的交互。在這部分實(shí)踐過(guò)程中,通過(guò)對(duì)任務(wù)書(shū)中介紹的幾種SDI結(jié)構(gòu)的典型應(yīng)用程序來(lái)了解其結(jié)構(gòu)及設(shè)計(jì)方法,學(xué)習(xí)和實(shí)踐了典型應(yīng)用包括:?利用畫(huà)筆、畫(huà)刷等工具及位圖處理的方法實(shí)現(xiàn)文字和圖形的輸出。?利用定時(shí)器控件制作動(dòng)畫(huà)程序。?對(duì)鼠標(biāo)和鍵盤進(jìn)行編程的基本方法。?文件、字體、顏色等幾種通用對(duì)話框的使用方法及自定義對(duì)話框的設(shè)計(jì)、調(diào)用方法。?菜單的設(shè)計(jì)方法。
通過(guò)課程實(shí)踐,以及與同學(xué)之間的討論,我們完成了這一階段的任務(wù)要求:
6.編寫(xiě)一個(gè)程序,繪制如圖所示的-2π~2π 之間的 sin 曲線。
7.設(shè)計(jì)一個(gè)如圖所示的畫(huà)圖程序。要求按下鼠標(biāo)右鍵畫(huà)圓,按住鼠標(biāo)左鍵移動(dòng)畫(huà)線。(圖略)
8.用定時(shí)器控制蝴蝶在窗口中飛舞,如圖所示。(圖略)
9.設(shè)計(jì)一個(gè)如圖所示的應(yīng)用程序。若用戶單擊左鍵,則彈出輸入成績(jī)對(duì)話框,選擇 OK 后平均成績(jī)和總分在窗口的客戶區(qū)輸出。(圖略)
10.設(shè)計(jì)如圖所示的菜單,并編寫(xiě)相應(yīng)用的消息處理函數(shù)。(圖略)
三、完成綜合題的程序設(shè)計(jì):
將實(shí)踐過(guò)程中選擇3~5題(或類似的題),做成一個(gè)綜合程序,要求通過(guò)菜單調(diào)用各部分功能??勺孕薪M織和發(fā)揮,使其安排合適。
【系統(tǒng)設(shè)計(jì)思想】
首先建立一個(gè)單文檔結(jié)構(gòu)的應(yīng)用程序作為綜合程序的主程序,通過(guò)對(duì)菜單的設(shè)計(jì)完成與所需調(diào)用的各個(gè)對(duì)話框功能相適應(yīng)的編輯。利用對(duì)話框類資源創(chuàng)建自己的對(duì)話框,然后建立成與實(shí)踐中3~5題相對(duì)應(yīng)的對(duì)話框,并分別按要求進(jìn)行相關(guān)功能的實(shí)現(xiàn)。然后建立對(duì)話框類CMyDlg,在調(diào)用的地方建立對(duì)話框類對(duì)象CMyDlg dlg;然后dlg.DoModal();從而實(shí)現(xiàn)主程序?qū)Ω鱾€(gè)對(duì)話框的調(diào)用。在主程序的單文檔界面的菜單中,可以對(duì)所需功能進(jìn)行選擇,然后調(diào)用出不同的對(duì)話框?qū)崿F(xiàn)所系的功能,達(dá)到設(shè)計(jì)程序通過(guò)菜單調(diào)用各部分功能的目的。
【系統(tǒng)功能】
設(shè)計(jì)的綜合程序以一個(gè)文檔類的程序界面為依托,實(shí)現(xiàn)其余各個(gè)部分功能的調(diào)用。對(duì)書(shū)目管理、時(shí)間顯示以及教師綜合信息管理者三部分進(jìn)行了整合,達(dá)到了對(duì)各個(gè)部分功能之間的調(diào)用。在主界面中,我們可以對(duì)所需功能進(jìn)行選擇,從而到達(dá)不同的對(duì)話框界面進(jìn)行不同功能的交互。?當(dāng)我們?cè)诓藛沃羞x擇“書(shū)目管理”時(shí),程序自動(dòng)彈出書(shū)目管理對(duì)話框,然后我們能對(duì)列表框進(jìn)行項(xiàng)目添加、修改和刪除操作等。?而我們?nèi)绻谥鹘缑娴牟藛沃羞x擇“時(shí)間顯示”,則系統(tǒng)會(huì)跳至另一個(gè)對(duì)話框界面,這個(gè)界面可以對(duì)當(dāng)前的時(shí)間進(jìn)行顯示,在對(duì)話框中若選擇了“日期”或者“時(shí)間”復(fù)選框,則在對(duì)應(yīng)的只讀編輯框中顯示系統(tǒng)當(dāng)前的日期或時(shí)間,從而實(shí)現(xiàn)了對(duì)系統(tǒng)當(dāng)前時(shí)間信息的捕獲。?如果我們?cè)谧畛醯闹鹘缑娌藛芜x擇了“教師綜合信息管理”,則在彈出的對(duì)話框中我們可以實(shí)現(xiàn)對(duì)教師姓名、性別、愛(ài)好、工齡以及職稱進(jìn)行選擇。
【設(shè)計(jì)過(guò)程】
首先打開(kāi)VC++ 6.0編譯系統(tǒng),因?yàn)槲以O(shè)計(jì)的綜合程序以一個(gè)文檔類的程序界面為依托,實(shí)現(xiàn)其余各個(gè)部分功能的調(diào)用。對(duì)書(shū)目管理、時(shí)間顯示以及教師綜合信息管理者三部分進(jìn)行了整合,從而達(dá)到了對(duì)各個(gè)部分功能之間的調(diào)用。所以創(chuàng)建過(guò)程如下:
?按照任務(wù)書(shū)要求設(shè)定工程名為“xw1106_0145110626“,利用 AppWizard 創(chuàng)建一個(gè) SDI 應(yīng)用程序框架。
?在工作區(qū)中選定“ ResourceView ”,展開(kāi) Menu,雙擊其中的 IDR_MAINFRAME,可以看到由 AppWizard 生成的標(biāo)準(zhǔn)菜單。首先刪除原有菜單項(xiàng),然后添加自己所需要的菜單,添加方式為:雙擊空白菜單框,彈出“ Menu Item Properties ”,輸入菜單項(xiàng)的標(biāo)題(名稱)。若菜單項(xiàng)有一個(gè)子菜單(單擊會(huì)彈出了一子菜單),則選定“彈出”,否則不要選定“彈出”;要輸入一條分割線,則選定“分隔符”。我將菜單欄設(shè)定為三項(xiàng),分別為“菜單”、“小工具”以及“QQ”,其中菜單包含三個(gè)子選項(xiàng)分別為“方程求解/時(shí)間顯示/書(shū)目管理”,小工具包含“復(fù)制/字符游戲”,而“QQ”則是通過(guò)進(jìn)程方式實(shí)現(xiàn)對(duì)外部軟件QQ的調(diào)用。
?利用“CDialog dlg;dlg.DoModal();”來(lái)實(shí)現(xiàn)各個(gè)子菜單項(xiàng)所對(duì)應(yīng)的對(duì)話框的調(diào)用,而QQ的調(diào)用是個(gè)人加進(jìn)去的(不是任務(wù)要求),利用了進(jìn)程方式調(diào)用外部exe程序:STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory(&si,sizeof(si));si.cb = sizeof(si);ZeroMemory(&pi,sizeof(pi));if(!CreateProcess(NULL, ”G:Program FilesTencentQQBinQQ.exe “,NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi)){ MessageBox(”出錯(cuò) “, ”提示 ",MB_OK|MB_ICONINFORMATION);} WaitForSingleObject(pi.hProcess,INFINITE);CloseHandle(pi.hProcess);CloseHandle(pi.hThread);【運(yùn)行情況】
編譯鏈接后程序運(yùn)行正常,能實(shí)現(xiàn)通過(guò)菜單項(xiàng)調(diào)出相應(yīng)的對(duì)話框的目的,以一個(gè)文檔類的程序界面為依托,實(shí)現(xiàn)其余各個(gè)部分功能的調(diào)用。對(duì)書(shū)目管理、時(shí)間顯示以及教師綜合信息管理者三部分進(jìn)行了整合,達(dá)到了對(duì)各個(gè)部分功能之間的調(diào)用。其中點(diǎn)擊QQ也能很快的彈出QQ登陸界面。在主程序的單文檔界面的菜單中,可以對(duì)所需功能進(jìn)行選擇,然后調(diào)用出不同的對(duì)話框?qū)崿F(xiàn)所系的功能,達(dá)到設(shè)計(jì)程序通過(guò)菜單調(diào)用各部分功能的目的。
【心得體會(huì)】
在為期不到兩周的課程設(shè)計(jì)中,我體會(huì)頗多,學(xué)到很多東西。我懂得了如何用 MFC編寫(xiě)可視化界面的應(yīng)用程序,我加強(qiáng)了對(duì)C++的認(rèn)識(shí),復(fù)習(xí)了自己以前的知識(shí),自己的邏輯思考能力也提高不少。從而對(duì)Microsoft Visual C++ 6.0又有了更深入的認(rèn)識(shí)!在這次課程設(shè)計(jì)中,我還懂得了程序開(kāi)發(fā)的一些比較重要的步驟,總之,通過(guò)這次課程設(shè)計(jì),我收獲頗豐,相信會(huì)為自己以后的學(xué)習(xí)和工作帶來(lái)很大的好處。最重要的還是激發(fā)了我編程的興趣和熱情,讓我從理論變成了能做一些小型程序,讓我對(duì)編程更加熱愛(ài)了。整體地評(píng)價(jià)這次課程設(shè)計(jì),我認(rèn)為收獲很大,正如上面所說(shuō)的那樣,通過(guò)課程設(shè)計(jì),既復(fù)習(xí)了以前的舊知識(shí),又學(xué)到了一些新的知識(shí);設(shè)計(jì)增強(qiáng)了我們用所學(xué)知識(shí)去解決具體問(wèn)題的能力,進(jìn)一步培養(yǎng)了我們獨(dú)立思考問(wèn)題和解決問(wèn)題的能力。特別是學(xué)會(huì)了在Visual C++ 集成開(kāi)發(fā)環(huán)境中如何調(diào)試程序的方法。當(dāng)然,老師的悉心指導(dǎo)和同學(xué)的幫助也是不可忽視的,在此感謝本次課程設(shè)計(jì)中所有輔導(dǎo)老師對(duì)我的關(guān)心和幫助,誠(chéng)心誠(chéng)意感謝老師對(duì)我的鼓勵(lì)與教導(dǎo),是老師在我迷茫的時(shí)候給了我些許提示,激發(fā)了我編程的靈感;還有,我在此也十分感謝本次課程設(shè)計(jì)中同學(xué)們對(duì)我的幫助,盡管本次不是團(tuán)隊(duì)合作,但是他們也給了我不少的提示和幫助,我們相互溝通、共同進(jìn)步。
【參考文獻(xiàn)】
[1] 楊長(zhǎng)興、劉衛(wèi)國(guó).《C++程序設(shè)計(jì)》.中國(guó)鐵道出版社
[2] 劉衛(wèi)國(guó)、楊長(zhǎng)興.《C++程序設(shè)計(jì)實(shí)踐教程》.中國(guó)鐵道出版社
第二篇:中南大學(xué)(C++實(shí)踐報(bào)告)
中南大學(xué)
本科生課程設(shè)計(jì)(實(shí)踐)設(shè)計(jì)報(bào)告(程序設(shè)計(jì)基礎(chǔ))題目
MFC課程設(shè)計(jì)
學(xué)生學(xué)號(hào)
學(xué)生姓名
指導(dǎo)教師
學(xué)院
專業(yè)班級(jí)
計(jì)算機(jī)基礎(chǔ)教學(xué)實(shí)驗(yàn)中心 2015年
06月 14
日
一、引言
MFC(Microsoft Foundation Class Library, 微軟基礎(chǔ)類庫(kù))是微軟基Windows平臺(tái)下的C++類庫(kù)集合。MFC包含了所有與系統(tǒng)相關(guān)的類,其中封裝了大多數(shù)的API(Application Program Interface)函數(shù),提供了應(yīng)用程序框架和開(kāi)發(fā)應(yīng)用程序的工具,如應(yīng)用程序向?qū)А㈩愊驅(qū)?、可視化資源設(shè)計(jì)等高效工具,用消息映射處理消息響應(yīng),大大簡(jiǎn)化了Windows應(yīng)用程序的開(kāi)發(fā)工作,使程序員可以從繁重的編程工作中解脫出來(lái),提高了工作效率。
程序設(shè)計(jì)實(shí)踐旨在課堂學(xué)習(xí)的基礎(chǔ)上幫助學(xué)生掌握C++應(yīng)用系統(tǒng)的開(kāi)發(fā)方法和技巧。在系統(tǒng)學(xué)習(xí)完《C++程序設(shè)計(jì)》這門課程后,通過(guò)實(shí)踐對(duì)幾個(gè)小型C++應(yīng)用程序?qū)嵗O(shè)計(jì)與實(shí)現(xiàn)過(guò)程分析,幫助學(xué)生利用C++開(kāi)發(fā)應(yīng)用系統(tǒng)的一般方法和步驟,掌握MFC的基本知識(shí)。
這次實(shí)踐采用學(xué)生上機(jī)與老師集體輔導(dǎo)的方式,以完成老師下發(fā)的《C++語(yǔ)言課程設(shè)計(jì)任務(wù)書(shū)》為要求和目的,運(yùn)用課堂上學(xué)習(xí)的C++基礎(chǔ)知識(shí),采用Visual C++ MFC編程系統(tǒng),以全新的角度和感知去認(rèn)識(shí)C++語(yǔ)言在編程方面的優(yōu)越性。在實(shí)踐過(guò)程中,基于對(duì)話框的MFC應(yīng)用程序,達(dá)到了解基本控件,如靜態(tài)文本框、命令按鈕、編輯框、列表框、組合框等的使用的目的。還有理解Windows應(yīng)用程序采用“消息傳遞、事件驅(qū)動(dòng)”的運(yùn)行機(jī)制。本次實(shí)踐的任務(wù)主要分為兩個(gè)部分: 使用Visual C++ MFC編程實(shí)現(xiàn)以下功能:
輸入一元二次方程ax2+bx+c=0 的系數(shù)a、b、c,計(jì)算并輸出兩個(gè)根x1、x2.編寫(xiě)一個(gè)能對(duì)列表框進(jìn)行項(xiàng)目添加、修改和刪除操作的應(yīng)用程序。編寫(xiě)一個(gè)程序,繪制-2π~2π之間的sin曲線。用定時(shí)器控制蝴蝶在窗口中飛舞。等共10道。
將第一部分中選擇3~5題,做一個(gè)綜合程序,要求有登陸界面和調(diào)用各部分的功能。總體設(shè)計(jì)
本次實(shí)踐的主要目的就是了解和掌握運(yùn)用MFC編程的一般思想和具體的操作步驟。實(shí)踐主要是基于MFC的多文檔對(duì)話框和單文檔視圖,通過(guò)實(shí)踐完成第一大部分的任務(wù)之后,還要完成第二部分的綜合題目。第二部分的任務(wù)由學(xué)生自主發(fā)揮,自主找資料,詢問(wèn)同學(xué)和老師。第一部分的任務(wù)比較簡(jiǎn)單,具體的就不再描述。關(guān)于第二部分,我做了一個(gè)基于對(duì)文檔對(duì)話框。首頁(yè)為一個(gè)登陸頁(yè)面,需要輸入用戶名和密碼才能登陸,登陸后的頁(yè)面是把第一大部分的幾個(gè)題目連接起來(lái)。達(dá)到預(yù)覽的目的。
三、詳細(xì)設(shè)計(jì)
實(shí)踐前首先要認(rèn)識(shí)AppWizard的工作環(huán)境。其項(xiàng)目工作區(qū)一共有三個(gè)選項(xiàng)卡分別為“ResourceView”“ClassView”“FileView”,中間是對(duì)話框設(shè)計(jì)界面,右邊是控件工具欄。實(shí)踐過(guò)程中,我們是先完成第一大部分的任務(wù)。雖然在第一次上機(jī)實(shí)踐前,我仔細(xì)地閱讀了老師給我們下發(fā)的資料,并且結(jié)合《C++程序設(shè)計(jì)實(shí)踐教程》了解相關(guān)知識(shí),但是在實(shí)踐時(shí)結(jié)果不理想。主要是對(duì)創(chuàng)建對(duì)話框程序的步驟沒(méi)有掌握。在經(jīng)過(guò)幾次嘗試失敗后,總結(jié)其一般步驟為:(1)建立基于對(duì)話框的MFC應(yīng)用程序框架;(2)放置控件;(3)設(shè)置控件屬性;(4)為控件連接變量,即為控件命名;(5)添加并且編寫(xiě)消息處理函數(shù)。
基于對(duì)話框的MFC程序設(shè)計(jì),對(duì)各種控件的了解和使用顯得特別重要。這里就不一一詳細(xì)介紹它們的功能??丶刂茩谝粋€(gè)有26個(gè)控件圖標(biāo),每一個(gè)圖標(biāo)都可以看做一個(gè)對(duì)象,消息便是通過(guò)函數(shù)對(duì)它們進(jìn)行操作。每一個(gè)控件都有兩個(gè)重要而且必不可少的基本屬性:ID和標(biāo)題。ID便是該控件的標(biāo)識(shí),某些函數(shù)需要通過(guò)ID對(duì)控件進(jìn)行操作。了解一定相關(guān)知識(shí)后,對(duì)課程實(shí)踐有了很大的幫助。其中“輸入一元二次方程ax2+bx+c=0 的系數(shù)a、b、c,計(jì)算并輸出兩個(gè)根x1、x2”這個(gè)題目比較復(fù)雜,而且與C++連續(xù)很緊密。其中的有這樣的語(yǔ)句m_x1=(-b+sqrt(b*b-4*a*c))/(2*a);m_x2=(-b-sqrt(b*b-4*a*c))/(2*a),這就是我們?cè)谡n堂上學(xué)習(xí)的C++基本語(yǔ)句,在實(shí)踐過(guò)程中考驗(yàn)學(xué)生的靈活運(yùn)用能力。完成這個(gè)題目的關(guān)鍵是把每個(gè)編輯框(控件)連接好變量和選的數(shù)據(jù)類型,接下來(lái)的就是編寫(xiě)消息處理函數(shù)。這道題很全面地體現(xiàn)了MFC的“消息傳遞、事件驅(qū)動(dòng)”的思想,在操作步驟方面也在很多地方得到了實(shí)踐。
MFC編程除了基于多文本對(duì)話框以外,還有很重要的一部分是基于單文檔界面的應(yīng)用程序,如Windows自帶的Notepad程序。在本次實(shí)踐的第一大部分的后5個(gè)小題就是基于單文檔的。那么首先要對(duì)其有一定的了解:文檔/視圖結(jié)構(gòu)的思想是將數(shù)據(jù)的管理與顯示分離,其中文檔用于管理應(yīng)用程序的數(shù)據(jù),而視圖是用戶界面,用于顯示、打印文檔中的數(shù)據(jù),并管理與用戶的交互。SDI具有文檔/視圖結(jié)構(gòu)的應(yīng)用程序框架,該框架包括應(yīng)用程序類、窗口框架類、文檔類和視圖類,編程的任務(wù)是在文檔類和視圖類中添加適當(dāng)?shù)拇a。其中文檔類中一個(gè)重要的成員函數(shù)是OnNewDocument(),用戶在此添加代碼完成對(duì)數(shù)據(jù)的初始化;而視圖類中最重要的成員函數(shù)是OnDraw(),通過(guò)在該函數(shù)中添加代碼實(shí)現(xiàn)窗口內(nèi)容的輸出。本次實(shí)踐是對(duì)單文檔的典型實(shí)例,包括: ? 利用畫(huà)筆、畫(huà)刷等工具及位圖處理的方法實(shí)現(xiàn)文字和圖形的輸出。? 利用定時(shí)器控件制作動(dòng)畫(huà)程序。? 對(duì)鼠標(biāo)和鍵盤進(jìn)行編程的基本方法。
? 文件、字體、顏色等幾種通用對(duì)話框的使用方法及自定義對(duì)話框的設(shè)計(jì)、調(diào)用方法。? 菜單的設(shè)計(jì)方法。
雖然進(jìn)行充分的準(zhǔn)備,實(shí)踐中還是遇到了很多的困難和問(wèn)題。在完成題目“用定時(shí)器控制蝴蝶在窗口中飛舞”時(shí),主要的問(wèn)題就是在插入蝴蝶圖片的,嘗試了幾次都沒(méi)有編譯成功。最終再詢問(wèn)同學(xué)后,才知道是要把GIF格式的圖片分割成一幀一幀,然后才能插入。最后用定時(shí)器控制,達(dá)到動(dòng)態(tài)的效果。在完成了第一大部分的任務(wù)后,第二部分的綜合題是一個(gè)不小的挑戰(zhàn)對(duì)我來(lái)說(shuō)。要靠自己去網(wǎng)上或者圖書(shū)館查找資料。在經(jīng)過(guò)一番準(zhǔn)備后,最終決定做一個(gè)相對(duì)簡(jiǎn)單的基于多文檔對(duì)話框的登陸界面,把幾個(gè)原來(lái)的程序文件連接起來(lái)。但是在這個(gè)過(guò)程中,完全要靠自己一步一步去探索,當(dāng)然也遇到了各種各樣的困難和挑戰(zhàn)。關(guān)鍵是在連接各部分對(duì)話框,經(jīng)過(guò)不斷的實(shí)驗(yàn),不斷的調(diào)試程序,總結(jié)的操作步驟如下:(1)創(chuàng)建工程,MFC Application(exe),工程命名按要求命名;(2)工程建立后有如圖對(duì)話框,將途中的靜態(tài)文本框和按鈕都刪掉,留下空白,再使用靜態(tài)文本,編輯框,按鈕和靜態(tài)圖片重新排版,并進(jìn)行命名。注意靜態(tài)圖框應(yīng)該第一個(gè)布置,不然運(yùn)行時(shí)圖片會(huì)將其他控件覆蓋;(3)右擊密碼對(duì)應(yīng)的編輯框,選擇屬性,選樣式中的密碼;(4)在Dialog上右擊選擇插入DIG,重復(fù)插入4個(gè),依次作為菜單,題目1,題目2和題目3的對(duì)話框,并對(duì)其分別創(chuàng)建類,以菜單對(duì)話框?yàn)槔?,改一下表頭為“菜單”,在對(duì)話框空白處雙擊,點(diǎn)OK創(chuàng)建類,并對(duì)其命名(假如命名為MyMenu);(5)回到登錄界面的對(duì)話框,雙擊登錄控件,出現(xiàn)如圖按鈕,點(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(“用戶名或密碼不能為空”,“用戶登錄信息”);
return;} if(c_user==“123”&&c_password==“123”){
CMyMenu dlg;
dlg.DoModal();//這兩段代碼是用于調(diào)用菜單對(duì)話框
}
else {
MessageBox(“用戶名或密碼不正確”,“提示”,MB_ICONINFORMATION);
return;對(duì)對(duì)話框添加背景圖片。在如下圖文件上右擊,選擇引入,然后導(dǎo)入已準(zhǔn)備好的bmp格式的圖片,然后選擇登錄界面的靜態(tài)圖框右擊,進(jìn)行如圖操作,這樣圖片就加入了,它會(huì)改掉按鈕和編輯框,這沒(méi)關(guān)系,運(yùn)行后會(huì)顯示出來(lái)的;(7)通過(guò)以上操作,已經(jīng)做好了登錄界面和實(shí)現(xiàn)和登錄界面與菜單對(duì)話框的連接,現(xiàn)在進(jìn)行菜單對(duì)話框的編輯。將原有的按鈕刪除,自己加入按鈕并命名;(8)雙擊題目1,點(diǎn)OK,在代碼頁(yè)的頂端加入如圖代碼,并在OnButton1下加入以下代碼 CT1 dlg;dlg.DoModal();其他的按相同操作。
四、設(shè)計(jì)總結(jié)
為期為兩周的課程實(shí)踐中,我體會(huì)頗多,學(xué)到的東西也很多。我懂得了如何運(yùn)用MFC編寫(xiě)可視化界面的應(yīng)用程序,加強(qiáng)了對(duì)C++的認(rèn)識(shí),復(fù)習(xí)了以前的知識(shí),自己的邏輯思考能力,解決問(wèn)題的能力也提高了不少。從而對(duì)Microsoft Visual C++有了更加深刻的認(rèn)識(shí)和體會(huì)!在這次課程設(shè)計(jì)實(shí)踐過(guò)程中我還懂得了一些程序開(kāi)發(fā)的重要步驟,總之,在這次課程設(shè)計(jì)實(shí)踐中,我收獲頗豐。
對(duì)于對(duì)任務(wù)的完成情況,第一部分主要按老師的步驟完成。第二部分,由學(xué)生自主選題,自主設(shè)計(jì)完成??偟膩?lái)說(shuō),我個(gè)人對(duì)自己的完成情況感覺(jué)良好。當(dāng)然,老師的悉心指導(dǎo)和同學(xué)的幫助是不能忽視的,在此感謝所有在本次課程設(shè)計(jì)實(shí)踐過(guò)程中對(duì)我細(xì)心指導(dǎo)的老師和不斷鼓勵(lì)和幫助我的同學(xué)們。
總之,此次課程實(shí)踐是對(duì)學(xué)生動(dòng)手動(dòng)腦的一次很好的鍛煉,為學(xué)生的今后發(fā)展奠定基礎(chǔ)。
第三篇:C++課程實(shí)踐報(bào)告試題及答案
任務(wù)一 一、實(shí)踐任務(wù) 1.試建立一個(gè)類 PP,求出下列多項(xiàng)式的前 n 項(xiàng)的值。
?????? ? ???n x P n x xP nx x Pnn/))()1()()1 2((1)(2 n 1 -
110???nnn 二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? int n:前若干項(xiàng)的項(xiàng)數(shù)。
? double
x:存放 x 的值。
? double *p:根據(jù) n 的大小動(dòng)態(tài)申請(qǐng)存放 P n(x)前 n 項(xiàng)的數(shù)組空間。
(2)公有成員函數(shù) ? PP(int num,double x1):構(gòu)造函數(shù),初始化數(shù)據(jù)成員 n 和 x,使 p 指向動(dòng)態(tài)申請(qǐng)的數(shù)組空間。
? ~PP():析構(gòu)函數(shù),釋放 p 指向的動(dòng)態(tài)內(nèi)存空間。
? double fun(int n1,double x):遞歸函數(shù),用于求多項(xiàng)式)(x P n 的第 n1 項(xiàng)。注意:將遞歸公式中的 n 用作函數(shù)參數(shù)。本函數(shù)供 process 函數(shù)調(diào)用。
? void process():完成求前 n 項(xiàng)的工作,并將它們存放到 p 指向的動(dòng)態(tài)數(shù)組中。
? void show():輸出 n 和 x,并將前 n 項(xiàng)以每行 4 個(gè)數(shù)的形式輸出到屏幕上。
2、主要函數(shù)設(shè)計(jì)
在主函數(shù)中完成對(duì)該類的測(cè)試。先輸入 num 和 x1,并定義一個(gè) PP 類的對(duì)象 items,用 num 和 x1 初始化 items 的成員 n 和 x,調(diào)用 items 的成員函數(shù),求出并輸出多項(xiàng)式前 num 項(xiàng)的值。
三、源程序清單 #include
int n;
double x;
double*p;public:
PP(int num,double x1)
{
n=num;
x=x1;
p=new double[n];
}
~PP()
{
if(p)delete []p;
}
double fun(int n1,double x);
void process();
void show();};double PP::fun(int n1,double x){
if(n1==0)return 1;
else if(n1==1)return x;
else if(n1>1)return((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;} void PP::process(){
for(int i=0;i { p[i]=fun(i,x); } } void PP::show(){ cout<<“n=”< for(int i=0;i { cout< if((i+1)%4==0)cout< } } void main(){ int num; double x1; cout<<“請(qǐng)輸入 num 和 x1:”; cin>>num>>x1; PP items(num,x1); items.process(); items.show();} 任務(wù)二 一、實(shí)踐任務(wù) 2.試建立一個(gè)類 SP,求k k k kn k n f ? ? ? ? ?....3 2 1),(,另有輔助函數(shù) power(m,n)用于求nm。 二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? int n,k:存放公式中 n 和 k 的值;(2)公有成員函數(shù) ? SP(int n1,int k1):構(gòu)造函數(shù),初始化成員數(shù)據(jù) n 和 k。 ? int power(int m, int n):求 m n。 ? int fun():求公式的累加和。 ? void show():輸出求得的結(jié)果。 2、主要函數(shù)設(shè)計(jì) 在主程序中定義對(duì)象 s,對(duì)該類進(jìn)行測(cè)試。 三、源程序清單 #include private: int n,k;public: SP(int n1,int k1) { n=n1; k=k1; } int power(int m,int n); int fun(); void show();};int SP::power(int m,int n){ int s=1; for(int i=0;i { s*=m; } return s;} int SP::fun(){ int s=0; for(int i=1;i<=n;i++) { s+=power(i,k); } return s;} void SP::show(){ cout<<“f(”< int n1,k1; cout<<“請(qǐng)輸入 n1,k1:”; cin>>n1>>k1; SP s(n1,k1); s.fun(); s.show();} 任務(wù)三 一、實(shí)踐任務(wù) 3.建立一個(gè)類 MOVE,不進(jìn)行排序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。 二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? float array[20]:一維整型數(shù)組。 ? int n:數(shù)組中元素的個(gè)數(shù)。 (2)公有成員函數(shù) ? MOVE(float b[],int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。 ? void average():輸出平均值,并將數(shù)組中的元素按要求重新放置。 ? void print():輸出一維數(shù)組。 2、主要函數(shù)設(shè)計(jì) 在主程序中用數(shù)據(jù){1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}對(duì)該類進(jìn)行測(cè)試。 三、源程序清單 #include float array[20]; int n;public: MOVE(float b[],int m) { for(int i=0;i { array[i]=b[i]; } n=m; } void average(); void print(); ~MOVE() {};};void MOVE::average(){ float ave=0; int i,j; for(i=0;i { ave+=array[i]; } ave/=n; cout< float turn[20]; j=0; for(i=0;i { if(array[i]<=ave) { turn[j]=array[i]; j++; } } j=0; for(i=0;i { if(array[i]>ave) { turn[n-1-j]=array[i]; j++; } } for(i=0;i { array[i]=turn[i]; } } void MOVE::print(){ for(int i=0;i cout< float b1[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}; int num; num=sizeof(b1)/sizeof(float); MOVE s(b1,num); s.average(); s.print();} 任務(wù)四 一、實(shí)踐任務(wù) 4.建立一個(gè)類 MOVE,將數(shù)組中最大元素的值與最小元素的值互換。 二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? int *array:一維整型數(shù)組。 ? int n:數(shù)組中元素的個(gè)數(shù)。 (2)公有成員函數(shù) ? MOVE(int b[],int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。 ? void exchange():輸出平均值,并將數(shù)組中的元素按要求重新放置。 ? void print():輸出一維數(shù)組。 ? ~MOVE():析構(gòu)函數(shù)。 2、主要函數(shù)設(shè)計(jì) 在主程序中用數(shù)據(jù){21,65,43,87,12,84,44,97,32,55}對(duì)該類進(jìn)行測(cè)試。 三、源程序清單 #include int *array; int n;public: MOVE(int b[],int m) { array=new int[m]; n=m; for(int i=0;i { array[i]=b[i]; } } void exchange(); void print(); ~MOVE() { if(array)delete array; } };void MOVE::exchange() { float ave=0; for(int i=0;i { ave+=array[i]; } ave/=n; cout<<“平均值為”< int max,min; max=min=array[0]; int m; for(i=0,m=0;i { if(array[i]>=max)m=i,max=array[i]; } int l; for(i=0,l=0;i { if(array[i] } i=array[m],array[m]=array[l],array[l]=i; } void MOVE::print() { for(int i=0;i cout< { int text[]={21,65,43,87,12,84,44,97,32,55}; int num; num=sizeof(text)/sizeof(int); MOVE s(text,num); s.print(); cout< s.exchange(); s.print();} 任務(wù)五 一、實(shí)踐任務(wù) 定義一個(gè)類 Palindrome,實(shí)現(xiàn)絕對(duì)回文數(shù)。設(shè)計(jì)一個(gè)算法實(shí)現(xiàn)對(duì)任意整型數(shù)字判斷是否為絕對(duì)回文數(shù)。所謂絕對(duì)回文數(shù),是指十進(jìn)制數(shù)和二進(jìn)制數(shù)均對(duì)稱的數(shù)。 二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? int n:整型數(shù)字。 ? int y: 標(biāo)記是否為回文數(shù)。 (2)公有成員函數(shù) ? Palindrome(int x):構(gòu)造函數(shù),根據(jù) x 參數(shù)初始化數(shù)據(jù)成員 n,y 初始化為 0。 ? void huiwen():判斷數(shù) n 是否為絕對(duì)回文數(shù)。 ? void show():若該數(shù)為回文數(shù),則在屏幕顯示。 2、主要函數(shù)設(shè)計(jì) 在主程序中定義 int a,由鍵盤輸入數(shù)字。定義一個(gè) Palindrome 類對(duì)象 p,用 a 初始化 p,完成對(duì)該類的測(cè)試。 三、源程序清單 #include int n; int y;public: Palindrome(int x) { n=x; y=0; } void huiwen(); void show();};void Palindrome::huiwen(){ int i=0,j=0; int m; m=n; while(m) { m/=10; i++; } m=n; while(m) { m/=2; j++; } int*s10=new int[i]; int*s2=new int[j]; m=n; for(int k=0;k { s10[i-1-k]=m%10; m/=10; } m=n; for(k=0;k { s2[j-1-k]=m%2; m/=2; } int num10=0; for(k=0;k { if(s10[i-1-k]==s10[k])num10++; else break; } int num2=0; for(k=0;k { if(s2[j-1-k]==s2[k])num2++; else break; } if(num10==(i/2)&&num2==(j/2))y=1; } void Palindrome::show(){ int i=0,j=0; int m; m=n; while(m) { m/=10; i++; } m=n; while(m) { m/=2; j++; } int*s10=new int[i+1]; int*s2=new int[j+1]; m=n; for(int k=0;k { s10[i-1-k]=m%10; m/=10; } m=n; for(k=0;k { s2[j-1-k]=m%2; m/=2; } if(y) { cout<<“該數(shù)為絕對(duì)回文數(shù)?。骸? cout<<“十進(jìn)制表示為:”; for(k=0;k cout< cout<<“二進(jìn)制表示為:”; for(k=0;k cout< } else { cout<<“該數(shù)不是絕對(duì)回文數(shù)?。骸? cout<<“十進(jìn)制表示為:”; for(k=0;k cout< cout<<“二進(jìn)制表示為:”; for(k=0;k cout< } cout< int a; cout<<“請(qǐng)輸入一個(gè)數(shù)字:”; cin>>a; Palindrome p(a); p.huiwen(); p.show();} 任務(wù)六 一、實(shí)踐任務(wù) 6.定義一個(gè)字符串類 String,實(shí)現(xiàn)判斷該字符串是否為回文字符串。所謂回文字符串,是 指該字符串左右對(duì)稱。例如字符串“123321”是回文字符串。 二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 ? char *str; ? int y:標(biāo)記是否為回文字符串。 (2)公有成員函數(shù) ? String(char *s):構(gòu)造函數(shù),用給定的參數(shù) s 初始化數(shù)據(jù)成員 str。y 初始化為 0。 ? void huiwen():判斷 str 所指向的字符串是否為回文字符串。 ? void show():在屏幕上顯示字符串。 2、主要函數(shù)設(shè)計(jì) 在主程序中定義字符串 char s[]=”ababcedbaba”作為原始字符串。定義一個(gè) String 類對(duì)象 test,用 s 初始化 test,完成對(duì)該類的測(cè)試。 三、源程序清單 #include char*str; int y;public: String(char*s) { int n=strlen(s); str=new char[n+1]; strcpy(str,s); y=0; } void huiwen(); void show(); ~String() { if(str)delete []str;} };void String::huiwen(){ int n,judge=0; n=strlen(str); for(int i=0;i<(n/2);i++) { if(str[i]==str[n-1-i])judge++; } if(judge==i)y=1;} void String::show()//輸出; { if(y==1)cout<<“y=1,?該字符串是回文數(shù)”< else cout<<“y=0,該字符串不是回文數(shù)”< char s[]=“ababcedbaba”; String test(s); test.huiwen(); test.show();} 任務(wù)七 一、實(shí)踐任務(wù) 7.建立一個(gè)類 PHALANX,生成并顯示一個(gè)折疊方陣。折疊方陣如下圖所示。折疊方陣的生成過(guò)程為:起始數(shù)置于方陣的左上角,然后從起始數(shù)開(kāi)始遞增,依次折疊構(gòu)成方陣。 二、詳細(xì)設(shè)計(jì) 1、類的描述與定義(1)私有數(shù)據(jù)成員 1 … 1 1 4 9 16 ? int(*p)[20]:指向按照折疊規(guī)律存放方陣的二維整型數(shù)組。 ? int startnum:折疊方陣的起始數(shù)。 ? int n:存放方針的層數(shù)。 (2)公有成員函數(shù) ? PHALANX(int s, int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。 ? void process():生成起始數(shù)為 startnum 的 n 行方陣。 ? void print():輸出折疊方陣。 ? ~ PHALANX():析構(gòu)函數(shù)。 2、主要函數(shù)設(shè)計(jì) 在主程序中對(duì)該類進(jìn)行測(cè)試。 三、源程序清單 #include int(*p)[20]; int startnum; int n; public: phalanx(int s[20][20],int m) { startnum=1; p=s; n=m; } void process() { p[0][0]=startnum; for(int i=0;i for(int j=0;j {if(i>j){p[i][j]=1+i*i+i+i-j;} else{p[i][j]=1+j*j+i;}} } void print() { for(int i=0;i { for(int j=0;j } } ~ phalanx(){ } }; void main() { int m; int s[20][20]; cout<<“請(qǐng)輸入折疊層數(shù):”; cin>>m; cout<<“n”; phalanx pp(s,m); pp.process(); pp.print(); } 中南大學(xué) 本科生課程設(shè)計(jì)(實(shí)踐)任務(wù)書(shū)、設(shè)計(jì)報(bào)告 (C++程序設(shè)計(jì)) 題目 學(xué)生姓名 指導(dǎo)教師 學(xué)院 專業(yè)班級(jí) 學(xué)生學(xué)號(hào) 科學(xué)計(jì)算器應(yīng)用程序嚴(yán)暉 材料科學(xué)與工程學(xué)院 1206 計(jì)算機(jī)基礎(chǔ)教學(xué)實(shí)驗(yàn)中心 2013年 7 月5日 在本課程學(xué)習(xí)過(guò)程中我遇到了下面這些問(wèn)題: 1、剛開(kāi)始C++實(shí)踐理論課的學(xué)習(xí)時(shí),我的學(xué)習(xí)興趣很高,總想著自己能夠完全掌握PPT的知識(shí),做成一個(gè)完美的程序。隨著學(xué)習(xí)的進(jìn)展,調(diào)試程序總是出現(xiàn)問(wèn)題,最夸張的一次出現(xiàn)了204個(gè)ERRORS,也經(jīng)常不知道怎么去在正確的期房插入程序塊。而比較嚴(yán)格的語(yǔ)法規(guī)則,也讓我一時(shí)難以接受,產(chǎn)生畏難情緒,總是怕,最后因?yàn)榕聦W(xué)不好而導(dǎo)致沒(méi)有學(xué)好。 2、注重理論學(xué)習(xí),忽視上機(jī)編程實(shí)踐,造成“只能用筆在紙上編程”的奇怪現(xiàn)象。特別是在剛開(kāi)始時(shí),我一開(kāi)始編譯連接就手忙腳亂,總是會(huì)出現(xiàn)許多錯(cuò)誤。有時(shí)程序則一再出現(xiàn)錯(cuò)誤,使我就更不理解該如何查找錯(cuò)誤,如何排除錯(cuò)誤了。 3、在前期的學(xué)習(xí)中我沒(méi)有抓得很緊,總覺(jué)得不是很難,希望通過(guò)突擊搞定課程學(xué)習(xí)。而事實(shí)上,本課程實(shí)踐要靠平時(shí)的積累,幾乎不能靠臨時(shí)突擊,因?yàn)榍懊婊A(chǔ)不夠扎實(shí),到了后面險(xiǎn)些無(wú)法彌補(bǔ)。 4、我發(fā)現(xiàn)自己在后期的學(xué)習(xí)中有些急于求成,總想編寫(xiě)綜合性的程序,把老師的要求一次性盡快完成。這直接導(dǎo)致了我編的程序一時(shí)很亂,幾乎無(wú)法閱讀。 后來(lái)才發(fā)現(xiàn)為了學(xué)好本課程,沒(méi)有什么竅門,只能采用一些“笨”技巧: 認(rèn)真聽(tīng)講,積極思考,提高上課效率。老師上課講述的都是課程實(shí)踐的重點(diǎn)和難點(diǎn),聽(tīng)好課程能夠達(dá)到“事半功倍”的目的。 主動(dòng)上機(jī),多多實(shí)踐,提高動(dòng)手才能,實(shí)習(xí)時(shí)不能著急。通過(guò)上機(jī)實(shí)踐來(lái)驗(yàn)證所學(xué)的理論,通過(guò)在機(jī)器上查找錯(cuò)誤來(lái)鞏固概念,通過(guò)提高上機(jī)才能來(lái)促進(jìn)理論學(xué)習(xí),開(kāi)闊編程思路,提高反映效率,提高分析問(wèn)題解決問(wèn)題的才能,鍛煉心理素質(zhì),提高心理承受才能。 這是第二次上計(jì)算機(jī)實(shí)踐課程了,第一次是網(wǎng)頁(yè)設(shè)計(jì)。雖然兩次要完成的任務(wù)不同,但給人的感覺(jué)都是較迷茫的。由于我上課時(shí)沒(méi)有認(rèn)真聽(tīng)C++課程老師的講解,學(xué)得相當(dāng)糟糕,但要設(shè)計(jì)的又是一個(gè)較大的程序,便去請(qǐng)教老師。老師建議我們找一個(gè)模板,認(rèn)真仔細(xì)地看,去理解它,看懂它,然后根據(jù)自己的實(shí)踐內(nèi)容適當(dāng)修改,應(yīng)該就沒(méi)多大問(wèn)題了。 老師的話給了我莫大的鼓勵(lì),但不自覺(jué)地滋生了傲慢的態(tài)度。只要有個(gè)模板不就行了嘛,小事一樁?。〉Y(jié)果并非如此,在后來(lái)的實(shí)踐過(guò)程中,我還是碰到了許多麻煩。 其中,對(duì)于按省份給每個(gè)省的總發(fā)表篇數(shù)進(jìn)行排序這一問(wèn)題,剛開(kāi)始真的不會(huì)弄,我一開(kāi)始以為要用一維數(shù)組來(lái)排序,可還是不太明白。于是,我詢問(wèn)了周邊同學(xué),才知道他們用的是Access導(dǎo)入C++,再利用Access的排序功能,并且調(diào)試成功了,聽(tīng)他們講解后我便用了他們的方法。與同學(xué)討論、向同學(xué)請(qǐng)教有時(shí)候也不失為一個(gè)好方法,一個(gè)人的智慧畢竟是不全面的,集體的力量才是強(qiáng)大的!同時(shí),在運(yùn)行時(shí)老是會(huì)出現(xiàn)一些錯(cuò)誤,但我發(fā)現(xiàn)其實(shí)里面的參數(shù)并不復(fù)雜,只要跟著那個(gè)error的提示,一個(gè)一個(gè)的改下去,其實(shí)很簡(jiǎn)單的。結(jié)果事實(shí)也是如此,用了一個(gè)小時(shí)多一點(diǎn),102個(gè)錯(cuò)誤全部搞定了。錯(cuò)誤幾乎為以下三類: 1.冒號(hào),分號(hào)等符號(hào)打錯(cuò)了; 2.大小寫(xiě)等造成的對(duì)應(yīng)問(wèn)題; 3.變量的不完全修改。 改完以后,在執(zhí)行時(shí)我發(fā)現(xiàn)界面不好看,于是我又將主界面略加修改了些。看上去美觀了不少。再運(yùn)行功能,幾乎都能順利運(yùn)行,但還是存在一些瑕疵,但是我還是不太會(huì)弄清怎么回事。于是,又去問(wèn)同學(xué),在他們的幫助下,成功解決這個(gè)問(wèn)題,在此真要好好謝謝他們! 終于大功告成!欣慰在這次實(shí)踐中,我不僅彌補(bǔ)了自己在C++課上所落下的內(nèi)容,尤其是指針那塊部分,雖然現(xiàn)在概念搞的還不是很懂,但看見(jiàn)程序是能夠理解的。這次C++實(shí)踐是給我們這一學(xué)期來(lái)所學(xué)知識(shí)的一個(gè)總復(fù)習(xí),總的實(shí)踐。它讓我們把所知道的知識(shí)點(diǎn)運(yùn)用的更好,把不知道的知識(shí)點(diǎn)搞得明白了。實(shí)踐出真知,通過(guò)這次實(shí)踐,我也系統(tǒng)的把課本好好的第四次回顧了下。猛然覺(jué)得,C++二級(jí)考試更有把握了。 在本門課程實(shí)踐過(guò)程中,我更好的領(lǐng)悟了自學(xué)的重要性,并且和同學(xué)加強(qiáng)了交流,以便我們互相及時(shí)答疑解惑。同時(shí)我也學(xué)會(huì)了采用多種形式進(jìn)行交流,不僅只是傳統(tǒng)的面對(duì)面進(jìn)行相互答疑,同時(shí)也利用網(wǎng)絡(luò)通過(guò)百度知道、百度文庫(kù)、郵件、BBS進(jìn)行網(wǎng)上交流,也學(xué)會(huì)了絕對(duì)不要將問(wèn)題積累到最后。 同時(shí)在本次實(shí)踐中,我還開(kāi)闊了眼界,打開(kāi)了思路,閱讀了幾本關(guān)于C++編程的教程,從而通過(guò)理解不同作者對(duì)于C++的不同看法,來(lái)提高我對(duì)C++的理解,以方便自己在未來(lái)對(duì)C++的進(jìn)一步學(xué)習(xí)。第四篇:中南大學(xué)c++計(jì)算器實(shí)踐報(bào)告
第五篇:c++實(shí)踐心得體會(huì)1600