《C程序設(shè)計(jì)》上機(jī)指導(dǎo)與補(bǔ)充習(xí)題.pdf

上傳人:小** 文檔編號(hào):16820894 上傳時(shí)間:2020-10-29 格式:PDF 頁(yè)數(shù):52 大小:581.18KB
收藏 版權(quán)申訴 舉報(bào) 下載
《C程序設(shè)計(jì)》上機(jī)指導(dǎo)與補(bǔ)充習(xí)題.pdf_第1頁(yè)
第1頁(yè) / 共52頁(yè)
《C程序設(shè)計(jì)》上機(jī)指導(dǎo)與補(bǔ)充習(xí)題.pdf_第2頁(yè)
第2頁(yè) / 共52頁(yè)
《C程序設(shè)計(jì)》上機(jī)指導(dǎo)與補(bǔ)充習(xí)題.pdf_第3頁(yè)
第3頁(yè) / 共52頁(yè)

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

5 積分

下載資源

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

資源描述:

《《C程序設(shè)計(jì)》上機(jī)指導(dǎo)與補(bǔ)充習(xí)題.pdf》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C程序設(shè)計(jì)》上機(jī)指導(dǎo)與補(bǔ)充習(xí)題.pdf(52頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、C++程序設(shè)計(jì)上機(jī)指導(dǎo)與補(bǔ)充習(xí)題 第1部分 上機(jī)指導(dǎo)實(shí)驗(yàn)一 Visual C++6.0 的上機(jī)操作(2學(xué)時(shí))一、 實(shí)驗(yàn)?zāi)康?熟悉VC++6.0集成開(kāi)發(fā)環(huán)境。2掌握在VC++集成開(kāi)發(fā)環(huán)境下編輯、編譯、連接和運(yùn)行一個(gè)C++程序的步驟。3通過(guò)運(yùn)行簡(jiǎn)單的C++程序,初步了解C++源程序的結(jié)構(gòu)和特點(diǎn)。二、實(shí)驗(yàn)內(nèi)容1. 啟動(dòng)VisualC++6.0集成開(kāi)發(fā)環(huán)境 Visual C++ 6.0是微軟公司1998年推出的visual studio系列產(chǎn)品之一,它提供了強(qiáng)大的編譯能力以及良好的界面操作性。能夠?qū)indows下的C++程序設(shè)計(jì)提供完善的編程環(huán)境。同時(shí)它對(duì)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等方面的編程也提供相應(yīng)的環(huán)境支持

2、。使用Visual C++ 6.0編制并運(yùn)行程序也是編輯(把程序代碼輸入)、編譯(成目標(biāo)程序文件)、連接(成可執(zhí)行程序文件)、運(yùn)行(可執(zhí)行程序文件)四個(gè)步驟,其中第一步的編輯工作是最繁雜而又必須細(xì)致地由人工在計(jì)算機(jī)上來(lái)完成,其余幾個(gè)步驟則相對(duì)簡(jiǎn)單,基本上由系統(tǒng)自動(dòng)完成。確認(rèn)你所使用的計(jì)算機(jī)是否已經(jīng)安裝Visual C++6.0,若已經(jīng)安裝,則執(zhí)行“開(kāi)始”“程序”“Microsoft Visual Studio” “Visual C++6.0”命令即可啟動(dòng)Visual C++ 6.0,否則,則應(yīng)先安裝Visual C++ 6.0。啟動(dòng)Visual C++ 6.0,進(jìn)入到它的集成開(kāi)發(fā)環(huán)境窗口,其具

3、體窗口式樣如圖2-1 所示。 圖1-1 VisualC++ 6.0集成開(kāi)發(fā)環(huán)境式樣圖中所示Visual C++ 6.0的窗口從大體上可分為四部分。上部是菜單和工具條;左邊是工作區(qū)顯示窗口,這里將顯示處理過(guò)程中與項(xiàng)目相關(guān)的各種文件種類等信息;右邊是視圖區(qū),這里顯示和編輯程序文件的操作區(qū);下邊是輸出窗口區(qū),程序調(diào)試過(guò)程中,進(jìn)行編譯、鏈接、運(yùn)行時(shí)輸出的相關(guān)信息將在此處顯示。2創(chuàng)建工程使用Visual C++ 6.0編制并處理C++程序時(shí)要?jiǎng)?chuàng)建工程,因此必須先要了解Visual C++6.0的工程(有的資料也翻譯成項(xiàng)目)的概念,而工程又與工程工作區(qū)相關(guān)聯(lián)。實(shí)際上,VisualC++ 6.0 是通過(guò)工程

4、工作區(qū)來(lái)組織工程及其各相關(guān)元素的,就好像是一個(gè)工作間,以后程序所牽扯到的所有的文件、資源等元素都將放入到這一工作間中,從而使得各個(gè)工程之間互不干擾,使編程工作更有條理。這種思想反應(yīng)到實(shí)現(xiàn)上就是一個(gè)工作區(qū)對(duì)應(yīng)于一個(gè)獨(dú)立的文件 夾。簡(jiǎn)單的情況下,一個(gè)工作區(qū)中用來(lái)存放一個(gè)工程,代表著某一個(gè)要進(jìn)行處理的程序。如果需要,一個(gè)工作區(qū)中也可以用來(lái)存放多個(gè)工程,其中可以包含該工程的子工程或者與其有依賴關(guān)系的其他工程。創(chuàng)建工程工作區(qū)之后,系統(tǒng)將創(chuàng)建出一個(gè)相應(yīng)的工作區(qū)文件,后綴為“.dsw”,用來(lái)存放與該工作區(qū)相關(guān)的信息;另外還將創(chuàng)建出的其他幾個(gè)相關(guān)文件是:工程文件(后綴是“.dsp”)以及選擇信息文件(后綴是“

5、.opt”)等。在Windows環(huán)境下通過(guò)雙擊工作區(qū)文件或工程文件都可以打開(kāi)相應(yīng)的工程。Visual C++ 6.0 已經(jīng)預(yù)先為用戶準(zhǔn)備好了近種不同的工程類型以供選擇,選定不同的類型意味著讓Visual C++ 6.0系統(tǒng)幫著提前做某些不同的準(zhǔn)備以及初始化工作(例如,事先為用戶自動(dòng)生成一個(gè)所謂的底層程序框架,并進(jìn)行某些隱含設(shè)置,如隱含位置、預(yù)定義常量、輸出結(jié)果類型等)。工程類型中,其中有一個(gè)為“Win32 Console Application”的類型,稱之為控制臺(tái)應(yīng)用,它是我們首先要掌握的、用來(lái)編制運(yùn)行C++程序方法中最簡(jiǎn)單的一種。此種類型的程序運(yùn)行 時(shí),將出現(xiàn)并使用一個(gè)類似于DOS的窗口,

6、這個(gè)類似于DOS的窗口就是控制臺(tái),通過(guò)它提供對(duì)字符模式的各種處理與支持。實(shí)際上,用此種類型的工程開(kāi)發(fā)的應(yīng)用程序是具有字符界面的應(yīng)用程序。此種類型的工程小巧而簡(jiǎn)單,并且足以解決并支持本課程中涉及到的面向?qū)ο缶幊虄?nèi)容與技術(shù),使我們把重點(diǎn)放在面向?qū)ο笏枷氲睦斫饧俺绦虻脑O(shè)計(jì),而并非界面處理等方面,至于Visual C++ 6.0支持的其他工程類型,我們?cè)诮窈蟮膶W(xué)習(xí)和工作中遇到再逐漸了解、掌握與使用。創(chuàng)建工程的步驟為:首先,選擇“File”“New”“Projects”命令,會(huì)彈出如圖2-2所示的對(duì)話框,從左側(cè)選項(xiàng)中選擇“Win32 Console Application”項(xiàng),在右側(cè)“Location”

7、文本框中填入存放與工程工作區(qū)相關(guān)的所有文件及其相關(guān)信息的文件夾的路徑及名稱,當(dāng)然也可通過(guò)點(diǎn)擊其右部的“”按鈕去選擇并指定這一文件夾即子目錄位置。在“Project name”文本框中填入工程名,注意,此時(shí)Visual C++ 6.0會(huì)自動(dòng)在其下的Location文本框中用該工程名建立一個(gè)同名的子目錄,隨后的工程文件以及其他相關(guān)文件都將存放在這個(gè)目錄下。 圖1-2 VisualC++ 6.0新建工程對(duì)話框然后,單擊OK進(jìn)入下一個(gè)對(duì)話框,如圖2-3所示。 圖1-3新建控制臺(tái)工程類型選擇對(duì)話框從圖中可以看到有四種類型的控制臺(tái)工程可供選擇:若選擇“An empty project”項(xiàng)將生成一個(gè)空的工程

8、,工程內(nèi)不包括任何東西。若選擇“A simple application”項(xiàng)將生成包含一個(gè)空的main 函數(shù)和一個(gè)空的頭文件的工程。若選“A Hello World! application”項(xiàng)將生成包含一個(gè)有顯示出“Hello World!”字符串的輸出語(yǔ)句的main 函數(shù)和一個(gè)空的頭文件的工程。若選擇“An application that supports MFC”項(xiàng)的話,可以利用Visual C++ 6.0所提供的基礎(chǔ)類庫(kù)來(lái)進(jìn)行編程。選擇“Finish”,系統(tǒng)自動(dòng)建立一個(gè)基于控制臺(tái)的工程。建立好工程的Visual C++ 6.0系統(tǒng)界面如圖2-4所示。 圖1-4建立控制臺(tái)工程后的系統(tǒng)界

9、面 3. 編輯源程序工程建好之后,下一步要做的工作就是在工程中建立一個(gè)源程序并編輯它。選擇時(shí)“Project”“Add To Project”“New”命令,打開(kāi)新建對(duì)話框,在“Files”標(biāo)簽下選擇“C++ Source File”類型,在右邊的“File”文本框中填入源程序的文件名,單擊“OK”按鈕完成源程序的創(chuàng)建。界面如圖2-5所示。 圖1-5新建源程序的對(duì)話框界面建立好源程序后會(huì)在Visual C++ 6.0右邊的視圖區(qū)打開(kāi)并顯示該源程序,在這里我們可以鍵入代碼,編輯源程序,如圖2-6所示。 圖1-6編輯源程序的界面4. 編譯、連接、運(yùn)行程序 源程序編輯完成后,首先選擇執(zhí)行“Build

10、”菜單中的“Compile”項(xiàng),對(duì)源程序進(jìn)行編譯。若編譯中發(fā)現(xiàn)錯(cuò)誤或警告,將在Output窗口中顯示出它們具體的出錯(cuò)或警告信息以及所在的行,可以通過(guò)這些信息的提示來(lái)修改程序中的錯(cuò)誤或警告。編譯通過(guò)后,可以選擇菜單的第二項(xiàng)Build 來(lái)進(jìn)行鏈接生成可執(zhí)行程序。在鏈接中出現(xiàn)的錯(cuò)誤也將顯示到Output窗口中。最后就可以運(yùn)行程序,選擇Execute項(xiàng),Visual C++ 6.0將運(yùn)行已經(jīng)編好的程序,執(zhí)行后將出現(xiàn)一個(gè)結(jié)果界面,如圖2-7所示。其中的“press any key to continue”是由系統(tǒng)產(chǎn)生的,使得用戶可以瀏覽輸出結(jié)果,直到按下了任一個(gè)鍵盤(pán)按鍵時(shí)再返回到編輯界面。 圖1-7程序

11、運(yùn)行的界面這些編譯、生成、執(zhí)行這些操作也可以通過(guò)單擊工具條上的相應(yīng)的命令按鈕來(lái)快捷的完成。另外,如果源程序編輯后沒(méi)有編譯就單擊了“執(zhí)行”按鈕,系統(tǒng)會(huì)自動(dòng)的進(jìn)行編譯、連接和執(zhí)行操作;如果源程序已經(jīng)編譯過(guò)了,即上次運(yùn)行后沒(méi)有編輯源程序,這時(shí)單擊“執(zhí)行”按鈕,系統(tǒng)就不再編譯和連接而是直接執(zhí)行上次生成的可執(zhí)行程序了。三、鞏固練習(xí)按照上面講述的使用Visual C++ 6.0編制并運(yùn)行程序的步驟,編寫(xiě)一個(gè)在屏幕上輸出信息“Welcome to C++ World!”的程序并運(yùn)行。實(shí)驗(yàn)二 C++對(duì)C的擴(kuò)充(4學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?1了解在面向過(guò)程程序設(shè)計(jì)中C++對(duì)C語(yǔ)言的擴(kuò)充與增強(qiáng),并善于在編寫(xiě)程序過(guò)程中應(yīng)

12、用這些新的功能。2進(jìn)一步熟悉在所用的VC++集成開(kāi)發(fā)環(huán)境下編輯、編譯、連接和運(yùn)行C++程序的方法。 3進(jìn)一步熟悉C++程序的結(jié)構(gòu)和編程方法。二、實(shí)驗(yàn)內(nèi)容1請(qǐng)先閱讀下面的2個(gè)程序,寫(xiě)出程序運(yùn)行的結(jié)果,然后再上機(jī)運(yùn)行程序,驗(yàn)證自己分析的結(jié)果是否正確。程序1:#include //包含頭文件命令using namespace std; //使用名字空間stdint main() cout<

13、字空間stdint main() int a,b,c; //定義三個(gè)變量a、b、ccout<

14、 to a and b:

15、現(xiàn)n個(gè)數(shù)據(jù)的升序排序,數(shù)據(jù)類型可以是整型、單精度型、字符串型。用重載函數(shù)實(shí)現(xiàn)。6編寫(xiě)程序,將兩個(gè)字符串連接起來(lái),結(jié)果取代第一個(gè)字符串。實(shí)驗(yàn)三、類和對(duì)象(10學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?1掌握聲明類的方法,類和類的成員的概念以及定義對(duì)象的方法。2初步掌握用類和對(duì)象編制基于對(duì)象的程序。3學(xué)習(xí)檢查和調(diào)試基于對(duì)象的程序。4掌握類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的概念和使用方法。5掌握對(duì)象數(shù)組、對(duì)象的指針及其使用方法。6掌握共用數(shù)據(jù)的保護(hù)方法二、實(shí)驗(yàn)內(nèi)容1檢查下面的程序,找出其中的錯(cuò)誤,并改正之。然后上機(jī)調(diào)試,使之能正常運(yùn)行。(1)#include using namespace std;class Clock void

16、set_clock(void);void show_clock(void);int hour;int minute;int second;;Clock clock;int main() set_clock();show_clock (); int set_clock(void) cint.hour;cint.month;cint.second;int show_clock(void) cout<

17、0)m=i;void show()cout<

18、A(3) ;return 0 ;2請(qǐng)先閱讀下面的程序,寫(xiě)出程序運(yùn)行的結(jié)果,然后再上機(jī)運(yùn)行程序,驗(yàn)證自己分析的結(jié)果是否正確。(1)#include using namespace std;class test public:test( ); int getint( )return num;float getfloat( )return fl;test( );private:int num;float fl;;test::test( ) cout << Initalizing default << endl;num=0;fl=0.0;test::test( ) cout << Destructo

19、r is active << endl; int main( ) test array2;cout << array1.getint( )<< << array1.getfloat( ) <

20、 x3=10):a(x1),b(x2),c(x3)X(const Xb=X::X(const X c=other.c;void print() cout<

21、 void setXX(double f) XX=f; double getXX() return XX; double RealSalary() //計(jì)算實(shí)發(fā)工資Private:Bouble Wage, Subsidy, Rent, WaterFee, ElecFee;;其中,成員函數(shù)setXX()用于設(shè)置工資的各分項(xiàng)數(shù)據(jù),成員函數(shù)getXX()用于獲取工資的各分項(xiàng)數(shù)據(jù),XX代表Wage、Subsidy等數(shù)據(jù)成員,如Wage對(duì)應(yīng)的成員函數(shù)則為setWage()和getWage()。實(shí)發(fā)工資=Wage+Subsidy-Rent-WaterFee-ElecFee編程完善該類的設(shè)計(jì),并在主函數(shù)中

22、測(cè)試該類的各成員函數(shù)。4設(shè)計(jì)一個(gè)時(shí)鐘類Clock。數(shù)據(jù)成員包括hour(小時(shí))、minute(分鐘)、second(秒)。要 求用成員函數(shù)實(shí)現(xiàn)以下功能:(1)創(chuàng)建具有指定時(shí)鐘(小時(shí)、分鐘、秒)的Clock對(duì)象,默認(rèn)時(shí)鐘為00:00:00。(2)動(dòng)態(tài)地設(shè)置時(shí)、分、秒。(3)在屏幕上按“時(shí):分:秒”的格式顯示時(shí)鐘。(4)在主函數(shù)中測(cè)試該類。 5設(shè)計(jì)一個(gè)職工類Employee。數(shù)據(jù)成員包括字符串型的name(姓名)、street(街道地址)、city(市)、province(省)、postalcode(郵政編碼)。要求用成員函數(shù)實(shí)現(xiàn)以下功能:(1)創(chuàng)建職工對(duì)象時(shí),可以按不同方式指定職工信息。(2)動(dòng)

23、態(tài)地設(shè)置職工對(duì)象信息。(3)在屏幕上打印職工信息。(4)在主函數(shù)中測(cè)試該類。6需要求3個(gè)三角形的體積,請(qǐng)編寫(xiě)一個(gè)基于對(duì)象的程序。數(shù)據(jù)成員包括三角形的三邊長(zhǎng)a、b、 c。要求用成員函數(shù)實(shí)現(xiàn)以下功能:(1) 定義構(gòu)造函數(shù)完成長(zhǎng)方柱的初始化;(2) 求三角形的周長(zhǎng);(3) 求三角形的面積;(4) 輸出三角形信息。7下面是一個(gè)整型數(shù)組類intArray的聲明,請(qǐng)給出該類所有數(shù)據(jù)成員的類外定義。 class intArraypublic:intArray(int size);//構(gòu)造函數(shù)intArray(const intArray //復(fù)制構(gòu)造函數(shù)intArray();//析構(gòu)函數(shù)bool Set(i

24、nt i, int elem);//設(shè)置第i個(gè)數(shù)組元素的值,設(shè)置成功返回true,失敗返回falsebool Get(int i, int //獲取第i個(gè)數(shù)組元素的值,獲取成功返回true,失敗返回falseint Length( ) const;//獲取數(shù)組的長(zhǎng)度void ReSize ( int size ); //重置數(shù)組void Print();//輸出數(shù)組private:int *element; //指向動(dòng)態(tài)數(shù)組的指針int arraysize; //數(shù)組的當(dāng)前長(zhǎng)度 ;8下面是一個(gè)整型鏈表類intList的聲明,請(qǐng)給出該類所有數(shù)據(jù)成員的類外定義。class intListprote

25、cted:struct NodeNode * next;int data;;Node * pFirst;public:intList();//構(gòu)造函數(shù)intList(); //析構(gòu)函數(shù)//向鏈表的第i個(gè)位置插入一個(gè)元素,插入成功返回true,失敗返回false bool Insert(int i, int elem) ;//刪除鏈表的第i個(gè)位置的元素,刪除成功返回true,失敗返回falsebool Remove(int i, int int * Find(int elem)const; //查找值為elem的元素,返回指向該元素的指針int Length( ) const;//返回鏈表長(zhǎng)度

26、void Printlist();//輸出鏈表;9下面是一個(gè)整型堆棧類intStack的聲明,請(qǐng)給出該類所有數(shù)據(jù)成員的類外定義。class intStackpublic:intStack (int size=10);//構(gòu)造函數(shù)intStack ();//析構(gòu)函數(shù)bool Push(int elem);//入棧操作bool Pop(int //出棧操作int Length( ) const; //獲取棧中元素的個(gè)數(shù)private:int *data; //指向動(dòng)態(tài)數(shù)組的指針int top; //棧頂指針 int size; //堆棧的容量;實(shí)驗(yàn)四、繼承與組合(6學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?了解繼承在面

27、向?qū)ο蟪绦蛟O(shè)計(jì)中的重要作用。2進(jìn)一步理解繼承與派生的概念。3掌握通過(guò)繼承派生出一個(gè)新的類的方法。4了解虛基類的作用和用法。 5掌握類的組合二、實(shí)驗(yàn)內(nèi)容1請(qǐng)先閱讀下面的程序,寫(xiě)出程序運(yùn)行的結(jié)果,然后再上機(jī)運(yùn)行程序,驗(yàn)證自己分析的結(jié)果是否正確。(1) #include using namespace std;class Apublic:A()cout<

28、tual B() delete buf;cout<

29、t<<(<

30、y(); cout<<(<

31、public virtual Aprivate:int y; AAobj;public:B(int a,int b,int c):A(a),y(c),Aobj(c) cout<

32、<

33、lass Base2 public:Base2() cout<

34、) cout<

35、函數(shù)display()。3分別定義教師類Teacher和干部類Cadre,采用多重繼承的方式由這兩個(gè)類派生出新類Teacher_Cadre(教師兼干部類)。要求:(1)在兩個(gè)基類中都包含姓名、年齡、性別、地址、電話數(shù)據(jù)成員。(2)在Teacher類中還包含數(shù)據(jù)成員職稱title,在Cadre類中還包含數(shù)據(jù)成員職務(wù)post,在Teacher_Cadre類中還包含數(shù)據(jù)成員工資wage。(3)對(duì)兩個(gè)基類中的姓名、年齡、性別、地址、電話數(shù)據(jù)成員用相同的名字,在訪問(wèn)這類數(shù)據(jù)成員時(shí),指定作用域。 (4)在類體中聲明成員函數(shù),在類外定義成員函數(shù)。(5)在派生類Teacher_Cadre的成員函數(shù)show中調(diào)

36、用Teacher類中的display函數(shù),輸出姓名、年齡、性別、地址、電話,然后再用cout語(yǔ)句輸出職務(wù)和工資。4按下列要求編寫(xiě)程序。(1)定義一個(gè)分?jǐn)?shù)類Score。它有3個(gè)數(shù)據(jù)成員:Chinese //語(yǔ)文課成績(jī)English //英語(yǔ)課成績(jī)Mathematics //數(shù)學(xué)課成績(jī)2個(gè)構(gòu)造函數(shù):無(wú)參的和帶參數(shù)的3個(gè)成員函數(shù):是否帶參數(shù)根據(jù)需要自定sum() //計(jì)算三門(mén)課總成績(jī)print() //輸出三門(mén)課成績(jī)和總成績(jī) modify() //修改三門(mén)課成績(jī)(2)定義一個(gè)學(xué)生類Student。它有3個(gè)數(shù)據(jù)成員:Num //學(xué)號(hào) Name //姓名MyScore //成績(jī)2個(gè)構(gòu)造函數(shù):無(wú)參的和帶參

37、數(shù)的3個(gè)成員函數(shù):是否帶參數(shù)根據(jù)需要自定sum() //計(jì)算某學(xué)生三門(mén)課總成績(jī)print() //輸出某學(xué)生學(xué)號(hào)、姓名和成績(jī)modify() //修改某學(xué)生學(xué)號(hào)、姓名和成績(jī)(3)在主函數(shù)中,先定義一個(gè)學(xué)生類對(duì)象數(shù)組,再通過(guò)for循環(huán)給對(duì)象數(shù)組賦上實(shí)際值,最后輸出對(duì)象數(shù)組個(gè)元素的值。5編寫(xiě)一個(gè)程序?qū)崿F(xiàn)小型公司的人員信息管理系統(tǒng)。該公司雇員(employee)包括經(jīng)理(manager),技術(shù)人員(technician)、銷售員(salesman)和銷售部經(jīng)理(salesmanager)。要求存儲(chǔ)這些人員的姓名、編號(hào)、級(jí)別、當(dāng)月薪水,計(jì)算月薪并顯示全部信息。程序要對(duì)所有人員有提升級(jí)別的功能。為簡(jiǎn)單起

38、見(jiàn),所有人員的初始級(jí)別均為1,然后 進(jìn)行升級(jí),經(jīng)理升為4級(jí),技術(shù)人員和銷售部經(jīng)理升為3級(jí),銷售員仍為1級(jí)。月薪計(jì)算辦法是:經(jīng)理拿固定月薪8000元,技術(shù)人員按每小時(shí)100元領(lǐng)取月薪,銷售員按該當(dāng)月銷售額4%提成,銷售經(jīng)理既拿固定月工資也領(lǐng)取銷售提成,固定月工資為5000元,銷售提成為所管轄部門(mén)當(dāng)月銷售額的5。實(shí)驗(yàn)五、多態(tài)性與虛函數(shù)(4學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?了解多態(tài)性的概念。2了解虛函數(shù)的作用及使用方法。 3了解靜態(tài)關(guān)聯(lián)和動(dòng)態(tài)關(guān)聯(lián)的概念和用法。4了解純虛函數(shù)和抽象類的概念和用法。二、實(shí)驗(yàn)內(nèi)容1閱讀下面的程序,寫(xiě)出程序運(yùn)行的結(jié)果。#include using namespace std;class

39、Baseprotected:int n;public: Base (int m) n=m++; virtual void g1()cout<

40、Base(n1) j=n2; void g1()cout<

41、含數(shù)據(jù)成員x,y(坐標(biāo)點(diǎn))。以它為基類,派生出圓類Circle,增加數(shù)據(jù)成員radius(半徑),再以Cirlcle類為直接基類,派生出圓柱體類Cylinder,再增加數(shù)據(jù)成員height(高)。要求:(1)每個(gè)類都有構(gòu)造函數(shù)、用于從鍵盤(pán)獲取數(shù)據(jù)的成員函數(shù)set(),用于顯示數(shù)據(jù)的成員函 數(shù)display()。(2)用虛函數(shù)輸出各類對(duì)象信息。3先建立一個(gè)職工類Employee,包含數(shù)據(jù)成員name(職工姓名),ID(職工編號(hào))。以它為基類,派生出經(jīng)理類Manager和技術(shù)人員類Technician,在經(jīng)理類中增加數(shù)據(jù)成員salary(代表經(jīng)理的月工資),在技術(shù)人員類中增加數(shù)據(jù)成員wage(代表

42、每小時(shí)的工資數(shù))和hours(月工作時(shí)數(shù))。在定義類時(shí),所有類中必須包含有構(gòu)造函數(shù)、析構(gòu)函數(shù)、修改和獲取所有數(shù)據(jù)成員的函數(shù),以及純函數(shù)計(jì)算職工的工資,輸出職工的信息。4下列shape類是一個(gè)表示形狀的抽象類,area( )為求圖形面積的函數(shù),total( )則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。請(qǐng)從shape類派生三角形類(triangle)、矩形類(rectangle),并給出具體的求面積函數(shù)。實(shí)驗(yàn)六、面向?qū)ο蟮耐讌f(xié)(2學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?1掌握友元的概念、友元函數(shù)的定義與使用方法。2掌握靜態(tài)數(shù)據(jù)成員與靜態(tài)成員函數(shù)的定義與使用方法。 二、實(shí)驗(yàn)內(nèi)容1設(shè)計(jì)并測(cè)試點(diǎn)類Point,其數(shù)據(jù)

43、成員是直角坐標(biāo)系的點(diǎn)坐標(biāo),友元函數(shù)distance用來(lái)計(jì)算兩點(diǎn)間的距離。2設(shè)計(jì)一個(gè)書(shū)類Book,能夠保存書(shū)名、定價(jià),所有書(shū)的本數(shù)和總價(jià)。實(shí)驗(yàn)七、運(yùn)算符重載(2學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?掌握運(yùn)算符重載的規(guī)則。 2掌握幾種常用的運(yùn)算符重載的方法。3了解轉(zhuǎn)換構(gòu)造函數(shù)的使用方法。4了解在Visual C++6.0環(huán)境下進(jìn)行運(yùn)算符重載要注意的問(wèn)題。二、實(shí)驗(yàn)內(nèi)容1閱讀下面的程序,寫(xiě)出程序運(yùn)行的結(jié)果。(1)#includeclass ABCint a,b,c;public: ABC(int x,int y,int z):a(x),b(y),c(z)friend ostream ;ostream return ou

44、t;int main()ABC obj(10,20,30);cout<

45、(); N1++;N1.display();--N1;N1.display();N1-- -- --;N1.display();return 0;2設(shè)計(jì)并實(shí)現(xiàn)一個(gè)日期類Date,要求:(1)可以建立具有指定日期(年、月、日)的Date對(duì)象,默認(rèn)日期是2009.1.1。(2)可以從輸出流輸出一個(gè)格式為“年-月-日”的日期,其中年是四位數(shù)據(jù),月、日可以是一位也可以是兩位數(shù)據(jù)。(3)可以動(dòng)態(tài)地設(shè)置年、月、日。 (4)可以用運(yùn)算符= =、!=、對(duì)兩個(gè)日期進(jìn)行比較。(5)可以用運(yùn)算符++、--、+=、-=等完成天數(shù)的加減一天或若干天的操作(6)Date類必須能夠正確表達(dá)日期,不會(huì)出現(xiàn)類似于13月,32日

46、一類的情況。Date類還必須處理閏年的問(wèn)題,閏年包括:所有能被400整除的年份,以及能被4整除同時(shí)又不能被100整除的年份。(7)寫(xiě)出主函數(shù)對(duì)該類進(jìn)行測(cè)試。3下面是一個(gè)數(shù)組類CArray的定義。要求:(1)在此基礎(chǔ)上增加print()成員函數(shù)打印數(shù)組,(2)重載“=”、“+”、“-” 運(yùn)算符使之能對(duì)該數(shù)組類對(duì)象進(jìn)行賦值、加減運(yùn)算。(3)寫(xiě)出主函數(shù)對(duì)該類進(jìn)行測(cè)試。class CArrayprivate:int* p_arr; int size;public:CArray(); //缺省構(gòu)造函數(shù)CArray(int* p_a,int s); //構(gòu)造函數(shù)CArray(const CArray //

47、復(fù)制構(gòu)造函數(shù) CArray();//析構(gòu)函數(shù)int operator(int pos) const; //訪問(wèn)數(shù)組元素值的下標(biāo)運(yùn)算符重載函數(shù)int //設(shè)置數(shù)組元素值的下標(biāo)運(yùn)算符重載函數(shù)Carray ;CArray:: CArray() p_arr=NULL; size=0;CArray:: CArray(int* p_a,int s) if(s0) size=s; p_arr=new intsize; for(int i=0;i

48、e) p_arr=new intsize;for(int i=0;i=size) return p_arrsize-1;if(pos=size) return p_arrsize-1;if(pos<0) return p_arr0; return p_arrpos;4下面是一個(gè)自定義字符串類的聲明。請(qǐng)寫(xiě)出該類所有成員函數(shù)的類外定義代碼。class string private:unsigned buflen;char * buffer;public:string();//構(gòu)造函數(shù)string(unsigned);string(char);string(const char*);string(c

49、onst string //復(fù)制構(gòu)造函數(shù)string();//析構(gòu)函數(shù)//重載賦值運(yùn)算符stringstring char *operator+=(const char *right);friend string operator+(const string //字符串連接string operator()(unsigned start,unsigned len); //取子串unsigned length()const; //求字符串長(zhǎng)度char //訪問(wèn)單個(gè)字符int compare(const string //字符串比較operator const char *()const; //到

50、普通c字符串的轉(zhuǎn)換friend ostream //字符串的輸出;實(shí)驗(yàn)八、模板(2學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?1函數(shù)模板的定義與調(diào)用。2掌握類模板的聲明與使用方法。二、實(shí)驗(yàn)內(nèi)容1設(shè)計(jì)一個(gè)函數(shù)模板,實(shí)現(xiàn)兩數(shù)的交換,并用int、float、double、char類型的數(shù)據(jù)進(jìn)行測(cè)試。2設(shè)計(jì)一個(gè)函數(shù)模板,實(shí)現(xiàn)從int、float、double、char類型的數(shù)組找出最大值元素。提示:可用類型參數(shù)傳遞數(shù)組、用非類型參數(shù)傳遞數(shù)組大小,為了找出char*類型數(shù)組中的最大值元素,需要對(duì)該類型進(jìn)行重載或特化。3編寫(xiě)一個(gè)順序表類模板。 4建立兩個(gè)int類型的向量vector,利用merge算法將其合并,然后用sort算法

51、對(duì)合并后的向量進(jìn)行排序,最后輸出排序結(jié)果。 實(shí)驗(yàn)九、輸入輸出流(自學(xué))一、實(shí)驗(yàn)?zāi)康?深入理解C++的輸入輸出的含義與其實(shí)現(xiàn)方法。2掌握標(biāo)準(zhǔn)輸入輸出流的應(yīng)用,包括格式輸入輸出。3掌握對(duì)文件的輸入輸出操作。二、實(shí)驗(yàn)內(nèi)容1閱讀下面的程序,寫(xiě)出程序運(yùn)行的結(jié)果。 (1)#include#includeusing namespace std;int main()fstream out,in;out.open(a.dat,ios::out);out<

52、creen...n;out.close();char buffer80;in.open(a.dat,ios::in); while(!in.eof()) in.getline(buffer,80);cout<

53、number(num),age(Age),sal(Salary)strcpy(name,Name); void display() cout<

54、326);for(int i=0;i<6;i++) out.write((char*)out.close();Worker s1; ifstream in(Employee.dat,ios::in|ios::binary);in.seekg(2*(sizeof(s1)),ios::beg);in.read((char*)s1.display();in.seekg(0,ios::beg);in.read((char*)s1.display();in.close();return 0;2已知數(shù)據(jù)文件IN.DAT中存有20個(gè)整數(shù),每個(gè)整數(shù)間用空格分隔。有一類Array的結(jié)構(gòu)如下:class Arra

55、y int A20;public:Array()for(int i=0;i<20;i++) Ai=0;int getNumberA(Array void getdata();//讀數(shù)據(jù)函數(shù)void max_min(int //排序函數(shù)void putdata(int //寫(xiě)結(jié)果數(shù)據(jù)函數(shù);其中:成員函數(shù)getdata()的功能為:從數(shù)據(jù)文件IN.DAT中把20個(gè)數(shù)據(jù)讀出來(lái)存入數(shù)據(jù)成員A中。成員函數(shù)max_min(int int main() int a=8,5,5,0,6,0,8,5,5,0,7,8;for(int i=0;i<5;i++)try cout<

56、<

57、<

58、r2()trycout<

59、常處理功能:InvalidDay:對(duì)于日期day成員,不能接受大于31或小于1的值,當(dāng)傳遞給類的日期大于31或小于1時(shí),拋出這種類型的異常。InvalidMonth:對(duì)于月month,不能接受大于12或小于1的值,當(dāng)傳遞給類的日期大于12 或小于1時(shí),拋出這種類型的異常。 第2部分 補(bǔ)充習(xí)題第1章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述一、選擇題1、C++是( )。A 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言B 結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言C 既是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言又是結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言D 非結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言2、C++語(yǔ)言屬于( )。 A 機(jī)器語(yǔ)言 B 低級(jí)語(yǔ)言 C 中級(jí)語(yǔ)言 D 高級(jí)語(yǔ)言3、下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是(

60、 )。A 對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)變量B 對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體C 對(duì)象是一個(gè)屬性和操作(或方法)的封裝體D 對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的4、下面關(guān)于類概念的描述中,錯(cuò)誤的是( )。A 類是抽象數(shù)據(jù)類型的實(shí)現(xiàn)B 類是具有共同行為的若干對(duì)象的統(tǒng)一描述體C 類是創(chuàng)建對(duì)象的樣板D 類就是C語(yǔ)言中的結(jié)構(gòu)體類型5、下列關(guān)于C++類的描述中錯(cuò)誤的是( )。A 類與類之間可以通過(guò)一些手段進(jìn)行通信和聯(lián)絡(luò) B 類用于描述事物的屬性和對(duì)事物的操作C 類與類之間必須是平等的關(guān)系,而不能組成層次關(guān)系D 類與類之間可以通過(guò)封裝而具有明確的獨(dú)立性6、面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括( )。A 封裝

61、性 B 多態(tài)性 C 繼承性 D 功能分解,逐步求精二、填空題1、構(gòu)成對(duì)象的兩個(gè)主要因素是 和 ,其中 用于描述對(duì)象的靜態(tài)特征,用于描述對(duì)象的動(dòng)態(tài)特征。2、類和對(duì)象的關(guān)系可表述為:類是對(duì)象的 ,而對(duì)象則是類的 。3、封裝包含兩方面含義,一是用 把 包裝起來(lái),二將對(duì)象中某些部分 。4、 是指特殊類自動(dòng)地?fù)碛谢螂[含地復(fù)制其一般類的全部屬性與操作。5、面向?qū)ο蟮能浖こ贪ǖ奈鍌€(gè)階段為: , , , , 。 第2章 C++基礎(chǔ)知識(shí)一、選擇題1、下列關(guān)于C++語(yǔ)言的發(fā)展說(shuō)法錯(cuò)誤的是( )。A C++語(yǔ)言起源于C語(yǔ)言 B C++語(yǔ)言最初被稱為“帶類的C”C 在1980年C++被命名 D 在1983年C++

62、被命名2、C++語(yǔ)言是以 語(yǔ)言為基礎(chǔ)逐漸發(fā)展而演變而成的一種程序設(shè)計(jì)語(yǔ)言。( )A Pascal B C C Basic D Simula673、下列關(guān)于C++與C語(yǔ)言關(guān)系的描述中錯(cuò)誤的是( )。A C++是C語(yǔ)言的超集B C++是C語(yǔ)言進(jìn)行了擴(kuò)充C C++和C語(yǔ)言都是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言 D C++包含C語(yǔ)言的全部語(yǔ)法特征4、下列C++標(biāo)點(diǎn)符號(hào)中表示行注釋開(kāi)始的是( )。A # B ; C // D 5、每個(gè)C++程序都必須有且僅有一個(gè)( )。A 預(yù)處理命令 B 主函數(shù) C 函數(shù) D 語(yǔ)句6、C++對(duì)C語(yǔ)言做了很多改進(jìn),下列描述中哪一項(xiàng)使得C語(yǔ)言發(fā)生了質(zhì)變,即從面向過(guò)程變成面向?qū)ο螅?)。

63、A 增加了一些新的運(yùn)算符 B 允許函數(shù)重載,并允許設(shè)置默認(rèn)參數(shù)C 規(guī)定函數(shù)說(shuō)明必須用原型 D 引進(jìn)類和對(duì)象的概念7、對(duì)定義重載函數(shù)的下列要求中,錯(cuò)誤的是( )。A 要求參數(shù)的個(gè)數(shù)不同 B 要求參數(shù)中至少有一個(gè)類型不同C 要求參數(shù)個(gè)數(shù)相同時(shí),參數(shù)類型不同 D 要求函數(shù)的返回值不同8、在函數(shù)的返回值類型與返回值表達(dá)式的類型的描述中,錯(cuò)誤的是( )。 A 函數(shù)返回值的類型是在定義函數(shù)時(shí)確定,在函數(shù)調(diào)用時(shí)是不能改變的B 函數(shù)返回值的類型就是返回值表達(dá)式的類型C 函數(shù)返回值表達(dá)式類型與返回值類型不同時(shí),函數(shù)表達(dá)式類型應(yīng)轉(zhuǎn)換成返回值類型D 函數(shù)返回值類型確定了返回值表達(dá)式的類型9、下列不正確的選項(xiàng)是( )

64、。A C++語(yǔ)言是一種既支持面向過(guò)程程序設(shè)計(jì),又支持面向?qū)ο蟪绦蛟O(shè)計(jì)的混合型語(yǔ)言B 標(biāo)點(diǎn)符號(hào)是在程序中起分割內(nèi)容和界定范圍作用的一類單詞C iostream是一個(gè)標(biāo)準(zhǔn)的頭文件,定義了一些輸入輸出流對(duì)象D 類與類之間不可以進(jìn)行通信和聯(lián)絡(luò)10、下列表示引用的方法中,正確的是( )。已知:int k=1000;A int B char C int D float 二、填空題 1、C++既可以用來(lái)進(jìn)行面向 程序設(shè)計(jì),又可以進(jìn)行面向 程序設(shè)計(jì)。2、常量分成兩種,一種是 常量,另一種是 常量。3、 就是某一變量的別名,對(duì)其操作與對(duì)變量直接操作完全一樣。4、按函數(shù)在語(yǔ)句中的地位分類,可以有以下3種函數(shù)調(diào)用方

65、式: ,, 。 5、函數(shù)與引用聯(lián)合使用主要有兩種方式:一是 ;二是 。6、頭文件由三部分內(nèi)容組成: , , 。三、程序閱讀題1、分析下面的執(zhí)行結(jié)果#includeusing namespace std;int main() int a,b,sum; // 定義a,b,sum三個(gè)整型變量a=43; // 把整數(shù)常量賦給變量ab=37;sum=a+b; // a與b相加的和賦給變量sumcout<

66、n() int a;int // 變量引用b=10;cout<

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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)資源

更多
正為您匹配相似的精品文檔

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),我們立即給予刪除!