}
(2)分别在文件2-2-1.cpp、2-2-2.cpp、2-2-3.cpp、2-2-4.cpp中编写函数f1、f2、f3、f4分别完成算术运算+、-、*、的功能。
intf1(intx,inty)
{
returnx+y;
}
intf2(intx,inty)
{
returnx-y;
}
intf3(intx,inty)
{
returnx*y;
}
intf4(intx,inty)
{
returnxy;
}
(3)编辑头文件2-2.()
{
intx,y;
cin>>x>>y;
cout<<"x="<cout<<"x="<{
intx;
cin>>x;
cout<<"x="<{
inta,b;
cin>>a>>b;
dataA(a,b);
A.print();
return0;
}
请改写函数print,分别调用成员函数函数:
lt()、ge()、eq()、and()、or()分别用于关系运算(<、>=、==)、逻辑运算(&&、||)的操作,请在类中增加成员函数lt、ge、eq、and、or的定义,并在print函数中调用。
#include{
inta,b;
cin>>a>>b;
dataA(a,b);
A.print();
return0;
}
任务5:
程序设计
重新设计任务4,把类及成员函数的实现存放在文件test4.()
{
inta,b;
cin>>a>>b;
dataA(a,b);
A.print();
return0;
}
任务6:
程序设计
新建三个文件,其文件名分别为ex2-2.()
{
inta,b,c,e,f;
cin>>a>>b>>c;
dataA(a,b,c,e,f);
A.print1();
A.print2();
cin>>e>>f;
A.print3();
A.print4();
}
#includepublic:
data(inta,intb,intc,inte,intf){x=a;y=b;z=c;m=e;n=f;}
doubleadd();
doublearea();
doubleadd1();
doublearea1();
voidprint1(){
cout<<"三角形的周长为"<}
voidprint2(){
cout<<"三角形的面积为"<
}
voidprint3(){
cout<<"菱形的周长为"<}
voidprint4(){
cout<<"菱形的面积为"<}
};
doubledata:
:
add()
{
returnx+y+z;
}
doubledata:
:
area()
{
doublep,s;
p=(x+y+z)2;
s=sqrt(p*(p-x)*(p-y)*(p-z));
returns;
}
doubledata:
:
add1()
{
doubletemp;
temp=sqrt(m*m4+n*n4);
return4*temp;
}
doubledata:
:
area1()
{
returnm*n2;
}
实验3C++循环程序设计
1.实验目的和要求
(1)了解各种循环语句的基本形式。
(2)理解并掌握循环语句的构成方法。
(3)理解for循环的三个表达式的含义及执行过程。
(4)理解并掌握while、do~while、for的应用。
(5)理解break与continue语句的差异。
2.实验内容
任务1:
程序调试
定义一个类,此类的功能是求n至m间的自然数的和。
程序设计代码如下:
#include{
private:
intn,m;
public:
Addn_m(intn1,intm2)
{
n=n1;m=m2;
}
intAdd();
voidprint()
{
cout<}
};
intAddn_m:
:
Add()
{
intsum=0,i;
i=n;
while(i<=m)
{
sum=sum+i;
i++;
}
returnsum;
}
voidmain()
{
inta,b;
cin>>a>>b;
Addn_mA(a,b);
A.print();
}
(1)程序运行时,从键盘输入1~100之间的两个数,并注意数的大小。
请思考程序运行的结果。
5050
(2)在程序段中:
while(i<=m)
{
sum=sum+i;
i++;
}
去掉大括号,编译程序,思考程序的运行结果;
程序进入死循环,无法正常运行。
如果没有i++语句,程序会出现什么情况?
程序无法执行
(3)请思考当程序运行时,如输入102,程序结果如何?
应如何修改程序才能得出正确结果;
0;
while(i>=m)
{
sum=sum+i;
i--;
}
(4)请思考成员函数Add能否用访问控制符private来限定。
能,在同一类中,public能访问private中的函数
任务2:
程序调试
程序的功能是计算一个整数的阶乘。
#includepublic:
Factorial(inta){n=a;}
intmult();
voidprint()
{
cout<}
};
intFactorial:
:
mult()
{
for(inti=1,s=1;i<=n;i++)
s=s*i;
returns;
}
intmain()
{
inta;
cin>>a;
FactorialA(a);
A.print();
}
正确
任务3:
程序设计
仿照任务2,定义一个求阶乘和的类,从键盘输入一个不大于10的整数n,求表达式的值sum=1!
+2!
+3!
+……+n!
.
#includepublic:
Factorial(inta){n=a;}
intsum();
voidprint()
{
cout<<"sum"<<'='<}
};
intFactorial:
:
sum()
{
intmult;
for(inti=1,sum=0;i<=n;i++){
mult=1;
for(intj=1;j<=i;j++){
mult=mult*j;
}
sum=sum+mult;
}
returnsum;
}
intmain()
{
inta;
cin>>a;
FactorialA(a);
A.print();
}
运行结果:
6
sum=873
Pressanykeytocontinue
任务4:
编写计算近似公式:
e=1-11!
+12!
-13!
+14!
-15!
+……..的程序,并使其误差小于0.00001.
#include{
intflag=-1,i=1,s=1;
doublee=1;
while(1.0s>=0.00001)
{
s=s*i;
e=e+flag*1.0s;
flag=-flag;
i++;
}
cout<<"e="<}
输出结果:
e=0.367879
Pressanykeytocontinue
任务5:
程序设计
已知main函数定义:
intmain()
{
inta,b;
charch;
cin>>a>>b>>ch;
graphicsA(a,b,ch);
A.print();
}
如果程序在执行时输入:
34*
程序执行的结果为:
****
****
****
请设计程序并调试。
#include{
inta,b;
charch;
cin>>a>>b>>ch;
graphicsA(a,b,ch);
A.print();
}
程序运行结果:
34*
****
****
****
Pressanykeytocontinue
任务6:
程序设计
设计程序,在屏幕上输出如下图形。
*
**
***
****
*****
******
*******
******
*****
****
***
**
*
程序:
#include{inti,j;
for(i=1;i<=7;i++){
for(j=1;j<=i;j++){
cout<<'*';
}
cout<}
for(i=6;i>=1;i--)
{
for(j=1;j<=i;j++)
{
cout<<'*';
}
cout<}
};
实验四C++分支程序设计
1.实验目的和要求
(1)理解分支结构的各种表达形式。
(2)理解并掌握分支结构中条件的表示方法。
(3)理解并掌握多分支选择结构的实现方法。
(4)能应用选择结构解决实际问题。
2.实验内容
任务1:
程序设计
输入a、b,循环计算下列算式;当a、b中有一个为0时,退出循环。
若a>0,b>0;则计算√a+√b
若a>0,b<0;则计算a2+b2
若a<0,b>0;则计算a*eb
若a<0,b<0;则计算ab
编写程序实现以上功能。
4-1.cpp程序:
#include"4-1.()
{
cout<<"a>0,b>0,计算a平方根与b平方根的和"<cout<<"a>0,b<0,计算a平方与b平方的和"<cout<<"a<0,b>0,计算a*e的b次方"<cout<<"a<0,b<0,计算a的b次方的值"<doublea,b;
cout<<"请输入两个数,输入有一个为0时结束"<cin>>a>>b;
dataA;
while(a!
=0&&b!
=0)
{
A.init(a,b);
A.print();
cin>>a>>b;
}
return0;
}
4-1.sqrt(x)+sqrt(y);
if(x>0&&y<0)
returnx*x+y*y;
if(x<0&&y>0)
returnx*exp(y);
if(x<0&&y<0)
returnx-y;
}
voidprint()
{
cout<<"计算结果:
"<}
};
a>0,b>0,计算a平方根与b平方根的和
a>0,b<0,计算a平方与b平方的和
a<0,b>0,计算a*e的b次方
a<0,b<0,计算a的b次方的值
请输入两个数,输入有一个为0时结束
运行结果:
12
计算结果:
2.41421
1-1
计算结果:
2
-11
计算结果:
-2.71828
-1-1
计算结果:
0
任务2:
程序调试
从键盘输入一个数。
如果该数大于0,则求该数的平方根,否则输出“该数小于0”。
#include{
doublex,y;
cout<<"请输入一个数:
"<cin>>x;
while(fabs(x)>1e-6)
{
if(x>0)
{
y=sqrt(x);
cout<}
else
cout<<"该数小于0"<cin>>x;
}
return0;
}
运行结果:
请输入一个数:
3
3平方根是1.73205
省略下列程序段中的大括号,程序不能运行。
if(x>0)
{
y=sqrt(x);
cout<}
errorC2181:
illegalelsewithoutmatchingif
任务3:
程序设计
输入一行字符,分别统计出这行字符的英文字母、空格、数字和其他字符的个数。
#include{
intLetters=0,Digital=0,Space=0,Other=0;
charch;
while((ch=getchar())!
='\n')
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
Letters++;
elseif(ch>='0'&&ch<='9')
Digital++;
else