C、C++編程題目和代碼4_第1頁(yè)
C、C++編程題目和代碼4_第2頁(yè)
C、C++編程題目和代碼4_第3頁(yè)
C、C++編程題目和代碼4_第4頁(yè)
C、C++編程題目和代碼4_第5頁(yè)
已閱讀5頁(yè),還剩105頁(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、目 錄手機(jī)服務(wù)(構(gòu)造+拷貝構(gòu)造+堆)3Point&Circle(類與對(duì)象)6任意雞任意錢問(wèn)題(構(gòu)造與析構(gòu))10距離計(jì)算(友元函數(shù))13樣例輸出14復(fù)數(shù)運(yùn)算(友元函數(shù))15旅館顧客統(tǒng)計(jì)(靜態(tài)成員)18三維空間的點(diǎn)(繼承)21圓和圓柱體計(jì)算(繼承)23時(shí)鐘模擬(繼承)26在職研究生(多重繼承)28交通工具(多重繼承)32商旅信用卡(多重繼承)35電視機(jī)與遙控器139圖形面積(虛函數(shù)與多態(tài))44動(dòng)物園(虛函數(shù)與多態(tài))47員工工資(虛函數(shù)與多態(tài))50在職研究生(多重繼承)54復(fù)數(shù)運(yùn)算(運(yùn)算符重載)58分?jǐn)?shù)的加減乘除(運(yùn)算符重載)60時(shí)鐘調(diào)整(運(yùn)算符前后增量)63字符串的加減(運(yùn)算符重載)66食

2、品管理系統(tǒng)69=二級(jí)指針指向二維數(shù)組:=手機(jī)服務(wù)(構(gòu)造+拷貝構(gòu)造+堆)時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 234  解決: 95提交狀態(tài)討論版題目描述設(shè)計(jì)一個(gè)類來(lái)實(shí)現(xiàn)手機(jī)的功能。它包含私有屬性:號(hào)碼類型、號(hào)碼、號(hào)碼狀態(tài)、停機(jī)日期;包含方法:構(gòu)造、拷貝構(gòu)造、打印、停機(jī)。1、號(hào)碼類型表示用戶類別,只用單個(gè)字母,A表示政府,B表示企業(yè)、C表示個(gè)人2、號(hào)碼是11位整數(shù),用一個(gè)字符串表示3、號(hào)碼狀態(tài)用一個(gè)數(shù)字表示,1、2、3分別表示在用、未用、停用4、停機(jī)日期是一個(gè)日期對(duì)象指針,在初始化時(shí)該成員指向空,

3、該日期類包含私有屬性年月日,以及構(gòu)造函數(shù)和打印函數(shù)等-5、構(gòu)造函數(shù)的作用就是接受外來(lái)參數(shù),并設(shè)置各個(gè)屬性值,并輸出提示信息,看示例輸出6、拷貝構(gòu)造的作用是復(fù)制已有對(duì)象的信息,并輸出提示信息,看示例輸出。      想一下停機(jī)日期該如何復(fù)制,沒(méi)有停機(jī)如何復(fù)制?已經(jīng)停機(jī)又如何復(fù)制?7、打印功能是把對(duì)象的所有屬性都輸出,輸出格式看示例8、停機(jī)功能是停用當(dāng)前號(hào)碼,參數(shù)是停機(jī)日期,無(wú)返回值,操作是把狀態(tài)改成停用,并停機(jī)日期指針創(chuàng)建為動(dòng)態(tài)對(duì)象,并根據(jù)參數(shù)來(lái)設(shè)置停機(jī)日期,最后輸出提示信息,看示例輸出-要求:在主函數(shù)中實(shí)現(xiàn)號(hào)碼備份的功能,對(duì)已有的虛擬手機(jī)號(hào)的所有信息進(jìn)行復(fù)制,并將

4、號(hào)碼類型改成D表示備份;將手機(jī)號(hào)碼末尾加字母X-主函數(shù)的參考代碼如下:假設(shè)號(hào)碼類名為PNO(為避免代碼重復(fù),自己的代碼請(qǐng)不要用這個(gè)類名)PNO p1(.) ; /創(chuàng)建號(hào)碼并初始化p1.Print();     /輸出原號(hào)碼信息PNO p2(p1);    /實(shí)現(xiàn)號(hào)碼備份p2.Print();     /輸出備份號(hào)碼信息p1.Stop(td);     /原號(hào)碼停機(jī),td是日期對(duì)象p1.Print();       /輸出停機(jī)后號(hào)碼信息輸入第一行輸

5、入t表示有t個(gè)號(hào)碼第二行輸入6個(gè)參數(shù),包括號(hào)碼類型、號(hào)碼、狀態(tài)、停機(jī)的年、月、日,用空格隔開依次輸入t行輸出每個(gè)示例輸出三行,依次輸出原號(hào)碼信息、備份號(hào)碼信息和原號(hào)碼停機(jī)后的信息每個(gè)示例之間用短劃線(四個(gè))分割開,看示例輸出樣例輸入2A1 2015 1 1B2 2012 12 12樣例輸出Construct a new phone型=機(jī)構(gòu)|號(hào)碼State=在用Construct a copy of phone型=備份|號(hào)碼|State=在用

6、Stop the phone型=機(jī)構(gòu)|號(hào)碼State=停用 |停機(jī)日期=2015.1.1-Construct a new phone型=企業(yè)|號(hào)碼State=未用Construct a copy of phone型=備份|號(hào)碼|State=未用Stop the phone型=企業(yè)|號(hào)碼State=停用 |停機(jī)日期=2012.12.12-#include<iostream>#in

7、clude<string>using namespace std; class Dateprivate:    int year,month,day;public:    Date(int y,int m,int d):year(y),month(m),day(d)        int gety() return year;    int getm() return mon

8、th;    int getd() return day;    void print() ;class phoneprivate:    char type;    string number;    int status;    Date *date;public:    phone(char t,string n

9、,int s):type(t),number(n),status(s)            cout<<"Construct a new phone "<<number<<endl;         if(type='A')       

10、0;    cout<<"類型=機(jī)構(gòu)|"        else if(type='B')            cout<<"類型=企業(yè)|"         cout<<&qu

11、ot;號(hào)碼="<<number;         if(status=1)            cout<<"|State=在用"<<endl;        else if(status=2)    

12、        cout<<"|State=未用"<<endl;        else if(status=3)            cout<<"|State=停用"<<endl;    

13、;    phone(phone &s)                     type=s.type;        status=s.status;        number

14、=s.number;        cout<<"Construct a copy of phone "<<number<<endl;        cout<<"類型=備份|號(hào)碼="<<number<<"X"        i

15、f(status=1)            cout<<"|State=在用"<<endl;        else if(status=2)            cout<<"|State=未用"&

16、lt;<endl;        else if(status=3)            cout<<"|State=停用"<<endl;        void stop(Date &s)      

17、;      cout<<"Stop the phone "<<number<<endl;        if(type='A')            cout<<"類型=機(jī)構(gòu)|"    

18、60;   else if(type='B')            cout<<"類型=企業(yè)|"         cout<<"號(hào)碼="<<number;         co

19、ut<<"|State=停用 |停機(jī)日期="            <<s.gety()<<"."            <<s.getm()<<"."       &#

20、160;    <<s.getd()<<endl;        cout<<"-"<<endl;     int main()     int year,month,day,status,t;    char type;    s

21、tring number;    cin>>t;    while(t-)        cin>>type>>number>>status>>year>>month>>day;    phone sb1(type,number,status);    Date sb2(ye

22、ar,month,day);    phone sb3(sb1);    sb1.stop(sb2);    =Point&Circle(類與對(duì)象)時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 161  解決: 103提交狀態(tài)討論版題目描述類Point是我們寫過(guò)的一個(gè)類,類Circle是一個(gè)新的類,Point作為其成員對(duì)象,請(qǐng)完成類Circle的成員函數(shù)的實(shí)現(xiàn)。在主函數(shù)中生成一

23、個(gè)圓和若干個(gè)點(diǎn),判斷這些點(diǎn)與圓的位置關(guān)系,如果點(diǎn)在圓內(nèi)(包括在圓的邊上),輸出“inside”,否則輸出"outside";然后移動(dòng)圓心的位置,再次判斷這些點(diǎn)與圓的位置關(guān)系。輸入圓的x坐標(biāo) y坐標(biāo) 半徑點(diǎn)的個(gè)數(shù)n第一個(gè)點(diǎn)的x坐標(biāo) y坐標(biāo)第二個(gè)點(diǎn)的x坐標(biāo) y坐標(biāo).第n個(gè)點(diǎn)的x坐標(biāo) y坐標(biāo)圓心移動(dòng)到的新的x坐標(biāo) y坐標(biāo)輸出第一個(gè)點(diǎn)與圓的關(guān)系第二個(gè)點(diǎn)與圓的關(guān)系.第n個(gè)點(diǎn)與圓的關(guān)系after move the centre of circle圓心移動(dòng)后第一個(gè)點(diǎn)與圓的關(guān)系圓心移動(dòng)后第二個(gè)點(diǎn)與圓的關(guān)系.圓心移動(dòng)后第n個(gè)點(diǎn)與圓的關(guān)系樣例輸入0 0 541 12 25 0-6 0-1 0樣

24、例輸出insideinsideinsideoutsideafter move the centre of circle:insideinsideoutsideinside#include<iostream>#include<cmath>using namespace std;class pointprivate:    double x,y;public:    point()     point (double x_value,double y_va

25、lue)     double getx() return x;    double gety() return y;    void setxy(double x1,double y1) x=x1,y=y1;    void set(double x_value) x=x_value;    void sety(double y_value) y=y_value;  

26、0; double getdisto(point &p);    point() ;double point:getdisto(point &p)    double x1,y1,dis,n;    x1=p.getx();     y1=p.gety();     n=(x-x1)*(x-x1)+(y-y1)*(y-y1);    

27、0;dis=sqrt(n);     return dis;class circleprivate:    point center;    double radius;public:    circle()     circle(double x1,double y1,double r):radius(r)     center.setxy(x1,y1);

28、     double getarea()     void movecenterto(double x1,double y1) center.setxy(x1,y1);    int contain(point &p);    circle() ;int circle:contain(point &p)    double dis;    

29、dis=p.getdisto(center);    if(dis<=radius)    return 1;    return 0; int main()    double a,b,r,x,y,xx,yy;    int i,n,k;    cin>>a>>b>>r>>n; &#

30、160;  circle fuck(a,b,r);    point *sb;    sb=new pointn;    for(i=0;i<n;i+)            cin>>x>>y;        sbi.setxy

31、(x,y);        k=fuck.contain(sbi);        if(k=1)            cout<<"inside"<<endl;        else

32、0;           cout<<"outside"<<endl;        cin>>xx>>yy;    fuck.movecenterto(xx,yy);    cout<<"after move the centre of

33、circle:"<<endl;    for(i=0;i<n;i+)            k=fuck.contain(sbi);        if(k=1)            cout<<&

34、quot;inside"<<endl;        else            cout<<"outside"<<endl;    =任意雞任意錢問(wèn)題(構(gòu)造與析構(gòu))時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 179 

35、; 解決: 130提交狀態(tài)討論版題目描述百雞百錢問(wèn)題描述為:用100元錢買100只雞,已知每只公雞5元,每只母雞3元,3只小雞1元,問(wèn)能買多少只公雞、母雞和小雞?試將該類問(wèn)題用一個(gè)類來(lái)表示,百雞百錢問(wèn)題只是這個(gè)類如CChickProblem的一個(gè)實(shí)例,假設(shè)各種雞的價(jià)格不變,類中數(shù)據(jù)成員有總錢數(shù)、要買的總的雞數(shù)、能買到的母雞、小雞和公雞的數(shù)量。成員函數(shù)有構(gòu)造和析構(gòu)函數(shù),求問(wèn)題解的函數(shù)findSolution,打印問(wèn)題解的函數(shù)printSolution。(要求用動(dòng)態(tài)數(shù)組保存問(wèn)題的所有解)編寫程序求解該類問(wèn)題。輸入測(cè)試數(shù)據(jù)的組數(shù) t第一組 雞數(shù) 錢數(shù)第二組 雞數(shù) 錢數(shù).輸出第一組

36、解個(gè)數(shù)第一組第一個(gè)解公雞數(shù) 母雞數(shù) 小雞數(shù)第一組第二個(gè)解公雞數(shù) 母雞數(shù) 小雞數(shù).第二組解個(gè)數(shù)第二組第一個(gè)解公雞數(shù) 母雞數(shù) 小雞數(shù)第二組第二個(gè)解公雞數(shù) 母雞數(shù) 小雞數(shù).樣例輸入2100 100200 200樣例輸出34 18 788 11 8112 4 8474 43 1538 36 15612 29 15916 22 16220 15 16524 8 16828 1 171#include<iostream>using namespace std;class fuckprivate:    int qian,ji,x,y,z;public:&

37、#160;   fuck(int q,int j):qian(q),ji(j)     fuck()       int *find();    void print(int *sb); int *fuck:find()    int i,j,k,o,p,q,n=1,m=0;    o=qian/5;    

38、p=qian/3;    q=qian*3;    int *sb;    sb=new int100;    for(i=1;i<o;i+)        for(j=1;j<p;j+)            for(k=0;

39、k<q;k+=3)                if(i+j+k=ji && 5*i+3*j+k/3=qian)                         &#

40、160;          m+=3;                    sbn=i;                 

41、60;  n+;                    sbn=j;                    n+;     

42、60;              sbn=k;                    n+;              

43、          sb0=m;    return sb; void fuck:print(int *sb)    int i,n;    n=sb0;    cout<<n/3<<endl;    for(i=1;i<=n;i+)  &

44、#160;                if(i%3=0)            cout<<sbi<<endl;        else       &

45、#160;    cout<<sbi<<" "      int main()    int qian,ji,t;    cin>>t;    while(t-)        cin>>qian>>ji; &

46、#160;  fuck sb(qian,ji);    int *a=sb.find();    sb.print(a);    =距離計(jì)算(友元函數(shù))時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 536  解決: 444提交狀態(tài)討論版題目描述Point類的基本形式如下:請(qǐng)完成如下要求:1.實(shí)現(xiàn)Point類;2.為Point類增加一個(gè)友元函數(shù)double Dista

47、nce(Point &a, Point &b),用于計(jì)算兩點(diǎn)之間的距離。直接訪問(wèn)Point對(duì)象的私有數(shù)據(jù)進(jìn)行計(jì)算。3.編寫main函數(shù),輸入兩點(diǎn)坐標(biāo)值,計(jì)算兩點(diǎn)之間的距離。輸入第1行:輸入需計(jì)算距離的點(diǎn)對(duì)的數(shù)目第2行開始,每行依次輸入兩個(gè)點(diǎn)的x和y坐標(biāo)輸出每行依次輸出一組點(diǎn)對(duì)之間的距離(結(jié)果直接取整數(shù)部分,不四舍五入 )樣例輸入21 0 2 12 3 2 4樣例輸出11#include<iostream>#include<cmath>using namespace std;class pointprivate:   

48、0;double x,y;public:    point(double xx,double yy):x(xx),y(yy)     friend double distence(point &a,point &b);double distence(point &a,point &b)    double m,n;    m=(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);

49、    n=sqrt(m);    return n;int main()    int t;    double x1,y1,x2,y2;    cin>>t;    while(t-)            cin>&

50、gt;x1>>y1>>x2>>y2;        point aa(x1,y1),bb(x2,y2);        cout<<int(distence(aa,bb)<<endl;    =復(fù)數(shù)運(yùn)算(友元函數(shù))時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 512 

51、 解決: 397提交狀態(tài)討論版題目描述復(fù)數(shù)類的聲明如下:要求如下:1.     實(shí)現(xiàn)復(fù)數(shù)類和友元函數(shù)addCom和outCom。2.   參考addCom函數(shù)為復(fù)數(shù)類增加一個(gè)友元函數(shù)minusCom,用于實(shí)現(xiàn)兩個(gè)復(fù)數(shù)的減法3.     在main函數(shù)中,通過(guò)友元函數(shù),實(shí)現(xiàn)復(fù)數(shù)的加減法和復(fù)數(shù)的輸出。輸入第1行:第1個(gè)復(fù)數(shù)的實(shí)部和虛部第2行:需進(jìn)行運(yùn)算的次數(shù),注意:是連續(xù)運(yùn)算。具體結(jié)果可參考樣例  第3行開始,每行輸入運(yùn)算類型,以及參與運(yùn)算的復(fù)數(shù)的實(shí)部與虛部。

52、“+”表示復(fù)數(shù)相加,“-”表示復(fù)數(shù)相減。輸出 每行輸出復(fù)數(shù)運(yùn)算后的結(jié)果,復(fù)數(shù)輸出格式為“(實(shí)部,虛部)”。樣例輸入10 103+ 20 10- 15 5+ 5 25樣例輸出(30,20)(15,15)(20,40)#include<iostream>using namespace std;class Complexprivate:    double real;    double imag;public:    Complex()  

53、0;  Complex(double r,double i):real(r),imag(i)     void set(double r,double i) real=r;imag=i;    friend Complex add(Complex c1,Complex c2);    friend Complex minuscom(Complex c1,Complex c2);    friend void out(

54、Complex c);Complex add(Complex c1,Complex c2)    Complex c3;    c3.real=c1.real+c2.real;    c3.imag=c1.imag+c2.imag;    return c3;Complex minuscom(Complex c1,Complex c2)    Complex c3;  

55、0; c3.real=c1.real-c2.real;    c3.imag=c1.imag-c2.imag;    return c3;void out(Complex c)    cout<<"("<<c.real<<","<<c.imag<<")"<<endl;int main()    i

56、nt n,i=0;    char ch;    double r1,i1,r2,i2;    cin>>r1>>i1;    Complex a(r1,i1);    cin>>n;    Complex *sb=new Complexn;    while(n-) &#

57、160;          cin>>ch>>r2>>i2;        sbi.set(r2,i2);        if(ch='+')            a

58、=add(a,sbi);        else if(ch='-')            a=minuscom(a,sbi);        out(a);     =旅館顧客統(tǒng)計(jì)(靜態(tài)成員)時(shí)間限制: 1 Sec  內(nèi)

59、存限制: 128 MB提交: 429  解決: 214提交狀態(tài)討論版題目描述編寫程序,統(tǒng)計(jì)某旅館住宿客人的總數(shù)和收入總額。要求輸入客人的姓名,輸出客人編號(hào)(2015+順序號(hào),順序號(hào)4位,如第1位為0001,第2位為0002,依此類推)、姓名、總?cè)藬?shù)以及收入總額。總?cè)藬?shù)和收入總額用靜態(tài)成員,其他屬性采用普通的數(shù)據(jù)成員。旅館類聲明如下:輸入第1行:輸入旅館單個(gè)顧客房租第2行開始,依次輸入顧客姓名,0表示輸入結(jié)束。輸出每行依次輸出顧客信息和當(dāng)前旅館信息。包括顧客姓名,顧客編號(hào),旅館當(dāng)前總?cè)藬?shù),旅館當(dāng)前總收入。樣例輸入150 張三 李四 王五 0樣例輸

60、出張三 20150001 1 150李四 20150002 2 300王五 20150003 3 450#include<iostream>#include<cstring>using namespace std;class hotelprivate:    static int custnum;    static float earning;    static float rent;    char *na

61、me;    int id;public:    hotel(char *a);    hotel()     void set_num() custnum=1;    void set_id() id=20150001;    void increase_custnum() custnum+;    void set

62、_earning() earning=rent;    void set_rent(float r1) rent=r1;    void increase_id() id+;    void increase_earning() earning=earning+rent;    void display();/int hotel:custnum=0;float hotel:earning=0;float hotel:rent=0;/ho

63、tel:hotel(char *a)    name=new char50;    strcpy(name,a);void hotel:display()    cout<<name<<" "<<id<<" "<<custnum<<" "<<earning<<endl;int main()   

64、; float r,e;    int num,id1,i=0,k=0;    char n50;    cin>>r;         while(1)            cin>>n;   

65、0;    if(n0='0')            break;        hotel sb(n);        if(k=0)          

66、60;         sb.set_num();            sb.set_rent(r);            sb.set_earning();         

67、   sb.set_id();                else                    sb.increase_custnum();    

68、0;       sb.increase_id();            sb.increase_earning();                sb.display();      

69、  i+;        k+;      =三維空間的點(diǎn)(繼承)時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 562  解決: 509提交狀態(tài)討論版題目描述定義一個(gè)平面上的點(diǎn)C2D類,它含有一個(gè)getDistance()的成員函數(shù),計(jì)算該點(diǎn)到原點(diǎn)的距離;從C2D類派生出三維空間的點(diǎn)C3D類,它的getDistance()成員函數(shù)計(jì)算該點(diǎn)到原點(diǎn)的

70、距離。試分別生成一個(gè)C2D和C3D的對(duì)象,計(jì)算它們到原點(diǎn)的距離。三維空間的兩點(diǎn)(x, y, z)和(x1, y1, z1)的距離公式如下:(x-x1)2+(y-y1)2+(z-z1)2(1/2) 輸入第一行二維坐標(biāo)點(diǎn)位置第二行三維坐標(biāo)點(diǎn)位置1第三行三維坐標(biāo)點(diǎn)位置2輸出第一行二維坐標(biāo)點(diǎn)位置到原點(diǎn)的距離第二行三維坐標(biāo)點(diǎn)位置1到原點(diǎn)的距離第三行三維坐標(biāo)點(diǎn)位置2到原點(diǎn)的距離第四行三維坐標(biāo)點(diǎn)位置2賦值給二維坐標(biāo)點(diǎn)變量后,二維坐標(biāo)點(diǎn)到原點(diǎn)的距離樣例輸入3 43 4 56 8 8樣例輸出57.0710712.806210#include<iostream>#include<cma

71、th>using namespace std;class C2Dprotected:    double x,y;public:    C2D()     C2D(double _x,double _y):x(_x),y(_y)     C2D()     double getDistance()        

72、    double m,n;        m=pow(x,2)+pow(y,2);        n=sqrt(m);        return n;    /class C3D:public C2Dprotected:    dou

73、ble z;public:    C3D()     C3D(double _x,double _y,double _z):C2D(_x,_y),z(_z)     C3D()     double getDistance()            double m,n;    

74、    m=pow(x,2)+pow(y,2)+pow(z,2);        n=sqrt(m);        return n;    int main()    double x,y,x1,y1,z1,x2,y2,z2;    cin>>x>>y

75、>>x1>>y1>>z1>>x2>>y2>>z2;    C2D sb1(x,y);    C3D sb2(x1,y1,z1),sb3(x2,y2,z2);    cout<<sb1.C2D:getDistance()<<endl;    cout<<sb2.C3D:getDistance()<<endl; 

76、   cout<<sb3.C3D:getDistance()<<endl;    C2D sb4(sb3);    cout<<sb4.C2D:getDistance()<<endl;=圓和圓柱體計(jì)算(繼承)時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 721  解決: 502提交狀態(tài)討論版題目描述定義一個(gè)CPoint點(diǎn)類,包含數(shù)據(jù)成員x,y(坐標(biāo)

77、點(diǎn))。以CPoint為基類,派生出一個(gè)圓形類CCircle,增加數(shù)據(jù)成員r(半徑)和一個(gè)計(jì)算圓面積的成員函數(shù)。再以CCircle做為直接基類,派生出一個(gè)圓柱體類CCylinder,增加數(shù)據(jù)成員h(高)和一個(gè)計(jì)算體積的成員函數(shù)。生成圓和圓柱體對(duì)象,調(diào)用成員函數(shù)計(jì)算面積或體積并輸出結(jié)果。輸入輸入圓的圓心位置、半徑輸入圓柱體圓心位置、半徑、高輸出輸出圓的圓心位置 半徑輸出圓面積輸出圓柱體的圓心位置 半徑 高輸出圓柱體體積樣例輸入0 0 11 1 2 3樣例輸出Circle:(0,0),1Area:3.14Cylinder:(1,1),2,3Volume:37.68#include<iostre

78、am>using namespace std;class CPointprotected:    double x,y;public:    CPoint()     CPoint(double _x,double _y):x(_x),y(_y)     CPoint() ;class CCircle:public CPointprotected:    double r;public:&#

79、160;   CCircle(double xx,double yy,double _r):CPoint(xx,yy),r(_r)     CCircle()     double Area()            return 3.14*r*r;        void printf(

80、)            cout<<"Circle:("<<x<<","<<y<<"),"<<r<<endl;        cout<<"Area:"<<Area()<<endl; &#

81、160;  class CCylinder:public CCircleprotected:    double h;public:    CCylinder(double x2,double y2,double r1,double _h):CCircle(x2,y2,r1),h(_h)     CCylinder()     double Volume()     

82、       return 3.14*r*r*h;        void printf()            cout<<"Cylinder:("<<x<<","<<y<<"),"<<r<

83、;<","<<h<<endl;        cout<<"Volume:"<<Volume()<<endl;    int main()    double x,y,r,x1,y1,r1,h;    cin>>x>>y>>r>>x1>&g

84、t;y1>>r1>>h;    CCircle sb1(x,y,r);    CCylinder sb2(x1,y1,r1,h);    sb1.printf();    sb2.printf();=時(shí)鐘模擬(繼承)時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 755  解決: 365提交狀態(tài)討論版題目描述定義計(jì)數(shù)器類,包

85、含保護(hù)數(shù)據(jù)成員value,公有函數(shù)increment計(jì)數(shù)加1。定義循環(huán)計(jì)算器繼承計(jì)數(shù)器類,增加私有數(shù)據(jù)成員:最小值min_value,max_value,重寫公有函數(shù)increment,使得value在min_valuemax_value區(qū)間內(nèi)循環(huán)+1。定義時(shí)鐘類,數(shù)據(jù)成員是私有循環(huán)計(jì)數(shù)器對(duì)象小時(shí)hour、分鐘minute、秒second,公有函數(shù)time(int s)計(jì)算當(dāng)前時(shí)間經(jīng)過(guò)s秒之后的時(shí)間,即hour,minute,second的新value值。定義時(shí)鐘類對(duì)象,輸入當(dāng)前時(shí)間和經(jīng)過(guò)的秒數(shù),調(diào)用time函數(shù)計(jì)算新時(shí)間。根據(jù)題目要求,增加必要的構(gòu)造函數(shù)、析構(gòu)函數(shù)和其他所需函數(shù)。輸入第一行測(cè)

86、試次數(shù)n2行一組,第一行為當(dāng)前時(shí)間(小時(shí) 分鐘 秒),第二行為經(jīng)過(guò)的秒數(shù)。輸出輸出n行每行對(duì)應(yīng)每組當(dāng)前時(shí)間和經(jīng)過(guò)秒數(shù)后計(jì)算得到的新時(shí)間(小時(shí):分鐘:秒)。樣例輸入28 19 202023 30 01801樣例輸出8:19:400:0:1#include<iostream>using namespace std;class Counterprotected:    int value;public:    Counter(int va):value(va)     

87、int increment()            value+;        if(value=60)            value=0;        return value; 

88、;   class Calculater:public Counterprivate:    int min_value;    int max_value;public:    Calculater(int v,int minv,int maxv):Counter(v),min_value(minv),max_value(maxv)     int increment()   

89、;         value+;        if(value=max_value)            value=0;        return value;     

90、   int GetValue()     return value; ;class Clockprivate:    Calculater hour,minute,second;public:    Clock(int _h,int _m,int _s):hour(_h,0,24),minute(_m,0,60),second(_s,0,60)     void time(int n)            int h,m,s,i;        h=hour.GetValue();      

溫馨提示

  • 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)論