C++程序练习集.docx
《C++程序练习集.docx》由会员分享,可在线阅读,更多相关《C++程序练习集.docx(26页珍藏版)》请在冰豆网上搜索。
C++程序练习集
#include
usingnamespacestd;
//*********************************************
classClock
{
public:
voidSetClock(inth=0,intm=0,ints=0)
{
hour=h;
minute=m;
second=s;
}
voidShowClock()
{
cout<"<"
<}
private:
inthour;
intminute;
intsecond;
};
intmain()
{
ClockmyClock;
cout<<"默认时间为:
"<myClock.SetClock();
myClock.ShowClock();
cout<<"现在时间:
"<myClock.SetClock(8,30,30);
myClock.ShowClock();
return0;
}
#include
usingnamespacestd;
//Point类声明
classPoint
{
public:
//设置点坐标
voidsetPoint(doublex0,doubley0);
//显示点坐标
voidshowPoint();
private:
doublex;//横坐标
doubley;//纵坐标
};
voidPoint:
:
setPoint(doublex0=0,doubley0=0)
{
x=x0;
y=y0;
}
voidPoint:
:
showPoint()
{
cout<<"点的坐标为:
("
<<}
intmain()
{
Pointp1,p2;
doublex,y;
p1.setPoint(1,2);
p1.showPoint();
cout<<"请输入点的坐标:
";
cin>>x>>y;
p2.setPoint(x,y);
p2.showPoint();
return0;
}
#include
usingnamespacestd;
classPoint
{
public:
Point(intx0=0,inty0=0):
x(x0),y(y0)
{
CountP++;
}
Point(Point&p):
x(p.x),y(p.y)
{
CountP++;
}
~Point()
{
CountP--;
}
staticintgetCount()
{
returnCountP;
}
private:
intx;
inty;
staticintCountP;
};
intPoint:
:
CountP=0;
intmain()
{
Pointp1(0,3),p2(p1);
cout<cout<cout<:
getCount()<return0;
}
//功能:
定义复数类,给出构造函数、两个复数相加
#include
usingnamespacestd;
classComplex
{
public:
Complex(doubler=0,doublei=0)//构造函数
{
real=r;
imag=i;
}
voidshow()//显示函数
{
cout<<"("<}
voidadd(ComplexC1,ComplexC2)//函数加法
{
real=C1.real+C2.real;
imag=C1.imag+C2.imag;
}
private:
doublereal;//实部
doubleimag;//虚部
};
intmain()
{
ComplexC1(1,2),C2(2,3),C3;
C3.add(C1,C2);
cout<<"两复数之和为:
";
C3.show();
return0;
}
//名称:
0402
//功能:
定义复数类,给出构造函数、两个复数相加、两个复数相减、以(a,b)格式输出的成员函数
//作者:
薛小超
//日期:
2012.04.13
//*****************************************************************************************
#include
usingnamespacestd;
classComplex
{
public:
Complex(doubler=0,doublei=0);//构造函数
voidset(doubler,doublei);//设置函数
voidshow();//显示函数
voidadd(ComplexC1,ComplexC2);//函数加法
voidsub(ComplexC1,ComplexC2);//函数减法
private:
doublereal;//实部
doubleimag;//虚部
};
Complex:
:
Complex(doubler,doublei)//构造函数
{
real=r;
imag=i;
}
voidComplex:
:
set(doubler,doublei)//设置函数
{
real=r;
imag=i;
}
voidComplex:
:
show()//显示函数
{
cout<<"("<<}
voidComplex:
:
add(ComplexC1,ComplexC2)//函数加法
{
real=C1.real+C2.real;
imag=C1.imag+C2.imag;
}
voidComplex:
:
sub(ComplexC1,ComplexC2)//函数减法
{
real=C1.real-C2.real;
imag=C1.imag-C2.imag;
}
intmain()
{
ComplexC1(0,0),C2(0,0),C3(0,0);
doubler1,i1;
doubler2,i2;
cout<<"请输入第一个复数的实部和虚部:
";
cin>>r1>>i1;
cout<<"第一个复数为:
";
C1.set(r1,i1);
C1.show();
cout<<"请输入第二个复数的实部和虚部:
";
cin>>r2>>i2;
cout<<"第二个复数为:
";
C2.set(r2,i2);
C2.show();
cout<<"两复数之和为:
";
C3.add(C1,C2);
C3.show();
cout<<"两复数之差为:
";
C3.sub(C1,C2);
C3.show();
return0;
}
#include
usingnamespacestd;
voidSwap(int&a,int&b)
{
intt;
t=a;
a=b;
b=t;
}
inlineintadd(intm,intn)
{
returnm+n;
}
inlinedoublemax(doublea,doubleb)
{
returna>=b?
a:
b;
}
intmain()
{
intx(5);
inty(10);
doublea=10.5,b=2.4;
cout<<"x="<Swap(x,y);
cout<<"x="<cout<cout<return0;
}
#include
usingnamespacestd;
longsum(intn)
{
if(n==1)
return1;
else
returnsum(n-1)+n;
}
intmain()
{
intn;
cout<<"请输入整数n:
";
cin>>n;
cout<<"1+...+"<return0;
}
#include
usingnamespacestd;
intsum(intn)
{
inti;
ints=0;
for(i=1;i<=n;i++)
{
s+=i;
}
returns;
}
intmain()
{
intn;
cout<<"请输入整数n:
";
cin>>n;
cout<<"1+...+"<return0;
}
#include
usingnamespacestd;
longfac(intn)
{
longf;
if(n<0)
{
cout<<"n<0,dataerror!
"<}
elseif(n==0)
f=1;
else
f=fac(n-1)*n;
returnf;
}
intmain()
{
intx;
cout<<"请输入正整数n:
";
cin>>x;
cout<="<return0;
}
//名称:
求圆柱体的表面积和体积
//功能:
求圆柱体的表面积和体积
//作者:
薛小超
//日期:
2012.5.4
//****************************************************************************************
#include
usingnamespacestd;
constdoublePI(3.14);//声明常量圆周率PI(3.14)
voidcompute(doubler,doubleh,double&s,double&v)//求圆柱体的表面积和体积函数
{
s=2*PI*r*(r+h);//s为圆柱体的表面积,r为圆柱体的体积,h为圆柱体高
v=PI*r*r*h;//v为圆柱体的体积
}
intmain()
{
doubler=1,h=2,s,v;//s为圆柱体的表面积,r为圆柱体的体积,h为圆柱体高,v为圆柱体的体积
compute(r,h,s,v);//圆柱体的表面积和体积函数实现
cout<<"圆柱体的表面积为:
";
cout<
cout<<"圆柱体的体积为:
";
cout<return0;
}
#include
constdoublePI(3.14);
usingnamespacestd;
classCircle
{
private:
//半径
doubleradius;
public:
//设置半径
voidsetCircle(doubler=0);
//返回面积
doublegetArea();
};
voidCircle:
:
setCircle(doubler)
{
radius=r;
}
doubleCircle:
:
getArea()
{
returnPI*radius*radius;
}
intmain()
{
Circlecir1;
cir1.setCircle
(2);
cout<<"圆的面积为:
"<return0;
}
#include
usingnamespacestd;
voidSwap(int&a,int&b)
{
intt;
t=a;
a=b;
b=t;
}
intmain()
{
intx(5);
inty(10);
cout<<"x="<Swap(x,y);
cout<<"x="<return0;
}
//输入三角形的三条边,求其各角度
#include
#include
usingnamespacestd;
constdoublePI=3.14;
voidoutputAngle(doublea,doubleb,doublec);
intmain()
{
doublea;
doubleb;
doublec;
cout<<"请输入三角形的三条边:
";
cin>>a>>b>>c;
outputAngle(a,b,c);
return0;
}
voidoutputAngle(doublea,doubleb,doublec)
{
doubleangleA;
doubleangleB;
doubleangleC;
angleA=acos((b*b+c*c-a*a)/(2*b*c));
angleB=acos((a*a+c*c-b*b)/(2*a*c));
angleC=PI-angleA-angleB;
cout<<"三边对应的角度为:
"<cout<cout<cout<}
#include
usingnamespacestd;
intmain()
{
//字母的个数
inta=0;
//数字的个数
intb=0;
//输入的一个字符
charx;
cout<<"请输入字母或数字(以#作为结束的标志):
";
while(true)
{
cin>>x;
//结束符
if(x=='#')
{
break;
}
//统计字母字符
if(x>='A'&&x<='Z'||x>='a'&&x<'z')
{
a++;
}
//统计数字字符
elseif(x>='0'&&x<='9')
{
b++;
}
}
cout<<"字母字符:
"<cout<<"数字字符:
"<
return0;
}
#include
usingnamespacestd;
doublecountsalary(double);
intmain()
{
inthours;
cout<<"请输入员工工作时间:
";
cin>>hours;
cout<<"员工工资为:
"<return0;
}
doublecountsalary(doublehours)
{
constdoubleHOURSRATE=50;
doublesalary;
//计算员工工资
if(hours<=40)
salary=hours*HOURSRATE;
else
salary=(hours-40)*1.5*HOURSRATE+40*HOURSRATE;
returnsalary;
}
#include
usingnamespacestd;
doublecountsalary(doublehours)
{
constdoubleHOURSRATE=50;
doublesalary;
//计算员工工资
if(hours<=40)
salary=hours*HOURSRATE;
else
salary=(hours-40)*1.5*HOURSRATE+40*HOURSRATE;
returnsalary;
}
intmain()
{
inthours;
cout<<"请输入员工工作时间:
";
cin>>hours;
cout<<"员工工资为:
"<return0;
}
#include
usingnamespacestd;
doublecountsalary(doublehours,doublehoursrate)
{
doublesalary;
if(hours<=40)
salary=hours*hoursrate;
else
salary=(hours-40)*1.5*hoursrate+40*hoursrate;
returnsalary;
}
intmain()
{
inthours,hoursrate;
cout<<"请输入员工工作时间:
";
cin>>hours;
cout<<"员工正规时间下每小时的报酬:
";
cin>>hoursrate;
cout<<"员工工资为:
"<<return0;
}
//名称:
00002
//功能:
编程实现求二元一次方程的根
//作者:
薛小超
//日期:
2012·3·6
//*****************************************************************
#include
#include
usingnamespacestd;
intmain()
{
doublea,b,c;
doublex1,x2;
//方程输入
cout<<"请输入a,b,c:
";
cin>>a>>b>>c;
//方程求解
doubledelta=b*b-4*a*c;
if(delta<0)//delta<0
{
cout<<"方程无实数解"<}
elseif(delta==0)//delta==0
{
cout<<"方程的根为:
"<<(-b)/(2*a)<}
else
{
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
cout<<"方程的根为:
x1="<}
return0;
}
//名称:
00004
//功能:
判断成绩的档次(switch/case练习)
//作者:
薛小超
//日期:
2012·3·6
#include
usingnamespacestd;
intmain()
{
chargrade;
cout<<"Inputgradeofscore(a_d):
";
cin>>grade;
switch(grade)
{
case'a':
cout<<"85_100"<case'b':
cout<<"75_84"<case'c':
cout<<"60_74"<case'd':
cout<<"0_60"<default:
cout<<"输入错误;请重新输入"<}
return0;
}
//名称:
练习求n的阶乘
//功能:
练习求n的阶乘
//作者:
薛小超
//日期:
2012.3.7
#include
usingnamespacestd;
intmain()
{
intn,i;
longfac;//阶乘
cout<<"inputn:
";
cin>>n;
//初始化
fac=1;
i=1;
//求n!
while(i<=n)
{
fac*=i;
i++;
}
cout<="<return0;
}
//名称:
课上练习
//功能:
输入公历年月,判断是否闰年,该月有多少天
//作者:
薛小超
//日期:
2012.3.9
#include
usingnamespacestd;
intmain()
{
boolleep;
inty,m,d;//y代表年;m代表月;d代表天
cout<<"请输入年月日:
";
cin>>y>>m;
leep=y%4==0&&y%100!
=0||y%400==0;
if(m==4||m==6||m==9||m==11)
{
d=30;
}
elseif(m==2)
{
if(leep)
{
d=28;
}
else
{
d=29;
}
}
else
{
d=31;
}
if(leep)
{
cout<<"输入的年份是闰年"<}
else
{
cout<<"输入的年份是平年"<}
cout<<"输入的月份天数为:
"<return0;
}
//功能:
求100以内的随机数
//日期:
2012·03·26
//******************************
#include
#include