资源描述:
《c类和对象实验报告哦》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验2类和对象(1)学号(最后两位)一、实验目的1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2.掌握类对彖的定义,对彖的初始化;3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4.学握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数;二、实验内容1.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。#includeclassone{intal,a2;public:one(intxl=(),
2、x2=0););voidmain(){onedata(2,3);cout«data.al«endl;cout«data.a2«endl;}2.分析以下程序的错误原因,给出修改方案使Z能正确运行。#includeclassAmplifier!floatinvol,outvol;public:Amplificr(floatvin,floatvout){invol=vin;outvol=vout;}floatgain();};Amplifier::floatgain(){returnoutvol/invol;}voidmain(){
3、Amplifieramp(5.0,10.0);cout«HThegainis=>H«gain()«endl;}3.定义盒子Box类,要求具有以下成员:可设置盒子形状;可计算盒子体积;可计算盒子的表面积。4.定义计数器类Counter。要求具冇以下成员:计数器值;可进行增值和减值计数;可提供计数值。1.编写一个程序计算两个给定的长方形的周长和面积。2.编写一个程序,采用一个类求n!,并输出10!的值。3.编写一个程序,设计一个Cd毗e类,它应该满足下面的条件:1)用这样的格式输出LI期:口■刀-年;2)输出在当前FI期上加两天后的日期;3)设置
4、日期。三、实验源程序、测试与结论1.分析:出错原因:在构造函数参数表的时候语法川错了,定义的时候语句不需川分号,并R构造函数没冇函数体,同时类的对象不能访问类的私有成员变量.修改方案:one(intx1=0,intx2=0){al=xl;a2=x2;}intgetal(){returnal;}intgeta2(){returna2;}cout«data.getal()«endl;cout«data.geta2()«endl;测试数据截图:
5、'C:UsersasusDesktopDebugl23Pressanykeytocontinue2.分
6、析:出错原因:成员函数在类体外定义格式是:两数返回类型类名"成员函数名(参数表),这个程序没有给出函数返回的类型;成员函数调用格式是:对象名.成员函数名(参数表)这个程序中调用的方法不对.修改方案:floatAmplifier::gain(){returnoutvol/invol;}cout«"Thegainis=>,,«amp.gain()«endl;测试数据截图:Thegainis=>2PressAnykeytocontinue3.#includeusingnamespacestd;classbox{doublex,y
7、,z;public:box():x(0),y(0),z(0){)box(inta,intbjntc):x(a),y(b)5z(c){}voidsetx(inta){x=a;}voidsety(inta){y=a;}voidsetz(inta){z=a;}doubleacca();doublevolume();};doublebox::acea(){return2*(x*y+y*z+z*x);}doublebox::volume(){returnx*y*z;}voidmain(){boxbox」(6,8,10);cout«nacea=M«box_l.a
8、cea()«endl;cout«,,volume=H«box_l.volume()«endl;cout«“************“«cndl;box_l.setx(2);box_Lsety(3);cout«nacea=n«box_l.acea()«endl;cout«,,volume=n«box_l.volume()«endl;acea=376uolune=480************acea=112volume=60Pressanykeytocontinue4#includeusingnamespacestd;classCo
9、unter{intn;public:Counter(inti=0){n=i;}voidinit_Counte