實(shí)驗(yàn)二類與對(duì)象(二)_第1頁(yè)
實(shí)驗(yàn)二類與對(duì)象(二)_第2頁(yè)
實(shí)驗(yàn)二類與對(duì)象(二)_第3頁(yè)
實(shí)驗(yàn)二類與對(duì)象(二)_第4頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)三類與對(duì)象 (2)【實(shí)驗(yàn)類型】 驗(yàn)證性實(shí)驗(yàn)【實(shí)驗(yàn)課時(shí)】2 學(xué)時(shí)【實(shí)驗(yàn)?zāi)康摹浚?1)掌握對(duì)象數(shù)組定義與使用方法。( 2)理解對(duì)象指針的概念,學(xué)會(huì)用指針引用對(duì)象。( 3)了解 this 指針的工作方式。( 4)掌握靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的基本使用方法。( 5)理解友元與友元函數(shù)的作用,掌握其使用方法?!緦?shí)驗(yàn)環(huán)境】硬件:計(jì)算機(jī)軟件: Microsoft Visual C+ 6.0【實(shí)驗(yàn)內(nèi)容】1、按要求閱讀、修攺、調(diào)試和運(yùn)行以下程序。( 1)實(shí)驗(yàn)內(nèi)容 定義一個(gè)類Stock, 記錄一支股票交易的基本信息,信息包括交易日序號(hào)(表示本月的第幾個(gè)交易日,用整數(shù)表示)、當(dāng)日最高價(jià)、當(dāng)日最低價(jià)、當(dāng)日開(kāi)盤價(jià)

2、和當(dāng)日收盤價(jià)。盡量發(fā)揮想象力,為該類設(shè)計(jì)成員函數(shù)。 在主函數(shù)中建立兩個(gè)股票對(duì)象,分別存儲(chǔ)該股票昨天和今天兩天的信息,以當(dāng)日收盤價(jià)計(jì)算該股票今天的漲幅。 使用股票類Stock ,定義一個(gè)對(duì)象數(shù)組存放連續(xù)5 個(gè)交易日的股票信息。編寫(xiě)一個(gè)主函數(shù),計(jì)算兩個(gè)Stock 對(duì)象(前后兩日)的當(dāng)日收盤價(jià)計(jì)算當(dāng)日漲幅。用指針引用對(duì)象數(shù)組中的兩個(gè)對(duì)象。在主函數(shù)中調(diào)用該函數(shù)計(jì)算從第2 個(gè)交易日開(kāi)始每天的當(dāng)日漲幅。 在 Stock 類中定義一個(gè)靜態(tài)數(shù)據(jù)成員,記錄當(dāng)前Stock 對(duì)象的數(shù)量。 設(shè)計(jì)一個(gè)成員函數(shù)Assign_stock為對(duì)象賦值 , 其中的形式參數(shù)是對(duì)另一個(gè)Stock 對(duì)象的引用,使用 this指針避免對(duì)

3、自己的賦值,在主函數(shù)中顯示用Assign_stock賦值的對(duì)象。 定義一個(gè)友元函數(shù)計(jì)算 Stock 對(duì)象的當(dāng)日開(kāi)盤價(jià)是否高于當(dāng)日收盤價(jià)。若是,返回真,否則,返回假。( 2)實(shí)驗(yàn)程序及運(yùn)行結(jié)果(參考)以當(dāng)日收盤價(jià)計(jì)算該股票今天的漲幅#include <iostream.h>class Stockpublic:Stock(int n,double ma,double mi,double b,double e);void Set_Stock(int n,double ma,double mi,double b,double e); double Get_End();void Show_S

4、tock();private:int Number;double Max,Min,Begin,End;Stock:Stock(int n,double ma,double mi,double b,double e)Number=n;Max=ma;Min=mi;Begin=b;End=e;void Stock:Set_Stock(int n,double ma,double mi,double b,double e)Number=n;End=e;double Stock:Get_End() return End; void Stock:Show_Stock()cout<<Number

5、<<"t" cout<<Max<<"t" cout<<Min<<"t"cout<<Begin<<"t"cout<<End<<endl;void main()Stock s1(1,4.18,4.00,4.05,4.09); Stock s2(2,4.41,4.03,4.04,4.40);cout<<"n"<<(s2.Get_End()-s1.Get_End()/s1.

6、Get_End()*100<<"%"<<endl; 定義一個(gè)對(duì)象數(shù)組存放連續(xù) 5 個(gè)交易日的股票信息#include <iostream.h>const int N=2;class Stockpublic:Stock(int n,double ma,double mi,double b,double e);Stock();/增加無(wú)輸入值的構(gòu)造函數(shù)void Set_Stock(int n,double ma,double mi,double b,double e);void Set_Stock();double Get_End();void

7、 Show_Stock();private:int Number;double Max,Min,Begin,End;Stock:Stock(int n,double ma,double mi,double b,double e)Number=n; Max=ma; Min=mi;Begin=b;End=e;Stock:Stock()/無(wú)輸入值時(shí),將其都清零Number=0;Max=0;Min=0;Begin=0;End=0;void Stock:Set_Stock(int n,double ma,double mi,double b,double e)Number=n;End=e;double

8、Stock:Get_End() return End; void Stock:Show_Stock()cout<<Number<<"t" cout<<Max<<"t" cout<<Min<<"t"cout<<Begin<<"t"cout<<End<<endl;void Stock:Set_Stock()cout<<"Number:" cin>>Numbe

9、r; cout<<"Max:" cin>>Max;cout<<"Min:"cin>>Min;cout<<"Begin:"cin>>Begin;cout<<"End:"cin>>End;void main()int i;Stock s15,*p;for (i=0,p=s1;i<N;i+,p+)p->Set_Stock();for (i=0,p=s1;i<N;i+,p+)p->Show_Stock()

10、;for(i=1,p=s1+1;i<N;i+,p+) cout<<"n"<<(p->Get_End()-(p-1 )->Get_End()/(p-1)->Get_End()*100<<"%"<<endl;定義一個(gè)靜態(tài)數(shù)據(jù)成員,記錄當(dāng)前Stock 對(duì)象的數(shù)量#include <iostream.h>const int N=2;class Stockpublic:Stock()Stock(int n,double ma,double mi,double b,double e)

11、;void Set_Stock(int n,double ma,double mi,double b,double e); void Set_Stock();double Get_End();void Show_Stock();int Get_N_count();private:static int N_count;int Number;double Max,Min,Begin,End;/靜態(tài)數(shù)據(jù)成員;int Stock:N_count=0;/此處定義時(shí)不需要加上staticStock:Stock()/無(wú)輸入值時(shí),將其都清零N_count+;Number=0;Max=0;Min=0;Begin

12、=0;End=0;Stock:Stock(int n,double ma,double mi,double b,double e)N_count+; Number=n;Max=ma;Min=mi;Begin=b;End=e;void Stock:Set_Stock(int n,double ma,double mi,double b,double e)Number=n;Max=ma;Min=mi;Begin=b;End=e;double Stock:Get_End() return End; void Stock:Show_Stock()cout<<Number<<&q

13、uot;t" cout<<Max<<"t" cout<<Min<<"t"cout<<Begin<<"t"cout<<End<<endl;void Stock:Set_Stock()cout<<"Number:"cin>>Number;cout<<"Max:"cin>>Max;cout<<"Min:"cin>

14、>Min;cout<<"Begin:"cin>>Begin;cout<<"End:"cin>>End;int Stock:Get_N_count() return N_count; void main()int i;Stock s15;Stock *p;for (i=0,p=s1;i<N;i+,p+)p->Set_Stock();for (i=0,p=s1;i<N;i+,p+)p->Show_Stock();for(i=1,p=s1+1;i<N;i+,p+) cout&l

15、t;<"n"<<(p->Get_End()-(p-1)->Get _End()/(p-1)->Get_End()*100<<" %"cout<<"n"<<p->Get_N_count()<<endl;設(shè)計(jì)一個(gè)成員函數(shù)Assign_stock的引用為對(duì)象賦值, 其中的形式參數(shù)是對(duì)另一個(gè)Stock對(duì)象#include <iostream.h>const int N=2;class Stockpublic:Stock() Stock(int

16、 n,double ma,double mi,double b,double e);void Set_Stock(int n,double ma,double mi,double b,double e);void Set_Stock();void Assign_Stock(Stock& p);void Show_Stock();private:static int N_count;long Number;double Max,Min,Begin,End;int Stock:N_count=0;Stock:Stock()/無(wú)輸入值時(shí),將其都清零N_count+;Number=0;Max=

17、0;Min=0;Begin=0;End=0;Stock:Stock(int n,double ma,double mi,double b,double e)N_count+; Number=n; Max=ma; Min=mi; Begin=b; End=e;void Stock:Set_Stock(int n,double ma,double mi,double b,double e)N_count+; Number=n; Max=ma;void Stock:Assign_Stock(Stock& p)if (this!=&p)Number=p. Number;Max=p.Ma

18、x;Min=p.Min;Begin=p.Begin;End=p.End;void Stock:Show_Stock()cout<<Number<<"t" cout<<Max<<"t" cout<<Min<<"t"cout<<Begin<<"t"cout<<End<<endl;void Stock:Set_Stock()cout<<"Number:"cin>&g

19、t;Number;cout<<"Max:"cin>>Max;cout<<"Min:"cin>>Min;cout<<"Begin:"cin>>Begin;cout<<"End:"cin>>End;void main()Stock s1(4,7.88,7.48, 7.56,7.68);Stock s2;s2.Assign_Stock(s1);s2.Show_Stock();定義一個(gè)友元函數(shù)計(jì)算Stock 對(duì)象的當(dāng)日開(kāi)盤價(jià)是否

20、高于當(dāng)日收盤價(jià)。#include <iostream.h>const int N=2;class Stockpublic:Stock() Stock(int n,double ma,double mi,double b,double e);void Set_Stock(int n,double ma,double mi,double b,double e); void Set_Stock();void Assign_Stock(Stock& p);void Show_Stock();double Get_max() return Max;double Get_End() r

21、eturn End;int Get_N_count() return N_count;/定義返回Max 的函數(shù)/定義返回End 的函數(shù)/定義返回 N_count 的函數(shù)int friend Get_Stock(Stock *s1);private:static int N_count;long Number;double Max,Min,Begin,End;int Stock:N_count=0;int Get_Stock(Stock *s1)cout<<endl<<s1->Begin<<"t"<<s1->End;

22、 if (s1->Begin)>(s1->End) return 1;else return 0 ;Stock:Stock()/無(wú)輸入值時(shí),將其都清零N_count+;Number=0;Max=0;Min=0;Begin=0;End=0;Stock:Stock(int n,double ma,double mi,double b,double e)N_count+; Number=n; Max=ma; Min=mi;Begin=b;End=e;void Stock:Set_Stock(int n,double ma,double mi,double b,double e)Nu

23、mber=n;Max=ma;Min=mi;Begin=b;End=e;void Stock:Assign_Stock(Stock& p)if (this!=&p)Number=p.Number;Max=p.Max;Min=p.Min;Begin=p.Begin;End=p.End;void Stock:Show_Stock()cout<<Number<<"t" cout<<Max<<"t"cout<<Min<<"t" cout<<Beg

24、in<<"t"cout<<End<<endl;void Stock:Set_Stock()N_count+;cout<<"Number:" cin>>Number;cout<<"Max:"cin>>Max;cout<<"Min:" cin>>Min;cout<<"Begin:" cin>>Begin;cout<<"End:"cin&g

25、t;>End;void main()int i;Stock s1100, *p;for (i=0,p=s1;i<N;i+,p+)p->Set_Stock();for (i=0,p=s1;i<N;i+,p+)cout<<"nMax :"<<p->Get_max();for (i=1,p=s1+1;i<N;i+,p+)cout<<"n"<<(p->Get_End()-(p-1)->Get_End()/(p-1)->Get_End()*100<<&

26、quot; %"cout<<"n"<<p->Get_N_count();/顯示對(duì)象個(gè)數(shù)for (i=0,p=s1;i<N;i+,p+)cout<<"n"<<Get_Stock(p)<<endl; /友元函數(shù)調(diào)用 2、直角坐標(biāo)系問(wèn)題( 1)實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)用來(lái)表示直角座標(biāo)系上點(diǎn)的位置的 Location 類,然后在主程序中創(chuàng)建兩個(gè)對(duì)象 A 和 B,要求 A在第三象限, B 在第二象限,計(jì)算給定兩點(diǎn)之間的距離并按如下格式輸出結(jié)果 :A(x1,y1), B(x2,y2)Dista

27、nce1=dDistance2=d其中 : x1,y1,x2,y2為指定值,把這個(gè) Loation類的對(duì)象作為矩形由一個(gè)位置和矩形的長(zhǎng)和寬決定。長(zhǎng)和寬的值 , 以及矩形的面積。d 為計(jì)算結(jié)果。Rectangle類的對(duì)象的一個(gè)成員, 即座標(biāo)平面上的一個(gè)設(shè)計(jì)矩形類Rectangle并輸出給定點(diǎn)x2 和 y2 的值 ,( 2)實(shí)驗(yàn)程序(參考)計(jì)算給定兩點(diǎn)之間的距離#include "iostream.h"#include "math.h"class Location private:int x,y;public:Location(int i, int j):x

28、(i),y(j) int Getx( ) return x;int Gety( ) return y;double distance(Location b);friend double distance(Location &a, Location &b);double distance(Location &a, Location &b)/友元函數(shù)int dx=a.x-b.x;int dy=a.y-b.y;return sqrt(dx*dx+dy*dy); double Location:distance(Location b)/ 成員函數(shù)int dx=x-b.x

29、; int dy=y-b.y;return sqrt(dx*dx+dy*dy); void main( )Location A(-10,-20),B(-40,60);cout<<"A("<<A.Getx( )<<","<<A.Gety( )<<"),B("<<B.Getx( )<<","<<B.Gety()<<")"<<endl;double d=A.distance(B);/

30、調(diào)用成員函數(shù)cout<<"Distance1= "<<d<<endl;cout<<"Distance2= "<<distance(A,B)<<endl;/調(diào)用友元函數(shù)輸出給定點(diǎn)x2 和 y2 的值 , 長(zhǎng)和寬的值 , 以及矩形的面積#include "iostream.h"#include "math.h"class Locationprivate:int x, y;public:Location(int i, int j): x(i),y(j) int Getx( ) return x;int Gety( ) return y;class Rectrangle private:Location point;int H, W;int Square;public:Rectrangle(int x, int

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論