欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C++實(shí)驗(yàn)總結(jié)報(bào)告

      時(shí)間:2019-05-12 13:41:55下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C++實(shí)驗(yàn)總結(jié)報(bào)告》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C++實(shí)驗(yàn)總結(jié)報(bào)告》。

      第一篇:C++實(shí)驗(yàn)總結(jié)報(bào)告

      C++ 實(shí)驗(yàn)總結(jié)報(bào)告

      研究課題:圖形編輯器

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.熟悉C++的一些重要性質(zhì),利用封裝、繼承、虛函數(shù)和多態(tài)性等特性,通過實(shí)驗(yàn)學(xué)習(xí)如何對(duì)各類圖元的屬性和方法進(jìn)行合理的封裝 2.學(xué)習(xí)Microsoft的Visual C++編程工具 3.掌握MFC的相關(guān)知識(shí)

      4.掌握基本的文件保存、讀取以及操作封裝技術(shù)

      二、實(shí)驗(yàn)?zāi)康?/p>

      設(shè)計(jì)一個(gè)簡(jiǎn)單的圖形編輯器

      三、實(shí)驗(yàn)所用儀器、設(shè)備

      計(jì)算機(jī):PentiumIII 800 以上

      256M內(nèi)存 操作系統(tǒng):Windows 2000/XP 開發(fā)集成環(huán)境:Visual C++ 6.0

      四、軟件功能簡(jiǎn)介

      (注:此軟件是從網(wǎng)上下載得來)

      該軟件具有漢化的菜單界面(仿Windows自帶畫圖軟件),具有文件打開、編輯、保存等功能。編輯部分包括可以在編輯區(qū)域畫直線、圓、矩形、曲線等矢量圖形,可插入文字,可以修改線條的線型、顏色等基本屬性。

      五、部分代碼分析

      1.類的初始分析:

      class CDrawApp : public CWinApp { public: CDrawApp();

      // Overrides virtual BOOL InitInstance();

      // Implementation protected: //{{AFX_MSG(CDrawApp)afx_msg void OnAppAbout();// NOTE-the ClassWizard will add and remove member functions here.//

      DO NOT EDIT what you see in these blocks of generated code!//}}AFX_MSG DECLARE_MESSAGE_MAP()};學(xué)習(xí)C++我們最需要理解的就是它面向?qū)ο蟮脑O(shè)計(jì)思想。這種思想可以在類和對(duì)象上得到充分的體現(xiàn)。

      類是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,它實(shí)際上是由用戶定義的一種新的復(fù)雜數(shù)據(jù)類型。它是通過抽象數(shù)據(jù)類型ADT方法來實(shí)現(xiàn)的一種數(shù)據(jù)類型,將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起形成一個(gè)集合體。因此,它具有更高的抽象性,實(shí)現(xiàn)了信息的隱藏和封裝。

      對(duì)象是某種類的一個(gè)實(shí)例,是類的具體體現(xiàn)。一個(gè)類可以有多個(gè)對(duì)象。

      分析這一段代碼,編程者將CDrawApp();設(shè)置為公有函數(shù),這樣做就是在整個(gè)函數(shù)的外面開了一個(gè)口,使用戶可以利用這一函數(shù)處理具體問題而不必詳解函數(shù)內(nèi)部,是面向?qū)ο笾蟹庋b特性的一個(gè)具體體現(xiàn);另外,此函數(shù)中還包含了構(gòu)造函數(shù)與析構(gòu)函數(shù),構(gòu)造函數(shù)完成對(duì)新對(duì)象的初始化工作,析構(gòu)函數(shù)是構(gòu)造函數(shù)的配對(duì)物,它實(shí)現(xiàn)與構(gòu)造函數(shù)相反的功能。另外,這段代碼中還包括布爾型虛函數(shù)InitInstance(),這是函數(shù)重載,也是多態(tài)性的具體體現(xiàn)。

      由這段代碼我們可以了解關(guān)于類和對(duì)象的一些知識(shí),為我們進(jìn)一步了解面向?qū)ο蟪绦蛟O(shè)計(jì)的思想精髓奠定了基礎(chǔ)。

      2.對(duì)構(gòu)造函數(shù)和析構(gòu)函數(shù)的分析

      構(gòu)造函數(shù)

      CCreateLine::CCreateLine(): m_begin(0,0), m_end(0,0){

      m_nStep = 0;// 初始化操作步為 0 }

      構(gòu)造函數(shù):C++中“類”只定義了一組對(duì)象的類型。要使用這個(gè)類還必須用“類”說明它的對(duì)象,每個(gè)對(duì)象中的數(shù)據(jù)成員還必須賦初值,這些功能都是由構(gòu)造函數(shù)完成的。此造函數(shù)用初始化列表的方式對(duì)直線類的私有成員進(jìn)行初始化,同時(shí)記下操作步m_nStep是直線類從指令類中繼承來的成員,它在指令類中屬于保護(hù)成員,在直線類中則成為私有成員。這是數(shù)據(jù)共享與數(shù)據(jù)保護(hù)兩者兼顧時(shí)的一種處理方法。

      析構(gòu)函數(shù)

      CCreateLine::~CCreateLine(){ } 它是構(gòu)造函數(shù)的配對(duì)物,與構(gòu)造函數(shù)一樣是與類同名的成員函數(shù),并在函數(shù)名前加上一個(gè)’~’以便與構(gòu)造函數(shù)相區(qū)別。此析構(gòu)函數(shù)中沒有任何操作語句,但它并非沒有任何操作。在任何一個(gè)對(duì)象消失時(shí)都要調(diào)用本類的析構(gòu)函數(shù)進(jìn)行掃尾工作。在構(gòu)造對(duì)象時(shí),構(gòu)造函數(shù)分配資源給程序,在對(duì)象作用結(jié)束后,這些資源的釋放就要靠析構(gòu)函數(shù)。當(dāng)然析構(gòu)函數(shù)中也是可以有語句的,當(dāng)需要在對(duì)象消失之前執(zhí)行某種操作時(shí),可以把語句寫在里邊。

      3.繼承和虛函數(shù)分析

      class CDrawRect : public CDrawObj { protected: DECLARE_SERIAL(CDrawRect);CDrawRect();

      public: CDrawRect(const CRect& position);//添加了對(duì)新數(shù)據(jù)成員的初始化

      // Implementation public: virtual void Serialize(CArchive& ar);//添加了對(duì)新數(shù)據(jù)成員操作 virtual void Draw(CDC* pDC);//根據(jù)要求畫出每個(gè)圖形

      virtual int GetHandleCount();//line和roundRectangle特殊處理 virtual CPoint GetHandle(int nHandle);//line和roundRectangle特殊處理

      virtual HCURSOR GetHandleCursor(int nHandle);//line和roundRectangle特殊處理

      virtual void MoveHandleTo(int nHandle, CPoint point, CDrawView* pView = NULL);//通過特征點(diǎn)來修改大小

      virtual BOOL Intersects(const CRect& rect);//判斷與圖形是否存在相交

      virtual CDrawObj* Clone(CDrawDoc* pDoc);//Clone一個(gè)新對(duì)象加入到pDoc中

      protected: enum Shape { rectangle, roundRectangle, ellipse, line };Shape m_nShape;//通過枚舉變量來標(biāo)示屬于上述四種的哪一種形狀 CPoint m_roundness;// for roundRect corners

      friend class CRectTool;};在閱讀此函數(shù)的源代碼過程中,我感覺到對(duì)基類中虛函數(shù)的使用對(duì)整個(gè)程序具有著十分重要的意義。正如上段代碼,它的前提是派生類CDrawRect對(duì)基類CDrawObj進(jìn)行了繼承,只有在對(duì)基類中的虛函數(shù)進(jìn)行設(shè)置后,我們才能更加高效地處理和使用基類和派生類中的方法。所以,我感覺到在學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)時(shí),應(yīng)當(dāng)尤為注意基類中虛方法的創(chuàng)建和后期調(diào)用。

      六、個(gè)人學(xué)習(xí)體會(huì)

      在學(xué)習(xí)C++以前,我認(rèn)為C++只是在C語言的基礎(chǔ)上的一種延伸,認(rèn)為只要學(xué)過C語言,就可以用C語言的那種設(shè)計(jì)思想來學(xué)習(xí)C++、設(shè)計(jì)C++程序。正是由于抱了這種錯(cuò)誤的思想,使我在一開始學(xué)習(xí)C++的時(shí)候遇到了很大的困難,我沒有辦法體會(huì)面向?qū)ο蟮脑O(shè)計(jì)思想,我在學(xué)習(xí)這門課的時(shí)候老是想著實(shí)現(xiàn)這個(gè)函數(shù)功能的具體過程,而沒太注意對(duì)象分類的重要性。

      隨著課程學(xué)習(xí)的深入,我感覺到了利用類和對(duì)象、繼承、封裝等一系列知識(shí)可以把我們程序中很多繁雜、重復(fù)的部分省略掉,還可以解決一些利用面向過程的設(shè)計(jì)思想無法解決的問題,我自己也試著編寫一些小的C++程序,當(dāng)然在這個(gè)過程中遇到了很多困難,其中調(diào)試帶來的困難讓我無法忘記,在調(diào)試程序的同時(shí),我也總結(jié)出來了一些調(diào)試的小技巧,讓我在C語言課程設(shè)計(jì)中也受用匪淺。

      在學(xué)習(xí)這門課的過程中,我感受到了自己親自動(dòng)手編程序、調(diào)程序的重要性,我們要熟悉C++的語法、體會(huì)調(diào)試的思想,最好的一個(gè)手段就是自己動(dòng)手編程、調(diào)試,這會(huì)比我們一味的看書效果好得多。

      另外,我還感覺到一個(gè)好的程序編出來需要很多人的團(tuán)結(jié)合作。我在檢查自己編寫的程序是否有BUG未被找出的時(shí)候,我會(huì)讓我的同學(xué)作為一個(gè)程序使用者來找出未發(fā)現(xiàn)的BUG并提出改進(jìn)意見,這讓我們的工作更加高效。

      很高興能夠了解到C++的神奇魅力和面向?qū)ο蟪绦蛟O(shè)計(jì)的獨(dú)特思想,它為我今后的程序設(shè)計(jì)奠定了基礎(chǔ)。感謝老師對(duì)我們的悉心教授!

      第二篇:C++ 實(shí)驗(yàn)一總結(jié)報(bào)告

      實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)一 VC++ 6.0開發(fā)環(huán)境應(yīng)用入門 1.實(shí)驗(yàn)結(jié)果:

      2.實(shí)驗(yàn)結(jié)果分析:

      該程序是利用C++輸出兩句話,練習(xí)輸出格式。實(shí)驗(yàn)二 C++簡(jiǎn)單程序設(shè)計(jì)

      1.實(shí)驗(yàn)結(jié)果:

      2.實(shí)驗(yàn)結(jié)果分析:

      求一個(gè)圖形的面積要先判斷是哪一種圖形,用switch語句就可以解決,再利用公式即可。如輸入1為圓形,再輸入邊長(zhǎng)3,利用面積公式,它的面積就是28.2744。

      3.實(shí)驗(yàn)結(jié)果:

      4.實(shí)驗(yàn)結(jié)果分析:

      復(fù)習(xí)i++與++i的運(yùn)用。i++在當(dāng)前語句時(shí),此時(shí)i的值是沒有變化的,直到此句執(zhí)行結(jié)束,i的值才會(huì)+1;++i在當(dāng)前語句執(zhí)行之前時(shí),i的值就已經(jīng)+1。實(shí)驗(yàn)三 函數(shù)的應(yīng)用

      1.實(shí)驗(yàn)結(jié)果:

      2.實(shí)驗(yàn)結(jié)果分析:

      函數(shù)的遞歸作用,先聲明定義一個(gè)函數(shù),輸入形參n的值,然后進(jìn)行比較,小于3的直接返回1;大于3的就繼續(xù)遞歸,直到得到的形參值小于3,返回1為止。從程序結(jié)果得知,返回n個(gè)1就最終遞歸返回n。

      3.編寫一個(gè)函數(shù)把華氏溫度轉(zhuǎn)換為攝氏溫度,轉(zhuǎn)換公式為:C =(F-32)* 5/9。

      4.使用系統(tǒng)函數(shù)pow(x,y)計(jì)算x的值,注意包含頭文件math.h

      程序:

      y

      實(shí)驗(yàn)總結(jié):

      1.基本掌握如何操作C++的界面,包括運(yùn)行,編譯,調(diào)試等過程;

      2.學(xué)會(huì)編寫簡(jiǎn)單的C++程序,掌握基本數(shù)據(jù)類型變量和常量的應(yīng)用,運(yùn)算符與表達(dá)式的應(yīng)用;

      3.學(xué)會(huì)使用VC++6.0開發(fā)環(huán)境中的debug調(diào)試功能:?jiǎn)尾綀?zhí)行、設(shè)置斷點(diǎn)、觀察變量值;熟練使用F10,F11,shift+F11,ctrl+F10等快捷鍵的使用。

      4.基本掌握函數(shù)的運(yùn)用,并對(duì)C語言的復(fù)習(xí)與運(yùn)用,認(rèn)識(shí)了C++與C語言的異同。

      實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)四 C++程序的結(jié)構(gòu)

      一、實(shí)驗(yàn)?zāi)康?/p>

      1.觀察程序運(yùn)行中變量的作用域、生存期和可見性;

      2.學(xué)習(xí)類的靜態(tài)成員的使用;

      3.學(xué)習(xí)多文件結(jié)構(gòu)在C++程序中的使用;

      二、實(shí)驗(yàn)任務(wù)

      1.運(yùn)行下面的程序,觀察變量x、y的值。

      #include

      cout << “Step into fn1()...” << endl;

      using namespace std;

      fn1();

      void fn1();

      cout << “Back in main” << endl;

      int x = 1, y = 2;

      cout << “x = ” << x << endl;

      int main()

      cout << “y = ” << y << endl;

      {

      return 0;

      cout << “Begin...” << endl;

      }

      cout << “x = ” << x << endl;

      void fn1()

      cout << “y = ” << y << endl;

      {

      cout << “Evaluate x and y in int y = 200;main()...” << endl;

      cout << “x = ” << x << endl;

      int x = 10, y = 20;

      cout << “y = ” << y << endl;

      cout << “x = ” << x << endl;

      }

      cout << “y = ” << y << endl;

      2.實(shí)現(xiàn)客戶機(jī)(CLIENT)類。聲明字符型靜態(tài)數(shù)據(jù)成員ServerName,保存其服務(wù)器名稱;整型靜態(tài)數(shù)據(jù)成員ClientNum,記錄已定義的客戶數(shù)量;定義靜態(tài)函數(shù)ChangeServerName()改變服務(wù)器名稱。在頭文件client.h中聲明類和實(shí)現(xiàn)類,在文件client.cpp中測(cè)試這個(gè)類,觀察相應(yīng)的成員變量取值的變化情況。

      程序:

      //實(shí)現(xiàn)客戶機(jī)(CLIENT)類。

      #include using namespace std;class Client { private: static char SeverName[10];static int Clientnum;public: Client(){

      cout<<“Client構(gòu)造函數(shù)被調(diào)用”<

      Clientnum++;}

      ~Client(){

      cout<<“Client析構(gòu)函數(shù)被調(diào)用”<

      Clientnum--;} static void ChangeServername(){

      cout<<“請(qǐng)輸入服務(wù)器的名字:”<

      cin>>SeverName;

      } void show();};int Client::Clientnum=0;char Client::SeverName[10]=“abcd”;//Client.cpp void Client::show(){

      實(shí)驗(yàn)五 數(shù)組、指針與字符串

      一、實(shí)驗(yàn)?zāi)康?cout<<“該用戶機(jī)的服務(wù)器端名字是:”<

      //Client.exe void main(){ Client::ChangeServername();Client a;a.show();Client::ChangeServername();Client b;b.show();Client::ChangeServername();Client c;c.show();} 1.學(xué)習(xí)使用數(shù)組數(shù)據(jù)對(duì)象;

      2.學(xué)習(xí)字符串?dāng)?shù)據(jù)的組織和處理;

      3.學(xué)習(xí)標(biāo)準(zhǔn)C++庫的使用;

      4.掌握指針的使用方法;

      5.練習(xí)通過debug觀察指針的內(nèi)容及其所指的對(duì)象的內(nèi)容;

      6.練習(xí)通過動(dòng)態(tài)內(nèi)存分配實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,并體會(huì)指針在其中的作用;

      7.分別使用字符數(shù)組和標(biāo)準(zhǔn)C++庫練習(xí)處理字符串的方法。

      二、實(shí)驗(yàn)任務(wù)

      1.編寫并測(cè)試3×3矩陣轉(zhuǎn)置函數(shù),使用數(shù)組保存3×3矩陣。

      程序:

      #include cout<<“該矩陣的轉(zhuǎn)置為:#include ”<

      for(i=0;i<3;i++)cout<<“請(qǐng)輸入一個(gè)3*3的矩

      cout<

      cout<

      for(j=0;j<3;j++)}

      cin>>a[i][j];2.使用動(dòng)態(tài)內(nèi)存分配生成動(dòng)態(tài)數(shù)組來重新完成上題,使用指針實(shí)現(xiàn)函數(shù)的功能。

      程序:

      #include #include #include void main(){

      int i,j,t;

      cout<<“請(qǐng)輸入一個(gè)矩陣元素個(gè)數(shù)n*n=”;

      cin>>t;

      int *p=new int[t];

      cout<

      for(i=0;i

      cin>>p[i];

      cout<<“該矩陣的轉(zhuǎn)置為:”<

      for(j=0;j

      {

      for(i=0;i

      {

      cout<

      i=i+sqrt(t);

      }

      cout<

      } } 3.編程實(shí)現(xiàn)兩字符串的連接。要求使用字符數(shù)組保存字符串,不要使用系統(tǒng)函數(shù)。

      #include #include void main(){

      int i,j;

      char a[20],b[10];

      cout<<“請(qǐng)輸入一個(gè)不大于10個(gè)字符的字符串:”<

      cin>>a;

      cout<<“請(qǐng)?jiān)佥斎胍粋€(gè)不大于10個(gè)字符的字符串:”<

      cin>>b;

      for(i=0;i<10;i++)

      if(a[i]=='