cin>>x[i];
ARRv(x,size);
v.delsame();
v.show();
}
return0;
}
ProblemDescription
定义一个日期类,它的数据成员有年、月、日;它的函数成员有设置值、打印输出和判断是否闰年。
在类外部有一个普通函数,它的功能是判断一个日期类对象是否闰年,并在屏幕上显示:
“leapyear”或者“notleapyear”。
Input
输入数据有多行,每行代表一个日期。
Output
输出有多行,每行代表一个日期的判断结果。
SampleInput
200012
200138
201211
SampleOutput
2000/1/2leapyear
2001/3/8notleapyear
2012/1/1leapyear
#include
classComplex{
intyears,month,day;
public:
voidinit(inta,intb,intc)
{
years=a;
month=b;
day=c;
}
intpd()
{
if(years%4==0&&years%100!
=0||years%400==0)
return0;
else
return1;
}
voidprint()
{
cout<}
};
main()
{
ComplexA;
inta,b,c;
while(cin>>a>>b>>c)
{
A.init(a,b,c);
if(A.pd()==0)
{
A.print();
cout<<"leapyear"<}
else
{
A.print();
cout<<"notleapyear"<}
}
}
ProblemDescription
设计一个点类,能描述平面坐标上点;利用友元函数计算并输出两点间的距离。
Input
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
Output
对于每组输入数据,输出一行,结果保留两位小数。
SampleInput
0001
0110
SampleOutput
1.00
1.41
#include
usingnamespacestd;
#include
#include
classDate
{
private:
doublex1;
doubley1;
doublex2;
doubley2;
public:
Date(doublea1,doubleb1,doublea2,doubleb2)
{
x1=a1;
y1=b1;
x2=a2;
y2=b2;
}
friendvoiddisp(Date&);
};
voiddisp(Date&m)
{
doublee;
e=sqrt((m.x2-m.x1)*(m.x2-m.x1)+(m.y2-m.y1)*(m.y2-m.y1));
cout<:
fixed)<(2)<}
intmain()
{
doublea1,b1,a2,b2;
while(cin>>a1>>b1>>a2>>b2)
{
DateA(a1,b1,a2,b2);
disp(A);
}
return0;
}
继承类
#include
usingnamespacestd;
classss
{
public:
voidinit(doublea,doubleb)
{
x=a;y=b;
}
voidprint()
{
cout<}
protected:
doublex,y;
};
classaa:
publicss
{
public:
aa(doublea):
z(a)
{}
voidshow()
{
cout<cout<}
private:
doublez;
};
intmain()
{
doublea,b,c,d,e;
while(cin>>a>>b)
{
cin>>c>>d>>e;
ssA;
A.init(a,b);
A.print();
aaB(e);
B.init(c,d);
B.show();
}
return0;
}
ProblemDescription
定义一个学生类Student,它包括学生名、住址和出生年份等私有数据以及输出函数show(),从它派生出一个大学生Academician类及一个小学生类Primary_scholar。
在大学生类中增加数据成员大学校名university_nane,在小学生类中所增加的数据成员是两门课的成绩,两个派生类所有有关的输出都由函数show()来实现。
Input
输入数据有多行,第一行有两个整数n和m,分别代表大学生对象的个数n和小学生对象的个数m,接下来的n行为大学生的数据信息,m行为小学生的数据信息
Output
输出每个学生的信息,一个学生一行
SampleInput
23
zhangFuzhou1988ZhangzhouNormalUniversity
liXiamen1987FuzhouUniversity
wangZhangzhou19987589
suQuanzhou19979090
wuPutian19967887
SampleOutput
Name:
zhang,Address:
Fuzhou,Year:
1988,University_Name:
ZhangzhouNormalUniversity
Name:
li,Address:
Xiamen,Year:
1987,University_Name:
FuzhouUniversity
Name:
wang,Address:
Zhangzhou,Year:
1998,Score:
7589
Name:
su,Address:
Quanzhou,Year:
1997,Score:
9090
Name:
wu,Address:
Putian,Year:
1996,Score:
7887
#include
usingnamespacestd;
classStudent
{
public:
voidinit(inta,char*p,char*y)
{
x=a;
strcpy(name,p);
strcpy(b,y);
}
voidshow()
{
cout<<"Name:
"<"<
"<}
protected:
intx;
charname[100],b[100];
};
classAcademician:
publicStudent
{
public:
Academician(char*a)
{
strcpy(c,a);
}
voidprint()
{
cout<<",University_Name:
"<}
private:
charc[100];
};
classPrimary_scholar:
publicStudent
{
public:
Primary_scholar(inta,intb):
m(a),n(b)
{}
voidprint()
{
cout<<",Score:
"<}
private:
intm,n;
};
intmain()
{
intm,n,y,a,b;
charname[100],c[100],z[100];
cin>>m>>n;
while(m--)
{
cin>>name>>c>>y>>z;
AcademicianA(z);
A.init(y,name,c);
A.show();
A.print();
}
while(n--)
{
cin>>name>>c>>y>>a>>b;
Primary_scholarB(a,b);
B.init(y,name,c);
B.show();
B.print();
}
return0;
}
长方形的面积和长方体的体积
#include
usingnamespacestd;
classss
{
public:
voidinit(doublea,doubleb)
{
x=a;y=b;
}
voidprint()
{
cout<}
protected:
doublex,y;
};
classaa:
publicss
{
public:
aa(doublea):
z(a)
{}
voidshow()
{
cout<cout<}
private:
doublez;
};
intmain()
{
doublea,b,c,d,e;
while(cin>>a>>b)
{
cin>>c>>d>>e;
ssA;
A.init(a,b);
A.print();
aaB(e);
B.init(c,d);
B.show();
}
return0;
}
集合的并
#include
usingnamespacestd;
classIntset
{
public:
Intset(){EndPosition=-1;};
Intset(inta[],intsize)
{
EndPosition=size;
for(inti=0;i{
element[i]=a[i];
}
}
voidinputdata(inta[],intsize)
{
EndPosition=size;
for(inti=0;i{
element[i]=a[i];
}
}
voidCopy(Intset&set)
{
intk=EndPosition,t;
for(inti=0;i{
t=0;
for(intj=0;jif(element[j]==set.element[i])
{
t=1;break;
}
if(t==0)
{
element[k]=set.element[i];
k++;
}
}
EndPosition=k;
}
voidPrint()
{
sort();
for(inti=0;i{
cout<}
cout<}
private:
intelement[100];
intEndPosition;
voidsort()
{
intt;
for(inti=0;ifor(intj=i+1;jif(element[i]>element[j])
{
t=element[i];
element[i]=element[j];
element[j]=t;
}
}
};
intmain()
{
intm,n,a[100],b[100],i;
while(cin>>m)
{
for(i=0;icin>>a[i];
cin>>n;
for(i=0;icin>>b[i];
IntsetA(a,m);
IntsetB(b,n);
B.Copy(A);
B.Print();
}
return0;
}