1、实验二 面向对象编程 一、 实验目的: 掌握类与对象的定义方法,成员函数的实现与调用方法,领会类实现数据隐藏与封装的原理。 二、 实验时间: 三、 实验地点: 四、 实验内容: 1、 编写Circle类,有数据成员Radius, 成员函数get_area()用于计算面积, get_perimeter()用于计算周长, disp( )用于显示面积和周长, set_radius()设置半径,
2、
get_radius()获取半径。
完善必要的构造函数,构造一个Circle的对象进行测试,对构造函数和析构函数的调用情况进行分析。
#include "stdafx.h"
#include
3、//用于显示面积和周长 void set_radius(double r);//设置半径 double get_radius();//获取半径 Circle(double r=0);//调用构造函数 Circle(Circle &r);//复制构造函数 ~Circle();//析构函数 private: double radius; }; double Circle::get_area() {return radius*radius*PI; } double Circle::get_perimeter() {return 2*radius*
4、PI;
}
void Circle::disp()
{
cout <<"圆的半径:"< 5、r;
cout<<"调用构造函数"< 6、Circle c2=c1;
cout<<"测试复制构造体:"< 7、 成员函数get_vol() 计算体积,
get_area()计算表面积。
完善必要的构造函数和拷贝构造函数,构造Cylinder的对象进行测试。对构造函数,拷贝构造函数和析构函数的调用情况进行分析。
// shiyan2_2.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include "iostream"
using namespace std;
const double PI=3.1415926;
class Circle
{
public:
8、 double get_area();//用于计算面积
double get_perimeter();//用于计算周长
void disp();//用于显示面积和周长
void set_radius(double r);//设置半径
double get_radius();//获取半径
Circle(double r=0);//调用构造函数
Circle(Circle &r);//复制构造函数
~Circle();//析构函数
private:
double radius;
};
double Circle::get_area()
{re 9、turn radius*radius*PI;
}
double Circle::get_perimeter()
{return 2*radius*PI;
}
void Circle::disp()
{
cout <<"圆的半径:"< 10、e::get_radius()
{return radius;
}
Circle::Circle(double r)
{
radius=r;
}
Circle::Circle(Circle &r)
{
radius=r.radius;
}
Circle::~Circle()
{
radius=0;
}
class cylinder
{public:
double get_vol(){return c1.get_area()*len;};//计算体积
double get_area(){return 2*c1.get_a 11、rea()+c1.get_perimeter()*len;};//计算表面积
void set_len(double l){len=l;};//设置长度
double get_len(){return len;};//获取长度
//----初始Circle类相关数据---
void set_Radius(double r){c1.set_radius(r);};
double get_Radius(){return c1.get_radius();};
double get_Area(){return c1.get_area();};
doub 12、le get_Perimeter(){return c1.get_perimeter();};
//------------------------
//----显示相关数据------
void disp0();
void disp1();
//--------------------
cylinder(Circle c,double len=0);//调用构造函数
cylinder(cylinder &c);//复制构造函数
~cylinder();//析构函数
private:
Circle c1;
double len;
} 13、
void cylinder::disp0()
{
cout <<"圆柱底面积:"<< get_Area() < 14、c1(c),len(len){cout<<"调用圆柱构造函数:"< 15、e c;
cylinder c2(c);
c2.set_Radius(Ra);
c2.disp0();
cout< 16、// shiyan2_3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
class Student
{public:
void setdata(int no,string name,float deg);//用于设置对象
void disp();//用于输出80—89分段学生数据
private:
int no;//学号
string name;//姓名
float deg;//成绩
}; 17、
void Student::setdata(int No,string Name,float Deg)
{ no=No;
name=Name;
deg=Deg;
}
void Student::disp()
{ if((deg>=80.0)&&(deg<90.0))
{
cout< 18、输入要添加学生的数量:";
cin>>n;
for(i=0;i 19、学号"<<"\t姓名"<<"\t成绩"< 20、 set_radius()设置半径,
get_radius()获取半径。
完善必要的构造函数,构造一个Circle的对象进行测试,对构造函数和析构函数的调用情况进行分析。
2、编写圆柱体类Cylinder,有数据成员Circle对象和长度Len,
成员函数get_vol() 计算体积,
get_area()计算表面积。
完善必要的构造函数和拷贝构造函数,构造C 21、ylinder的对象进行测试。对构造函数,拷贝构造函数和析构函数的调用情况进行分析。
3、设计学生类Stu,含no(学号),name(姓名),deg(成绩)数据成员,成员函数有setdata()用于设置对象,disp()用于输出80—89分段学生数据。在main()中定义对象数组,用于存储输入学生数据。
七、实验心得体会及问题反馈:
类与对象,通过实验初步熟悉。对于class类其实与C语言中的结构体类似,只不过class分为public private protect三类,而且可以把函数作为类的成员。所谓对象就是把一个抽象的类具体化,比如我定义一个class you{}; you me; 这个me就是一个对象。






