C++程序設(shè)計實踐8參考模板_第1頁
C++程序設(shè)計實踐8參考模板_第2頁
C++程序設(shè)計實踐8參考模板_第3頁
C++程序設(shè)計實踐8參考模板_第4頁
C++程序設(shè)計實踐8參考模板_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C+程序設(shè)計實踐上機指導(dǎo)書(第八次)專業(yè) 計算機科學(xué)與技術(shù) 班級 學(xué)號 姓名 沈陽工程學(xué)院信息學(xué)院1 / 8實踐成績評價說明1) 上機前充分準(zhǔn)備實踐材料,對上機內(nèi)容有程序草稿。(10分)2) 獨立完成實踐任務(wù),對實踐過程非常清晰。(30分)3) 認(rèn)真理解知識點,能夠與理論知識相結(jié)合。(10分)4) 在機房遵守上機守則,接受實踐指導(dǎo)教師的監(jiān)督與管理。(20分)5) 認(rèn)真填寫實踐指導(dǎo)書,寫出實踐小結(jié)。(10分)6) 在實踐中具備一定的創(chuàng)新思想,能夠主動與指導(dǎo)教師探討。(5分)7) 加大實踐工作量,主動完成實踐指導(dǎo)書中的選做題目。(5分)8) 掌握程序調(diào)試的方法,認(rèn)真完成程序調(diào)試工作,使程序能夠運行

2、(10分)。上機八 類與對象(四)一、目的1、學(xué)習(xí)類的組合; 2、體會類的組合的構(gòu)造函數(shù)的使用方式; 3、理解利用友元關(guān)系實現(xiàn)數(shù)據(jù)共享的機制4. 掌握類的友元函數(shù)以及友元類的實現(xiàn)方法;二、要求:1. 在上課之前,每一個同學(xué)必須將題目、程序編寫完畢,做好充分的準(zhǔn)備。2. 所有環(huán)節(jié)均由每位同學(xué)獨立完成,嚴(yán)禁抄襲他人結(jié)果。 三、步驟和內(nèi)容1、定義點類,使用友元函數(shù)計算兩點間的距離,體會友元函數(shù)的使用2、在題目1的基礎(chǔ)上,設(shè)計一個類Trig,給定三角形的三個定點的坐標(biāo)(平面直角坐標(biāo)系)要求:a) 用一個友元函數(shù)計算三角形面積。b) 將友元函數(shù)存放在一個類中,并將該類修改為類Trig的友元類注

3、:三角形的面積公式為:已知三角形三邊a,b,c,則(海倫公式)(p=(a+b+c)/2)S=3. 設(shè)計一個類Sample,它有兩個私有數(shù)據(jù)成員a和n(a中元素的個數(shù))。請對a中數(shù)據(jù)進行排序,并將排序函數(shù)作為友元函數(shù)或者放在類process中。四、思考題1、在類的組合中,構(gòu)造函數(shù)的聲明順序是怎樣的?2、友元關(guān)系可以傳遞么?為什么說不要過多的使用友元關(guān)系?五、結(jié)果分析1、定義點類,使用友元函數(shù)計算兩點間的距離,體會友元函數(shù)的使用#include<iostream>#include<cmath>using namespace std;class Trigpublic:Trig

4、(int m,int n)x1=m;y1=n;Trig(double a,double b,double c)x=a;y=b;z=c;friend add(Trig &a,Trig &b,Trig &c,Trig &d)double s1,s2,s3,s4,area1,area2,p,s;s1=sqrt(fabs(a.x1-b.x1)*fabs(a.x1-b.x1)+fabs(a.y1-b.y1)*fabs(a.y1-b.y1);s2=sqrt(fabs(a.x1-c.x1)*fabs(a.x1-c.x1)+fabs(a.y1-c.y1)*fabs(a.y1-c

5、.y1);s3=sqrt(fabs(c.x1-b.x1)*fabs(c.x1-b.x1)+fabs(c.y1-b.y1)*fabs(c.y1-b.y1);s4=0.5*(s1+s2+s3);area1=sqrt(s4*(s4-s1)*(s4-s2)*(s4-s3);p=0.5*(d.x+d.y+d.z); area2=sqrt(p*(p-d.x)*(p-d.y)*(p-d.z); s=area1+area2;return s;private:int x1,y1;double x,y,z;int main()Trig A(1,0),B(0,4),C(0,0),D(3,4,5);double ss

6、;ss=add(A,B,C,D);cout<<"兩個三角形面積的和:"<<endl;cout<<ss<<endl;return 0;2、在題目1的基礎(chǔ)上,設(shè)計一個類Trig,給定三角形的三個定點的坐標(biāo)(平面直角坐標(biāo)系)要求:a) 用一個友元函數(shù)計算三角形面積。b) 將友元函數(shù)存放在一個類中,并將該類修改為類Trig的友元類注:三角形的面積公式為:已知三角形三邊a,b,c,則(海倫公式)(p=(a+b+c)/2)S=#include<iostream.h>#include<math.h>class Cpo

7、int public: float a1,b1;Cpoint(float i,float j)/構(gòu)造函數(shù)a1=i;b1=j;class triaprivate:double L1,L2,L3,s;public: double area; Cpoint A,B,C;/類Cpoint下的三個對象tria(float a,float b,float c,float d,float e,float f):A(a,b),B(c,d),C(e,f)/初始化列表L1=sqrt(A.a1-B.a1)*(A.a1-B.a1)+(A.b1-B.b1)*(A.b1-B.b1);L2=sqrt(A.a1-C.a1)*

8、(A.a1-C.a1)+(A.b1-C.b1)*(A.b1-C.b1);L3=sqrt(B.a1-C.a1)*(B.a1-C.a1)+(B.b1-C.b1)*(B.b1-C.b1);s=(L1+L2+L3)/2);area=sqrt(s*(s-L1)*(s-L2)*(s-L3); friend void print(tria D);void print(tria D) cout<<D.area<<endl;/三角形面積的輸出void main() tria D(4.0,2.0,3.0,4.0,5.0,6.0); print(D);3. 設(shè)計一個類Sample,它有兩個私

9、有數(shù)據(jù)成員a和n(a中元素的個數(shù))。請對a中數(shù)據(jù)進行排序,并將排序函數(shù)作為友元函數(shù)或者放在類process中。#include<iostream>using namespace std;class process;class Samplepublic:Sample(int n1)n=n1; a=new intn;friend process;void input()for(int i=0;i<n;i+)cin>>ai;cout<<endl;private:int n,*a;class processpublic: void paixu(Sample &s)for(int j=0;j<s.n-1;j+)for(int i=0;i<s.n-1-j;i+)if(s.ai>s.ai+1)int t;t=s.ai;s.ai=s.ai+1;s.ai+1=t;cout<<"the sorted number :"<<endl;for(int i=0;i<s.n;i+)cout<<s.ai<<'t'cout<

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論