#《面向對象程序設計》實驗指導書_第1頁
#《面向對象程序設計》實驗指導書_第2頁
#《面向對象程序設計》實驗指導書_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗1類和對象1.1實驗目的和要求(1) 理解類和對象的概念,掌握聲明類和定義對象的方法。(2) 掌握構造函數和析構函數的實現方法。(3) 初步掌握使用類和對象編制C+程序。(4) 掌握對象數組、對象指針和string類的使用方法。(5) 掌握使用對象、對象指針和對象引用作為函數參數的方法。(6) 掌握類對象作為成員的使用方法。(7) 掌握靜態數據成員和靜態成員函數的使用方法。(8) 理解友元的概念和掌握友元的使用方法。1.2實驗內容和步驟1. 輸入下列程序test4-1.cpp#in clude<iostream>using n amespace std;class Coordi

2、n ate public:Coordi nate(i nt x1,i nt y1) x=x1;y=y1;Coordin ate(Coord in ate&p);Coord in ate() cout<< ” Destructor is calledech"int getx()return x;in t gety()return y;private:int x,y;Coordin ate:Coord in ate(Coord in ate&p) x=p.x;y=p.y;cout<< "copy-initialization Constr

3、uctou is calledn ”;int mai n() Coordi nate p1(3,4);Coordi nate p2(p1);Coordin ate p3=p2;cout<< ”3=( <<p3.getx()<< ” <<p3.gety()<< ")n ”return(O);(1) 寫出程序的運行結果。(2) 將Coordinate類中帶有兩個參數的構造函數進行修改,在函數體內增添下述語句: cout<< Constructor is called.n ”寫出程序的運行結果,并解釋輸出結果。(3 )

4、按下列要求進行調試:在主函數體內,添加下列語句:Coordin ate p4;Coordin ata p5(2);調試程序時會出現什么錯誤?為什么?如何對已有的構造函數進行適當修改?(4)經過以上第(2)步和第(3)步的修改后,結合運行結果分析:創建不同的對象時 會調用不同的構造函數。2. 設計一個4*4魔方程序,讓魔方的各行值的和等于各列值的和,并且等于兩對角線值的和。例如一F魔萬:313525921191517131123727291各行、各列以及對角線值的和都是64.【提示】求4*4魔方的一般步驟如下:(1) 設置初始魔方的起始值和相鄰元素之間的差值。例如上述魔方的初始魔方的起始值(fi

5、rst )和相鄰元素之間的差值(step)分別為:first=1step=2(2) 設置初始魔方元素的值。例如上述魔方的初始魔方為:135791113151719212325272931(3)生成最終魔方。方法如下 求最大元素值與最小元素值的和sum,該實例的sum是:1+31=32 用32減去初始魔方所有對角線上元素的值,然后將結果放在原來的位置,這樣就可求 得最終魔方。本例最終魔方如下:313525921191517131123727291本題的魔方類 magic的參考框架如下:class magic public:void getdata();void setfirstmagic();v

6、oid gen eratemagic();void prin tmagic();private:int m44;int step;int first; int sum;3. 設計一個用來表示直角坐標系的Location類,在主程序中創建類Location的兩個對象A和B,要求A的坐標點在第3象限,B的坐標在第2象限,分別采用成員函數和友元函數 計算給定兩個坐標點之間的距離,要求按如下格式輸出結果:A(x1,y1),B(x2,y2)Dista nee 仁d1Dista nee 仁d2其中:x1、x2、y1、y2為指定的坐標值,di和d2為兩個坐標點之間的距離。【提示】類Location的參考框架

7、如下:class Locati on public:Locatio n( double,double);double Getx()double Gety()double dista nce(Locati on &);friend double dista nee (Locati on &,Locati on &);private:double x,y;【#i nclude "iostream.h"#in clude "math.h"class Locatio n private:int x,y;public:Locatio n(i

8、nt i, i nt j):x(i),y(j) int Getx( ) return x;int Gety( ) return y;double dista nce(Locati on b);friend double dista nce(Locatio n &a, Locati on &b);;double dista nce(Locati on &a, Locati on &b)/ 友元函數 int dx=a.x-b.x;int dy=a.y-b.y;retur n sqrt(dx*dx+dy*dy); double Locati on:dista nce(

9、Locati on b)/ 成員函數 int dx=x-b.x;int dy=y-b.y;retur n sqrt(dx*dx+dy*dy); void mai n()Location A(-10,-20),B(-40,60);coutvv"A("v<A.Getx( )vv","v<A.Gety( )vv"),B("v<B.Getx( )vv","v<B.Gety( )<v ")"<<e ndl;double d=A.dista nce(B);調用成員函

10、數cout<<"Dista nce1= "<<d<<e ndl;cout<<"Dista nce2= "<<dista nce(A,B)«e ndl;/ 調用友元函數4聲明一個 Student類,在該類中包括一個數據成員score (分數)、兩個靜態數據成員total_score (總分)和count (學生人數);還包括一個成員函數account()用于設置分數、累計學生成績之和、累計學生人數,一個靜態成員函數sum()用于返回學生的成績之和,另一個靜態成員函數 average ()用于求全班成績的平均值。在main函數中,輸入 某班同學的成績,

溫馨提示

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

評論

0/150

提交評論