《学生类实验》由会员分享,可在线阅读,更多相关《学生类实验(8页珍藏版)》请在金锄头文库上搜索。
1、福建工程学院计算机与信息科学系实验报告 2010 2011 学年第 一 学期 任课老师: 课程名称C+班级座号姓名实验题目实验二 面向对象编程实验时间实验开始日期:2010-10-20 报告提交日期:2010-10-21 实验目的、要求掌握类与对象的定义方法,成员函数的实现与调用方法,领会类实现数据隐藏与封装的原理。实验设计内容1、 编写Circle类,有数据成员Radius, 成员函数get_area()用于计算面积, get_perimeter()用于计算周长, disp( )用于显示面积和周长, set_radius()设置半径, get_radius()获取半径。完善必要的构造函数,构
2、造一个Circle的对象进行测试,对构造函数和析构函数的调用情况进行分析。源程序如下:#include using namespace std;const float Pi=3.14159;class circle public: circle(float r=0) radius=r; cout构造函数被调用endl; circle() cout析构函数被调用endl; float get_area() ; /用于计算面积 float get_perimeter(); /用于计算周长 float disp(); /用于显示面积和周长 float set_radius(); /设置半径 floa
3、t get_radius() /获取半径 return radius; private: float radius; ;float circle:set_radius() coutradius; float circle:get_area() return Pi*radius*radius; float circle:get_perimeter() return 2*Pi*radius; float circle:disp() cout圆面积:get_area()endl; cout圆周长: get_perimeter()endl; int main() circle a; a.set_rad
4、ius(); a.get_radius(); a.disp(); system(pause);运行结果:2、 编写圆柱体类Cylinder,有数据成员Circlr对象和长度Len, 成员函数get_vol() 计算体积, get_area()计算表面积。完善必要的构造函数和拷贝构造函数,构造Cylinder的对象进行测试。对构造函数,拷贝构造函数和析构函数的调用情况进行分析。源程序如下:#include using namespace std;const float Pi=3.14159;class circle public: circle(float r=0) radius=r; cout
5、circle 构造函数被调用endl; circle(circle &c); circle() coutcircle_析构函数被调用endl; float get_area(); float get_perimeter(); private: float radius;circle:circle(circle &c) radius=c.radius; coutcircle_copy 构造函数被调用endl; float circle:get_area() return Pi*radius*radius;float circle:get_perimeter() return 2*Pi*radiu
6、s;class Cylinder public: Cylinder(circle a,float len) A=a; Len=len; coutCylinder构造函数被调用endl; Cylinder(Cylinder &cy); Cylinder() coutCylinder析构函数被调用endl; float get_vol(); float get_area(); private: circle A; float Len;Cylinder:Cylinder(Cylinder &cy):A(cy.A) Len=cy.Len; coutCylinder_copy 构造函数被调用endl;
7、float Cylinder:get_area() return (2*A.get_area()+A.get_perimeter()*Len);float Cylinder:get_vol() return A.get_area()*Len;int main() float r,len; coutlenr; coutendl; circle c(r); /将 r的 值传给形参 Cylinder Cy(c,len); cout圆柱体面积:Cy.get_area()endl; cout圆柱体体积:Cy.get_vol()endl; system(“pause”);运行结果:3、 设计学生类Stu,
8、含no(学号),name(姓名),deg(成绩)数据成员,成员函数有setdata()用于设置对象,disp()用于输出8089分段学生数据。在main()中定义对象数组,用于存储输入学生数据。源程序如下:#include using namespace std;class stu public: stu(char Sno10,char Name20,unsigned Deg); stu(); stu(stu &s); void setdata();/用于设置对象 void disp();/用于输出80-89分段学生数据 private: char sno10; char name20; un
9、signed deg;stu:stu(char Sno10,char Name20,unsigned Deg) sno10=Sno10; name20=Name20; deg=Deg; cout构造函数被调用endl; stu:stu(stu &s)sno10=s.sno10;name20=s.name20;deg=s.deg;coutcopy 构造函数被调用sno; cinname; cindeg; void stu:disp() if(deg=80 & deg90)coutsno name degendl;int main() int n; coutn; coutendl;stu sn; cout请输入 n 个学生信息:endlendl; cout学号 姓名 成绩 endl; for(int i=0;in;i+) si.setdata(); cout成绩在 80 89 之间的学生信息如下:endlendl; cout学号 姓名 成绩 endl; for(int i=0;in;i+) si.disp(); system(pause);