double date什么意思

更新时间:2022-11-23 23:25:04 阅读: 评论:0


2022年11月23日发(作者:教师节动画)

C++写一个日期类Date

写一个日期类Date,(1)定义私有数据成员年、

月、日;(2)定义公有成员函数,(a)void

tDate(inty,intm,intd);//要求对数据成员赋

值;(b)voidoutput();//要求按年-月-日输出;

(c)voidIsLeap();//判断年份是否是闰年;(d)void

addOneday();//加上一天后的日期。

usingnamespacestd;

#include

classDate

{

private:

intyear,month,day;

public:

voidtDate(inty,intm,intd)

{

year=y;

month=m;

day=d;

}

voidoutput()

{

cout<

;

}

voidIsLeap()

{

if(year%400==0||(year%4==0&&year%100!

=0))

{

cout<<"是闰年"<

}

el

{

cout<<"不是闰年"<

}

}

voidaddOneday()

{

if((month==2&&day==29)||((year%4!=0||(yea

r%100==0&&year%400!=0))&&month==2&&

day==28))

{

day=1;

month++;

}

el

if(month==1||month==3||month==5||month==7||

month==8||month==10||month==12)

{

if(month==12&&day==31)

{

year++;

month=1;

day=1;

}

elif(day==31)

{

month++;

day=1;

}

}

el

if((month==4||month==6||month==9||month==11

)&&day==30)

{

month++;

day=1;

}

el

{

day++;

}

cout<

;

}

};

voidmain()

{

Datea;

e(2000,2,28);

();

();

day();

}

--------------------------------------------------------------

--------------------------------------------------------

作业2,设计圆类

实现圆类的成员函数,并在主函数中进行测试。

classCircle//圆类

{

private:

doubleradius;//半径

public://以下是公有成员函数

voidSetRadius(doubler);//设置半径

doubleCalculateArea();//求面积

doubleCalculateCircumference();//求周长

doubleGetRadius();//获取半径

voidPrint();//输出半径

};

usingnamespacestd;

#include

classCircle

{

private:

doubleradius;

public:

voidSetRadius(doubler)

{

radius=r;

}

doubleCalculateArea()

{

returnradius*radius*3.14;

}

doubleCalculateCircumference()

{

return2*3.14*radius;

}

doubleGetRadius()

{

returnradius;

}

voidPrint()

{

cout<<"半径:"<

}

};

voidmain()

{

Circlea;

ius(5);

cout<<"面积"<

cout<<"周长

"<

cout<<"获取半径"<

();

}

--------------------------------------------------------------

-----------------------------------------------------

(1)数据成员有:横坐标doublex、纵坐标

doubley;

(2)提供两个构造函数:无参构造函数将数据

成员初始化为(0,0),有参构造函数利用参数

对数据成员赋值;

(3)提供拷贝构造函数;

(4)成员函数voidmoveto(doublea,doubleb),

表示点移动到新的坐标位置(a,b);

(5)成员函数voiddisplay(),输出点的坐标;

(6)友元函数doubledistance(CPoint

&p1,CPoint&p2),求两点的距离;(求平方根

sqrt函数math.h中);

(7)定义主函数,完成点类的测试。

#include

#include

classCPoint

{

private:

doublex,y;

public:

CPoint(doublex,doubley)

{

this->x=x;

this->y=y;

}

CPoint()

{

x=0;

y=0;

}

CPoint(constCPoint&p)

{

x=p.x;

y=p.y;

}

voidmoveto(doublea,doubleb)

{

x=a;

y=b;

}

voiddisplay()

{

cout<<"("<

}

frienddoubledistance(CPoint&p1,CPoint

&p2)

{

double

temp=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(

p1.y-p2.y));

returntemp;

}

};

voidmain()

{

CPointa(0,0),b(3,4);

cout<<"距离:"<

(2,2);

y();

CPointc(b);

y();

}

//1)定义基类CMathA,有保护数据成员3个,

分别为三个整数,公有成员函数3个,分别是有

参构造函数、求这三个数的最大值,和最小值。

//(2)定义派生类CMathB,公有继承CMathA,

私有数据成员2个,分别是两个整数,公有成员

函数3个,分别是有参构造函数(别忘记调用基

类有参构造函数)、求5个数据成员的和,与积。

//(3)定义主函数,完成基类与派生类所有成员函

数的测试。

usingnamespacestd;

#include

classCMathA

{

protected:

intx,y,z;

public:

CMathA(inta,intb,intc)

{

x=a;y=b;z=c;

}

voidmax()

{

intmax;

if(x>y)

{

max=x;

}

el

{

max=y;

}

if(max

{

max=z;

}

cout<<"最大值:"<

}

voidmin()

{

intmin;

if(x

{

min=x;

}

el

{

min=y;

}

if(min>z)

{

min=z;

}

cout<<"最小值:"<

}

};

classCMathB:publicCMathA

{

private:

intm,n;

public:

CMathB(inta,intb,intc,intd,inte)

:CMathA(a,b,c)

{

m=d;

n=e;

}

voidsum()

{

inttemp=x+y+z+m+n;

cout<<"和:"<

}

voidmultiply()

{

inttem=x*y*z*m*n;

cout<<"乘积:"<

}

};

voidmain()

{

CMathAa(1,3,2);

();

();

CMathBb(1,3,2,4,5);

ly();

();

}

--------------------------------------------------------------

-----------------

(1)编写点类Point,包括两个私有数据成员

doublex,y表示横纵坐标,成员函数包括两个分

别是Point(doublex,doubley);//构造函数和

Point(doublex,doubley);//显示函数

(2)编写几何图形的类Circle,包括两个属性:

圆心Pointcenter;和半径doubleR;成员函数包

括:圆心位置获取函数PointGetCenter();半径

获取函数doubleGetR()、半径设置函数void

SetR(doubler)、圆的位置移动函数void

MoveTo(Pointp2);以及圆的信息打印函数void

displayCircle()。

(3)编写主函数,完成圆类中所有成员函数的

测试。

usingnamespacestd;

#include

classPoint

{

private:

doublex,y;

public:

Point(doublea,doubleb)

{

x=a;

y=b;

}

voiddisPlay()

{

cout<<"圆心是:

("<

}

};

classCircle

{

private:

doubler;

Pointcenter;

public:

Circle(doubler,Pointp1)

:center(p1)

{

this->r=r;

}

PointGetCenter()

{

returncenter;

}

voidSetR(doubler)

{

this->r=r;

}

doubleGetR()

{

returnr;

}

voiddisplayCircle()

{

y();

cout<<"半径:"<

}

voidMoveTo(Pointp2)

{

center=p2;

}

};

voidmain()

{

Pointp1(2,7),p2(3,7);

Circlecc(9,p1);

yCircle();

(p2);

yCircle();

cout<<()<

}

--------------------------------------------------------------

-------------------------------------

1.设计平面坐标系中的点类CPoint:

(1)私有数据成员有:横坐标doublex、纵坐

标doubley;

(2)公有提供两个构造函数:无参构造函数将

数据成员初始化为(0,0),有参构造函数利用

参数对数据成员赋值;

(3)公有提供拷贝构造函数;

(4)公有成员函数doubleGetX(),求点的横

坐标;

(5)公有成员函数doubleGetY(),求点的纵

坐标;

2.设计线类

(1)私有数据成员有:斜率和截距;

(2)公有提供两个有参构造函数:

CLine(doublek,doubleb);CLine(CPoint

p1,CPointp2)

(3)公有成员函数doubleGetK(),求直线的

斜率

(4)公有成员函数boolIncludePoint(CPoint

p1),判断一个点是否在直线上;

(5)公有成员函数voidDisplay(),显示直线

方程。

3.定义主函数,完成线类所有测试。

usingnamespacestd;

#include

classCPoint

{

private:

doublex,y;

public:

CPoint(doublex,doubley)

{

this->x=x;

this->y=y;

}

CPoint()

{

x=0;y=0;

}

CPoint(CPoint&p)

{

x=p.x;

y=p.y;

}

doubleGetX()

{

returnx;

}

doubleGetY()

{

returny;

}

};

classCLine

{

private:

doublek,b;

public:

CLine(doublek,doubleb)

{

this->k=k;

this->b=b;

}

CLine(CPointp1,CPointp2)

{

k=(()-())/(()-

());

b=()-k*();

}

boolIncludePoint(CPointp3)

{

if(()==k*()+b)

{

returntrue;

}

el

{

returnfal;

}

}

doubleGetK()

{

returnk;

}

voidDisplay()

{

if(b<0)

{

cout<<"直线方程:

y="<

}

elif(b==0)

{

cout<<"直线方程:y="<

}

el

{

cout<<"直线方程:

y="<

}

}

};

voidmain()

{

CPointp1,p2(2,7),p3(3,9);

CLineline1(p1,p2);

y();

cout<<"该直线的斜率是:

"<<()<

if(ePoint(p3)==true)

{

cout<<"该点在直线上"<

}

el

{

cout<<"该点不在直线上"<

}

}

--------------------------------------------------------------

------------------

设计圆类Circle,保护数据成员半径,公有成员

函数:输出圆面积voidarea();

设计球体类Sphere,公有继承圆类,公有成员

函数:输出球体表面积voidarea();

设计测试类,实现多态性,指向基类的指针,可

以指向派生类对象,并调用派生类的成员函数。

usingnamespacestd;

#include

classCircle

{

protected:doubleR;

public:

Circle(doubler)

{

R=r;

}

virtualvoidarea()

{

cout<<"圆面积为:"<<3.14*R*R<

}

};

classSphere:publicCircle

{

public:

Sphere(doubler):Circle(r)

{

R=r;

}

virtualvoidarea()

{

cout<<"球表面积为:

"<<4*3.14*R*R<

}

};

voidmain()

{

Circlec1(2);

Circle*p;

Spheres1(5);

p=&c1;

p->area();

p=&s1;

p->area();

}

usingnamespacestd;

#include

//(1)定义类CShape,包含显示图形面积的含

纯虚函数virtualvoidDisplay_Area()=0;

//(2)定义圆类CCircle,公有继承CShape,

定义私有数据成员半径doubler,有参构造函

数,重写CShape类中的voidDisplay_Area()

函数,显示圆面积;

//(3)定义长方形类CSqure,公有继承CShape,

定义数据成员长和宽分别为doublelength和

doublewidth,重写CShape类中的void

Display_Area()函数,显示长方形面积;

//(4)定义主函数,创建CShape类指针数组,

分别指向圆和长方形对象,圆的半径为2,长方

形的长和宽分别为3和4,显示圆和长方形的面

积。

//(5)主函数参考代码;

//voidmain()

//{

//CShape*aa[2];

//aa[0]=newCCircle(2);

//aa[1]=newCSqure(3,4);

//for(inti=0;i<2;i++)

//{

//aa[i]->Display_Area();

//}

//}

classCShape

{

public:

virtualvoidDisplay_Area()=0;

};

classCCircle:publicCShape

{

private:doubler;

public:

CCircle(doublex)

{

r=x;

}

virtualvoidDisplay_Area()

{

cout<<"圆面积:"<<3.14*r*r<

}

};

classCSqure:publicCShape

{

private:doublelength,width;

public:

CSqure(doublea,doubleb)

{

length=a;

width=b;

}

virtualvoidDisplay_Area()

{

cout<<"矩形面积:"<

}

};

voidmain()

{

CShape*aa[2];

aa[0]=newCCircle(2);

aa[1]=newCSqure(3,4);

for(inti=0;i<2;i++)

{

aa[i]->Display_Area();

}

}

--------------------------------------------------------------

----------------

定义复数类Complex,

(1)定义私有数据成员,实部和虚部;

(2)定义带默认值的构造函数,给数据成员赋

值,默认值为0;

(3)定义输出函数voiddisplay(),输出格式如

“3+4i”或“-3-4i”;

(4)定义复数与复数的加、减运算符重载;复

数加实数运算符重载;赋值运算符重载;

(5)定义主函数,对上述成员函数进行测试。

usingnamespacestd;

#include

classComplex

{

private:doublea,b;

public:

Complex(doublea=0,doubleb=0)

{

this->a=a;

this->b=b;

}

Complexoperator+(Complexc)

{

Complextemp;

temp.a=a+c.a;

temp.b=b+c.b;

returntemp;

}

Complexoperator-(Complexc)

{

Complextemp;

temp.a=a-c.a;

temp.b=b-c.b;

returntemp;

}

Complexoperator+(doublec)

{

Complextemp;

temp.a=a+c;

temp.b=b;

returntemp;

}

Complex&operator=(Complexc)

{

a=c.a;

b=c.b;

return*this;

}

voiddisplay()

{

if(b<0)

{

cout<

}

el

{

cout<

}

}

};

intmain()

{

Complexc1(2,5),c2(3,7),c3,c4,c5,c6;

cout<<"c1=";

y();

cout<<"c2=";

y();

c3=c1+c2;

cout<<"c3=c1+c2;c3=";

y();

c4=c1-c2;

cout<<"c4=c1-c2;c4=";

y();

c5=c1+5;

cout<<"c5=c1+5;c5=";

y();

c6=c2;

cout<<"c6=c2;c6=";

y();

}

--------------------------------------------------------------

----------------

usingnamespacestd;

#include

//定义时钟类Clock,

//(1)定义私有数据成员,时、分和秒;

//(2)定义带默认值的构造函数,给数据成员赋

值,默认值为0;要求对数据进行合法性判断,

小时只能在0—23之间,分和秒都在0—60之间;

//(3)定义输出函数voiddisplay(),输出格式如

“h:m:s”;

//(4)定义时钟前缀++运算符重载,和后缀++

运算符重载;

//(5)定义主函数,对上述成员函数进行测试。

classClock

{

private:doubleh,m,s;

public:

Clock(doubleh=0,doublem=0,doubles=0)

{

if(h>=0&&h<24&&m>=0&&m<60&&s>=0&

&s<60)

{

this->h=h;

this->m=m;

this->s=s;

}

el

{

cout<<"timeerror!"<

}

}

voiddisplay()

{

cout<

}

Clock&operator++()

{

s++;

if(s>=60)

{

s=s-60;

m++;

if(m>=60)

{

m=m-60;

h++;

if(h>=24)

{

h=h-24;

}

}

}

return*this;

}

Clockoperator++(int)

{

s++;

if(s>=60)

{

s=s-60;

m++;

if(m>=60)

{

m=m-60;

h++;

if(h>=24)

{

h=h-24;

}

}

}

return*this;

}

};

intmain()

{

Clocka(23,59,59);

a++;

y();

++a;

y();

}

usingnamespacestd;

#include

//设计体积类

//(1)定义CVolume类,包含求体积的纯虚函

数virtualdoublevolumeValue()=0;

//(2)定义球类CSphere,公有继承CVolume,

定义私有数据成员求半径doubler,定义有参构

造函数,重写CVolume类中的double

volumeValue()函数,求球的体积;

//(3)定义立方体类CCube,公有继承CVolume,

定义私有数据成员棱长为doubleside,定义有参

构造函数,重写CVolume类中的double

volumeValue()函数,求立方体的体积;

//(4)定义主函数,完成上述功能的测试。

classCVolume

{

public:

virtualdoublevolumeValue()=0;

};

classCSphere:publicCVolume

{

private:doubler;

public:

CSphere(doubler=0)

{

this->r=r;

}

virtualdoublevolumeValue()

{

return3.14*4*r*r*r/3;

}

};

classCCube:publicCVolume

{

private:doubleside;

public:

CCube(doubles=0)

{

side=s;

}

virtualdoublevolumeValue()

{

returnside*side*side;

}

};

intmain()

{

CCubea(5);

cout<<"立方体体积:

"<

CSphereb(5);

cout<<"球体积:"<

}

--------------------------------------------------------------

----------------------------

//(1)设计求三个数的最大数的函数模板T

max(Ta,Tb,Tc);

//(2)在主函数中,分别用int、double对上述

模板实例化,并测试结果。

usingnamespacestd;

#include

template

Tmax(Ta,Tb,Tc)

{

Tmax;

if(a

{

max=b;

}

el

{

max=a;

}

if(max

{

max=c;

}

returnmax;

}

intmain()

{

inta=2,b=1,c=5;

cout<<"最大值为:"<

doublex=3.14,y=3.8,z=3.5;

cout<<"最大值为:"<

}

--------------------------------------------------------------

-------------------------

(1)设计父亲类Father,保护的数据成员char

fname[6]表示父亲的姓,私有成员charsname[10]

表示父亲的名;定义公有的有参构造函数

Father(charffname[],charssname[]),给数据成

员赋值;定义voiddisplayfather()函数,显示父

亲的名字。

(2)设计母亲类Mother,私有数据成员char

mfname[6],charmsname[10]分别表示母亲的姓

和名,定义公有的有参构造函数Mother(char

ffname[],charssname[])给数据成员赋值,定义

voiddisplaymother()函数,显示母亲的名字。

(3)设计子女类Child,公有继承父亲类和母

亲类,私有数据成员charcname[10],表示子女

的名,子女的姓,将从父亲类继承而来;定义公

有的有参构造函数Child(charfname[],char

sname[],charmname[],charmsname[],char

ccname[]),并调用基类的构造函数,同时给私

有数据赋值;定义voiddisplay()函数,调用基类

的显示函数,显示父亲姓名和母亲姓名,再输出

自己的姓名。

(4)设计主函数,对上述功能进行测试。

主函数的参考代码如下:

voidmain()

{

Childcc("陈","国安","王","红","志刚");

y();

}

usingnamespacestd;

#include

#include

classFather

{

private:

charsname[10];

protected:

charfname[6];

public:

Father(charffname[],charssname[])

{

strcpy(fname,ffname);

strcpy(sname,ssname);

}

voiddisplayfather()

{

cout<<"父亲姓名为:

"<

}

};

classMother

{

private:

charmsname[10];

charmfname[6];

public:

Mother(charffname[],charssname[])

{

strcpy(mfname,ffname);

strcpy(msname,ssname);

}

voiddisplaymother()

{

cout<<"母亲姓名为:

"<

}

};

classChild:publicFather,publicMother

{

private:

charcname[10];

public:

Child(charfname[],charsname[],char

mname[],charmsname[],charccname[])

:Father(fname,sname),Mother(mname,msn

ame)

{

strcpy(cname,ccname);

}

voiddisplay()

{

Father::displayfather();

Mother::displaymother();

cout<<"孩子姓名为:"<

}

};

intmain()

{

Childcc("陈","国安","王","红","志刚");

y();

}

--------------------------------------------------------------

--------------------------------------

usingnamespacestd;

#include

//使用虚函数编写程序,求球体和圆柱体的体积

和表面积。

//(1)定义基类Circle

//定义数据成员Radius;

//定义两个纯虚函数分别是:

//voidArea();//显示表面积

//voidVolumn();//显示体积

//(2)定义派生类球体类Sphere,公有继承Circle

类,求出球体的表面积和体积;

//(3)定义派生类圆柱体类Volum,公有继承

Circle类,求出圆柱体的表面积和体积;

//(4)定义测试类,完成上面代码所有的测试。

classCircle

{

protected:

doubleRadius;

public:

virtualvoidArea()=0;

virtualvoidVolumn()=0;

};

classSphere:publicCircle

{

public:

Sphere(doubler)

{

Radius=r;

}

virtualvoidArea()

{

doublearea;

area=4*3.14*Radius*Radius;

cout<<"球的表面积="<

}

virtualvoidVolumn()

{

doublet;

t=4*3.14*Radius*Radius*Radius/3;

cout<<"球的体积="<

}

};

classVolum:publicCircle

{

private:

doublehigh;

public:

Volum(doubler,doubleh)

{

high=h;

Radius=r;

}

virtualvoidArea()

{

doublearea;

area=2*3.14*Radius*Radius+2*3.14*Radius*

high;

cout<<"圆柱体的表面积="<

}

virtualvoidVolumn()

{

doublet;

t=3.14*Radius*Radius*high;

cout<<"圆柱体的体积="<

}

};

intmain()

{

Spheres1(5);

();

();

Volumv1(5,5);

();

();

}

--------------------------------------------------------------

-------------------------------------

(1)定义基类Person类

定义私有数据成员charname[10];

定义公有的无参构造函数,对私有数据赋空值

(即空字符串),

公有函数voidinrt_name(charpname[])//

对name重新赋值

voidprint()//输出name

(2)定义派生类Student类,公有继承虚基类

Person

定义私有数据成员charid[12];//学号

定义公有的无参构造函数,对私有数据赋空值

(即空字符串),并调用基类的无参构造函数;

公有函数voidinrt_id(charpid[])//对id重

新赋值

voidprint()//调用基类输出name,同时输出

id

(3)定义派生类Teacher类,公有继承虚基类

Person

定义私有数据成员doublesal;//工资

定义公有的无参构造函数,对私有数据赋空值

(即sal=0),并调用基类的无参构造函数;

公有函数voidinrt_sal(doublesal)//对sal重

新赋值

voidprint()//调用基类输出name,同时输出

sal

(4)定义派生类DepatementStudent,公有继承

Student

定义私有数据成员chardn[20];//部门

定义公有的无参构造函数,对私有数据赋空值

(即空字符串),并调用基类的无参构造函数;

公有函数voidinrt_dn(charpdn[])//对dn重

新赋值

voidprint()//调用基类输出name,id,同时输

出dn

(5)定义派生类Tpost(做兼职的学生类),公

有继承Teacher类,公有继承

DepatementStudent类:

定义公有的无参构造函数,调用基类Teacher类

和DepatementStudent类的无参构造函数;

voidprint()//调用基类Teacher的输出函数,

再调用基类DepatementStudent的输出函数

(6)定义主函数,并进行测试。

usingnamespacestd;

#include

classPerson

{

private:

charname[10];

public:

Person()

{

strcpy_s(name,"");

}

voidinrt_name(charpname[])

{

strcpy_s(name,pname);

}

voidprint()

{

cout<<"姓名:"<

}

};

classStudent:virtualpublicPerson

{

private:

charid[12];

public:

Student():Person()

{

strcpy_s(id,"");

}

voidinrt_id(charpid[])

{

strcpy_s(id,pid);

}

voidprint()

{

Person::print();

cout<<"学号:"<

}

};

classTeacher:virtualpublicPerson

{

private:

doublesal;

public:

Teacher():Person()

{

sal=0;

}

voidinrt_sal(doublesal)

{

this->sal=sal;

}

voidprint()

{

Person::print();

cout<<"薪水:"<

}

};

classDepatementStudent:publicStudent

{

private:

chardn[20];

public:

DepatementStudent():Student()

{

strcpy_s(dn,"");

}

voidinrt_dn(charpdn[])

{

strcpy_s(dn,pdn);

}

voidprint()

{

Student::print();

cout<<"部门:"<

}

};

classTpost:publicTeacher,public

DepatementStudent

{

public:

Tpost():Teacher(),DepatementStudent()

{

cout<<"兼职学生"<

}

voidprint()

{

Teacher::print();

DepatementStudent::print();

}

};

voidmain()

{

Teachera;

Tpostb;

_name("LiMin");

_sal(2000);

_name("ZhangHua");

_sal(1500);

_id("03410101");

_dn("Computer");

();

();

}

--------------------------------------------------------------

-----------------------

作业9:设计函数模板

(1)定义函数模板,对含有n个元素的a数组,

统计所有元素之和。

(2)在主函数中,分别用int和double类型对

模板实例化,并测试结果。

usingnamespacestd;

#include

template

voidprintsum(Ta[],intn)

{

Tsum=a[0];

for(inti=1;i

{

sum=sum+a[i];

}

cout<

}

voidmain()

{

inta[4]={5,0,3,8};

printsum(a,4);

doubleb[4]={1,1.2,5.2,0};

printsum(b,4);

}

--------------------------------------------------------------

---------------------------------------

设计模板类

(1)定义模板类CValue,包含一个属性value;

(2)定义有参构造函给value属性赋值;

(3)定义display函数,显示value属性的值;

(4)在主函数中,分别用int、double和char

类型对模板实例化,并测试结果。

usingnamespacestd;

#include

template

classCValue

{

private:

Tvalue;

public:

CValue(Tval)

{

value=val;

}

voiddisplay()

{

cout<

}

};

voidmain()

{

inta=5;

doubleb=3.5;

charc='A';

CValuec1(a);

y();

CValuec2(b);

y();

CValuec3(c);

y();

}

--------------------------------------------------------------

-------------------------------------------------

编写一个函数模板,它返回两个值中的最小者。但同时保证能正确处理字符串。

usingnamespacestd;

#include

#include

template

TMin(Ta,Tb)

{

returna

}

char*Min(char*a,char*b)

{

if(strcmp(a,b)<0)

{

returna;

}

el

{

returnb;

}

}

voidmain()

{

inta=5,b=3;

cout<

charx[10]="Hello";

chary[10]="Gold";

cout<

}

--------------------------------------------------------------

----------------------------------

设计类模板

(1)定义类模板Ccomp,包含两个属性a和b;

(2)定义有参构造函数给a、b属性赋值;

(3)定义min函数,显示a、b属性的最小值;

(4)定义max函数,显示a、b属性的最大值;

(5)重载min函数,实现对“字符串类型数据”求最小值;

(6)重载max函数,实现对“字符串类型数据”求最大值;

(7)在主函数中,分别用int、double和char*类型对模板实例

化,并测试结果。

usingnamespacestd;

#include

#include

template

classCcomp

{

private:Ta,b;

public:

Ccomp(Tx,Ty){a=x;b=y;}

TMin(){returna

TMax(){returna>b?a:b;}

char*Min(intz)

{

if(strcmp(a,b)<0)

{

returna;

}

el

{

returnb;

}

}

char*Max(intz)

{

if(strcmp(a,b)>0)

{

returna;

}

el

{

returnb;

}

}

};

voidmain()

{

inta=59,b=88;

Ccompc1(a,b);

cout<<"max"<<()<

cout<<"min"<<()<

doublem=59.1,n=88.1;

Ccompc2(m,n);

cout<<"max"<<()<

cout<<"min"<<()<

char*x="student";

char*y="teacher";

Ccompc3(x,y);

cout<<"max"<<(1)<

cout<<"min"<<(1)<

}

--------------------------------------------------------------

----------

定义复数类的加法与减法,使之能够执行下列运

算:

Complexa(2,5),b(7,8),c(0,0);

c=a+b;

c=4.1+a;

c=b+5.6;

usingnamespacestd;

#include

classComplex

{

private:

doublea,b;

public:

Complex(doublea=0,doubleb=0)

{

this->a=a;

this->b=b;

}

Complexoperator+(Complexc)

{

Complextemp;

temp.a=a+c.a;

temp.b=b+c.b;

returntemp;

}

Complexoperator-(Complexc)

{

Complextemp;

temp.a=a-c.a;

temp.b=b-c.b;

returntemp;

}

Complexoperator+(doublec)

{

Complextemp;

temp.a=a+c;

temp.b=b;

returntemp;

}

Complex&operator=(Complexc)

{

a=c.a;

b=c.b;

return*this;

}

voiddisplay()

{

if(b<0)

{

cout<

}

if(b==0)

{

cout<

}

el

{

cout<

}

}

friendComplexoperator+(doublec,Complex

x);

};

Complexoperator+(doublec,Complexx)

{

Complextemp;

temp.a=x.a+c;

temp.b=x.b;

returntemp;

}

voidmain()

{

Complexc1(2,5),c2(7,8),c3;

c3=c1+c2;

y();

c3=4.1+c1;

y();

c3=c2+5.6;

y();

}

--------------------------------------------------------------

---------------------------------

//1、输出100以内的有序数。

//2、输出200以内的素数。

usingnamespacestd;

#include

boolPrime(intn);

boolsxs(intn);

intmain()

{

inti;

cout<<"200以内的素数:"<

for(i=2;i<200;i++)

{

if(Prime(i))

{

cout<

}

}

cout<

cout<<"100以内升序数:"<

for(i=10;i<100;i++)

{

if(sxs(i))

{

cout<

}

}

cout<

}

boolPrime(intn)

{

inti=2;

for(;i

{

if(n%i==0)

{

break;

}

}

if(n==i)

{

returntrue;

}

el

{

returnfal;

}

}

boolsxs(intn)

{

inttemp;

temp=n;

while(n>0)

{

if(n%10<=n/10%10)

{

returnfal;

}

n=n/10;

}

returntrue;

}

--------------------------------------------------------------

---------------------------------------------------

(1)将100以内的素数,写入d:文件

中;

(2)读取d:文件中的数据,显示在屏

幕上。

usingnamespacestd;

#include

#include

boolPrime(intn);

intmain()

{

ofstreamfout("d:");

inti;

for(i=2;i<100;i++)

{

if(Prime(i))

{

fout<

}

}

();

ifstreamfin("d:");

while(fin>>i)

{

cout<

}

();

}

boolPrime(intn)

{

inti=2;

for(;i

{

if(n%i==0)

{

break;

}

}

if(n==i)

{

returntrue;

}

el

{

returnfal;

}

}

本文发布于:2022-11-23 23:25:04,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/8446.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:待续的英文
下一篇:alqaeda
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图