您好,欢迎访问三七文档
1、日期类定义一个满足如下要求的Date类.包含Year,Month,Day三个数据成员,以及构造函数,和设置日期函数(1)用下面的格式输出日期:2012年3月5日(2)重新设置日期并编出应用程序,定义日期对象,设置日期,输出该对象提供的日期.#includeiostream.hclassDate{private:intyear,month,day;public:Date(inty,intm,intd){year=y;month=m;day=d;}voidshow(){coutyear年month月day日endl;}};voidmain(){inty,m,d,a,b,c;cinymd;cinabc;Datet1(y,m,d);cout原日期endl;t1.show();Datet2(a,b,c);cout修改后日期endl;t2.show();}2、People类该类的数据成员有Name,Age,Height,Weight,成员函数有构造函数People,进食Eating,运动Sporting,显示Show,其中构造函数用已知参数姓名nm、年龄a、身高h、体重w构造对象,进食函数使体重加1,运动函数使身高加1,显示函数用于显示姓名、年龄、身高、体重。要求数据成员都是private,成员函数都是public访问权限#includeiostream#includestringusingnamespacestd;classPeople{private:stringName;intAge;intHeight;intWeight;public:People(stringnm,inta,inth,intw){Name=nm;Age=a;Height=h;Weight=w;}voidEating(){Weight++;}voidSporting(){Height++;}voidShow();};voidPeople::Show(){cout姓名''Nameendl;cout年龄''Ageendl;cout身高''Heightendl;cout体重''Weightendl;}voidmain(){stringnm;inta,h,w;cinnmahw;Peoplep(nm,a,h,w);inti,x,y;cinxy;for(i=1;i=x;i++)p.Eating();for(i=1;i=y;i++)p.Sporting();p.Show();}3、人民币类(类型转换)题目描述人民币类有两种表达形式,如,第1种:1元3角5分;第2种:1.35元。设计一个人民币类money#includeiostream.hclassmoney{private:intyuan,jiao,fen;public:money(inty,intj,intf){yuan=y;jiao=j;fen=f;}operatordouble(){doubles;s=yuan+jiao/10.0+fen/100.0;returns;}};voidmain(){inty,j,f;cinyjf;moneya(y,j,f);cout(double)a;}4、图形类——继承和派生题目描述定义一个图形类,其中有保护类型的成员数据:高度和宽度,一个公有的构造函数。由该图形类建立两个派生类:矩形类和等腰三角形类。在每个派生类中都包含一个函数area(),分别用来计算矩形和等腰三角形的面积。提示:classpic{};classrecg:publicpic{};classtag:publicpic{};输入描述输入矩形的长和宽以及等腰三角形的底边长和高。输出描述矩形的面积和等腰三角形的面积#includeiostream.hclasspic{protected:doublelen,height;public:pic(doublel,doubleh){len=l;height=h;}};classrecg:publicpic{public:recg(doublel,doubleh):pic(l,h){}doublearea(){returnlen*height;}};classtag:publicpic{public:tag(doublel,doubleh):pic(l,h){}doublearea(){returnlen*height/2;}};voidmain(){doublel,h,l1,h1;cinlh;cinl1h1;recgr(l,h);coutr.area()endl;tagt(l1,h1);coutt.area()endl;}1.(10分)(运算符重载)题目描述定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如:c1+c2、i+c1、c1+i均合法。(其中i是整数,c1、c2是复数),编程实现求2个复数之和、整数与复数之和。输入描述输入有三行:第1行是第1个复数c1的实部和虚部,以空格分开。第2行是第2个复数c2的实部和虚部,以空格分开。第3行是1个整数i的值。输出描述要考虑虚部为正数、负数和0的不同情况下的输出。输出有三行:第1行是2个复数c1和c2的和,显示方式:实部+虚部i第2行是第1个复数c1加i的值,显示方式:实部+虚部i第3行是i加第1个复数c1的值,显示方式:实部+虚部i输入样例233510输出样例5+8i12+3i12+3i#includeiostream#includeiomanipusingnamespacestd;classcomplex{private:doublereal,i;public:complex(doublea=0,doubleb=0){real=a;i=b;}complexoperator+(complexx){complextemp;temp.real=real+x.real;temp.r=i+x.i;returntemp;}friendcomplexoperator+(doublei,complexx);friendcomplexoperator+(complexx,doublei);friendostream&operator(ostream&out,complex&c){if(i0)outreal+iiendl;elseif(i0)outreal--iiendl;elseoutreal;returnout;}};complexoperator+(doublei,complexx){complextemp;temp.real=i+x.real;temp.i=i+x.i;returntemp;}complexoperator+(complexx,doublei){complextemp;temp.real=i+x.real;temp.i=i+x.i;returntemp;}voidmain(){doublea,b,c,d,m;cinabcd;cinm;complexc1(a,b),c2(c,d)c3;c3=c1+c2;c3.show();c3=m+c1;c3.show();c3=c1+m;c3.show();}#includeiostreamusingnamespacestd;classcomplex{private:doublereal,i;public:complex(doublea=0,doubleb=0){real=a;i=b;}complexoperator+(complexx){complextemp;temp.real=real+x.real;temp.i=i+x.i;returntemp;}voidshow(){if(i0)coutreal+iiendl;elseif(i0)coutreal--iiendl;elsecoutreal;}complexoperator+(doublei,complexx){complextemp;temp.real=i+x.real;temp.i=i+x.i;returntemp;}};voidmain(){doublea,b,c,d,m;cinabcd;cinm;complexc1(a,b),c2(c,d),c3;c3=c1+c2;c3.show();c3=c1+m;c3.show();}
本文标题:C++题目
链接地址:https://www.777doc.com/doc-7279308 .html