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

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

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

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

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

      VC類定義

      時(shí)間:2019-05-12 20:33:34下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《VC類定義》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《VC類定義》。

      第一篇:VC類定義

      VC++怎樣定義類對(duì)象

      如果你定義了一個(gè)類(假設(shè)是A)那么聲明一個(gè)A的對(duì)象的方法就是:

      A a;// a 就是一個(gè)A的對(duì)象

      A *a;// a 就是一個(gè)A的對(duì)象的指針

      A a[N];// a 就是一個(gè)A的對(duì)象的數(shù)組

      A fuctionName();// 返回A的一個(gè)對(duì)象的函數(shù)

      上面是說(shuō)如何定義對(duì)象,下面說(shuō)如何定義一個(gè)類

      最基本的:(運(yùn)用關(guān)鍵字class)

      class A{

      public://公有變量及函數(shù)(沒(méi)聲明是public,private,protected的都默認(rèn)為public,這個(gè)與Java是不同的,后者默認(rèn)為protected)(可以在任意位置被訪問(wèn))

      ......private://私有變量及函數(shù)(只能在類里面被訪問(wèn))

      ......protecte://受保護(hù)的變量及函數(shù)(可以在派生類中被訪問(wèn))

      };//注意分號(hào)

      一般構(gòu)造函數(shù),析構(gòu)函數(shù),復(fù)制構(gòu)造函數(shù)都是在public里被聲明的(不用我說(shuō)什么是構(gòu)造函數(shù)(construct)和什么是析構(gòu)函數(shù)(destruct)了吧)。

      更往深一層會(huì)有派生類,友元類,抽象類的概念。

      派生類就是有一個(gè)已經(jīng)存在的類來(lái)derive一個(gè)新的類,一般新的類跟原來(lái)的是被包含與包含的關(guān)系(否則聲明一個(gè)派生類就沒(méi)什么意義)具體實(shí)現(xiàn)如下:

      class A: public B{

      ......//跟一個(gè)普通的類沒(méi)什么區(qū)別

      }

      聲明一個(gè)友元類是這樣的:

      class A: {

      friend B

      ......}(A就成了B的友元類,友元函數(shù)的聲明也類似)

      不過(guò)要注意到,友元函數(shù)、友元類的大量使用破壞了類里的數(shù)據(jù)及函數(shù)的穩(wěn)定性,或是可靠性。使得private類型的都可能被篡改。

      最后抽象類:

      它是通過(guò)虛函數(shù)來(lái)實(shí)現(xiàn)的,所謂虛函數(shù)就是加上virtual關(guān)鍵字在前面的函數(shù);含有虛函數(shù)的類就是抽象類,注意到如果要實(shí)現(xiàn)一個(gè)函數(shù)的動(dòng)態(tài)綁定對(duì)象必須要以地址的形式來(lái)傳遞。好吧,短短幾句是不能把聲明類的注意事項(xiàng)說(shuō)清楚的,太多了(像什么封裝,繼承,抽象)。不過(guò),你只要多編寫多看書就會(huì)的。

      第二篇:定義銀行類

      在定義銀行類時(shí),若取錢數(shù)大于余額則作為異常處理(InsufficientFundsException).思路:產(chǎn)生異常的條件是余額少于取額, 因此是否拋出異常要判斷條件

      取錢是withdrawal([wie'dr?:?l, wiθ-]n.撤退,收回;提款;取消;退股)方法中定義的動(dòng)作,因此在該方法中產(chǎn)生異常.處理異常安排在調(diào)用withdrawal的時(shí)候,因此withdrawal方法要聲明異常,由上級(jí)方法調(diào)用 要定義好自己的異常類class Bank

      {double balance;

      public void deposite(double dAmount)

      {if(dAmount>0.0){balance+=dAmount;}}

      public void withdrawal(double dAmount)

      throws InsufficientFundsException{if(balance

      throw new InsufficientFundsException(this,dAmount);}

      balance=balance-dAmount;

      }

      public void show_balance()

      { System.out.println(“The balance is ”+(int)balance);}

      }

      public class ExceptionDemo

      { public static void main(String args[])

      { try

      { Bank ba=new Bank(50);

      ba.withdrawal(100);

      System.out.println(“Withdrawal successful!”);

      }catch(Exception e)

      {System.out.println(e.toString());}

      }public class InsufficientFundsException extends Exception{private Bankexcepbank;

      private double excepAmount;

      InsufficientFundsException(Bank ba, doubledAmount){ excepbank=ba;

      excepAmount=dAmount;

      }

      public StringexcepMesagge()

      {String str=“The balance”+ excepbank.showBalance()+“The withdrawal was”+excepAmount;return str;}

      第三篇:類聲明和定義

      如何組織編寫模板程序 前言

      常遇到詢問(wèn)使用模板到底是否容易的問(wèn)題,我的回答是:“模板的使用是容易的,但組織編寫卻不容易”??纯次覀儙缀趺刻於寄苡龅降哪0孱惏?,如STL, ATL, WTL, 以及Boost的模板類,都能體會(huì)到這樣的滋味:接口簡(jiǎn)單,操作復(fù)雜。

      我在5年前開(kāi)始使用模板,那時(shí)我看到了MFC的容器類。直到去年我還沒(méi)有必要自己編寫模板類??墒窃谖倚枰约壕帉懩0孱悤r(shí),我首先遇到的事實(shí)卻是“傳統(tǒng)”編程方法(在*.h文件聲明,在*.cpp文件中定義)不能用于模板。于是我花費(fèi)一些時(shí)間來(lái)了解問(wèn)題所在及其解決方法。

      本文對(duì)象是那些熟悉模板但還沒(méi)有很多編寫模板經(jīng)驗(yàn)的程序員。本文只涉及模板類,未涉及模板函數(shù)。但論述的原則對(duì)于二者是一樣的。

      問(wèn)題的產(chǎn)生

      通過(guò)下例來(lái)說(shuō)明問(wèn)題。例如在array.h文件中有模板類array: // array.h template class array { T data_[SIZE];array(const array& other);const array& operator =(const array& other);public: array(){};T& operator[](int i){return data_[i];} const T& get_elem(int i)const {return data_[i];} void set_elem(int i, const T& value){data_[i] = value;} operator T*(){return data_;} };

      然后在main.cpp文件中的主函數(shù)中使用上述模板: // main.cpp #include “array.h” int main(void){ array intArray;intArray.set_elem(0, 2);int firstElem = intArray.get_elem(0);int* begin = intArray;} 這時(shí)編譯和運(yùn)行都是正常的。程序先創(chuàng)建一個(gè)含有50個(gè)整數(shù)的數(shù)組,然后設(shè)置數(shù)組的第一個(gè)元素值為2,再讀取第一個(gè)元素值,最后將指針指向數(shù)組起點(diǎn)。但如果用傳統(tǒng)編程方式來(lái)編寫會(huì)發(fā)生什么事呢?我們來(lái)看看:

      將array.h文件分裂成為array.h和array.cpp二個(gè)文件(main.cpp保持不變)// array.h template class array { T data_[SIZE];array(const array& other);const array& operator =(const array& other);public: array(){};T& operator[](int i);const T& get_elem(int i)const;void set_elem(int i, const T& value);operator T*();};

      // array.cpp #include “array.h” template T& array::operator [](int i){ return data_[i];} template const T& array::get_elem(int i)const { return data_[i];} template void array::set_elem(int i, const T& value){ data_[i] = value;} template array::operator T*(){ return data_;}

      編譯時(shí)會(huì)出現(xiàn)3個(gè)錯(cuò)誤。問(wèn)題出來(lái)了: 為什么錯(cuò)誤都出現(xiàn)在第一個(gè)地方? 為什么只有3個(gè)鏈接出錯(cuò)?array.cpp中有4個(gè)成員函數(shù)。

      要回答上面的問(wèn)題,就要深入了解模板的實(shí)例化過(guò)程。模板實(shí)例化

      程序員在使用模板類時(shí)最常犯的錯(cuò)誤是將模板類視為某種數(shù)據(jù)類型。所謂類型參量化(parameterized types)這樣的術(shù)語(yǔ)導(dǎo)致了這種誤解。模板當(dāng)然不是數(shù)據(jù)類型,模板就是模板,恰如其名:

      編譯器使用模板,通過(guò)更換模板參數(shù)來(lái)創(chuàng)建數(shù)據(jù)類型。這個(gè)過(guò)程就是模板實(shí)例化(Instantiation)。

      從模板類創(chuàng)建得到的類型稱之為特例(specialization)。

      模板實(shí)例化取決于編譯器能夠找到可用代碼來(lái)創(chuàng)建特例(稱之為實(shí)例化要素,point of instantiation)。

      要?jiǎng)?chuàng)建特例,編譯器不但要看到模板的聲明,還要看到模板的定義。模板實(shí)例化過(guò)程是遲鈍的,即只能用函數(shù)的定義來(lái)實(shí)現(xiàn)實(shí)例化。

      再回頭看上面的例子,可以知道array是一個(gè)模板,array是一個(gè)模板實(shí)例-一個(gè)類型。從array創(chuàng)建array的過(guò)程就是實(shí)例化過(guò)程。實(shí)例化要素體現(xiàn)在main.cpp文件中。如果按照傳統(tǒng)方式,編譯器在array.h文件中看到了模板的聲明,但沒(méi)有模板的定義,這樣編譯器就不能創(chuàng)建類型array。但這時(shí)并不出錯(cuò),因?yàn)榫幾g器認(rèn)為模板定義在其它文件中,就把問(wèn)題留給鏈接程序處理。

      現(xiàn)在,編譯array.cpp時(shí)會(huì)發(fā)生什么問(wèn)題呢?編譯器可以解析模板定義并檢查語(yǔ)法,但不能生成成員函數(shù)的代碼。它無(wú)法生成代碼,因?yàn)橐纱a,需要知道模板參數(shù),即需要一個(gè)類型,而不是模板本身。

      這樣,鏈接程序在main.cpp 或 array.cpp中都找不到array的定義,于是報(bào)出無(wú)定義成員的錯(cuò)誤。

      至此,我們回答了第一個(gè)問(wèn)題。但還有第二個(gè)問(wèn)題,在array.cpp中有4個(gè)成員函數(shù),鏈接器為什么只報(bào)了3個(gè)錯(cuò)誤?回答是:實(shí)例化的惰性導(dǎo)致這種現(xiàn)象。在main.cpp中還沒(méi)有用上operator[],編譯器還沒(méi)有實(shí)例化它的定義。解決方法

      認(rèn)識(shí)了問(wèn)題,就能夠解決問(wèn)題:

      在實(shí)例化要素中讓編譯器看到模板定義。

      用另外的文件來(lái)顯式地實(shí)例化類型,這樣鏈接器就能看到該類型。使用export關(guān)鍵字。

      前二種方法通常稱為包含模式,第三種方法則稱為分離模式。

      第一種方法意味著在使用模板的轉(zhuǎn)換文件中不但要包含模板聲明文件,還要包含模板定義文件。在上例中,就是第一個(gè)示例,在array.h中用行內(nèi)函數(shù)定義了所有的成員函數(shù)?;蛘咴趍ain.cpp文件中也包含進(jìn)array.cpp文件。這樣編譯器就能看到模板的聲明和定義,并由此生成array實(shí)例。這樣做的缺點(diǎn)是編譯文件會(huì)變得很大,顯然要降低編譯和鏈接速度。

      第二種方法,通過(guò)顯式的模板實(shí)例化得到類型。最好將所有的顯式實(shí)例化過(guò)程安放在另外的文件中。在本例中,可以創(chuàng)建一個(gè)新文件templateinstantiations.cpp: // templateinstantiations.cpp #include “array.cpp” template class array ;// 顯式實(shí)例化

      array類型不是在main.cpp中產(chǎn)生,而是在templateinstantiations.cpp中產(chǎn)生。這樣鏈接器就能夠找到它的定義。用這種方法,不會(huì)產(chǎn)生巨大的頭文件,加快編譯速度。而且頭文件本身也顯得更加“干凈”和更具有可讀性。但這個(gè)方法不能得到惰性實(shí)例化的好處,即它將顯式地生成所有的成員函數(shù)。另外還要維護(hù)templateinstantiations.cpp文件。第三種方法是在模板定義中使用export關(guān)鍵字,剩下的事就讓編譯器去自行處理了。當(dāng)我在

      Stroustrup的書中讀到export時(shí),感到非常興奮。但很快就發(fā)現(xiàn)VC 6.0不支持它,后來(lái)又發(fā)現(xiàn)根本沒(méi)有編譯器能夠支持這個(gè)關(guān)鍵字(第一個(gè)支持它的編譯器要在2002年底才問(wèn)世)。自那以后,我閱讀了不少關(guān)于export的文章,了解到它幾乎不能解決用包含模式能夠解決的問(wèn)題。欲知更多的export關(guān)鍵字,建議讀讀Herb Sutter撰寫的文章。

      結(jié)論

      要開(kāi)發(fā)模板庫(kù),就要知道模板類不是所謂的“原始類型”,要用其它的編程思路。本文目的不是要嚇唬那些想進(jìn)行模板編程的程序員。恰恰相反,是要提醒他們避免犯下開(kāi)始模板編程時(shí)都會(huì)出現(xiàn)的錯(cuò)誤。

      ////////////////////////////// http://004km.cn,.cxx)擴(kuò)展名。

      這種組織方式工作的很好:它使得在編程時(shí)可以方便地訪問(wèn)所需的類型定義,并且避免了來(lái)自鏈接器的“變量或函數(shù)重復(fù)定義”的錯(cuò)誤。

      由于以上組織方式約定的影響,模板編程新手往往會(huì)犯一個(gè)同樣的錯(cuò)誤。下面這一小段程序反映了這種錯(cuò)誤。就像對(duì)待“普通代碼”那樣,我們?cè)陬^文件中定義模板: // basics/myfirst.hpp #ifndef MYFIRST_HPP #define MYFIRST_HPP // declaration of template template void print_typeof(T const&);#endif // MYFIRST_HPP print_typeof()聲明了一個(gè)簡(jiǎn)單的輔助函數(shù)用來(lái)打印一些類型信息。函數(shù)的定義放在點(diǎn)C文件中:

      // basics/myfirst.cpp #include #include #include “myfirst.hpp” // implementation/definition of template template void print_typeof(T const& x){ std::cout << typeid(x).name()<< std::endl;} 這個(gè)例子使用typeid操作符來(lái)打印一個(gè)字符串,這個(gè)字符串描述了傳入的參數(shù)的類型信息。最后,我們?cè)诹硗庖粋€(gè)點(diǎn)C文件中使用我們的模板,在這個(gè)文件中模板聲明被#include: // basics/myfirstmain.cpp #include “myfirst.hpp” // use of the template int main(){ double ice = 3.0;print_typeof(ice);// call function template for type double }

      大部分C++編譯器(Compiler)很可能會(huì)接受這個(gè)程序,沒(méi)有任何問(wèn)題,但是鏈接器(Linker)大概會(huì)報(bào)告一個(gè)錯(cuò)誤,指出缺少函數(shù)print_typeof()的定義。

      這個(gè)錯(cuò)誤的原因在于,模板函數(shù)print_typeof()的定義還沒(méi)有被具現(xiàn)化(instantiate)。為了具現(xiàn)化一個(gè)模板,編譯器必須知道哪一個(gè)定義應(yīng)該被具現(xiàn)化,以及使用什么樣的模板參數(shù)來(lái)具現(xiàn)化。不幸的是,在前面的例子中,這兩組信息存在于分開(kāi)編譯的不同文件中。因此,當(dāng)我們的編譯器看到對(duì)print_typeof()的調(diào)用,但是沒(méi)有看到此函數(shù)為double類型具現(xiàn)化的定義時(shí),它只是假設(shè)這樣的定義在別處提供,并且創(chuàng)建一個(gè)那個(gè)定義的引用(鏈接器使用此引用解析)。另一方面,當(dāng)編譯器處理myfirst.cpp時(shí),該文件并沒(méi)有任何指示表明它必須為它所包含的特殊參數(shù)具現(xiàn)化模板定義。頭文件中的模板

      解決上面這個(gè)問(wèn)題的通用解法是,采用與我們使用宏或者內(nèi)聯(lián)函數(shù)相同的方法:我們將模板的定義包含進(jìn)聲明模板的頭文件中。對(duì)于我們的例子,我們可以通過(guò)將#include “myfirst.cpp”添加到myfirst.hpp文件尾部,或者在每一個(gè)使用我們的模板的點(diǎn)C文件中包含myfirst.cpp文件,來(lái)達(dá)到目的。當(dāng)然,還有第三種方法,就是刪掉myfirst.cpp文件,并重寫myfirst.hpp文件,使它包含所有的模板聲明與定義:

      // basics/myfirst2.hpp #ifndef MYFIRST_HPP #define MYFIRST_HPP #include #include // declaration of template template void print_typeof(T const&);// implementation/definition of template template void print_typeof(T const& x){ std::cout << typeid(x).name()<< std::endl;} #endif // MYFIRST_HPP 這種組織模板代碼的方式就稱作包含模式。經(jīng)過(guò)這樣的調(diào)整,你會(huì)發(fā)現(xiàn)我們的程序已經(jīng)能夠正確編譯、鏈接、執(zhí)行了。

      從這個(gè)方法中我們可以得到一些觀察結(jié)果。最值得注意的一點(diǎn)是,這個(gè)方法在相當(dāng)程度上增加了包含myfirst.hpp的開(kāi)銷。在這個(gè)例子中,這種開(kāi)銷并不是由模板定義自身的尺寸引起的,而是由這樣一個(gè)事實(shí)引起的,即我們必須包含我們的模板用到的頭文件,在這個(gè)例子中是。你會(huì)發(fā)現(xiàn)這最終導(dǎo)致了成千上萬(wàn)行的代碼,因?yàn)橹T如這樣的頭文件也包含了和我們類似的模板定義。

      這在實(shí)踐中確實(shí)是一個(gè)問(wèn)題,因?yàn)樗黾恿司幾g器在編譯一個(gè)實(shí)際程序時(shí)所需的時(shí)間。我們因此會(huì)在以后的章節(jié)中驗(yàn)證其他一些可能的方法來(lái)解決這個(gè)問(wèn)題。但無(wú)論如何,現(xiàn)實(shí)世界中的程序花一小時(shí)來(lái)編譯鏈接已經(jīng)是快的了(我們?cè)?jīng)遇到過(guò)花費(fèi)數(shù)天時(shí)間來(lái)從源碼編譯的程序)。

      拋開(kāi)編譯時(shí)間不談,我們強(qiáng)烈建議如果可能盡量按照包含模式組織模板代碼。

      另一個(gè)觀察結(jié)果是,非內(nèi)聯(lián)模板函數(shù)與內(nèi)聯(lián)函數(shù)和宏的最重要的不同在于:它并不會(huì)在調(diào)用端展開(kāi)。相反,當(dāng)模板函數(shù)被具現(xiàn)化時(shí),會(huì)產(chǎn)生此函數(shù)的一個(gè)新的拷貝。由于這是一個(gè)自動(dòng)的過(guò)程,編譯器也許會(huì)在不同的文件中產(chǎn)生兩個(gè)相同的拷貝,從而引起鏈接器報(bào)告一個(gè)錯(cuò)誤。理論上,我們并不關(guān)心這一點(diǎn):這是編譯器設(shè)計(jì)者應(yīng)當(dāng)關(guān)心的事情。實(shí)際上,大多數(shù)時(shí)候一切都運(yùn)轉(zhuǎn)正常,我們根本就不用處理這種狀況。然而,對(duì)于那些需要?jiǎng)?chuàng)建自己的庫(kù)的大型項(xiàng)目,這個(gè)問(wèn)題偶爾會(huì)顯現(xiàn)出來(lái)。

      最后,需要指出的是,在我們的例子中,應(yīng)用于普通模板函數(shù)的方法同樣適用于模板類的成員函數(shù)和靜態(tài)數(shù)據(jù)成員,以及模板成員函數(shù)。

      第四篇:二叉樹(shù)的類定義

      實(shí)驗(yàn)一、二叉樹(shù)的類定義

      程序說(shuō)明

      1、改程序用二叉鏈存儲(chǔ)結(jié)構(gòu)將其生成一棵二叉樹(shù);

      2、分別用三種遍歷算法將二叉樹(shù)的遍歷序列輸出;

      3、用括號(hào)表示法輸出二叉樹(shù)。

      二叉樹(shù)的形狀

      A

      程序代碼

      #include “stdafx.h” #include using std::cin;using std::cout;using std::endl;using namespace std;typedef struct CZYP_BTNode {

      char data;

      struct CZYP_BTNode *left;

      //左孩子指針

      struct CZYP_BTNode *right;// 右孩子指針

      } *BiTree;

      void CreateBiTree(BiTree &T){

      // 在先序遍歷二叉樹(shù)的過(guò)程中輸入二叉樹(shù)的“先序字符串”,// 建立根指針為 T的二叉鏈表存儲(chǔ)結(jié)構(gòu)。在先序字符串中,// 字符'#'表示空樹(shù),其它字母字符為結(jié)點(diǎn)的數(shù)據(jù)元素

      char ch;

      cin >> ch;

      if(ch=='#')

      {

      T=NULL;// 建空樹(shù)

      } else {

      T = new CZYP_BTNode;

      // “訪問(wèn)”操作為生成根結(jié)點(diǎn)

      T->data = ch;

      CreateBiTree(T->left);

      // 遞歸建(遍歷)左子樹(shù)

      CreateBiTree(T->right);

      // 遞歸建(遍歷)右子樹(shù)

      }

      }

      //先序遍歷以T為根指針的二叉樹(shù) void PreOrder(BiTree &T){

      if(T)

      {

      // T=NULL時(shí),二叉樹(shù)為空樹(shù),不做任何操作

      cout<< T->data << “ ”;// 通過(guò)函數(shù)指針 *visit 訪問(wèn)根結(jié)點(diǎn)

      PreOrder(T->left);

      // 先序遍歷左子樹(shù)

      PreOrder(T->right);

      // 先序遍歷右子樹(shù)

      } }

      //中序遍歷以T為根指針的二叉樹(shù) void InOrder(BiTree &T){

      if(T){

      // T=NULL時(shí),二叉樹(shù)為空樹(shù),不做任何操作

      InOrder(T->left);// 先序遍歷左子樹(shù)

      cout<< T->data << “ ”;// 通過(guò)函數(shù)指針 *visit 訪問(wèn)根結(jié)點(diǎn)

      InOrder(T->right);// 先序遍歷右子樹(shù)

      } } //后序遍歷以T為根指針的二叉樹(shù) void PostOrder(BiTree &T){

      if(T){

      // T=NULL時(shí),二叉樹(shù)為空樹(shù),不做任何操作

      PostOrder(T->left);// 先序遍歷左子樹(shù)

      PostOrder(T->right);// 先序遍歷右子樹(shù)

      cout<< T->data << “ ”;// 通過(guò)函數(shù)指針 *visit 訪問(wèn)根結(jié)點(diǎn)

      } } //用括號(hào)表示法輸出二叉樹(shù) void DispBTree(BiTree &bt){ if(bt!=NULL){

      cout<data;

      if(bt->right!=NULL||bt->left!=NULL)

      {

      cout<<“(”;程序結(jié)果

      DispBTree(bt->left);

      if(bt->right!=NULL)cout<<“,”;

      DispBTree(bt->right);

      cout<<“)”;

      } } }

      int main(){

      cout << “請(qǐng)依次輸入字符: ABD#G##E##C#FH###” << endl;

      BiTree T;

      CreateBiTree(T);

      cout << “先序遍歷: ” << endl;

      PreOrder(T);

      cout << endl << “中序遍歷: ” << endl;

      InOrder(T);

      cout << endl << “后序遍歷: ” << endl;

      PostOrder(T);

      cout<<“n用括號(hào)表示法輸出二叉樹(shù):n”;DispBTree(T);cout<

      return(0);}

      心得體會(huì)

      在這次實(shí)驗(yàn)中,我花了很多的時(shí)間。最重要的體會(huì)就是我的知識(shí)卻是很少。在做這次試驗(yàn)之前我仔細(xì)的看了一遍樹(shù)的三種遍歷的偽代碼。對(duì)程序中用到的遞歸思想有了更深刻的認(rèn)識(shí),并且我也借鑒了老師PPT上的很多程序的寫法。再者就是我從網(wǎng)上找了一些二叉樹(shù)的寫法,然后通過(guò)自己修改、調(diào)試。在這里我想說(shuō)一下,我調(diào)試的時(shí)候很多錯(cuò)誤都不知道從哪里找,后來(lái)我就把出現(xiàn)的錯(cuò)誤信息輸入到baidu里,事實(shí)證明這樣確實(shí)很有效。終于沒(méi)有錯(cuò)誤了。Happy??!

      今天調(diào)試了一上午,雖說(shuō)很累,但是我確確實(shí)實(shí)感到學(xué)到了很多知識(shí)。不足之處

      這個(gè)程序的int isEmpty()函數(shù)沒(méi)有實(shí)現(xiàn),需要改天寫出來(lái)。

      一、給定二叉樹(shù)如下圖所示,編程完成下列要求:

      1、用二叉鏈存儲(chǔ)結(jié)構(gòu)將其生成一棵二叉樹(shù);

      2、分別用三種遍歷算法將二叉樹(shù)的遍歷序列輸出;

      3、用括號(hào)表示法輸出二叉樹(shù)。G D B E A

      C F H 上面是個(gè)圖。。由于我分不多了,所以不是很多。但是我很想學(xué)這方面知識(shí),到時(shí)我有分了再給你叫啊。高手幫忙啊。問(wèn)題補(bǔ)充:

      我把圖詳細(xì)說(shuō)下。A是樹(shù)根;B、C分別是A的左右孩子;D、E分別是B的左右孩子;G是D的右孩子;F是C的右孩子;H是F的左孩子。相信我已經(jīng)表達(dá)清楚了吧。謝謝各位大蝦了。

      第五篇:VC課程設(shè)計(jì)報(bào)告

      編號(hào):

      河北工業(yè)大學(xué)計(jì)算機(jī)軟件技術(shù)基礎(chǔ)(VC)2007年課程設(shè)計(jì)報(bào)告

      學(xué)院 班級(jí) 姓名 __ 學(xué)號(hào) ____ 成績(jī) __ ____

      一、題目:查找滿足特定條件的三位數(shù)(27)

      二、設(shè)計(jì)思路

      1、總體設(shè)計(jì) 1)分析程序的功能

      2)系統(tǒng)總體結(jié)構(gòu):設(shè)計(jì)程序的組成模塊,簡(jiǎn)述各模塊功能。

      2、各功能模塊的設(shè)計(jì):說(shuō)明各功能模塊的實(shí)現(xiàn)方法

      3、設(shè)計(jì)中的主要困難及解決方案

      在這部分論述設(shè)計(jì)中遇到的主要困難及解決方案。1)如何將輸出1~9不重復(fù)數(shù)字 2)困難2

      4、你所設(shè)計(jì)的程序最終完成的功能 1)說(shuō)明你編制的程序能完成的功能 2)準(zhǔn)備的測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果

      三、程序清單

      如果是使用一個(gè)文件完成的程序,只需列出程序代碼。

      如果是使用多文件完成的程序,首先說(shuō)明程序中的代碼存放在哪些文件中,說(shuō)明文件名(例如:本程序包含first.cpp、second.cpp、third.cpp和all.h四個(gè)文件);然后依次給出每個(gè)文件名及該文件清單,例如:

      1、first.cpp文件清單

      2、second.cpp文件清單

      3、third.cpp文件清單

      第1頁(yè)/共2 頁(yè)

      編號(hào):

      4、all.h文件清單

      (說(shuō)明:程序清單中一定要有注釋。將程序中自己編寫的代碼列在此處,系統(tǒng)自動(dòng)生成的代碼就不要列出了。程序清單部分的行間距設(shè)為1行即可。)

      四、對(duì)該設(shè)計(jì)題目有何更完善的方案

      1、對(duì)自己完成程序進(jìn)行自我評(píng)價(jià)。

      2、對(duì)課題提出更完善的方案

      五、收獲及心得體會(huì)

      1、通過(guò)本次課程設(shè)計(jì),自己在哪些方面的能力有所提高。

      2、收獲和心得體會(huì)。

      日期: 2007年

      (說(shuō)明:本模板只提供參考,每個(gè)同學(xué)根據(jù)自己課題的特點(diǎn),可減少或增加某方面的論述)

      第2頁(yè)/共2 頁(yè)

      下載VC類定義word格式文檔
      下載VC類定義.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        定義一個(gè)表示用戶的User類

        //定義一個(gè)表示用戶的User類,類中的變量有用戶名、口令和記錄用戶個(gè)數(shù)的變量,定義類的3個(gè)構(gòu)造方法(無(wú)參、為用戶名賦值、為用戶名和口令賦值)、獲取和設(shè)置口令的方法和返回類信......

        VC課程設(shè)計(jì)題目(五篇模版)

        VC++課程設(shè)計(jì)題目 B090110-12 (2012-04-23 – 2012-05-19)前言:本課程設(shè)計(jì)分成自測(cè)題和綜合題兩部分。兩部分都列入驗(yàn)收。練習(xí)題: 共11道。內(nèi)容覆蓋主要基本技術(shù):基本的開(kāi)發(fā)環(huán)......

        vc 風(fēng)險(xiǎn)投資工作流程

        風(fēng)投業(yè)務(wù)流程及步驟?首頁(yè) > 在商言商 國(guó)際風(fēng)險(xiǎn)投資的運(yùn)作過(guò)程,一般包括了以下幾個(gè)步驟:1. 項(xiàng)目初審:國(guó)際風(fēng)險(xiǎn)投資機(jī)構(gòu)在拿到申請(qǐng)表或商業(yè)計(jì)劃書后,往往只用很短的時(shí)間走馬觀花地......

        VC課程設(shè)計(jì)教學(xué)和任務(wù)

        VC++ 課程設(shè)計(jì)指導(dǎo)書 江蘇科技大學(xué)南徐學(xué)院電子信息系 2011年9月《計(jì)算機(jī)程序設(shè)計(jì)(vc++)課程設(shè)計(jì)》課程設(shè)計(jì)指導(dǎo)書 一. 課程設(shè)計(jì)教學(xué)和任務(wù) 《計(jì)算機(jī)程序設(shè)計(jì)(vc++)課程設(shè)計(jì)》是......

        VC很多實(shí)例程序

        VC++6.0應(yīng)用編程實(shí)例 例1:添加對(duì)話框條 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { 。。。。。。。。。。。。。。。。。。。。。。。 m_wndDialogBar.Crea......

        VC投資經(jīng)理工作計(jì)劃

        工作計(jì)劃 作為一名即將入職的投資經(jīng)理,通過(guò)自身對(duì)投資行業(yè)的學(xué)習(xí)以及與公司領(lǐng)導(dǎo)、創(chuàng)投同行的交流,我將近期需要履行和培養(yǎng)的工作職責(zé)及專業(yè)能力劃分為專業(yè)投資、項(xiàng)目資源開(kāi)發(fā)......

        VC編程資料總結(jié)

        CString類的完美總結(jié) 2012-05-04 15:50:50 我來(lái)說(shuō)兩句 收藏 我要投稿 ①、CString 類對(duì)象的初始化: CString str; CString str1(_T("abc")); CString str2 = _T("defg"); TC......

        VC入門的一條路[推薦]

        VC入門的一條路首先聲明,我可不是什么高手,也就是剛脫貧。因?yàn)檫\(yùn)氣很好,買到了幾本好書,在學(xué)習(xí)過(guò)程中幾乎沒(méi)走什么彎路,沒(méi)費(fèi)什么勁就入門了,現(xiàn)在一般的小程序能搞定了。看到那些因......