C、C++編程題目和代碼4參考模板_第1頁
C、C++編程題目和代碼4參考模板_第2頁
C、C++編程題目和代碼4參考模板_第3頁
C、C++編程題目和代碼4參考模板_第4頁
C、C++編程題目和代碼4參考模板_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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任意雞任意錢問題(構(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)691 / 114=二級(jí)指針指向二維數(shù)組:=手機(jī)服務(wù)(構(gòu)造+拷貝構(gòu)造+堆)時(shí)間限制: 1 Sec  內(nèi)存限制: 128 MB提交: 234  解決: 95提交狀態(tài)討論版題目描述設(shè)計(jì)一個(gè)類來實(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ù)的作用就是接受外來參數(shù),并設(shè)置各個(gè)屬性值,并輸出提示信息,看示例輸出6、拷貝構(gòu)造的作用是復(fù)制已有對(duì)象的信息,并輸出提示信息,看示例輸出。      想一下停機(jī)日期該如何復(fù)制,沒有停機(jī)如何復(fù)制?已經(jīng)停機(jī)又如何復(fù)制?7、打印功能是把對(duì)象的所有屬性都輸出,輸出格式看示例8、停機(jī)功能是停用當(dāng)前號(hào)碼,參數(shù)是停機(jī)日期,無返回值,操作是把狀態(tài)改成停用,并停機(jī)日期指針創(chuàng)建為動(dòng)態(tài)對(duì)象,并根據(jù)參數(shù)來設(shè)置停機(jī)日期,最后輸出提示信息,看示例輸出-要求:在主函數(shù)中實(shí)現(xiàn)號(hào)碼備份的功能,對(duì)已有的虛擬手機(jī)號(hào)的所有信息

4、進(jìn)行復(fù)制,并將號(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)碼|S

6、tate=在用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

7、>#include<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() ret

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

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

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

11、<"號(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、0;     phone(phone &s)                     type=s.type;        status=s.status;        

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

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

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

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

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

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

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

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

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

23、主函數(shù)中生成一個(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

24、 0-1 0樣例輸出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,doub

25、le y_value)     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、60;  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、60; dis=sqrt(n);     return dis;class circleprivate:    point center;    double radius;public:    circle()     circle(double x1,double y1,double r):radius(r)     center.setxy(

28、x1,y1);     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;        sb

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

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

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

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

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

36、數(shù).輸出第一組解個(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;p

37、ublic:    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+)            f

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

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

41、160;   n+;                    sbn=j;                    n+;    &#

42、160;               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、                  if(i%3=0)            cout<<sbi<<endl;        else      

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

46、    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ù)doubl

47、e Distance(Point &a, Point &b),用于計(jì)算兩點(diǎ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、60; 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.

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

50、in>>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提交: 51

51、2  解決: 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ù)中,通過友元函數(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ù)

52、的實(shí)部與虛部。“+”表示復(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、60;   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 vo

54、id out(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、60;  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()   

56、 int 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='+')           

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

59、 內(nèi)存限制: 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 張三 李四

60、王五 0樣例輸出張三 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;    c

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

62、oid set_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:ren

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

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

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

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

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

68、60;        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ì)

70、算該點(diǎn)到原點(diǎn)的距離。試分別生成一個(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

71、<cmath>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:   &#

73、160;double 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&g

75、t;>y>>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ù)成

77、員x,y(坐標(biāo)點(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<

78、;iostream>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;pu

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

80、printf()            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<<"),"<&

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

84、1>>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)討論版題目描述定

85、義計(jì)數(shù)器類,包含保護(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)過s秒之后的時(shí)間,即hour,minute,second的新value值。定義時(shí)鐘類對(duì)象,輸入當(dāng)前時(shí)間和經(jīng)過的秒數(shù),調(diào)用time函數(shù)計(jì)算新時(shí)間。根據(jù)題目要求,增加必要的構(gòu)造函數(shù)、析構(gòu)函數(shù)和其他所需函數(shù)

86、。輸入第一行測(cè)試次數(shù)n2行一組,第一行為當(dāng)前時(shí)間(小時(shí) 分鐘 秒),第二行為經(jīng)過的秒數(shù)。輸出輸出n行每行對(duì)應(yīng)每組當(dāng)前時(shí)間和經(jīng)過秒數(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 valu

88、e;    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、0;          value+;        if(value=max_value)            value=0;        return value;        int GetValue()     return value; ;class Clockprivate:    Calculater hour,minute,second;public:  

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論