C++面向?qū)ο蟪绦蛟O(shè)計(jì)題目_第1頁
C++面向?qū)ο蟪绦蛟O(shè)計(jì)題目_第2頁
C++面向?qū)ο蟪绦蛟O(shè)計(jì)題目_第3頁
C++面向?qū)ο蟪绦蛟O(shè)計(jì)題目_第4頁
C++面向?qū)ο蟪绦蛟O(shè)計(jì)題目_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、#include<iostream.h>#include<string.h>#include<math.h>Using namespace std;1、 編寫一個(gè)程序,從鍵盤輸入半徑和高,輸出圓柱體的底面積和體積。void main()double r,h; /輸入r、h值的時(shí)候用空格隔開double s,v;cout<<"請(qǐng)輸入r,h:"cin>>r>>h;、s=3.14*r*r;v=s*h;cout<<"底面積="<<s<<",體積=

2、"<<v<<endl;2、 N個(gè)整數(shù)從小到大排列,輸入一個(gè)新數(shù)插入其中,使N+1個(gè)整數(shù)仍然有序。void main()int A10=10,30,40,60,70,90;int x;cout<<"請(qǐng)輸入要插入的整數(shù):"cin>>x;for(int j=5;x<Aj;j-)Aj+1=Aj;Aj+1=x;for(j=0;j<7;j+)cout<<Aj<<" "cout<<endl;/*for(int j=0;j<6;j+)if(x<Aj)br

3、eak;for(int i=5;i>=j;i-)Ai+1=Ai;Aj=x;for(i=0;i<7;i+)cout<<Ai<<" "cout<<endl;3、 從鍵盤輸入若干個(gè)學(xué)生成績(jī),統(tǒng)計(jì)并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入。void main()int score100;int n=0,sc;cout<<"請(qǐng)輸入學(xué)生成績(jī):"cin>>sc;while(sc>=0)scoren=sc;n+;cin>>sc;int max,min,i;max=min=sco

4、re0;for(i=1;i<n;i+)if(max<scorei)max=scorei;if(min>scorei)min=scorei;cout<<"最大值為="<<max<<endl;cout<<"最小值為="<<min<<endl;4、 編寫一個(gè)程序根據(jù)輸入的三角形的三條邊判斷是否能組成三角形,如果可以則輸出它的面積和三角形類型(等邊、等腰、直角三角形)。#include<math.h>void main()double a,b,c;cout<

5、;<"請(qǐng)輸入三條邊:"cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)double p,s;cout<<"可以構(gòu)成三角形。"<<endl;p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);cout<<"面積為="<<s<<endl;if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a)cout<<&

6、quot;直角三角形."<<endl;if(a=b&&b=c)cout<<"等邊三角形."<<endl;if(a=b|b=c|a=c)cout<<"等腰三角形。"<<endl;elsecout<<"不可以構(gòu)成三角形。"<<endl;5、 輸入10 個(gè)同學(xué)的成績(jī),統(tǒng)計(jì)80分以上和不及格的人數(shù),并輸出平均值。double score10;int n1=0,n2=0;double v=0;cout<<"

7、;請(qǐng)輸入10個(gè)成績(jī):"for(int i=0;i<10;i+)cin>>scorei;for(i=0;i<10;i+)v+=scorei;if(scorei>=80)n1+;if(scorei<60)n2+;cout<<"大于80的人數(shù)為:"<<n1<<"不及格為:"<<n2<<endl;cout<<"平均分為:"<<v/10<<endl;6、 編寫一個(gè)函數(shù)來檢驗(yàn)輸入的一個(gè)字符是大寫字母還是小寫

8、字母或不是26個(gè)英文字母。void isa(char c)if(c>='A'&&c<='Z')cout<<"是大寫字母."<<endl;elseif(c>='a'&&c<='z')cout<<"是小寫字母."<<endl;elseif(c>='0'&&c<='9')cout<<"是數(shù)字."<&

9、lt;endl;elsecout<<"不是字母."<<endl;void main()char c;cin>>c;isa(c);7、 聲明一個(gè)Tree(樹)類,有成員ages(樹齡),成員函數(shù)grow(int years)用以對(duì)ages 加上years,showage( )用以顯示tree對(duì)象的ages值。在主函數(shù)中定義Tree類對(duì)象,并調(diào)用成員函數(shù)(學(xué)生自行指定實(shí)參數(shù))class Treeprivate:int ages;public:Tree(int age=0)ages=age;void grow(in

10、t years)ages+=years;void showage()cout<<"樹年齡為:"<<ages<<endl;void main()Tree t;t.grow(2);t.showage();Tree t2(3);t2.grow(2);t2.showage();8、 編寫一個(gè)矩形rectangle類,有數(shù)據(jù)成員長(zhǎng)len和寬wid,構(gòu)造函數(shù)retange(int,int).和友元函數(shù) int area(rectangle T)和int fun(rectangle T) 分別

11、計(jì)算給定長(zhǎng)方形的周長(zhǎng)和面積。class rectangleprivate:int len,wid;public:rectangle(int l,int w)len=l;wid=w;friend double area(rectangle T);friend double fun(rectangle T);double area(rectangle T)return (T.len*T.wid);double fun(rectangle T)return 2*(T.len+T.wid);void main()rectangle T(10,20);cout<<"面積="

12、;<<area(T)<<endl;cout<<"周長(zhǎng)="<<fun(T)<<endl;9、 定義計(jì)數(shù)器類Counter。要求具有以下成員:計(jì)數(shù)器值;可進(jìn)行增值和減值記數(shù);可提供記數(shù)值。class Counterprivate:int value;public:Counter()value=0;Counter(int v)value=v;void disp()cout<<value<<endl;void operator+()value+;void operator-()value-;void

13、 main()Counter CT;CT+;CT.disp();CT+;CT.disp();CT-;CT.disp();CT-;CT.disp();10、 定義一個(gè)基類:點(diǎn)類,包括x坐標(biāo)和y坐標(biāo),從它派生一個(gè)圓類,增加數(shù)據(jù)成員r(半徑),圓類成員函數(shù)包括構(gòu)造函數(shù)、求面積的函數(shù)和輸出顯示圓心坐標(biāo)及圓半徑的函數(shù)。class pointprivate:int x,y;public:point(int xx,int yy)x=xx;y=yy;int getx()return x;int gety()return y;class circle:public pointprivate:double r;p

14、ublic:circle(int x,int y,double rr):point(x,y)r=rr;double area()return 3.14*r*r;void show()cout<<"半徑為"<<r<<",園心坐標(biāo)為("<<getx()<<","<<gety()<<")"<<endl;void main()circle c(10,10,5);cout<<c.area()<<endl;c

15、.show();11、 定義一個(gè)抽象類shape用以計(jì)算面積,從中派生出計(jì)算長(zhǎng)方形、梯形、圓形面積的派生類。程序中通過基類指針來調(diào)用派生類中的虛函數(shù),計(jì)算不同形狀的面積。class shappublic:virtual double area()=0;class cfx:public shapprivate:double len,wid;public:cfx(double l,double w)len=l;wid=w;double area()return len*wid;class circle:public shapprivate:double r;public:circle(double

16、 rr)r=rr;double area()return 3.14*r*r;void main()shap *sp;cfx c(10,20);circle cr(20);cout<<c.area()<<endl;cout<<cr.area()<<endl;sp=&c;cout<<sp->area()<<endl;sp=&cr;cout<<sp->area()<<endl;12、 定義一個(gè)復(fù)數(shù)類,用友元函數(shù)實(shí)現(xiàn)對(duì)雙目運(yùn)算符+和-的運(yùn)算符重載,使其適用于復(fù)數(shù)運(yùn)算。class

17、complexprivate:double r,i;public:complex(double rr=0,double ii=0)r=rr;i=ii;friend complex operator+(complex c1,complex c2);friend complex operator-(complex c1,complex c2);void disp()cout<<r<<"+"<<i<<"i"<<endl;complex operator+(complex c1,complex c2)c

18、omplex c;c.r=c1.r+c2.r;c.i=c1.i+c2.i;return c;complex operator-(complex c1,complex c2)complex c;c.r=c1.r-c2.r;c.i=c1.i-c2.i;return c;void main()complex c1(10,5),c2(2,4),c3;c1.disp();c2.disp();c3.disp();c3=c1+c2;c3.disp();c3=c1-c2;c3.disp();13、 定義一個(gè)學(xué)生類,其中有3個(gè)數(shù)據(jù)成員:學(xué)號(hào)、姓名、年齡,以及若干成員函數(shù)。同時(shí)編寫main 函數(shù)使用這個(gè)

19、類,實(shí)現(xiàn)對(duì)學(xué)生數(shù)據(jù)的賦值和輸出。#include<string.h>class studentprivate:long number;char name20;int age;public:student(long n,char na,int a)number=n;strcpy(name,na);age=a;void input()cin>>number>>name>>age;void output()cout<<number<<","<<name<<","&l

20、t;<age<<endl;void main()student s1(11111,"zhnag",19);s1.output();s1.input();s1.output();14、 聲明一個(gè)類String1,其數(shù)據(jù)成員為char head100,構(gòu)造函數(shù)String(char *Head)實(shí)現(xiàn)head的初始化,成員函數(shù)void Reverse()實(shí)現(xiàn)head內(nèi)字符串的逆序存放,成員函數(shù)void Print()實(shí)現(xiàn)head內(nèi)字符串的輸出。class string1private:char head100;public

21、:string1(char *h)strcpy(head,h);void reverse()int len;char c;len=strlen(head);for(int i=0;i<len/2;i+)c=headi;headi=headlen-i-1;headlen-i-1=c;void print()cout<<head<<endl;void main()string1 s("abcdef");s.print();s.reverse();s.print();15、 定義盒子Box 類,要求具有以下成員:可設(shè)置盒子形狀;可計(jì)算盒子體

22、積;可計(jì)算盒子的表面積。class boxprivate:int l,w,h;public:box()l=w=h=0;box(int len,int wid,int he)l=len;w=wid;h=he;void set(int len,int wid,int he)l=len;w=wid;h=he;int tj()return l*w*h;int area()return 2*(l*w+l*h+w*h);void main()box b1,b2(2,3,4);cout<<b1.area()<<" "<<b1.tj()<<e

23、ndl;cout<<b2.area()<<" "<<b2.tj()<<endl;b1.set(10,10,10);cout<<b1.area()<<" "<<b1.tj()<<endl;16、 聲明一個(gè)哺乳動(dòng)物Mammal 類,再由此派生出狗Dog 類,聲明一個(gè)Dog 類的對(duì)象,觀察基類與派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序。class mammalpublic:mammal()cout<<"mammal s

24、truct called."<<endl;mammal()cout<<"mammal Destruct called."<<endl;class dog:public mammalpublic:dog()cout<<"dog struct called."<<endl;dog()cout<<"dog Destruct called."<<endl;void main()dog d;17、定義一個(gè)基類有姓名、性別、年齡,再由基類派生出教師類和學(xué)

25、生類,教師類增加工號(hào)、職稱和工資,學(xué)生類增加學(xué)號(hào)、班級(jí)、專業(yè)和入學(xué)成績(jī)。class personprivate:char name20;char sex2;int age;public:person(char n,char s,int a)strcpy(name,n);strcpy(sex,s);age=a;void print()cout<<name<<","<<sex<<","<<age<<endl;class teacher:public personprivate:long

26、number;char pref20;double salay;public:teacher(char n,char s,int a,long num,char p,double sy):person(n,s,a)number=num;strcpy(pref,p);salay=sy;void print()person:print();cout<<number<<","<<pref<<","<<salay<<endl;class student:public personprivat

27、e:long number;char zy20;char bj20;double score;public:student(char n,char s,int a,long num,char z,char b,double sc):person(n,s,a)number=num;strcpy(zy,z);strcpy(bj,b);score=sc;void print()person:print();cout<<number<<","<<zy<<","<<bj<<",&qu

28、ot;<<score<<endl;void main()teacher t("AAAA","N",30,1111,"ABCD",5000);t.print();student s("BBBB","M",18,142220101,"軟件","嵌入式",80);s.print();18、寫一個(gè)Complex類,將運(yùn)算符“+”重載為適用于復(fù)數(shù)加法,重載函數(shù)不作為成員函數(shù),而放在類外, 作為Complex類的友元函數(shù)。19、實(shí)現(xiàn)一

29、個(gè)名為SimpleCircle的簡(jiǎn)單圓類,其數(shù)據(jù)成員int *itsRadius為一個(gè)指向其半徑值的指針,設(shè)計(jì)對(duì)數(shù)據(jù)成員的各種操作,給出這個(gè)類的完整實(shí)現(xiàn)并測(cè)試這個(gè)類。 class simplecircleprivate:int *itsrad;public:simplecircle(int *it)itsrad=new int;*itsrad=*it;void input()cin>>*itsrad;void output()cout<<*itsrad<<endl;void disp()int r;r=*itsrad;cout<&l

30、t;"面積="<<3.14*r*r<<endl;void main()int r;cin>>r;simplecircle sc(&r);sc.output();sc.disp();sc.input();sc.disp();20、有一個(gè)Time類,包含數(shù)據(jù)成員minute(分)和sec(秒),模擬秒表,每次走一秒,滿60秒進(jìn)一分鐘,此時(shí)秒又從0開始算。要求輸出分和秒的值。(提示:重載單目運(yùn)算符+)class Timeprivate:int minute,second;public:Time(int m=0,int s=0)minute=m;second=s;void disp()cout<<minute<<"分"<<second<<"秒"<<endl;Time &operator+()second+;if(second=60)minute+;second=0;return *this;void main()Time t(10,31);t.d

溫馨提示

  • 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. 人人文庫網(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)論