资源描述:
《c面向对象程序设计实验2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验2类和对象(1)学号(最后两位)一、实验目的1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2.掌握类对象的定义,对象的初始化;3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数;二、实验内容1.分析找岀以下程序中的错误,说明错误原因,给岀修改方案使之能正确运行。#includeclassone{intal,a2;publi
2、c:one(intxl=0,x2=0);};voidmain(){onedata(2,3);cout«data.a1«endl;cout«data.a2«endl;}2.分析以下程序的错误原因,给出修改方案使之能正确运行。#includeclassAmplifier!floatinvol,outvol;public:Amplifier(floatvin,floatvout){invol=vin;outvol=vout;}floatgain(););Amplifier::floatgain(){re
3、turnoutvol/invol;}voidmain(){Amplifieramp(5.0,10.0);coutu«gain()«endl;}3.定义盒子Box类,要求具有以下成员:可设置盒子形状;可计算盒子体积;可计算盒子的表面积。1.定义计数器类Countero要求具有以下成员:计数器值;可进行增值和减值计数;可提供计数值。2.编写一个程序计算两个给定的长方形的周长和面积。3.编写一个程序,采用一个类求n!,并输出10!的值。4.编写一个程序,设计一个Cdate类,它应该满足下面的
4、条件:1)用这样的格式输出tl期:日-月-年;2)输出在当前口期上加两天后的日期;3)设置日期。三、实验源程序、测试与结论1.分析:出错原因:class成员的缺省访问权限时private,私有成员屮能被类中的其他成员函数调用。修改方案:#includeclassone{intal,a2;public:one(intx1=0,intx2=0){al=xl;a2=x2;}voidshow(){cout«al«endl;cout«a2«endl;}};voidmain(){onedata(2,3);da
5、ta.show();}测试数据截图:■•C:UsersAdmini5tratorDesktoplf5S文<^^Debug12・exe・23Pressanykeytocontinue出错原因:类外定义成员函数格式:成员函数返冋类型类名::成员函数名(参数表);成员函数的引用。修改方案:#includeclassAmplifierfloatinvol,outvol;public:Amplifier(floatvin,floatvout){invol=vin;outvol=vout;}flo
6、atgain();};floatAmplifier::gain(){returnoutvol/invol;}voidmain(){Amplifieramp(5.0,10.0);cout«!,Thegainis=>t,«amp.gain()«endl;测试数据截图:*C:UsersAdministratorDesktopDebug13.exeeThegainis・>2ssanykeytocontinue3.#includeMiostreamM#include"cmath"usingnamespacestd
7、;classBox{intl,w,h;ints,v;public:Box(intauntb,intc){l=a;w=b;h=c;)intarea()returns=2*(l*w+w*h+h*l);)intvolume(){returnv二1*w*h;}voidshow(){cout«HThearea:M«area()«endl;cout«HThevolume:,,«volume()«endl;}};voidmain(){intabc;cout«HPleaseenterthelonghighwidth:";cin»a»b»
8、c;BoxBl(a,b,c);Bl.show();}测试数据截图:I•C:UsersAdministratorDesktop5Pxl文^^Debug14.exe・Pleaseenterthelonghighwidth:234Thearea:52Thevolume:24Pressanykeytocontin