<span id="plx27"><var id="plx27"></var></span>
<dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>

    C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)指導(dǎo)手冊(cè)

    上傳人:1777****777 文檔編號(hào):37989271 上傳時(shí)間:2021-11-05 格式:DOC 頁(yè)數(shù):26 大?。?05KB
    收藏 版權(quán)申訴 舉報(bào) 下載
    C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)指導(dǎo)手冊(cè)_第1頁(yè)
    第1頁(yè) / 共26頁(yè)
    C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)指導(dǎo)手冊(cè)_第2頁(yè)
    第2頁(yè) / 共26頁(yè)
    C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)指導(dǎo)手冊(cè)_第3頁(yè)
    第3頁(yè) / 共26頁(yè)

    下載文檔到電腦,查找使用更方便

    15 積分

    下載資源

    還剩頁(yè)未讀,繼續(xù)閱讀

    資源描述:

    《C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)指導(dǎo)手冊(cè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)指導(dǎo)手冊(cè)(26頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

    1、C+面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)指導(dǎo)手冊(cè)班級(jí):_學(xué)號(hào):_姓名:_電子與信息工程學(xué)院計(jì)算機(jī)科學(xué)系第一部分 上機(jī)實(shí)驗(yàn)的指導(dǎo)思想和要求一、上機(jī)實(shí)驗(yàn)的目的學(xué)習(xí)C+程序設(shè)計(jì)不能滿足于“懂得了”,滿足于了解了語(yǔ)法和能看懂書上的程序,而應(yīng)當(dāng)掌握程序設(shè)計(jì)的全過程,即能獨(dú)立編寫出源程序,獨(dú)立上機(jī)調(diào)試程序,獨(dú)立運(yùn)行程序和分析結(jié)果。設(shè)計(jì)C+的初衷是為方便開發(fā)大型程序,雖然在學(xué)校中初學(xué)C+時(shí)還沒有機(jī)會(huì)接觸到大型程序,更不可能編寫出能供實(shí)際應(yīng)用的大型程序,而只能接觸到比較簡(jiǎn)單的程序。但是應(yīng)當(dāng)通過學(xué)習(xí)C+課程,對(duì)C+有比較全面的、然而是初步的認(rèn)識(shí),為今后進(jìn)一步學(xué)習(xí)和應(yīng)用C+打下良好的基礎(chǔ)。程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,必須十分

    2、重視實(shí)踐環(huán)節(jié)。許多實(shí)際的知識(shí)不是靠聽課和看書學(xué)到手的,而是通過長(zhǎng)時(shí)間的實(shí)踐積累的。要提倡通過實(shí)踐去掌握知識(shí)的方法。必須保證有足夠的上機(jī)實(shí)驗(yàn)時(shí)間,學(xué)習(xí)本課程應(yīng)該至少有30 小時(shí)的上機(jī)時(shí)間,最好能做到與授課時(shí)間之比為1:1 。除了學(xué)校規(guī)定的上機(jī)實(shí)驗(yàn)以外,應(yīng)當(dāng)提倡學(xué)生自己課余抽時(shí)間多上機(jī)實(shí)踐。上機(jī)實(shí)驗(yàn)的目的,絕不僅是為了驗(yàn)證教材和講課的內(nèi)容,或者驗(yàn)證自己所編的程序正確與否。學(xué)習(xí)程序設(shè)計(jì),上機(jī)實(shí)驗(yàn)的目的是:(1)加深對(duì)講授內(nèi)容的理解,尤其是一些語(yǔ)法規(guī)定,光靠課堂講授,既枯燥無(wú)味又難以記住,但它們是很重要的,初學(xué)者的程序出錯(cuò)往往錯(cuò)在語(yǔ)法上。通過多次上機(jī),就能自然地、熟練地掌握。通過上機(jī)來掌握語(yǔ)法規(guī)則是行

    3、之有效的方法。(2)熟悉所用的計(jì)算機(jī)系統(tǒng)的操作方法,也就是了解和熟悉C+程序開發(fā)的環(huán)境。一個(gè)程序必須在一定的外部環(huán)境下才能運(yùn)行,所謂“環(huán)境”,就是指所用的計(jì)算機(jī)系統(tǒng)的硬件和軟件條件,或者說是工作平臺(tái)。使用者應(yīng)該了解為了運(yùn)行一個(gè)C+程序需要哪些必要的外部條件(例如硬件配置、軟件配置),可以利用哪些系統(tǒng)的功能來幫助自己開發(fā)程序。每一種計(jì)算機(jī)系統(tǒng)的功能和操作方法不完全相同,但只要熟練掌握一兩種計(jì)算機(jī)系統(tǒng)的使用,再遇到其他系統(tǒng)時(shí)便會(huì)觸類旁通,很快地學(xué)會(huì)。(3)學(xué)會(huì)上機(jī)調(diào)試程序。也就是善于發(fā)現(xiàn)程序中的錯(cuò)誤,并且能很快地排除這些錯(cuò)誤,使程序能正確運(yùn)行。經(jīng)驗(yàn)豐富的人,在編譯連接過程中出現(xiàn)“出錯(cuò)信息”時(shí),一般

    4、能很快地判斷出錯(cuò)誤所在,并改正之。而缺乏經(jīng)驗(yàn)的人即使在明確的“出錯(cuò)提示”下也往往找不出錯(cuò)誤而求助于別人。要真正掌握計(jì)算機(jī)應(yīng)用技術(shù),就不僅應(yīng)當(dāng)了解和熟悉有關(guān)理論和方法,還要求自己動(dòng)手實(shí)現(xiàn)。對(duì)程序設(shè)計(jì)來說,則要求會(huì)編程序并上機(jī)調(diào)試通過。因此調(diào)試程序不僅是得到正確程序的一種手段,而且它本身就是程序設(shè)計(jì)課程的一個(gè)重要的內(nèi)容和基本要求,應(yīng)給予充分的重視。調(diào)試程序固然可以借鑒他人的現(xiàn)成經(jīng)驗(yàn),但更重要的是通過自己的直接實(shí)踐來累積經(jīng)驗(yàn),而且有些經(jīng)驗(yàn)是只能“會(huì)意”難以“言傳”。別人的經(jīng)驗(yàn)不能代替自己的經(jīng)驗(yàn)。調(diào)試程序的能力是每個(gè)程序設(shè)計(jì)人員應(yīng)當(dāng)掌握的一項(xiàng)基本功。因此,在做實(shí)驗(yàn)時(shí)千萬(wàn)不要在程序通過后就認(rèn)為萬(wàn)事大吉、

    5、完成任務(wù)了,而應(yīng)當(dāng)在己通過的程序基礎(chǔ)上作一些改動(dòng)(例如修改一些參數(shù)、增加程序一些功能、改變某些語(yǔ)句等),再進(jìn)行編譯、連接和運(yùn)行。甚至于“自設(shè)障礙”,即把正確的程序改為有錯(cuò)的(例如語(yǔ)句漏寫分號(hào);比較符“= =”錯(cuò)寫為賦值號(hào)“=”;使數(shù)組下標(biāo)出界;使整數(shù)溢出等),觀察和分析所出現(xiàn)的情況。這樣的學(xué)習(xí)才會(huì)有真正的收獲,是靈活主動(dòng)的學(xué)習(xí)而不是呆板被動(dòng)的學(xué)習(xí)。二、上機(jī)實(shí)驗(yàn)前的準(zhǔn)備工作在上機(jī)實(shí)驗(yàn)前應(yīng)事先做好準(zhǔn)備工作,以提高上機(jī)實(shí)驗(yàn)的效率,準(zhǔn)備工作至少應(yīng)包括:(1)了解所用的計(jì)算機(jī)系統(tǒng)(包括C+編譯系統(tǒng)和工作平臺(tái))的性能和使用方法;(2)復(fù)習(xí)和掌握與本實(shí)驗(yàn)有關(guān)的教學(xué)內(nèi)容;(3)準(zhǔn)備好上機(jī)所需的程序。手編程序應(yīng)

    6、書寫整齊,并經(jīng)人工檢查無(wú)誤后才能上機(jī),以提高上機(jī)效率。初學(xué)者切忌不編程序或抄別人程序去上機(jī),應(yīng)從一開始就養(yǎng)成嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng);(4)對(duì)運(yùn)行中可能出現(xiàn)的問題事先作出估計(jì),對(duì)程序中自己有疑問的地方,應(yīng)作出記號(hào),以便在上機(jī)時(shí)給予注意;(5)準(zhǔn)備好調(diào)試和運(yùn)行時(shí)所需的數(shù)據(jù)。三、上機(jī)實(shí)驗(yàn)的步驟上機(jī)實(shí)驗(yàn)時(shí)應(yīng)該一人一組,獨(dú)立上機(jī)。上機(jī)過程中出現(xiàn)的問題,除了是系統(tǒng)的問題以外,一般應(yīng)自己獨(dú)立處理,不要輕易舉手問教師。尤其對(duì)“出錯(cuò)信息”,應(yīng)善于自己分析判斷。這是學(xué)習(xí)調(diào)試程序的良好機(jī)會(huì)。上機(jī)實(shí)驗(yàn)一般應(yīng)包括以下幾個(gè)步驟:(1)進(jìn)入C+工作環(huán)境(例如Visual C+6.0)。(2)輸入自己所編好的程序。(3)檢查一遍已輸

    7、入的程序是否有錯(cuò)(包括輸入時(shí)打錯(cuò)的和編程中的錯(cuò)誤),如發(fā)現(xiàn)有錯(cuò),及時(shí)改正。(4)進(jìn)行編譯和連接。如果在編譯和連接過程中發(fā)現(xiàn)錯(cuò)誤,屏幕上會(huì)出現(xiàn)“出錯(cuò)信息”,根據(jù)提示找到出錯(cuò)位置和原因,加以改正。再進(jìn)行編譯,如此反復(fù)直到順利通過編譯和連接為止。(5)運(yùn)行程序并分析運(yùn)行結(jié)果是否合理和正確。在運(yùn)行時(shí)要注意當(dāng)輸入不同數(shù)據(jù)時(shí)所得到的結(jié)果是否正確。(6)輸出程序清單和運(yùn)行結(jié)果。四、實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)后,應(yīng)整理出實(shí)驗(yàn)報(bào)告,實(shí)驗(yàn)報(bào)告應(yīng)包括以下內(nèi)容:(1)題目;(2)程序清單(計(jì)算機(jī)打印出的程序清單);(3)運(yùn)行結(jié)果(必須是上面程序清單所對(duì)應(yīng)打印輸出的結(jié)果);(4)對(duì)運(yùn)行情況所作的分析以及本次調(diào)試程序所取得的經(jīng)驗(yàn)。如果

    8、程序末能通過,應(yīng)分析其原因。第二部分 關(guān)于程序的調(diào)試和測(cè)試一、程序錯(cuò)誤的類型為了幫助各位同學(xué)調(diào)試程序和分析程序,下面簡(jiǎn)單介紹程序出錯(cuò)的種類。(1)語(yǔ)法錯(cuò)誤即不符合C+語(yǔ)言的語(yǔ)法規(guī)定,例如將main 錯(cuò)寫為naim ,括號(hào)不匹配,語(yǔ)句最后漏了分號(hào)等,這些都會(huì)在編譯時(shí)被發(fā)現(xiàn)并指出。這些都屬于“致命錯(cuò)誤”, 不改正是不能通過編譯的。對(duì)一些在語(yǔ)法上有輕微毛病但不影響程序運(yùn)行的錯(cuò)誤(如定義了變量但始終未使用),編譯時(shí)會(huì)發(fā)出“警告”,雖然程序能通過編譯,但不應(yīng)當(dāng)使程序“帶病工作”,應(yīng)該將程序中所有導(dǎo)致“錯(cuò)誤(error)”和“警告(warning)”的因素都消除,再使程序投入運(yùn)行。(2)邏輯錯(cuò)誤這是指程序

    9、無(wú)語(yǔ)法錯(cuò)誤,也能正常運(yùn)行,但是結(jié)果不對(duì)。例如求s=l+2+3+100,有人寫出以下語(yǔ)句:for(s=0, i=1; iab;c=a/b;coutcendl;return 0;當(dāng)輸入的b為非零值時(shí),運(yùn)行無(wú)問題。當(dāng)輸入的b為零時(shí),運(yùn)行時(shí)出現(xiàn)“溢出(overflow)”的錯(cuò)誤。如果在執(zhí)行上面的cin語(yǔ)句時(shí)輸入456.78 34.56,則輸出c的值為2,顯然是不對(duì)的。這是由一于輸入的數(shù)據(jù)類型與輸入格式符不匹配而引起的。二、程序的測(cè)試程序調(diào)試的任務(wù)是排除程序中的錯(cuò)誤,使程序能順利地運(yùn)行并得到預(yù)期的效果。程序的調(diào)試階段不僅要發(fā)現(xiàn)和消除語(yǔ)法上的錯(cuò)誤,還要發(fā)現(xiàn)和消除邏輯錯(cuò)誤和運(yùn)行錯(cuò)誤。除了可以利用編譯時(shí)提示的

    10、“出錯(cuò)信息”來發(fā)現(xiàn)和改正語(yǔ)法錯(cuò)誤外,還可以通過程序的測(cè)試來發(fā)現(xiàn)邏輯錯(cuò)誤和運(yùn)行錯(cuò)誤。程序測(cè)試的任務(wù)是盡力尋找程序中可能存在的錯(cuò)誤。在測(cè)試時(shí)要設(shè)想到程序運(yùn)行時(shí)的各種情況,測(cè)試在各種情況下的運(yùn)行結(jié)果是否正確。程序測(cè)試是程序調(diào)試的一個(gè)組成部分。有時(shí)程序在某些情況下能正常運(yùn)行,而在另外一些情況下不能正常運(yùn)行或得不到正確的結(jié)果,因此,一個(gè)程序即使通過編譯并正常運(yùn)行而且結(jié)果正確,還不能認(rèn)為程序沒有問題了。要考慮是否在任何情況下都能正常運(yùn)行并且得到正確的結(jié)果。測(cè)試的任務(wù)就是要找出那些不能正常運(yùn)行的情況和原因。下而通過一個(gè)典型的和容易理解的例子來說明測(cè)試的概念。求一元二次方程ax2+bx+c=0的根。有人根據(jù)求

    11、根公式x1, 2=(-bsqrt(b2-4ac)/2a編寫出以下程序:# include # includeusing namespace std;int main( ) float a, b, c, disc, x1, x2; cinabc; disc=b*b-4*a*c; x1=(-b + sqrt(disc)/(2*a); x2=(-b - sqrt(disc)/(2*a); cout”x1=”x1”x2=”x20有兩個(gè)不等的實(shí)根:x1, 2=(-bsqrt(b2-4ac)/2a b2-4ac=0有兩個(gè)相等的實(shí)根:x1= x 2=-b/2a b2-4ac0 a0,b2-4ac=0 a0,

    12、 b2-4ac0 a=0,b0 a=0,b= 0,c = 0 a=0,b= 0,c0應(yīng)當(dāng)分別測(cè)試程序在以上6 種情況下的運(yùn)行情況,觀察它們是否符合要求。為此,應(yīng)準(zhǔn)備6 組數(shù)據(jù)。用這6 組數(shù)據(jù)去測(cè)試程序的“健壯性”。在使用上面這個(gè)程序時(shí),顯然只有滿足情況的數(shù)據(jù)才能使程序正確運(yùn)行,而輸入滿足情況的數(shù)據(jù)時(shí),程序出錯(cuò)。這說明程序不“健壯”。為此,應(yīng)當(dāng)修改程序,使之能適應(yīng)以上6 種情況??蓪⒊绦蚋臑椋?include#includeusing namespace std;int main( ) float a, b, c, disc, x1, x2, p, q; coutabc; if(a= =0) i

    13、f(b= =0) if(c= =0) coutIt is trivial.endl; else coutIt is impossible.endl; else coutIt has one solution:endl; coutx=-c/b=0) if(disc0) coutIt has two real solutions:endl; x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); coutx1=x1,x2=x2endl; else coutIt has two same real solutions:endl; coutx1=x2=-b/

    14、(2*a)endl; else coutIt has two complex solutions:endl; p=-b/(2*a); q=sqrt(-disc)/(2*a); coutx1=p+qi, x2=p-qi“a + b =” a + b ; 選擇BuildCompile test.cpp命令,對(duì)此源程序進(jìn)行編譯。觀察和分析編譯信息。 根據(jù)編譯信息指出的錯(cuò)誤,修改程序。再進(jìn)行編譯,如果還有錯(cuò),再重復(fù)此過程,直到編譯不出錯(cuò)為止。 選擇BuildBuild test.exe命令,對(duì)程序進(jìn)行連接,如果不出錯(cuò),就會(huì)生成可執(zhí)行程序test.exe 。 選擇BuildExecute test.ex

    15、e 命令,執(zhí)行可執(zhí)行程序test.exe觀察屏幕的變化。在輸出窗口應(yīng)顯示程序運(yùn)行結(jié)果。 分析結(jié)果是否正確,如果不正確或認(rèn)為輸出格式不理想,可以修改程序,然后重新執(zhí)行以上至步驟。此外,還可利用已有的源程序建立一個(gè)新程序。由于剛才已建立了一個(gè)名為test.cpp 的源程序,可以以它為基礎(chǔ)建立一個(gè)新程序,這樣更方便些。按以下步驟: 通過“資源管理器”或“我的電腦”,按文件路徑找到已有源程序test.cpp。 雙擊“test.cpp”圖標(biāo),進(jìn)入Visual C+集成環(huán)境,打開test.cpp。 在test.cpp基礎(chǔ)上將源程序修改為以下內(nèi)容(第1章第9題):# include using namesp

    16、ace std ; int main ( ) int a , b ; c = add ( a , b ) cout a + b = cendl ; return 0 ; int add ( int x , int y ) ; z = x + y ; return (z); 選擇FileSave as命令,用新的文件名other.cpp保存。此時(shí),other.cpp與test.cpp 在同一子目錄下。 對(duì)新文件other.cpp進(jìn)行編譯、連接和運(yùn)行。步驟與前相同。3 預(yù)習(xí)內(nèi)容C +面向?qū)ο蟪绦蛟O(shè)計(jì)第1章。這是第一個(gè)實(shí)驗(yàn),寫得比較詳細(xì)。希望大家能在實(shí)驗(yàn)中多思考,多給自己提問題,多設(shè)想幾種可能性。做

    17、實(shí)驗(yàn)時(shí)不要滿足于驗(yàn)證書本知識(shí)。在以后的實(shí)驗(yàn)中,請(qǐng)大家自己設(shè)計(jì)具體的實(shí)驗(yàn)步驟,盡可能自己補(bǔ)充增加一些內(nèi)容,以提高自己的實(shí)踐能力。實(shí)驗(yàn)二 C+對(duì)C的擴(kuò)充1實(shí)驗(yàn)?zāi)康模?)了解在面向過程程序設(shè)計(jì)中C+對(duì)C功能的擴(kuò)充與增強(qiáng),并善于在編寫程序過程中應(yīng)用這些新的功能。(2)進(jìn)一步熟悉在所用的系統(tǒng)上編輯、編譯、連接和運(yùn)行C+程序的方法。(3)進(jìn)一步熟悉C+程序的結(jié)構(gòu)和編程方法。2實(shí)驗(yàn)內(nèi)容和步驟要求事先編好解決下面問題的程序,然后上機(jī)輸入程序并調(diào)試運(yùn)行。(1)輸入以下程序,進(jìn)行編譯,觀察編譯情況,如果有錯(cuò)誤,請(qǐng)修改程序,再進(jìn)行編譯,直到?jīng)]有錯(cuò)誤,然后進(jìn)行連接和運(yùn)行,分析運(yùn)行結(jié)果(本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第1章

    18、習(xí)題第9題)。# include using namespace std ; int main ( ) int a , b ; c = add ( a , b ) cout a + b = cendl ; return 0 ; int add ( int x , int y ) ; z = x + y ; return (z);(2)編一個(gè)程序,用來求2個(gè)或3個(gè)正整數(shù)中的最大數(shù)。 用不帶默認(rèn)參數(shù)的函數(shù)實(shí)現(xiàn)。 用帶有默認(rèn)參數(shù)的函數(shù)實(shí)現(xiàn)。(本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第1章習(xí)題第11題)對(duì)比兩種方法,分析用帶有默認(rèn)參數(shù)的函數(shù)的優(yōu)點(diǎn)和應(yīng)用的場(chǎng)合??偨Y(jié)如何選擇默認(rèn)參數(shù)的值。請(qǐng)分析本題中默認(rèn)參數(shù)的值應(yīng)該在

    19、什么范圍。(3)輸入兩個(gè)整數(shù),將它們按由大到小的順序輸出(本題是C+面向?qū)ο蟪绦蛟O(shè) 計(jì)第1章習(xí)題第12題)。 使用指針方法。 使用變量的引用。比較這兩種方法的特點(diǎn)和使用方法。(4)對(duì)3個(gè)變量按由小到大順序排序,要求使用變量的引用(本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第1章習(xí)題第13題)。 使用指針方法。 使用變量的引用。請(qǐng)總結(jié)使用引用時(shí)要注意什么問題。(5)有5個(gè)字符串,要求對(duì)它們按由小到大順序排列,用string方法(本題是C+ 面向?qū)ο蟪绦蛟O(shè)計(jì)第1章習(xí)題第16題)。(6)編一個(gè)程序,用同一個(gè)函數(shù)名對(duì)n個(gè)數(shù)據(jù)進(jìn)行從小到大排序,數(shù)據(jù)類型可以是整型、單精度型、雙精度型(本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第1章習(xí)題

    20、第17題和18題)。 用重載函數(shù)實(shí)現(xiàn)。 用函數(shù)模板實(shí)現(xiàn)。比較這兩種方法各有什么特點(diǎn),什么情況下可以用函數(shù)模板代替重載函數(shù)?什么情況下不可以用函數(shù)模板代替重載函數(shù)?3預(yù)習(xí)內(nèi)容C+面向?qū)ο蟪绦蛟O(shè)計(jì)第l章。實(shí)驗(yàn)三 類和對(duì)象(一)1實(shí)驗(yàn)?zāi)康模?)掌握聲明類的方法,類和類的成員的概念以及定義對(duì)象的方法。(2)初步掌握用類和對(duì)象編制基于對(duì)象的程序。(3)學(xué)習(xí)檢查和調(diào)試基于對(duì)象的程序。2實(shí)驗(yàn)內(nèi)容(1)有以下程序:# include using namespace std ; class Time /定義Time類 public: /數(shù)據(jù)成員為公用的int hour ; int minute ; int se

    21、c ; ;int main ( ) Time tl ; /定義t1為Time類對(duì)象cintl.hour ;/輸入設(shè)定的時(shí)間cin tl.minute ;cintl.sec ; coutt1.hour”:”t1.minutetl.secendl; /輸出時(shí)間return 0; 改寫程序,要求: 將數(shù)據(jù)成員改為私有的; 將輸入和輸出的功能改為由成員函數(shù)實(shí)現(xiàn); 在類體內(nèi)定義成員函數(shù)。然后編譯和運(yùn)行程序。請(qǐng)分析什么成員應(yīng)指定為公用的?什么成員應(yīng)指定為私有的?什么函數(shù)最好放在類中定義?什么函數(shù)最好在類外定義?本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第2章第2題。(2)分別給出如下的3個(gè)文件: 含類定義的頭文件stud

    22、ent.h 。/student.h (這是頭文件,在此文件中進(jìn)行類的聲明)class Student /類聲明 public : void display ( ) ; /公用成員函數(shù)原型聲明private : int num ; char name20 ; char sex ; ; 包含成員函數(shù)定義的源文件student.cpp。/student.cpp (在此文件中進(jìn)行函數(shù)的定義)# include # include “student.h” /不要漏寫此行,否則編譯通不過void Student : : display ( ) /在類外定義display類函數(shù) cout”num:”nume

    23、ndl; cout”name:”nameendl;cout”sex:”sexendl; 包含主函數(shù)的源文件main.cpp。為了組成一個(gè)完整的源程序,應(yīng)當(dāng)有包括主函數(shù)的源文件:/main.cpp (主函數(shù)模塊)# include # include ”student.h” /將類聲明頭文件包含進(jìn)來int main ( ) Student stud ; /定義對(duì)象stud.display( ); /執(zhí)行stud對(duì)象的display函數(shù)return 0; 請(qǐng)完善該程序,在類中增加一個(gè)對(duì)數(shù)據(jù)成員賦初值的成員函數(shù)set_value。上機(jī)調(diào)試并運(yùn)行。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第2章第4題。(3)需要求3

    24、個(gè)長(zhǎng)方柱的體積,請(qǐng)編一個(gè)基于對(duì)象的程序。數(shù)據(jù)成員包括length(長(zhǎng))、width(寬)、height(高)。要求用成員函數(shù)實(shí)現(xiàn)以下功能: 由鍵盤分別輸入3 個(gè)長(zhǎng)方柱的長(zhǎng)、寬、高; 計(jì)算長(zhǎng)方柱的體積; 輸出3個(gè)長(zhǎng)方柱的體積。請(qǐng)編程序,上機(jī)調(diào)試并運(yùn)行。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第2章第6題。3預(yù)習(xí)內(nèi)容C+面向?qū)ο蟪绦蛟O(shè)計(jì)第2章。實(shí)驗(yàn)四 類和對(duì)象(二)1實(shí)驗(yàn)?zāi)康模?)進(jìn)一步加深對(duì)類和對(duì)象的理解。(2)掌握類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的概念和使用方法。(3)掌握對(duì)象數(shù)組、對(duì)象的指針及其使用方法。(4)掌握友元的概念和使用。(5)了解類模板的使用方法。2實(shí)驗(yàn)內(nèi)容(1)有以下程序:# include clas

    25、s Student public:Student ( int n, float s ) : num(n) , score(s) void change ( int n , float s ) num=n; score=s; void display ( ) cout num ” ”scoreendl; private : int num ;float score ; ; void main ( ) Student stud (101, 78.5); stud. display ( )stud. change (101, 80.5 ) ; stud . display( ); 閱讀此程序,分析其

    26、執(zhí)行過程,然后上機(jī)運(yùn)行,對(duì)比輸出結(jié)果。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第3章第6題。 修改上面的程序,增加一個(gè)fun函數(shù),改寫main函數(shù)。在main函數(shù)中調(diào)用fun函數(shù),在fun函數(shù)中調(diào)用change和display函數(shù)。在fun函數(shù)中使用對(duì)象的引用(Student &)作為形參。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第3章第8題。(2)商店銷售某一商品,商店每天公布統(tǒng)一的折扣(discount)。同時(shí)允許銷售人員在銷售時(shí)靈活掌握售價(jià)(price),在此基礎(chǔ)上,對(duì)一次購(gòu)10件以上者,還可以享受9.8折優(yōu)惠?,F(xiàn)己知當(dāng)天3個(gè)銷貨員銷售情況為:銷貨員號(hào)(num)銷貨件數(shù)(quantity)銷貨單價(jià)(price )

    27、101 5 23.5 102 12 24.56103 100 21.5 請(qǐng)編程序,計(jì)算出當(dāng)日此商品的總銷售款sum以及每件商品的平均售價(jià)。要求用靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第3章第9題。提示:將折扣discount,總銷售款sum和商品銷售總件數(shù)n聲明為靜態(tài)數(shù)據(jù)成員,再定義靜態(tài)成員函數(shù)average(求平均售價(jià))和display(輸出結(jié)果)。(3)有以下程序(這是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第3章例3.13的程序):#include using namespace std;class Date;class Time public: Time(int, int, int); v

    28、oid display(Date&); private: int hour; int minute; int sec; ;class Date public: Date(int, int, int); friend void Time: display(Date &); private: int month; int day; int year; ; Time: Time (int h, int m, int s) hour=h; minute=m; sec=s; void Time: display(Date &da) coutda.month/da.day/da.yearendl; cou

    29、thour:minute:secendl; Date: Date(int m, int d, int y) month=m; day=d; year=y; int main()Time t1(10,13,56); Date d1(12,25,2004); t1.display(d1); return 0;請(qǐng)讀者分析和運(yùn)行此程序,注意友元函數(shù)Time : : display 的作用。將程序中的display 函數(shù)不放在Time類中,而作為類外的普通函數(shù),然后分別在Time和Date類中將display聲明為友元函數(shù)。在主函數(shù)中調(diào)用display函數(shù),display函數(shù)分別引用Time和Date兩

    30、個(gè)類的對(duì)象的私有數(shù)據(jù),輸出年、月、日和時(shí)、分、秒。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì) 第3章第10題。修改后上機(jī)調(diào)試和運(yùn)行。(4)有以下使用類模板程序(這是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第3章例3.14的程序):#include using namespace std;templateclass Compare public: Compare(numtype a,numtype b) x=a;y=b; numtype max() return (xy)?x:y; numtype min() return (xy)?x:y; private: numtype x,y; ;int main()Compare cmp

    31、1(3,7); coutcmp1.max() is the Maximum of two inteder numbers.endl; coutcmp1.min() is the Minimum of two inteder numbers.endlendl; Compare cmp2(45.78,93.6); coutcmp2.max() is the Maximum of two float numbers.endl; coutcmp2.min() is the Minimum of two float numbers.endlendl; Compare cmp3(a,A); coutcmp

    32、3.max() is the Maximum of two characters.endl; coutcmp3.min() is the Minimum of two characters. c , b + c a , c + a b 編寫程序,輸入a , b , c ,檢查a , b , c 是否滿足以上條件,如不滿足,由cerr輸出有關(guān)出錯(cuò)信息。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第7章第1題。(2)從鍵盤輸入一批數(shù)值,要求保留3位小數(shù),在輸出時(shí)上下行小數(shù)點(diǎn)對(duì)齊。 用控制符控制輸出格式; 用流成員函數(shù)控制輸出格式。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第7章第2題。(3)建立兩個(gè)磁盤文件fl. dat 和f2

    33、. dat ,編程序?qū)崿F(xiàn)以下工作: 從鍵盤輸入20個(gè)整數(shù),分別存放在兩個(gè)磁盤文件中(每個(gè)文件中放10個(gè)整數(shù)); 從fl . dat讀入10個(gè)數(shù),然后存放到f2 . dat文件原有數(shù)據(jù)的后面; 從f2 .dat中讀入20個(gè)整數(shù),將它們按從小到大的順序存放到f2 .dat (不保留原來的數(shù)據(jù))。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第7章第4題。3預(yù)習(xí)內(nèi)容C+面向?qū)ο蟪绦蛟O(shè)計(jì)第7章。實(shí)驗(yàn)九 C +工具1實(shí)驗(yàn)?zāi)康模?)學(xué)會(huì)使用C+的異常處理機(jī)制進(jìn)行程序的調(diào)試。(2)學(xué)會(huì)使用命名空間解決名字沖突。2實(shí)驗(yàn)內(nèi)容事先編寫好程序,上機(jī)調(diào)試和運(yùn)行程序,分析結(jié)果。(1)求一元二次方程式ax2+bx+c=0的實(shí)根,如果方程沒有實(shí)根,則利用異常處理機(jī)制輸出有關(guān)警告信息。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第8章第1題。(2)學(xué)校的人事部門保存了有關(guān)學(xué)生的部分?jǐn)?shù)據(jù)(學(xué)號(hào)、姓名、年齡、住址),教務(wù)部門也保存了學(xué)生的另外一些數(shù)據(jù)(學(xué)號(hào)、姓名、性別、成績(jī)),兩個(gè)部門分別編寫了本部門的學(xué)生數(shù)據(jù)管理程序,其中都用了Student作為類名。現(xiàn)在要求在全校的學(xué)生數(shù)據(jù)管理程序中調(diào)用這兩個(gè)部門的學(xué)生數(shù)據(jù),分別輸出兩種內(nèi)容的學(xué)生數(shù)據(jù)。要求用ANSI C +編程,使用命名空間。本題是C+面向?qū)ο蟪绦蛟O(shè)計(jì)第8章第3題。3預(yù)習(xí)內(nèi)容C+面向?qū)ο蟪绦蛟O(shè)計(jì)第8章。25

    展開閱讀全文
    溫馨提示:
    1: 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
    2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
    3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
    4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
    5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
    6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
    7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
    關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

    copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

    備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


    本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

    欧美久久久一区二区三区,国产精品亚洲一区二区无码,亚洲国产精品综合久久20声音,亚洲国产精品无码久久久蜜芽
    <span id="plx27"><var id="plx27"></var></span>
    <dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>