版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1函数重载定义重载函数max3用于计算三个数最大值(参数类型分别为int和double)。#include<iostream>usingnamespacestd;intmax3(intx,inty,intz){ return((x>y?x:y)>(x>z?x:z)?(x>y?x:y):(x>z?x:z));}doublemax3(doublex,doubley,doublez){ return((x>y?x:y)>(x>z?x:z)?(x>y?x:y):(x>z?x:z));}voidmain(){ inta,b,c; cout<<"Pleaseinputthreeinteger:"; cin>>a>>b>>c; cout<<"TheMaxofthreeis"<<max3(a,b,c)<<endl; doublea1,b1,c1; cout<<"Pleaseinputthreerealnumber:"; cin>>a1>>b1>>c1; cout<<"TheMaxofthreeis"<<max3(a1,b1,c1)<<endl;}2类组合定义point类,数据组员包含x,y,组员函数包含结构函数,拷贝结构函数和析构函数,和setx,getx,sety,gety四个属性函数。定义line类,端点由两个point类对象组成,包含结构函数,析构函数和计算线段长度函数getlength。在main函数中,定义line对象,并输出其长度。#include<iostream>#include<cmath>usingnamespacestd;classpoint{private: doublex,y;public: point(){} point(doublex,doubley):x(x),y(y) {} voidsetx(doublexx) { x=xx; } doublegetx(){returnx;} voidsety(doubleyy) { y=yy; } doublegety(){returny;} point(point&p) { x=p.x; y=p.y; } ~point(){}};classline{private: pointa,b;public: line(pointaa,pointbb):a(aa),b(bb) {} doublegetlength() { doublelength; length=sqrt(pow((a.getx()-b.getx()),2)+pow((a.gety()-b.gety()),2)); returnlength; } ~line(){}};voidmain(){ pointp1(2,3); pointp2(5,6); linel1(p1,p2); cout<<"Thelengthofthelineis"<<l1.getlength()<<endl;}3对象数组和函数定义student类,数据组员包含姓名name和成绩score,组员函数包含结构函数,拷贝结构函数和析构函数。定义函数voidhighestscore(students[]),输出分数最高学生姓名和分数。在main函数中定义students[N],调用highestscore函数,输出分数最高学生姓名和分数。#include<iostream>#include<iomanip>#include<string>constintN=2;usingnamespacestd;classstudent{private: stringname; doublescore;public: student(){} student(stringn,doubles):name(n),score(s) {} student(student&s) { name=; score=s.score; } /*voidsetname(stringnn) { name=nn; } stringgetname(){returnname;} voidsetscore(doubless) { score=ss; } doublegetscore(){returnscore;}*/ voidhighestscore(students[]) { intk=0; doublemax; max=s[0].score; for(inti=1;i<N;i++) { if(max<s[i].score) { max=s[i].score; k=i; } } cout<<"Thenameis"<<s[k].name<<endl; cout<<"Highestscoreis"<<s[k].score<<endl; } ~student(){} friendostream&operator<<(ostream&os,students) { os<<<<""<<s.score<<endl; returnos; } friendistream&operator>>(istream&is,student&s) { is>>>>s.score; returnis; }};voidmain(){ students[N]; for(inti=0;i<N;i++) { cin>>s[i]; } s[N].highestscore(s);}4静态数据组员设计一个书类,能够保留书名、定价,全部书本数和总价。(将书名和定价设计为一般数据组员;将书本数和总价设计为静态数据组员)class
book{
private:
double
priece;
string
name;
static
int
num;
static
double
total;
};
int
book::num;
double
book::total;5动态内存分配定义point类,数据组员包含x,y,组员函数包含结构函数,拷贝结构函数和析构函数,和setx,getx,sety,gety四个属性函数。在main函数中,用new和delete分配和释放N个point数组。(N是const常量,N=10)#include<iostream>constintN=10;usingnamespacestd;classpoint{private: intx,y;public: point(){} point(intx,inty):x(x),y(y) {} point(point&p) { x=p.x; y=p.y; } voidsetx(intxx) { x=xx; } intgetx(){returnx;} voidsety(intyy) { y=yy; } intgety(){returny;} ~point(){}};voidmain(){ point*p=newpoint[N]; delete[]p;}6类继承定义一个point类,包含私有数据组员x,y,组员函数包含无参结构函数,带参结构函数,set和get属性函数。定义circle类,从point类公有派生,增加数据组员半径r,组员函数包含无参结构函数,带参结构函数,计算面积函数getarea。在main函数中定义一个circle对象,并计算其面积。#include<iostream>usingnamespacestd;classpoint{private: doublex,y;public: point(){} point(doublex,doubley):x(x),y(y) {} voidsetx(doublexx) { x=xx; } doublegetx(){returnx;} voidsety(doubleyy) { y=yy; } doublegety(){returny;} ~point(){}};classcircle:publicpoint{private: doubler;public: circle(){} circle(doublex,doubley,doubler):point(x,y),r(r) {} doublegetarea() { return3.14*r*r; }};voidmain(){ circlec1(2,3,4.5); cout<<"Theareaofcircleis"<<c1.getarea()<<endl;}7虚基类定义vehicle类,数据组员包含私有weight,公有结构函数,析构函数和输出函数dispaly;从vehicle类公有派生car类,增加数据组员载人数personnum,公有结构函数,析构函数和输出display;从vehicle类公有派生truck类,增加数据组员载货量laod,公有结构函数,析构函数和输出函数display;从car类和truck类共同公有派生出pickup类,包含公有结构函数和输出函数。在main函数中,定义pickup类对象,并输出其基础信息。#include<iostream>usingnamespacestd;classvehicle{private: doubleweight;public: vehicle(doublew):weight(w) {} voiddisplay() { cout<<"theweightofvehicleis"<<weight<<endl; } ~vehicle(){}};classcar:virtualpublicvehicle{private: intpersonnum;public: car(doubleww,intp):vehicle(ww),personnum(p) {} voiddisplay() { //vehicle::display(); cout<<"Thenumberofpersonis"<<personnum<<endl; } ~car(){}};classtruck:virtualpublicvehicle{private: doubleload;public: truck(doubleww,doublel):vehicle(ww),load(l) {} voiddisplay() { //vehicle::display(); cout<<"Theloadofthetruckis"<<load<<endl; } ~truck(){}};classpickup:publiccar,publictruck{public: pickup(doublew1,intp,doublew2,doublel,doublew):car(w1,p),truck(w2,l),vehicle(w) {} voiddisplay() { vehicle::display(); car::display(); truck::display(); } ~pickup(){}};voidmain(){ pickupp1(211,2,200,170,100); p1.display();}8运算符重载,友元函数和this指针定义一个计数器类counter,含有自增,自减功效(前后缀);输入输出>>,<<功效。在main函数里测试该类。#include<iostream>usingnamespacestd;classcounter{private: doublenum;public: counter(){} counter(doublen):num(n) {} counteroperator++() { ++num; return*this; } counteroperator--() { --num; return*this; } counteroperator++(int) { counternn; nn.num=this->num; num++; returnnn; } counteroperator--(int) { counternn; nn.num=this->num; num--; returnnn; } friendostream&operator<<(ostream&os,counterc); friendistream&operator>>(istream&is,counter&c);};ostream&operator<<(ostream&os,counterc){ os<<c.num<<endl; returnos;}istream&operator>>(istream&is,counter&c){ is>>c.num; returnis;}voidmain(){ counterc1,c2; cin>>c1; c2=c1.operator++(0); cout<<"c1="<<c1; cout<<"c2="<<c2;}9虚函数和抽象类定义一个抽象类shape,包含公有计算面积area函数,计算体积volume函数,输出基础信息函数printinfo(三个函数均为纯虚函数)。从shape公有派生point类,增加私有数据组员x,y坐标,和结构函数,析构函数。从point公有派生circle类,增加私有数据组员半径r,和结构函数,析构函数。从circle公有派生cylinder类,增加私有数据组员高度h,和结构函数,析构函数。(在定义三个派生类过程中,自己考虑需要重定义哪个虚函数)。在main函数中,定义shape类指针,指向派生类对象,输出三类对象基础信息,面积,体积;(将shape指针改为引用再尝试)。#include<iostream>usingnamespacestd;classshape{public: virtualdoublearea()=0; virtualdoublevolume()=0; virtualvoidprintinfo()=0;};classpoint:publicshape{private: intx,y;public: point(intx,inty):x(x),y(y) {} voidprintinfo() { cout<<"x="<<x<<",y="<<y<<endl; } ~point(){}};classcircle:publicpoint{private: doubler;public: circle(intx,inty,doubler):point(x,y),r(r) {} doublearea() { return3.14*r*r; } voidprintinfo() { point::printinfo(); cout<<"r="<<r<<endl; //cout<<"circleareais"<<area()<<endl; } ~circle(){}};classcylinder:publiccircle{private: doubleh;public: cylinder(intx,inty,doubler,doubleh):circle(x,y,r),h(h) {} doublearea() { returncircle::area(); } doublevolume() { returncircle::area()*h; } voidprintinfo() { circle::printinfo(); cout<<"h="<<h<<endl; //cout<<"volumeis"<<volume()<<endl; } ~cylinder(){}};voidmain(){ cylinderc1(2,3,4,5); shape*s; s=&c1; (*s).printinfo(); cout<<"circleareais"<<s->area()<<endl; cout<<"volumeis"<<(*s).volume()<<endl;}10模板设计一个堆栈类模板Stack,在模板中用类型参数T表示栈中存放数据,用非类型参数MAXSIZE代表栈大小。#include<iostream>//constintMAXSIZE=5;usingnamespacestd;template<typenameT,intMAXSIZE>classstack{private: Ta[MAXSIZE]; inttop;public: stack():top(0) {} voidpush(intx) { if(top==MAXSIZE) cout<<"thestackisfull"<<endl; else a[top]=x; top++; } Tpop() { if(top==0) cout<<"thestackisempty"<<endl; else top--; returna[top]; }};voidmain(){ stack<int,5>s; s.push(1); cout<<s.pop()<<endl;;}11文件读写定义学生类数组,有N个人(N=5),包含姓名和语数外三名课成绩,经过重载<<和>>运算符实现学生数组文件读写。(姓名用stringname;)#include<iostream>#include<fstream>#include<string>#include<iomanip>constintN=3;usingnamespacestd;classstudent{private
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唇膏盒产业链招商引资的调研报告
- 企业私有云服务行业市场调研分析报告
- 剑道培训日式剑术培训行业相关项目经营管理报告
- 与专利实施相关的法律服务行业相关项目经营管理报告
- 大提琴产品供应链分析
- 保险精算行业相关项目经营管理报告
- 5G智能零售行业经营分析报告
- 移动式升降作业平台产品供应链分析
- 空化妆用滴管市场分析及投资价值研究报告
- 医疗激光设备行业相关项目经营管理报告
- 第一讲孕期常见身体不适的缓解方法
- 化工生产安全设施类别介绍(1)
- 姜文导演风格分析.ppt
- 《小学生常见心理问题及辅导策略的实践研究》立项申报书
- 换热站验收资料
- 思乡曲-马思聪五线谱
- 酒店的基本概念
- 重点但位消防安全标准化管理评分细则自评表
- 传输s385v200v210安装手册
- 风险调查表(企业财产保险)
- 浅谈新形势下加强企业税务管理的对策研究
评论
0/150
提交评论