}
voidprint()
{
gt();
}
};
intmain()
{
inta,b;
cin>>a>>b;
dataA(a,b);
A.print();
return0;
}
(1)请改写函数print,分别调用成员函数函数:
lt()、ge()、eq()、and()、or()分别用于关系运算(<、>=、==)、逻辑运算(&&、||)的操作,请在类中增加成员函数lt、ge、eq、and、or的定义,并在print函数中调用。
任务5:
程序设计
重新设计任务4,把类及成员函数的实现存放在文件test4.h中,把main函数存放在test4.cpp中,编辑程序并编译运行。
提示在文件test4.cpp中要有预处理命令#include”test4.h”
任务6:
程序设计
新建三个文件,其文件名分别为ex2-2.h、ex2-2-1.cpp、ex2-2-2.cpp,其中ex2-2-1.cpp文件定义一个main函数,定义一个类对象,从键盘输入数据,作为对象的参数。
在ex2-2.h中定义类,在ex2-2-1.cpp中定义类中所有的成员函数。
程序功能:
(1)定义三角形类,可计算三角形周长与面积。
(2)定义一个棱形类,输入棱形的两条对角线,类中可求得棱形的周长与面积。
三、操作方法与实验步骤
四、程序运行结果与分析
五、讨论与心得
实验3C++循环程序设计
一、实验目的和要求
1.了解各种循环语句的基本形式;
2.理解并掌握循环语句的构成方法;
3.理解for循环的三个表达式的含义及执行过程;
4.了解for语句的表达式缺省情况;
5.理解并掌握while、do~while、for的应用;
6.理解break与continue语句的差异。
二、实验内容
任务1:
程序调试
定义一个类,此类的功能是求n至m间的自然数的和。
程序设计代码如下:
#include
classAddn_m
{
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)程序运行时,从键盘输入1100,请思考程序运行的结果;
(2)在程序段中:
while(i<=m)
{
sum=sum+i;
i++;
}
去掉大括号,编译程序,思考程序的运行结果;如果没有i++语句,程序会出现什么情况?
(3)请思考当程序运行时,如输入102,程序结果如何?
应如何修改程序才能得出正确结果;
(4)请思考成员函数Add能否用访问控制符private来限定。
任务2:
程序调试
#include
classFactorial
{
private:
intn;
public:
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!
。
任务4:
编写计算近拟公式:
e=1-1/1!
+1/2!
-1/3!
+1/4!
-1/5!
+……..的程序,并使其误差小于0.00001.
任务5:
程序设计
已知main函数定义:
intmain()
{
inta,b;
charch;
cin>>a>>b>>cn;
graphicsA(a,b,ch);
A.print();
}
如果程序在执行时输入:
34*
程序执行的结果为:
****
****
****
请设计程序并调试。
任务6:
程序设计
设计程序,在屏幕上输出如下图形。
*
**
***
****
*****
******
*******
******
*****
****
***
**
*
三、操作方法与实验步骤
四、程序运行结果与分析
五、讨论与心得
实验4C++分支程序设计
一、实验目的和要求
1.掌握分支结构的各种表达形式;
2.理解并掌握分支结构中条件的表示方法;
3.理解并掌握多分支选择结构的实现方法;
4.能应用选择结构解决实际问题。
二、实验内容
任务1:
程序设计
输入a、b,循环实现计算下列算式,当a、b中有一个为0时,退出循环。
a>0,b>0,计算
a>0,b<0,计算a2+b2值
a<0,b>0,计算a*eb的值
a<0,b<0,计算ab值
编写程序实现以上功能。
任务2:
程序调试
从键盘输入一数,如果该数大于0,求该数的平方根,否则输出“该数少于0”。
#include
#include
intmain()
{
doublex,y;
cout<<"请输入一数:
"<cin>>x;
while(fabs(x)<1e-6)
{
if(x>0)
{
y=sqrt(x);
cout<}
else
cout<<"该数少于0"<cin>>x;
}
return0;
}
如果省略下列程序段中的大括号,程序能运行吗?
为什么?
if(x>0)
{
y=sqrt(x);
cout<}
任务3:
程序设计
输入一行字符,分别统计出这行字符中英文字母、空格、数字和其它字符的个数。
提示:
while((ch=getchar())!
='\n')
if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
Letters++;
elseif(ch>='0'&&ch<='9')
Digital++;
elseif(ch=='')
Space++;
else
Other++;
思考:
如果while中的表达式写成while(ch=getchar()!
='\n')或while((ch=getchar())!
='\0'),程序是否能达到预期效果?
为什么?
任务4:
程序设计
从键盘输入三个数,判断由这三个数能否够成一个三角形,如能并判定是等边三角形还是等腰三角形、直角三角形,还是其它三角形,当输入的三个数中有一个小于等于0时,程序结束。
任务5:
定义一个三角形的类,从键盘输入三个数,判断由这三个数能否够成一个三角形,如能并判定是等边三角形还是等腰三角形、直角三角形,还是其它三角形,当输入的三个数中有一个等于0时,程序结束。
任务6:
输入一个百分制成绩,要求输出成绩相应的等级(A:
90分以上,B:
80-89,C:
70-79,D:
60-69,E:
60分以下),要求用switch语句实现。
任务6: