




免费预览已结束,剩余21页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计复习题1、 (C+的输入输出)天猫优惠券,我就要券定义一个函数max,实现输入两个数a、b,比较并从小到大输出。2、 (函数的重载)(1)定义一个带两个参数的函数max,输出最大值。(2)再定义一个带三个参数的函数max,输出最大值。(3)主函数测试之。3、(有默认参数的函数) 将题2用带默认参数的函数实现。4、(变量的引用) (1)定义一个swap1函数,以普通形参传入两个变量a、b,互换a、b的值。 (2)定义一个swap2函数,以指针形参传入两个变量a、b,互换a、b的值。 (3)定义一个swap3函数,以引用形参输入两个变量a、b,互换a、b的值。 (4)主函数定义两个变量x、y传入三个函数,观察x、y值前后的变化。5、(类的定义)定义一个student类,数据成员包括:学号num,姓名name,年龄age,性别sex,成员函数包括:(1) set函数,键盘输入学号,姓名,年龄,性别(2) display函数,输出学生信息。6、(构造函数和析构函数)定义一个student类,数据成员包括:学号num,姓名name,年龄age,性别sex,成员函数包括:(1)构造函数,初始化学号,姓名,年龄,性别(2)display函数,输出学生信息。(3)析构函数,输出学生学号。(4)主函数定义多个对象,并注意构造函数和析构函数的调用顺序。7、(构造函数的重载)在题6基础上增加一个默认构造函数,实现构造函数的重载8、将题6用带默认参数的构造函数实现。9、(对象数组和对象的动态建立及释放)在题8基础上,实现如下主函数:(1) 在主函数中定义一个包含三个学生的数组,并初始化之。(2) 在主函数中定义一个student类指针p并用new运算符分配动态内存(3) 用delete删除p指向的动态内存。(4) 观察构造函数和析构函数的调用。10、(复制构造函数)在题8基础上新增加一个复制构造函数,并主函数新增复制构造对象。11、(静态成员)定义一个student类,数据成员包括:学号num,姓名name,成绩score,累加总分sum,累计人数count。成员函数包括:构造函数统计人数count;(1) 非静态成员total函数,求sum。(2) 静态成员average函数,求平均成绩。(3) 主函数定义包含3个学生的数组,求三个学生的平均成绩。 12、(友元函数)定义一个Time类,私有数据成员包括: 时hour、分minute、秒second成员函数:构造函数Time()定义一个友元函数display,使之访问私有成员输出时分秒。13、(运算符重载)(1)定义一个复数类,实现对“+”,f; coutfendl;return 0;(2)定义一个Time类,实现对“+”的前缀、后缀重载。P134i+:单目运算符天猫优惠券,我就要券14、(单继承及派生类构造函数)(1)定义一个person类,数据成员包括:姓名name,年龄age,性别sex成员函数:构造函数及display函数(2)定义一个派生类student,公有继承与person类,新增成员:专业major,入学日期enterdate(Date类自定义)。(3)主函数定义student对象,各类构造函数的调用顺序。15、(多继承)在14题基础上由person类再派生出teacher类,新增成员:职称title,工资wage16、(虚继承)由student类和teacher类共同派生出graduate类,新增成员: 年级grade,将person类定义成虚基类,实现用虚继承解决二义性。17、(抽象类及多态性)定义一个抽象基类Shape,由它派生出5个派生类,Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangel(三角形)。用虚函数分别计算几何图形面积,并求他们的和。要求定义一个基类指针,使它指向每一个派生类对象,体现其多态性。1、#includeusing namespace std;void max()int a,b;cout请输入两个数:ab;if(ab)coutb aendl;elsecouta bendl;int main()max();return 0;2、#includeusing namespace std;void max(int a,int b)if(ab)coutaendl;elsecoutbb & ac)coutac)coutbendl;elsecoutcendl;int main()max(2,5);max(7,5,3);return 0;3、#includeusing namespace std;void max(int a,int b,int c=0)if(ab & ac)coutac)coutbendl;elsecoutcendl;int main()max(2,5);max(7,5,3);return 0;4、#includeusing 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 &a,int &b)int temp;temp=a;a=b;b=temp;int main()int x,y;x=5;y=7;swap1(x,y);coutx=x y=yendl;x=5;y=7;swap2(&x,&y);coutx=x y=yendl;x=5;y=7;swap3(x,y);coutx=x y=yendl;return 0;5、#include#include using namespace std;class studentprivate:int num;string name;int age;char sex;public:void set() cout请输入:学号,姓名,年龄,性别(f or m)numnameagesex;void display()cout学号:numendl;cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;int main()student s;s.set();s.display();return 0;6、#include#include using namespace std;class studentprivate:int num;string name;int age;char sex;public:/*void set() cout请输入:学号,姓名,年龄,性别(f or m)numnameagesex;*/student(int num,string name,int a,int s)cout调用构造函数 num=numnum=num;this-name=name;age=a;sex=s;天猫优惠券,我就要券void display()cout学号:numendl;cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;student()cout析构函数 学号:numendl;int main()student s(1001,张三,25,f),s1(1002,李四,24,m);/s.set();s.display(); s1.display();return 0;7、#include#include using namespace std;class studentprivate:int num;string name;int age;char sex;public:/*void set() cout请输入:学号,姓名,年龄,性别(f or m)numnameagesex;*/student()cout调用构造函数 num=0endl;num=0;name=;age=18;sex=f;student(int num,string name,int a,int s)cout调用构造函数 num=numnum=num;this-name=name;age=a;sex=s;void display()cout学号:numendl;cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;student()cout析构函数 学号:numendl;int main()student s(1001,张三,25,f),s1(1002,李四,24,m),s2;/s.set();s.display();coutendl; s1.display();coutendl;s2.display();coutendl;return 0;8、#include#include using namespace std;天猫优惠券,我就要券class studentprivate:int num;string name;int age;char sex;public:student(int num=0,string name=,int a=18,int s=f)cout调用构造函数 num=numnum=num;this-name=name;age=a;sex=s;void display()cout学号:numendl;cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;student()cout天猫优惠券,我就要券 学号:numendl;int main()student s(1001,张三,25,f),s1(1002,李四,24,m),s2;/s.set();s.display();coutendl; s1.display();coutendl;s2.display();coutendl;return 0;9、#include#include using namespace std;class studentprivate:int num;string name;int age;char sex;public:student(int num=0,string name=,int a=18,int s=f)cout调用构造函数 num=numnum=num;this-name=name;age=a;sex=s;void display()cout学号:numendl;cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;student()cout析构函数 学号:numendl;int main()student s3=student(1001,张三,25,f),student(1002,李四,24,m);for (int i=0;i3;i+)天猫优惠券,我就要券si.display();coutdisplay();coutendl;delete p;return 0;10、#include#include using namespace std;class studentprivate:int num;string name;int age;char sex;public:student(int num=0,string name=,int a=18,int s=f)cout调用构造函数 num=numnum=num;this-name=name;age=a;sex=s;student(student& s)天猫优惠券,我就要券num=s.num;name=;age=s.age;sex=s.sex;void display()cout学号:numendl;cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;student()cout析构函数 学号:numendl;int main()student s1(1001,张三,25,f);student s2(s1);s1.display();s2.display();return 0;11、#include#include 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=num;this-name=name;score=s;count+;void display()cout学号:numendl;cout姓名:nameendl;cout成绩:scoreendl;void total();static float average();float student:sum=0.0;int student:count=0;void student:total()sum+=score;float student:average()return sum/count;int main()student s3=student(1001,张三,87),student(1002,李四),student(1003,王五,90);for (int i=0;i3;i+)si.total();cout平均成绩:student:average()endl;return 0; 12、#include/ #include / 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)coutt.hour时t.minute分t.second秒endl;int main()Time t,t1(13,12,22);display(t);display(t1);return 0; 13、(1)/方法1:多次重载+#include/ #include / using namespace std;class Complexprivate:float real;float image;public:Complex(float real,float image)this-real=real;this-image=image;Complex()real=0;image=0;friend Complex operator+(Complex &a,Complex &b);friend Complex operator+(Complex &a,float b);friend Complex operator+(float a,Complex &b);friend ostream& operator(istream& input,Complex a);Complex operator+(Complex &a,Complex &b)return Complex(a.real+b.real,a.image+b.image);Complex operator+(Complex &a,float b)return Complex(a.real+b,a.image);Complex operator+(float a,Complex &b)return Complex(b.real+a,b.image);ostream& operator0)outputa.real+a.imageiendl;elseoutputa.reala.imagei(istream& input,Complex a)inputa.reala.image;return input;int main()Complex a(3,4),b(1,2),c,d,e,f;c=a+b;d=a+5;e=3+b;coutcf;coutfendl;return 0;/方法2:使用转换构造函数实现#includeclass Complexprivate:float real;float image;public:Complex(float real,float image)this-real=real;this-image=image;Complex()real=0;image=0;/定义转换构造函数Complex(float r)real=r;image=0;friend Complex operator+(Complex &a,Complex &b);friend ostream& operator(istream& input,Complex a);Complex operator+(Complex &a,Complex &b)return Complex(a.real+b.real,a.image+b.image);ostream& operator0)outputa.real+a.imageiendl;elseoutputa.reala.imagei(istream& input,Complex a)inputa.reala.image;return input;int main()Complex a(3,4),b(1,2),c,d,e,f;c=a+b;d=a+5;e=3+b;coutcf;coutfendl;return 0;(2)#include using namespace std;class Timepublic: Time()minute=0;sec=0; Time(int m,int s):minute(m),sec(s) Time operator+(); Time operator+(int); void display()coutminute:sec=60) sec-=60; +minute; return *this;Time Time:operator+(int)Time temp(*this); sec+; if(sec=60) sec-=60; +minute; return temp; int main()Time time1(34,59),time2; cout time1 : ; time1.display(); +time1; cout+time1: ; time1.display(); time2=time1+; couttime1+: ; time1.display(); cout time2 : ; time2.display(); return 0;14、#include#include using namespace std;class Dateprivate:int year;int month;int day;public:Date(int y=2013,int m=1,int d=1)year=y;month=m;day=d;void display()coutyear年month月day日endl;class personprivate:string name;int age;char sex;public:person(string n,int a,char s)name=n;age=a;sex=s;void display()cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;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专业:majorendl;cout入学日期:;enterdate.display();private:string major;Date enterdate;/入学日期;int main()student s(张三,20,f,通信,2012,9,6);s.display();return 0;15、#include#include using namespace std;class Dateprivate:int year;int month;int day;public:Date(int y=2013,int m=1,int d=1)year=y;month=m;day=d;void display()coutyear年month月day日endl;class personprivate:string name;int age;char sex;public:person(string n,int a,char s)name=n;age=a;sex=s;void display()cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;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专业:majorendl;cout入学日期:;enterdate.display();private:string major;Date enterdate;/入学日期;天猫优惠券,我就要券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职称:titleendl;private:string title;float wage;int main()student s(张三,20,f,通信,2012,9,6);s.display();teacher t(李四,30,m,讲师,3000);t.display();return 0;16、#include#include using namespace std;class Dateprivate:int year;int month;int day;public:Date(int y=2013,int m=1,int d=1)year=y;month=m;day=d;void display()coutyear年month月day日endl;class personprivate:string name;int age;char sex;public:person(string n,int a,char s)name=n;age=a;sex=s;void display()cout姓名:nameendl;cout年龄:ageendl;cout性别:sexendl;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专业:majorendl;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职称:titleendl;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专业:majorendl;cout入学日期:;enterdate.display();co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注聚工岗前考核试卷及答案
- 工业互联网平台数字签名技术在工业互联网平台数据共享中的应用报告
- 聚乙烯醇制造工职业考核试卷及答案
- 地理竞赛野外试题大全及答案
- 医院三基竞赛试题及答案
- 影视节目后期制作质量评估体系创新创业项目商业计划书
- 知识竞赛考试题及答案
- 空分竞赛试题及答案解析
- 时尚设计展览策划创新创业项目商业计划书
- 汽车零部件行业2025年3D打印技术应用与智能制造研究报告
- 2025年海关关务测试题及答案
- (正式版)DB3302∕T 1180-2025 《高速公路建设韧性指标体系》
- 2025年8月广东深圳市光明区住房和建设局招聘一般专干5人备考练习题库及答案解析
- 中康科技腾讯健康:2024年消费者健康洞察呼吸系列报告-鼻炎鼻窦炎篇预览版
- 《煤矿安全规程(2025)》防治水新旧条文对照
- 2025年IT技术支持工程师招聘面试问题及答案解析
- GB 16807-2025防火膨胀密封件
- 挤压模具工特殊工艺考核试卷及答案
- 2025-2026学年外研版八年级英语上册教学计划及进度表
- 麻醉医生进修汇报课件
- (2025年标准)灵活用工协议书
评论
0/150
提交评论