面向對象程序設計編程題復習及其答案_第1頁
面向對象程序設計編程題復習及其答案_第2頁
面向對象程序設計編程題復習及其答案_第3頁
面向對象程序設計編程題復習及其答案_第4頁
面向對象程序設計編程題復習及其答案_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-?面向對象程序設計?復習題1、 C+的輸入輸出天貓優(yōu)惠券,我就要券.591q.定義一個函數ma*,實現輸入兩個數a、b,比較并從小到大輸出。2、 函數的重載1定義一個帶兩個參數的函數ma*,輸出最大值。2再定義一個帶三個參數的函數ma*,輸出最大值。3主函數測試之。3、有默認參數的函數 將題2用帶默認參數的函數實現。4、變量的引用 1定義一個swap1函數,以普通形參傳入兩個變量a、b,互換a、b的值。 2定義一個swap2函數,以指針形參傳入兩個變量a、b,互換a、b的值。 3定義一個swap3函數,以引用形參輸入兩個變量a、b,互換a、b的值。 4主函數定義兩個變量*、y傳入三個函數,觀

2、察*、y值前后的變化。5、類的定義定義一個student類,數據成員包括:*num,name,年齡age,性別se*,成員函數包括:(1) set函數,鍵盤輸入*,年齡,性別(2) display函數,輸出學生信息。6、構造函數和析構函數定義一個student類,數據成員包括:*num,name,年齡age,性別se*,成員函數包括:1構造函數,初始化*,年齡,性別2display函數,輸出學生信息。3析構函數,輸出學生*。4主函數定義多個對象,并注意構造函數和析構函數的調用順序。7、構造函數的重載在題6根底上增加一個默認構造函數,實現構造函數的重載8、將題6用帶默認參數的構造函數實現。9、對

3、象數組和對象的動態(tài)建立及釋放在題8根底上,實現如下主函數:(1) 在主函數中定義一個包含三個學生的數組,并初始化之。(2) 在主函數中定義一個student類指針p并用new運算符分配動態(tài)存(3) 用delete刪除p指向的動態(tài)存。(4) 觀察構造函數和析構函數的調用。10、復制構造函數在題8根底上新增加一個復制構造函數,并主函數新增復制構造對象。11、靜態(tài)成員定義一個student類,數據成員包括:*num,name,成績score,累加總分sum,累計人數count。成員函數包括:構造函數統(tǒng)計人數count;(1) 非靜態(tài)成員total函數,求sum。(2) 靜態(tài)成員average函數,求

4、平均成績。(3) 主函數定義包含3個學生的數組,求三個學生的平均成績。 12、友元函數定義一個Time類,私有數據成員包括: 時hour、分minute、秒second成員函數:構造函數Time定義一個友元函數display,使之私有成員輸出時分秒。13、運算符重載(1)定義一個復數類,實現對“+,>>,<<的重載,使之可實現以下主函數。int main()ple* a(3,4),b(1,2),c,d,e,f; c=a+b; d=a+5; e=3+b; cin>>f; cout<<f<<endl;return 0;(2)定義一個Tim

5、e類,實現對“+的前綴、后綴重載。P134i+:單目運算符天貓優(yōu)惠券,我就要券.591q.14、(單繼承及派生類構造函數)1定義一個person類,數據成員包括:name,年齡age,性別se*成員函數:構造函數及display函數2定義一個派生類student,公有繼承與person類,新增成員:專業(yè)major,入學日期enterdate(Date類自定義)。3主函數定義student對象,各類構造函數的調用順序。15、多繼承在14題根底上由person類再派生出teacher類,新增成員:職稱title,工資wage16、虛繼承由student類和teacher類共同派生出graduate

6、類,新增成員: 年級grade,將person類定義成虛基類,實現用虛繼承解決二義性。17、抽象類及多態(tài)性定義一個抽象基類Shape,由它派生出5個派生類,Circle圓形、Square正方形、Rectangle矩形、Trapezoid梯形、Triangel三角形。用虛函數分別計算幾何圖形面積,并求他們的和。要求定義一個基類指針,使它指向每一個派生類對象,表達其多態(tài)性。1、*include<iostream>using namespace std;void ma*()int a,b;cout<<"請輸入兩個數:"<<endl;cin>

7、;>a>>b;if(a>b)cout<<b<<" "<<a<<endl;elsecout<<a<<" "<<b<<endl;int main()ma*();return 0;2、*include<iostream>using namespace std;void ma*(int a,int b)if(a>b)cout<<a<<endl;elsecout<<b<<endl;

8、void ma*(int a,int b,int c)if(a>b && a>c)cout<<a<<endl;else if(b>c)cout<<b<<endl;elsecout<<c<<endl;int main()ma*(2,5);ma*(7,5,3);return 0;3、*include<iostream>using namespace std;void ma*(int a,int b,int c=0)if(a>b && a>c)cout&l

9、t;<a<<endl;else if(b>c)cout<<b<<endl;elsecout<<c<<endl;int main()ma*(2,5);ma*(7,5,3);return 0;4、*include<iostream>using namespace std;void swap1(int a,int b)int temp;temp=a;a=b;b=temp;void swap2(int *a,int *b)int temp;temp=*a;*a=*b;*b=temp;void swap3(int &am

10、p;a,int &b)int temp;temp=a;a=b;b=temp;int main()int *,y;*=5;y=7;swap1(*,y);cout<<"*="<<*<<" y="<<y<<endl;*=5;y=7;swap2(&*,&y);cout<<"*="<<*<<" y="<<y<<endl;*=5;y=7;swap3(*,y);cout<<&

11、quot;*="<<*<<" y="<<y<<endl;return 0;5、*include<iostream>*include <string>using namespace std;class studentprivate:int num;string name;int age;char se*;public:void set() cout<<"請輸入:*,年齡,性別f or m"<<endl; cin>>num>>na

12、me>>age>>se*;void display()cout<<"*:"<<num<<endl;cout<<":"<<name<<endl;cout<<"年齡:"<<age<<endl;cout<<"性別:"<<se*<<endl;int main()student s;s.set();s.display();return 0;6、*include

13、<iostream>*include <string>using namespace std;class studentprivate:int num;string name;int age;char se*;public:/*void set() cout<<"請輸入:*,年齡,性別f or m"<<endl; cin>>num>>name>>age>>se*;*/student(int num,string name,int a,int s)cout<<"

14、;調用構造函數 num="<<num<<endl;this->num=num;this->name=name;age=a;se*=s;天貓優(yōu)惠券,我就要券.591q.void display()cout<<"*:"<<num<<endl;cout<<":"<<name<<endl;cout<<"年齡:"<<age<<endl;cout<<"性別:"&l

15、t;<se*<<endl;student()cout<<"析構函數 *:"<<num<<endl;int main()student s(1001,"三",25,'f'),s1(1002,"四",24,'m');/s.set();s.display(); s1.display();return 0;7、*include<iostream>*include <string>using namespace std;class st

16、udentprivate:int num;string name;int age;char se*;public:/*void set() cout<<"請輸入:*,年齡,性別f or m"<<endl; cin>>num>>name>>age>>se*;*/student()cout<<"調用構造函數 num="<<0<<endl;num=0;name="age=18;se*='f'student(int num,str

17、ing name,int a,int s)cout<<"調用構造函數 num="<<num<<endl;this->num=num;this->name=name;age=a;se*=s;void display()cout<<"*:"<<num<<endl;cout<<":"<<name<<endl;cout<<"年齡:"<<age<<endl;cout<

18、;<"性別:"<<se*<<endl;student()cout<<"析構函數 *:"<<num<<endl;int main()student s(1001,"三",25,'f'),s1(1002,"四",24,'m'),s2;/s.set();s.display();cout<<endl; s1.display();cout<<endl;s2.display();cout<<en

19、dl;return 0;8、*include<iostream>*include <string>using namespace std;天貓優(yōu)惠券,我就要券.591q.class studentprivate:int num;string name;int age;char se*;public:student(int num=0,string name=",int a=18,int s='f')cout<<"調用構造函數 num="<<num<<endl;this->num=nu

20、m;this->name=name;age=a;se*=s;void display()cout<<"*:"<<num<<endl;cout<<":"<<name<<endl;cout<<"年齡:"<<age<<endl;cout<<"性別:"<<se*<<endl;student()cout<<"天貓優(yōu)惠券,我就要券.591q. *:"

21、;<<num<<endl;int main()student s(1001,"三",25,'f'),s1(1002,"四",24,'m'),s2;/s.set();s.display();cout<<endl; s1.display();cout<<endl;s2.display();cout<<endl;return 0;9、*include<iostream>*include <string>using namespace std;cl

22、ass studentprivate:int num;string name;int age;char se*;public:student(int num=0,string name=",int a=18,int s='f')cout<<"調用構造函數 num="<<num<<endl;this->num=num;this->name=name;age=a;se*=s;void display()cout<<"*:"<<num<<endl;co

23、ut<<":"<<name<<endl;cout<<"年齡:"<<age<<endl;cout<<"性別:"<<se*<<endl;student()cout<<"析構函數 *:"<<num<<endl;int main()student s3=student(1001,"三",25,'f'),student(1002,"四&q

24、uot;,24,'m');for (int i=0;i<3;i+)天貓優(yōu)惠券,我就要券.591q.si.display();cout<<endl;student *p;p=new student(1003,"王五",23,'f');p->display();cout<<endl;delete p;return 0;10、*include<iostream>*include <string>using namespace std;class studentprivate:int num

25、;string name;int age;char se*;public:student(int num=0,string name=",int a=18,int s='f')cout<<"調用構造函數 num="<<num<<endl;this->num=num;this->name=name;age=a;se*=s;student(student& s)天貓優(yōu)惠券,我就要券.591q.num=s.num;name=;age=s.age;se*=s.se*;void displa

26、y()cout<<"*:"<<num<<endl;cout<<":"<<name<<endl;cout<<"年齡:"<<age<<endl;cout<<"性別:"<<se*<<endl;student()cout<<"析構函數 *:"<<num<<endl;int main()student s1(1001,"

27、;三",25,'f');student s2(s1);s1.display();s2.display();return 0;11、*include<iostream>*include <string>using namespace std;class studentprivate:int num;string name;float score;static float sum;static int count;public:student(int num=0,string name=",float s=80)this->num=

28、num;this->name=name;score=s;count+;void display()cout<<"*:"<<num<<endl;cout<<":"<<name<<endl;cout<<"成績:"<<score<<endl;void total();static float average();float student:sum=0.0;int student:count=0;void student:tota

29、l()sum+=score;float student:average()return sum/count;int main()student s3=student(1001,"三",87),student(1002,"四"),student(1003,"王五",90);for (int i=0;i<3;i+)si.total();cout<<"平均成績:"<<student:average()<<endl;return 0; 12、*include<iostream

30、.h>/ *include <string>/ using namespace std;class Timeprivate:int hour;int minute;int second;public:Time(int h=12,int m=0,int s=0)hour=h;minute=m;second=s;friendvoid display(Time&);void display(Time& t)cout<<t.hour<<"時"<<t.minute<<"分"<&

31、lt;t.second<<"秒"<<endl;int main()Time t,t1(13,12,22);display(t);display(t1);return 0; 13、1/方法1:屢次重載+*include<iostream.h>/ *include <string>/ using namespace std;class ple*private:float real;float image;public:ple*(float real,float image)this->real=real;this->i

32、mage=image;ple*()real=0;image=0;friend ple* operator+(ple* &a,ple* &b);friend ple* operator+(ple* &a,float b);friend ple* operator+(float a,ple* &b);friend ostream& operator<<(ostream& output,ple* a);friend istream& operator>>(istream& input,ple* a);ple* o

33、perator+(ple* &a,ple* &b)return ple*(a.real+b.real,a.image+b.image);ple* operator+(ple* &a,float b)return ple*(a.real+b,a.image);ple* operator+(float a,ple* &b)return ple*(b.real+a,b.image);ostream& operator<<(ostream& output,ple* a)if (a.image>0)output<<a.real

34、<<"+"<<a.image<<"i"<<endl;elseoutput<<a.real<<a.image<<"i"<<endl;return output;istream& operator>>(istream& input,ple* a)input>>a.real>>a.image;return input;int main()ple* a(3,4),b(1,2),c,d,e,f;c=

35、a+b;d=a+5;e=3+b;cout<<c<<endl;cin>>f;cout<<f<<endl;return 0;/方法2:使用轉換構造函數實現*include<iostream.h>class ple*private:float real;float image;public:ple*(float real,float image)this->real=real;this->image=image;ple*()real=0;image=0;/定義轉換構造函數ple*(float r)real=r;ima

36、ge=0;friend ple* operator+(ple* &a,ple* &b);friend ostream& operator<<(ostream& output,ple* a);friend istream& operator>>(istream& input,ple* a);ple* operator+(ple* &a,ple* &b)return ple*(a.real+b.real,a.image+b.image);ostream& operator<<(ostream

37、& output,ple* a)if (a.image>0)output<<a.real<<"+"<<a.image<<"i"<<endl;elseoutput<<a.real<<a.image<<"i"<<endl;return output;istream& operator>>(istream& input,ple* a)input>>a.real>>a.i

38、mage;return input;int main()ple* a(3,4),b(1,2),c,d,e,f;c=a+b;d=a+5;e=3+b;cout<<c<<endl;cin>>f;cout<<f<<endl;return 0;2*include <iostream>using namespace std;class Timepublic: Time()minute=0;sec=0; Time(int m,int s):minute(m),sec(s) Time operator+(); Time operator+

39、(int); void display()cout<<minute<<":"<<sec<<endl; private: int minute; int sec; ;天貓優(yōu)惠券,我就要券.591q.Time Time:operator+()if(+sec>=60) sec-=60; +minute; return *this;Time Time:operator+(int)Time temp(*this); sec+; if(sec>=60) sec-=60; +minute; return temp;int mai

40、n()Time time1(34,59),time2; cout<<" time1 : " time1.display(); +time1; cout<<"+time1: " time1.display(); time2=time1+; cout<<"time1+: " time1.display(); cout<<" time2 : " time2.display(); return 0;14、*include<iostream>*include <

41、;string>using namespace std;class Dateprivate:int year;int month;int day;public:Date(int y=2021,int m=1,int d=1)year=y;month=m;day=d;void display()cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;class personprivate:string name;in

42、t age;char se*;public:person(string n,int a,char s)name=n;age=a;se*=s;void display()cout<<":"<<name<<endl;cout<<"年齡:"<<age<<endl;cout<<"性別:"<<se*<<endl;class student:public personpublic:student(string n,int a,char s,

43、string maj,int y,int m,int d ):person(n,a,s),enterdate(y,m,d)major=maj;void display()person:display();cout<<"專業(yè):"<<major<<endl;cout<<"入學日期:"enterdate.display();private:string major;Date enterdate;/入學日期;int main()student s("三",20,'f',"

44、;通信",2021,9,6);s.display();return 0;15、*include<iostream>*include <string>using namespace std;class Dateprivate:int year;int month;int day;public:Date(int y=2021,int m=1,int d=1)year=y;month=m;day=d;void display()cout<<year<<"年"<<month<<"月"

45、;<<day<<"日"<<endl;class personprivate:string name;int age;char se*;public:person(string n,int a,char s)name=n;age=a;se*=s;void display()cout<<":"<<name<<endl;cout<<"年齡:"<<age<<endl;cout<<"性別:"<<

46、se*<<endl;class student:public personpublic:student(string n,int a,char s,string maj,int y,int m,int d ):person(n,a,s),enterdate(y,m,d)major=maj;void display()person:display();cout<<"專業(yè):"<<major<<endl;cout<<"入學日期:"enterdate.display();private:string m

47、ajor;Date enterdate;/入學日期;天貓優(yōu)惠券,我就要券.591q.class teacher:public personpublic:teacher(string n,int a,char s,string t,float w):person(n,a,s)title=t;wage=w;void display()person:display();cout<<"職稱:"<<title<<endl;private:string title;float wage;int main()student s("三"

48、;,20,'f',"通信",2021,9,6);s.display();teacher t("四",30,'m',"講師",3000);t.display();return 0;16、*include<iostream>*include <string>using namespace std;class Dateprivate:int year;int month;int day;public:Date(int y=2021,int m=1,int d=1)year=y;mont

49、h=m;day=d;void display()cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;class personprivate:string name;int age;char se*;public:person(string n,int a,char s)name=n;age=a;se*=s;void display()cout<<":"<<name<&

50、lt;endl;cout<<"年齡:"<<age<<endl;cout<<"性別:"<<se*<<endl;class student:virtual public personpublic:student(string n,int a,char s,string maj,int y,int m,int d ):person(n,a,s),enterdate(y,m,d)major=maj;void display()person:display();cout<<&quo

51、t;專業(yè):"<<major<<endl;cout<<"入學日期:"enterdate.display();private:protected:string major;Date enterdate;/入學日期;class teacher:virtual public personpublic:teacher(string n,int a,char s,string t,float w):person(n,a,s)title=t;wage=w;void display()person:display();cout<<&

52、quot;職稱:"<<title<<endl;private:protected:string title;float wage;class graduate:public student,public teacherpublic:graduate(string n,int a,char s,string maj,int y,int m,int d,string t,float w,string g):person(n,a,s),student(n,a,s,maj,y,m,d),teacher(n,a,s,t,w)grade=g;void display()person:display();cout<<"專業(yè):"<<major<<endl;cout<<"入學日期:"enterdate.display();cout<<"職稱:"<<title<<end

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論