

下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+面向?qū)ο蟪绦蛟O(shè)計(jì)2010 期末考試 編程題1、編寫(xiě)一個(gè)程序根據(jù)輸入的三角形的三條邊判斷是否能組成三角形,如果可以 則輸出它的面積和三角形類型(等邊、等腰、直角三角形)。#include#includeusing namespace std;int main()double a,b,c;double v,p;cout請(qǐng)輸入三角形三條邊:abc;if(a+bc&a+cb&b+ca)p=(a+b+c)/2;v=sqrt(p*(p-a)*(p-b)*(p-c);cout該三角形面積是vendl;if(a=b&a=c)cout該三角形是等邊三角形!endl;elseif(a=
2、b&a!=c|a=c&a!=b|b=c&b!=a) cout該三角形是等腰三角形!endl;if(a*a+b*b=c*c)|(a*a+c*c=b*b)|(c*c+b*b=a*a) cout該三角形是直角三角形!endl;elsecout這三條邊組不成三角形!endl;return 0;2、定義一個(gè)學(xué)生類,其中有3個(gè)數(shù)據(jù)成員:學(xué)號(hào)、姓名、年齡,以及若干成員 函數(shù)。同時(shí)編寫(xiě)main函數(shù)使用這個(gè)類,實(shí)現(xiàn)對(duì)學(xué)生數(shù)據(jù)的賦值和輸出。#include #includeusing namespace std;class studentint num;string name;int ag
3、e;public:student()num=0;name=0;age=0;student(int,string,int);void show();student:student(int a,string b,int c):num(a),name(b),age(c)void student:show()coutstudent number:endsnumendl;coutname:endsnameendl; coutage:endsageendl;int main()student s1(200803986,梅寒芳,23);s1.show();return 0;3、從鍵盤(pán)輸入若干個(gè)學(xué)生成績(jī),統(tǒng)計(jì)
4、并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù) 時(shí)結(jié)束輸入。#includeusing namespace std;int main()double a100;double max=0,min=100,t;int i;for(i=0;iai;if(aimax)max=ai;if(aimin)min=ai;cout最大值是:maxendl;cout最小值是:minendl;return 0;4、 編寫(xiě)一個(gè)程序,從鍵盤(pán)輸入半徑和高,輸出圓柱體的底面積和體積#includeusing namespace std;int main()double a,h,s,v;cout半徑為:a;cout高為:h;s=3.1
5、4159*a*a;v=s*h;cout底面積為:sendl;cout體積為:vendl;return 0;5、編寫(xiě)一個(gè)程序,輸入年、月,打印出該年份該月的天數(shù)。#includemain()int y,m,d;printf(year month=);scanf(%d%d,&y,&m);switch(m)case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break;case 4:case 6:case 9:case 11:d=30;break;case 2:if (y%4=0 & y%100!=0 | y%400
6、=0) d=29; else d=28;printf(days=%dn,d);6、編寫(xiě)函數(shù)將化氏溫度轉(zhuǎn)換為攝氏溫度,公式為C=(F-32)*5/9;并在主函數(shù)中調(diào)用。#includeusing namespace std;double fun(double a);int main()double f=37.5,c;c=fun(f);coutvv華氏溫度為:fTendl;cout攝氏溫度為:vvcvv C endl;return 0;double fun(double a)double b;b=(a-32)*5/9;return b;7、聲明一個(gè)Tree(樹(shù))類,有成員ages(樹(shù)齡),成員函數(shù)
7、grow(int years)用 以對(duì)ages加上years,showage( )用以顯示tree對(duì)象的ages值。在主函數(shù)中 定義Tree類對(duì)象,并調(diào)用成員函數(shù)(學(xué)生自行指定實(shí)參數(shù)#include using namespace std;class Treeprivate:int ages;public:int grow(int years)ages=ages+years;return ages;void getage()cout輸入樹(shù)的樹(shù)齡:ages;void showage()cout該樹(shù)的年齡是:agesendl;int main()Tree ages,years;ages.getag
8、e();ages.grow(5);ages.showage();return 0;8、定義一個(gè)復(fù)數(shù)類,用友元函數(shù)實(shí)現(xiàn)對(duì)雙目運(yùn)算符“+”的運(yùn)算符重載,使其適 用于復(fù)數(shù)運(yùn)算。#includeclass Complexprivate:double real;double imag;public:Complex()real=0;imag=0;Complex(double r,double i):real(r),imag(i)friend Complex operator+(Complex &c1,Complex &c2);void display();void Complex:disp
9、lay()coutreal+imagiendl;Complex operator+(Complex &c1,Complex &c2)return Complex(c1.real+c2.real,c1.imag+c2.imag);int main()Complex c1(3,4);Complex c2(4,2.3);Complex c3;c3=c1+c2;c3.display();return 0;9、有一個(gè)函數(shù)如下: 輸入x的值,計(jì)算出相應(yīng)的y值#includeusing namespace std;int main()int x,y;cinx;if(x=5&x=15)
10、 y=x-6; coutyendl;return 0;10、14、17、使用函數(shù)重載的方法定義兩個(gè)重名函數(shù),分別求出整型數(shù)的兩數(shù)之和和浮點(diǎn)數(shù)的兩數(shù)之和,并在主函數(shù)中調(diào)用。#includeusing namespace std; templateT add(T a,T b)T c;c=a+b;return c;int main()int a,b,c;float x,y,z;cout請(qǐng)輸入兩個(gè)整型數(shù):ab;cout請(qǐng)輸入兩個(gè)浮點(diǎn)數(shù):xy;c=add(a,b);z=add(x,y);cout整型數(shù)之和是:cendl; cout浮點(diǎn)數(shù)之和是:zendl;return 0;11、定義一個(gè)抽象類shape
11、用以計(jì)算面積,從中派生出計(jì)算長(zhǎng)方形、梯形、圓形 面積的派生類。 程序中通過(guò)基類指針來(lái)調(diào)用派生類中的虛函數(shù), 計(jì)算不同形狀的 面積。#include #define PI 3.1415926using namespace std;class Shapepublic:void show();protected:double s;void Shape:show()cout面積:sendl;class Circle :public Shapepublic:void GetArea();Circle(double);private: double r;Circle:Circle(double a)r=a
12、;void Circle:GetArea()s=r*r*PI;int main()Circle C(6);C.GetArea();C.show();return 0;12、定義計(jì)數(shù)器類Counter。要求具有以下成員:計(jì)數(shù)器值;可進(jìn)行增值和減值 記數(shù);可提供記數(shù)值。#include using namespace std;class Counterpublic:Counter(int );Counter operator +();Counter operator -();void display(); private: int i;Counter:Counter(int a)i=a;void
13、Counter:display()couti;Counter Counter: operator +()return Counter (+i);Counter Counter: operator -()return Counter(-i);int main()Counter C1(5);coutC1=;C1.display();+C1;coutendlC1=;C1.display();-C1;coutendlC1=;C1.display();coutendl;return 0;13、輸入一個(gè)自然數(shù), 輸出其各因子的連乘形式, 如輸入12,則輸出12=1*2*2*3#includeusing n
14、amespace std;int main()int i,n;cinn;coutn=1;for(i=2;i=n;)if(n%i=0)n=n/i;cout*i;continue;i+;coutendl;return 0;15、定義一個(gè)基類:點(diǎn)類,包括x坐標(biāo)和y坐標(biāo),從它派生一個(gè)圓類,增加數(shù)據(jù) 成員r(半徑),圓類成員函數(shù)包括構(gòu)造函數(shù)、求面積的函數(shù)和輸出顯示圓心坐標(biāo)及圓半徑的函數(shù)。#includeusing namespace std;class Dotpublic:int x;int y;Dot();class Circle:public Dotprivate:int r;public:Circ
15、le():Dot()void get();void area();void show();void Circle:get()cout輸入圓心坐標(biāo)、圓的半徑:xyr;void Circle:area()double s=0;s=3.14159*r*r;cout圓的面積是:sendl;void Circle:show()cout圓心坐標(biāo)是:(x,y)endl;cout圓的半徑是:rendl;int main()Circle d;d.get();d.area();d.show();return 0;16、N個(gè)整數(shù)從小到大排列,輸入一個(gè)新數(shù)插入其中,使#includeusing namespace s
16、td;int main()int a11=10,20,30,40,50,60,70,80,90,100;int i,j,n;cout原順序?yàn)椋篹ndl;for(i=0;i10;i+) coutai ;coutendl;cout請(qǐng)輸入一個(gè)新數(shù):n;if(a0n)for(i=9;i=0;i-) ai+1=ai;a0=n;if(a9a0&na9)N+1個(gè)整for(i=1;iai) j=i+1;for(i=9;i=j;i-)ai+1=ai;aj=n;for(i=0;i11;i+)coutai ;coutendl;return 0;18、編寫(xiě)一個(gè)矩形rectangle類,有數(shù)據(jù)成員長(zhǎng)len和寬w
17、id,構(gòu)造函數(shù)retange(int,int).和友元函數(shù)int area(rectangle T)和int fun(rectangle T)分別計(jì)算給定長(zhǎng)方形的周長(zhǎng)和面積。#include using namespace std;class rectanglepublic:rectangle(int ,int );friend int area(rectangle T);friend int fun (rectangle T);private: int len,wid;rectangle:rectangle(int a, int b)len=a;wid=b;int area(rectangl
18、e T)return (T.len*T.wid);int fun(rectangle T)return (2*(T.len+T.wid);int main()rectangle R(20,30);cout面積:area(R)endl;cout周長(zhǎng):fun(R)endl;return 0;19、定義一個(gè)復(fù)數(shù)類, 用友元函數(shù)實(shí)現(xiàn)對(duì)雙目運(yùn)算符+和*的運(yùn)算符重載, 使其適 用于復(fù)數(shù)運(yùn)算。#include #include class CComplex#define err 0.00000001double _x,_y;public:CComplex(double x=0,double y=0):_x(
19、x),_y(y)CComplex operator+(const CComplex&z);CComplex operator*(const CComplex&z);friend ostream&operator (istream&is,CComplex&z);int main()CComplex z1(0,1.2);CComplex z2(1,1.2);coutz1+z2endl;coutz1*z2z1;coutz1endl;return 0;CComplex CComplex:operator+(const CComplex&z)CComple
20、x c;c._x=_x+z._x;c._y=_y+z._y;return c;CComplex CComplex:operator*(const CComplex&z)CComplex c;c._x=_x*z._x-_y*z._y return c;ostream&operator err)coutz._x;if(fabs(z._y-1)err) couterr?+i:i);else if(fabs(z._y+1)err)couterr) couterr?+:)z._y i;else if(z._y-err) coutz._y(istream&is,CComplex&a
21、mp;z)isz._xz._y;return is;c._y=_x*z._y+_y*z._x;20、輸入10個(gè)同學(xué)的成績(jī),統(tǒng)計(jì)80分以上和不及格的人數(shù),并輸出平均值。#includeusing namespace std;int main()double a10,sum=0,var;int i,j=0,k=0;cout請(qǐng)輸入10個(gè)學(xué)生成績(jī):endl;for(i=0;iai;sum=sum+ai;if(ai=80)j+;if(ai60)k+;var=sum/10;cout80分以上的人數(shù)是:jendl;cout不及格的人數(shù)是:kendl;cout平均分是:varendl;return 0;21、
22、聲明一個(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)字符串的輸出。#include #include using namespace std;class Stringpublic:String (char *Head);void Reverse();void Print ();private:char head100;String:String(char *Head)int i=0;char *p=He
23、ad;while(*p!=0)i-;headi=*p;i+;p+;headi=0;void String:Reverse()int i=0;char h100,*p=head; while(*p!=0) p+; while(*p!=head0)p-;hi=*p;i+;hi=0;while(i=0)headi=hi;void Stri ng:Pri nt()char *p=head;for(;(*p)!=0;p+) cout(*p);coute ndl;int main()char *Head=abcdefgh;Stri ng s(Head);cout正序:;s.Pri nt();s.Rever
24、se();cout逆序:;s.Pri nt();return 0;22編寫(xiě)程序形成如下矩陣。2 14 13 A=5 IL4321 3211 2111山111 1111 #in clude using namespace std; int main()int a55;int ii,jj;for (ii = 0; ii 5; ii+)for (jj = 0; jj 5; jj+)if (ii - jj 1)aiijj = 1;elseaiijj = ii+1 - jj;for(ii=0;ii5;ii+)for(jj=0;jj5;jj+)coutaiijj ;coutendl;return 0;23
25、、定義盒子Box類,要求具有以下成員:可設(shè)置盒子形狀;可計(jì)算盒子體積; 可計(jì)算盒子的表面積。#include using namespace std;class Boxpublic:Box(double,double,double);double area();double v();private:double x,y,z;Box:Box(double x1,double y1,double z1)x=x1;y=y1;z=z1;double Box:area()return (2*(x*y+y*z+x*z);double Box:v()return (x*y*z);int main()Box
26、B(2,3,4);cout表面積:B.area()endl;cout體積:B.v()endl;return 0;24、33、聲明一個(gè)哺乳動(dòng)物Mammal類,再由此派生出狗Dog類,聲明一個(gè)Dog類的對(duì)象,觀察基類與派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序。#includeusing namespace std;class mammalpublic:mammal()/默認(rèn)構(gòu)造函數(shù)coutmammals constructorendl;mammal()coutmammala destucorendl;class dog :public mammalpublic:dog()coutdogs constr
27、uctorendl;dog()coutdogs destructorendl;int main()dog a;return 0;25、30、定義一個(gè)基類有姓名、性別、年齡,再由基類派生出教師類和學(xué)生類, 教師類增加工號(hào)、職稱和工資,學(xué)生類增加學(xué)號(hào)、班級(jí)、專業(yè)和入學(xué)成績(jī)#include #include using namespace std;class personpublic:person(string ,string,int);protected:string name;string sex;int age;person:person(string n, string s, int a)n
28、ame=n;sex=s;age=a;class teacher :public personpublic:teacher(string ,string,int,string,string,double);void display();private: string work_num;string title;double wage;teacher:teacher(string n, string s, int a, string wo, string t, double wa):person( n,s,a) work_num=wo;title=t;wage=wa;void teacher:di
29、splay()cout姓名:nameendl性別:sexendl年齡:cout工號(hào):work_numendlvv職稱:titleendlvvwageendl;class student: public personpublic:student(string,string,int,string,string,string,double);void show();private:string num;string grade;string major;double score;ageendl;工資:;student:student(string n, string s, int a, string
30、 nu, string g, stringm, double sc):person(n,s,a)/注意:只寫(xiě)n,不是string nnum=nu;grade=g;major=m;score=sc;void student:show()coutvv姓名:nameendlvv性別:sexendlvv年齡:ageendl;coutvv學(xué)號(hào):vvnumendlvv年級(jí):gradeendlvv專業(yè):majorendl入學(xué)成績(jī):vvscorevvendl;int main()teacher t(侯傳旺,男,20,200901001010,教授,2100) ;t.display();student s(秦洪
31、敏,女,21,200902002026,大二,應(yīng)用心理學(xué),540);s.show();return 0;26、寫(xiě)一個(gè)Complex類,將運(yùn)算符“+”重載為適用于復(fù)數(shù)加法,重載函數(shù)不作 為成員函數(shù),而放在類外,作為Complex類的友元函數(shù)。如例題10.3#include class complexprivate:double a;double b;public:complex();complex(double i,double j);friend complex operator +(complex&,complex);void setreal(double x);void setim
32、ag(double y);void getreal();void getimag();friend ostream& operator (istream& in,complex& x);complex:complex():a(0),b(0)complex:complex(double i,double j):a(i),b(j)complex operator +(complex&x,complex y)y.a+=x.a;y.b+=x.b;return complex(y.a,y.b);ostream& operator(ostream& out,
33、complex &x)outx.a+x.b(istream& in,complex& x)inx.ax.b;return in;void complex:setreal(double x)a=x;void complex:setimag(double y)b=y;void complex:getreal()cina;void complex:getimag()cinb;int main()complex a;complex b;cinab;/coutaendl;/coutbendl;couta+bendl;/coutaendl;/coutbendl;return 0;2
34、7、實(shí)現(xiàn)一個(gè)名為SimpleCircle的簡(jiǎn)單圓類,其數(shù)據(jù)成員int *itsRadius為一 個(gè)指向其半徑值的指針, 設(shè)計(jì)對(duì)數(shù)據(jù)成員的各種操作, 給出這個(gè)類的完整實(shí)現(xiàn)并 測(cè)試這個(gè)類。#include #define PI 3.1415926using namespace std;class SimpleCirclepublic:SimpleCircle(int *);double fun();double area();private:int *itsRadius;SimpleCircle:SimpleCircle(int * i)itsRadius=i;double SimpleCircl
35、e:fun()return (2 * PI * (*itsRadius);double SimpleCircle:area()return (PI*PI*(*itsRadius);int main()int a;couta;SimpleCircle S1(&a);cout周長(zhǎng):S1.fun()endl;cout面積:S1.area()endl;return 0;28、有一個(gè)Time類,包含數(shù)據(jù)成員minute(分)和sec(秒),模擬秒表,每次走 一秒,滿60秒進(jìn)一分鐘,此時(shí)秒又從0開(kāi)始算。要求輸出分和秒的值。 (提示: 重載單目運(yùn)算符+)#include using namespac
36、e std; class Timepublic:Time(int ,int ); void operator +(); void display();private:int minute,sec;Time:Time(int a,int b)minute=a; sec=b;void Time:operator +()if (sec59) sec+;elseminute+;sec=0;void Time:display()coutminute:secendl;int main()Time T1(3,59);T1.display();T1+;T1.display();return 0;29、有一個(gè)學(xué)
37、生類student,包括學(xué)生姓名、成績(jī),設(shè)計(jì)一個(gè)友元函數(shù),輸出成 績(jī)對(duì)應(yīng)的等級(jí):大于等于90:優(yōu);8090:良;7079:中;6069:及格;小于60:不及格。#include #include using namespace std;class studentpublic:friend void grade(student & );student (string ,int);private :string name;int score;student:student(string n,int s)name=n;score=s;void grade (student & s)if(s.score =90)cout姓名:endl獲得:優(yōu)endl;if (s.score=80)cout姓名:endl獲得:良=70&s.score80)cout姓名:endl獲得:中=60&s.score70)cout姓名:endl獲得:及格endl;if (s.score60)cout姓名:endl獲得
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘肅省武威市2025屆八下英語(yǔ)期中統(tǒng)考模擬試題含答案
- 2025年云計(jì)算服務(wù)模式演變與行業(yè)應(yīng)用場(chǎng)景拓展研究報(bào)告
- 2025年元宇宙社交平臺(tái)用戶粘性與活躍度提升策略報(bào)告
- 綠色物流發(fā)展趨勢(shì)與企業(yè)節(jié)能減排技術(shù)應(yīng)用案例分析報(bào)告
- 咨詢工程師官方課件
- 2025年醫(yī)療美容行業(yè)激光美容技術(shù)發(fā)展及市場(chǎng)監(jiān)督管理研究報(bào)告
- 周靖稅務(wù)師課件百度網(wǎng)盤(pán)
- 北京網(wǎng)約車題庫(kù)及答案
- 保育員初級(jí)考試試題2019及答案
- 工業(yè)廢氣催化燃燒技術(shù)環(huán)保設(shè)備維護(hù)與管理指南報(bào)告
- 2024年全球及中國(guó)海外安保服務(wù)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 社區(qū)工作者心理健康培訓(xùn)大綱
- 家具公司三級(jí)安全教育試題及答案
- 神經(jīng)內(nèi)科危重患者觀察的護(hù)理
- 神經(jīng)源性腸道功能護(hù)理查房
- 集合、復(fù)數(shù)、不等式與常用邏輯用語(yǔ)(4考點(diǎn)+19題型)-2025年高考數(shù)學(xué)復(fù)習(xí)專練(解析版)
- 2025年上半年廣東省廣州市白云區(qū)委宣傳部政府雇員招聘5人重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 江蘇省鹽城市五校聯(lián)考2024-2025學(xué)年高一上學(xué)期期末語(yǔ)文試題(原卷版+解析版)
- 江西省吉安市遂川縣2024-2025學(xué)年數(shù)學(xué)三下期末達(dá)標(biāo)檢測(cè)試題含解析
- EPC項(xiàng)目-總體實(shí)施方案
- 2024年青海省省直機(jī)關(guān)遴選公務(wù)員考試真題
評(píng)論
0/150
提交評(píng)論