C++程序設(shè)計(jì)上機(jī)指導(dǎo)書_第1頁
C++程序設(shè)計(jì)上機(jī)指導(dǎo)書_第2頁
C++程序設(shè)計(jì)上機(jī)指導(dǎo)書_第3頁
C++程序設(shè)計(jì)上機(jī)指導(dǎo)書_第4頁
C++程序設(shè)計(jì)上機(jī)指導(dǎo)書_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 上機(jī)實(shí)驗(yàn)指導(dǎo)書課程名稱 C+程序設(shè)計(jì) 主撰人 宋曉宇、劉繼飛審核人 欒方軍沈陽建筑大學(xué)信息學(xué)院2008 年3月課程名稱:C+程序設(shè)計(jì)上機(jī)學(xué)時:16適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)先修課程:C語言一、 上機(jī)實(shí)驗(yàn)總體目標(biāo) C+程序設(shè)計(jì)是為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)開設(shè)的一門程序設(shè)計(jì)基礎(chǔ)課。本課程強(qiáng)調(diào)動手實(shí)踐,主要講授C+語言的基本語法與面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)理論知識,作為該課程的重要組成部分,其上機(jī)實(shí)驗(yàn)是理論運(yùn)用于實(shí)踐的教學(xué)環(huán)節(jié)。通過上機(jī)實(shí)踐,可以使學(xué)生更深入地了解C+編程思想,掌握結(jié)構(gòu)化和面向?qū)ο蟮木幊谭椒ㄅc技巧,熟悉常用的軟件開發(fā)環(huán)境(如Visual C+),提高學(xué)生在程序設(shè)計(jì)方面和解決實(shí)際問題的能力,

2、為學(xué)生后續(xù)課程的學(xué)習(xí)及求職就業(yè)奠定良好的基礎(chǔ)。二、 上機(jī)實(shí)驗(yàn)課時分配序號上機(jī)實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)類型每組人數(shù)上機(jī)學(xué)時1字符串類的設(shè)計(jì)與使用設(shè)計(jì)42派生類的設(shè)計(jì)與使用設(shè)計(jì)43運(yùn)算符重載設(shè)計(jì)44類模板設(shè)計(jì)和使用設(shè)計(jì)4三、 上機(jī)實(shí)驗(yàn)環(huán)境 硬件:CPU P3 500Hz,內(nèi)存256MB,硬盤500MB或以上軟件:Windows XP Professional簡體中文版,Visual C+ 6.0四、 參考書(3種以上)1、C+大學(xué)教程,Harvey M.Deitel等著,邱仲潘等譯,電子工業(yè)出版社 20012、C+編程思想,Bruce Eckel著,劉宗田等譯,機(jī)械工業(yè)出版社 20023、C+精粹,Ira P

3、ohl著,王樹武等譯,機(jī)械工業(yè)出版社 20034、數(shù)據(jù)結(jié)構(gòu),嚴(yán)蔚敏編,清華大學(xué)出版社 2004實(shí)驗(yàn)1 字符串類設(shè)計(jì)與使用【實(shí)驗(yàn)?zāi)康摹?. 熟悉C+語言程序的運(yùn)行環(huán)境Visual C+;2. 了解在該集成環(huán)境下如何編輯、編譯、連接和運(yùn)行一個C+程序;3. 掌握C+中的面向?qū)ο笤O(shè)計(jì)的基本知識(類、對象、構(gòu)造函數(shù)等);4. 通過字符串類的設(shè)計(jì)和使用,初步了解C+程序的基本結(jié)構(gòu)?!緦?shí)驗(yàn)準(zhǔn)備】1. 類的聲明格式:class 類名private:私有數(shù)據(jù)成員和成員函數(shù);public:公有數(shù)據(jù)成員和成員函數(shù); ;2. 構(gòu)造函數(shù)和析構(gòu)函數(shù)*構(gòu)造函數(shù)析構(gòu)函數(shù)重載構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)3. main函數(shù)由一組相互

4、通信的類對象組成【實(shí)驗(yàn)內(nèi)容】1. 編寫字符串類CTString,設(shè)計(jì)樣式如下:class CTString char *m_pData;/ 用于保存字符數(shù)據(jù)int m_nLen;/ 記錄字符長度public:/ 構(gòu)造函數(shù)和析構(gòu)函數(shù)CTString();CTString(char *);CTString(const CTString&); CTString();/ 其它成員函數(shù)CTString *Copy(CTString*, CTString*);/ 拷貝CTString *Connect(CTString*, CTString*);/ 連接char* Find(CTString*, CTSt

5、ring*);/ 查找子串char* Find(CTString*, char);/ 查找字符void Print();/ 打印輸出字符串內(nèi)容 / 學(xué)生自己擴(kuò)充成員函數(shù) ;要求學(xué)生實(shí)現(xiàn)上面成員函數(shù)的功能,有能力的同學(xué)可以自己擴(kuò)充類的功能(成員函數(shù))。2. 編寫構(gòu)造函數(shù)和析構(gòu)函數(shù)要求使用new和delete申請內(nèi)存空間和釋放空間,并注意內(nèi)存泄漏的問題(空間申請不釋放)。 3. 類的測試編寫類功能測試用的主程序,并顯示結(jié)果?!舅伎碱}】1. 運(yùn)行下面的程序,分析結(jié)果產(chǎn)生的原因。#include void main() CTString *pstr;pstr = new CTString; pstr-

6、Print();pstr-Copy(“hello”);pstr-Print(); 2. 如何改寫這個CTString類,使其能夠有記錄對象個數(shù)的功能? 實(shí)驗(yàn)2 派生類的設(shè)計(jì)與使用【實(shí)驗(yàn)?zāi)康摹?. 掌握派生類的設(shè)計(jì)方法;2. 了解繼承的本質(zhì)和好處;3. 熟悉繼承過程中派生方法及訪問性質(zhì)的改變;4. 通過實(shí)驗(yàn)加深對C+中繼承概念的理解?!緦?shí)驗(yàn)準(zhǔn)備】1. 派生類的聲明格式:class 派生類名 : 派生方式 基類名/ 派生類新特性(新增成員)private:私有數(shù)據(jù)成員和成員函數(shù);public: 公有數(shù)據(jù)成員和成員函數(shù); ;2. 派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)*1)派生類兩構(gòu)函數(shù)的執(zhí)行順序2)派生類兩構(gòu)

7、函數(shù)的構(gòu)造規(guī)則3. 調(diào)整派生類中的訪問屬性的其他方法 1)同名成員 2)訪問聲明【實(shí)驗(yàn)內(nèi)容】1. 設(shè)計(jì)雇員類CEmpoyee,該類的格式如下:class CEmpoyeechar *m_pName;/ 姓名int m_nAge;/ 年齡float m_fSalary; / 薪水public:/ 構(gòu)造函數(shù)和析構(gòu)函數(shù)CEmpoyee (char * pName=NULL, int age=0, float salary=0.0 );CEmpoyee (const CEmpoyee &); CEmpoyee ();/ 其它成員函數(shù)void SetName(char*);char* GetName()

8、;void SetAge(int);int GetAge();void SetSalary(float);float GetSalary();void Print();/ 打印輸出信息 / 學(xué)生自己擴(kuò)充其它成員函數(shù) ;2. 設(shè)計(jì)管理者類CManager,其的格式如下:class CManager : public (private) CEmployeeint m_nLevel;/ 級別public:/ 構(gòu)造函數(shù)和析構(gòu)函數(shù)CManager (char * pName=NULL, int age=0, float salary=0.0, );CEmpoyee (const CEmpoyee &,

9、float); CEmpoyee ();/ 其它成員函數(shù)void SetLevel(int);int GetLevel();void Print();/ 打印輸出信息 / 學(xué)生自己擴(kuò)充其它成員函數(shù);3. 編寫主函數(shù)或者其它函數(shù)來測試CEmpoyee和CManager兩類的性質(zhì)和功能。聲明兩個類的對象,觀察兩者的內(nèi)存結(jié)構(gòu)(有哪些數(shù)據(jù)成員?各占多少字節(jié)?)。CManager定義時使用多種派生方式,然后用CManager對象使用其成員,觀察private和public訪問控制性質(zhì)的變化。【思考題】1. 每個類都有顯式或隱式的構(gòu)造函數(shù)和析構(gòu)函數(shù)。派生類中有一個隱含的基類對象,如何對這個對象進(jìn)行初始化或

10、銷毀?2. 有兩個類:class Xint a,c; public: void print( ); ;class Y : public X int b,c; public:void print( ) print(); / 要使用從X那繼承過來的 print;Y類中的print函數(shù)能正常運(yùn)行嗎?為什么?實(shí)驗(yàn)3 運(yùn)算符重載【實(shí)驗(yàn)?zāi)康摹?. 通過在復(fù)數(shù)類CComplex中對+,-,*,/,=,等運(yùn)算符進(jìn)行重載的設(shè)計(jì),掌握運(yùn)算符重載;2. 通過虛函數(shù)進(jìn)一步了解C+多態(tài)的特性和作用?!緦?shí)驗(yàn)準(zhǔn)備】1. 多態(tài)性的概念 1)多態(tài)性的概念 2)多態(tài)性的實(shí)現(xiàn)2. 函數(shù)重載 1)普通函數(shù)重載 2)類的成員函數(shù)重載3

11、. 運(yùn)算符重載1)運(yùn)算符重載2)一般運(yùn)算符函數(shù)(友元)3)成員運(yùn)算符重載4)調(diào)用方式4. 虛函數(shù) 1)虛函數(shù)的概念 2)虛函數(shù)的定義和使用【實(shí)驗(yàn)內(nèi)容】1. 實(shí)現(xiàn)一個CComplex class(數(shù)學(xué)里的復(fù)數(shù)),練習(xí)運(yùn)算符的重載。要求具有以下操作:構(gòu)造函數(shù)拷貝構(gòu)造函數(shù) operator=operator*operator+operator-operator/operator= operatoroperator!=其中,復(fù)數(shù)類的實(shí)部和虛部的取值類型為float。2. 用一個簡單的程序,使用CComplex的各個成員函數(shù)和運(yùn)算符。3. 在CComplex中編寫若干個虛函數(shù),觀察類對象有無虛函數(shù)內(nèi)存結(jié)

12、構(gòu)的變化?!舅伎碱}】1. C語言為什么不支持函數(shù)重載,而C+卻支持?2. -和 () 兩個運(yùn)算符如何實(shí)現(xiàn)重載?3. C+實(shí)現(xiàn)虛函數(shù)的內(nèi)存結(jié)構(gòu)有什么好處?實(shí)驗(yàn)4 類模板設(shè)計(jì)和使用【實(shí)驗(yàn)?zāi)康摹?. 掌握C+模板的設(shè)計(jì)方法;2. 了解模板的機(jī)制和好處;3. 同時復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)中的知識?!緦?shí)驗(yàn)準(zhǔn)備】1. 函數(shù)模板的定義格式:template返回類型 函數(shù)模板名(參數(shù)表) 使用Type的函數(shù)模板定義體2. 類模板的定義格式:templateclass 類模板名 類模板的定義體;template返回類型 類模板名:函數(shù)模板名(參數(shù)表) 類模板中成員函數(shù)模板的定義體【實(shí)驗(yàn)內(nèi)容】1. 設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)中鏈棧的類模板

13、(鏈表形式的棧)template class LinkStack / ;棧模板中的內(nèi)容參照數(shù)據(jù)結(jié)構(gòu)教材自己設(shè)計(jì)。2. 編寫main函數(shù)等測試模板類。3. 有能力的同學(xué)可以選作一下附加題。【附加題】使用基類管理一個時鐘的列表(可以使用標(biāo)準(zhǔn)模板庫中STL中的vector)。基類CTimer, 他提供了基本的接口外,還提供了一個功能GetTimeZone,主要是取得時區(qū),同時打印自己所在時區(qū)的字符串。返回值可以是時區(qū)的代號。這是一個虛函數(shù),每個子類必須重載它。子類繼承于CTimer, 比如CBeijingTimer.每個Timer的對象有一個編號(可以是一個無符號的long或 short),以方便在全

溫馨提示

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

最新文檔

評論

0/150

提交評論