

下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C+面向對象程序設計2010 期末考試 編程題1、編寫一個程序根據輸入的三角形的三條邊判斷是否能組成三角形,如果可以 則輸出它的面積和三角形類型(等邊、等腰、直角三角形)。#include#includeusing namespace std;int main()double a,b,c;double v,p;cout請輸入三角形三條邊: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、定義一個學生類,其中有3個數據成員:學號、姓名、年齡,以及若干成員 函數。同時編寫main函數使用這個類,實現對學生數據的賦值和輸出。#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、從鍵盤輸入若干個學生成績,統計
4、并輸出最高成績和最低成績,當輸入負數 時結束輸入。#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、 編寫一個程序,從鍵盤輸入半徑和高,輸出圓柱體的底面積和體積#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、編寫一個程序,輸入年、月,打印出該年份該月的天數。#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、編寫函數將化氏溫度轉換為攝氏溫度,公式為C=(F-32)*5/9;并在主函數中調用。#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、聲明一個Tree(樹)類,有成員ages(樹齡),成員函數
7、grow(int years)用 以對ages加上years,showage( )用以顯示tree對象的ages值。在主函數中 定義Tree類對象,并調用成員函數(學生自行指定實參數#include using namespace std;class Treeprivate:int ages;public:int grow(int years)ages=ages+years;return ages;void getage()cout輸入樹的樹齡:ages;void showage()cout該樹的年齡是:agesendl;int main()Tree ages,years;ages.getag
8、e();ages.grow(5);ages.showage();return 0;8、定義一個復數類,用友元函數實現對雙目運算符“+”的運算符重載,使其適 用于復數運算。#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、有一個函數如下: 輸入x的值,計算出相應的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、使用函數重載的方法定義兩個重名函數,分別求出整型數的兩數之和和浮點數的兩數之和,并在主函數中調用。#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請輸入兩個整型數:ab;cout請輸入兩個浮點數:xy;c=add(a,b);z=add(x,y);cout整型數之和是:cendl; cout浮點數之和是:zendl;return 0;11、定義一個抽象類shape
11、用以計算面積,從中派生出計算長方形、梯形、圓形 面積的派生類。 程序中通過基類指針來調用派生類中的虛函數, 計算不同形狀的 面積。#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、定義計數器類Counter。要求具有以下成員:計數器值;可進行增值和減值 記數;可提供記數值。#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、輸入一個自然數, 輸出其各因子的連乘形式, 如輸入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、定義一個基類:點類,包括x坐標和y坐標,從它派生一個圓類,增加數據 成員r(半徑),圓類成員函數包括構造函數、求面積的函數和輸出顯示圓心坐標及圓半徑的函數。#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輸入圓心坐標、圓的半徑:xyr;void Circle:area()double s=0;s=3.14159*r*r;cout圓的面積是:sendl;void Circle:show()cout圓心坐標是:(x,y)endl;cout圓的半徑是:rendl;int main()Circle d;d.get();d.area();d.show();return 0;16、N個整數從小到大排列,輸入一個新數插入其中,使#includeusing namespace s
16、td;int main()int a11=10,20,30,40,50,60,70,80,90,100;int i,j,n;cout原順序為:endl;for(i=0;i10;i+) coutai ;coutendl;cout請輸入一個新數:n;if(a0n)for(i=9;i=0;i-) ai+1=ai;a0=n;if(a9a0&na9)N+1個整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、編寫一個矩形rectangle類,有數據成員長len和寬w
17、id,構造函數retange(int,int).和友元函數int area(rectangle T)和int fun(rectangle T)分別計算給定長方形的周長和面積。#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周長:fun(R)endl;return 0;19、定義一個復數類, 用友元函數實現對雙目運算符+和*的運算符重載, 使其適 用于復數運算。#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個同學的成績,統計80分以上和不及格的人數,并輸出平均值。#includeusing namespace std;int main()double a10,sum=0,var;int i,j=0,k=0;cout請輸入10個學生成績:endl;for(i=0;iai;sum=sum+ai;if(ai=80)j+;if(ai60)k+;var=sum/10;cout80分以上的人數是:jendl;cout不及格的人數是:kendl;cout平均分是:varendl;return 0;21、
22、聲明一個類String1,其數據成員為char head100,構造函數String(char *Head)實現head的初始化,成員函數void Reverse()實現head內字符串的 逆序存放,成員函數void Print()實現head內字符串的輸出。#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編寫程序形成如下矩陣。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類,要求具有以下成員:可設置盒子形狀;可計算盒子體積; 可計算盒子的表面積。#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、聲明一個哺乳動物Mammal類,再由此派生出狗Dog類,聲明一個Dog類的對象,觀察基類與派生類的構造函數與析構函數的調用順序。#includeusing namespace std;class mammalpublic:mammal()/默認構造函數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、定義一個基類有姓名、性別、年齡,再由基類派生出教師類和學生類, 教師類增加工號、職稱和工資,學生類增加學號、班級、專業和入學成績#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工號: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)/注意:只寫n,不是string nnum=nu;grade=g;major=m;score=sc;void student:show()coutvv姓名:nameendlvv性別:sexendlvv年齡:ageendl;coutvv學號:vvnumendlvv年級:gradeendlvv專業:majorendl入學成績:vvscorevvendl;int main()teacher t(侯傳旺,男,20,200901001010,教授,2100) ;t.display();student s(秦洪
31、敏,女,21,200902002026,大二,應用心理學,540);s.show();return 0;26、寫一個Complex類,將運算符“+”重載為適用于復數加法,重載函數不作 為成員函數,而放在類外,作為Complex類的友元函數。如例題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、實現一個名為SimpleCircle的簡單圓類,其數據成員int *itsRadius為一 個指向其半徑值的指針, 設計對數據成員的各種操作, 給出這個類的完整實現并 測試這個類。#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周長:S1.fun()endl;cout面積:S1.area()endl;return 0;28、有一個Time類,包含數據成員minute(分)和sec(秒),模擬秒表,每次走 一秒,滿60秒進一分鐘,此時秒又從0開始算。要求輸出分和秒的值。 (提示: 重載單目運算符+)#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、有一個學
37、生類student,包括學生姓名、成績,設計一個友元函數,輸出成 績對應的等級:大于等于90:優;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獲得:優endl;if (s.score=80)cout姓名:endl獲得:良=70&s.score80)cout姓名:endl獲得:中=60&s.score70)cout姓名:endl獲得:及格endl;if (s.score60)cout姓名:endl獲得
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業廢水處理技術與設施建設
- 工業廢水處理技術進展及挑戰分析
- 工業機器人設計與制造技術探討
- 工業現場的環境保護措施與實踐
- 工業廢水處理的技術與運營模式
- 工業污染防治技術進展
- 工業機器人的編程與調試技術
- 工業節能與綠色制造
- 工業環境下的能源效率提升策略以智能車間為例
- 工業自動化技術與產業發展趨勢
- 皮膚科進修心得分享
- 項目經理講安全課件
- 《休閑農業》課件 項目二 休閑農業分類及模式分析
- 2025年安徽省省情試題及答案
- 2025年消控室考核試題及答案
- 江西省吉安市遂川縣2024-2025學年數學三下期末達標檢測試題含解析
- 衛健系統2025年上半年安全生產工作總結
- 第一章體育與健康基礎知識 第一節 科學發展體能 課件 2024-2025學年人教版初中體育與健康八年級全一冊
- 消除艾滋病、梅毒和乙肝母嬰傳播項目工作制度及流程(模板)
- 高三數學復習策略
- 大豆病蟲害的綜合防治
評論
0/150
提交評論