C++实验

C++实验二 类与对象 一

    • 二、实验内容:
  • 1、 编写一个程序,该程序中包含一个梯形类(数据成员:上底、下底、高)和一个圆形类(数据成员:半径)。这两个类都提供计算周长和面积的操作。在主函数中分别测试这两个类。
  • 2、 编写一个程序,该程序中包含一个Student类,Student类中至少应包含学号、姓名、年龄和成绩等信息;操作包括设置学生信息初值、获得学生成绩、显示学生所有信息和修改学生姓名等。在主函数中对该类进行测试。
  • 3、 编写一个程序,该程序中包含一个Point类,Point类中含有x,y坐标信息;为该类编写一个构造函数

二、实验内容:

要求:数据成员使用私有访问权限,成员函数使用公有访问权限。

1、 编写一个程序,该程序中包含一个梯形类(数据成员:上底、下底、高)和一个圆形类(数据成员:半径)。这两个类都提供计算周长和面积的操作。在主函数中分别测试这两个类。

#include
#include
using namespace std;
class tixing {			//声明一名为梯形的类
	double hight;
	double shanddi;
	double xiadi;
public:
	void init(double a, double b, double c)  //公有成员函数长,宽,高
	{
		hight = a;
		shanddi = b;
		xiadi = c;
	}
	double zhouchang() {		//周长函数
		double C;
		C = ((shanddi + xiadi) + 2 * sqrt(((xiadi - shanddi) / 2) * ((xiadi - shanddi) / 2) + (hight) * (hight)));
		return C;
	}
	double mianji() {			//面积函数
		double S;
		S = (shanddi + xiadi) * hight / 2;
		return S;
	}
};
class circle {				//圆的类
	double R;
public:
	void init2(double r)
	{
		R = r;
	}
	double Ymianji()       //面积函数
	{
		double YS;
		YS = (3.14 * R * R);
		return YS;
	}
	double Yzhouchang()       //周长函数
	{
		double YC;
		YC = 2 * 3.14 * R;
		return YC;
	}
};

int main()
{
	tixing A;
	circle B;
	B.init2(1);
	A.init(4, 10, 4);
	cout << "等腰梯形 上底= 4,下底=10,腰=5 " << endl;
	cout << "梯形的面积是:" << A.mianji() << endl;
	cout << "梯形的周长是:" << A.zhouchang() << endl;
	cout << "圆的半径为 1 " << endl;
	cout << "圆的周长是:" << B.Yzhouchang() << endl;
	cout << "圆的面积是:" << B.Ymianji() << endl;
	return 0;
}

2、 编写一个程序,该程序中包含一个Student类,Student类中至少应包含学号、姓名、年龄和成绩等信息;操作包括设置学生信息初值、获得学生成绩、显示学生所有信息和修改学生姓名等。在主函数中对该类进行测试。

#include
using namespace std;
class Student
{  
public:
	int S_id;   	//学号 
	string S_name;		//姓名 
	int S_age; 			//年龄 
	double S_score;			//分数 

	void set_id(int id)   //设置学号 
	{
		S_id = id;
	}
	void set_name(string name)		//设置姓名 
	{
		S_name = name;
	}
	void set_age(int age)     //设置年龄 
	{
		S_age = age;
	}
	void set_score(int score)		//设置分数 
	{
		S_score = score;
	}
     double getscore()    //获取分数 
	{
		return S_score;

	}
    void changename(string New_name)		//改变名字 
    {
    	S_name = New_name;
	}
	void showStudent()              //输出函数 
	{
		cout << "学号: " << S_id << endl;
		cout << "姓名: " << S_name << endl;
		cout << "年龄: " << S_age << endl;
		cout << "成绩: " << S_score << endl;
	}
	

};
int main()
{
	int i=0;
	Student s1;
	s1.set_id(101);
	s1.set_name("李四");
	s1.set_age(13);
	s1.set_score(95);
	i=s1.getscore();
	s1.showStudent(); 
	cout << "获得学生成绩:" <<i<< endl;
	string N,s; 
	cout <<"输入新名字:"<<endl;
	cin>>N;
	s=N;
	s1.changename(s);
	cout<<"修改后学生信息为:"<<endl; 
	s1.showStudent(); 
	return 0;

}

3、 编写一个程序,该程序中包含一个Point类,Point类中含有x,y坐标信息;为该类编写一个构造函数

(初始化x,y的值,要求都带默认参数,参数值自定)和一个析构函数,并编写一个普通函数double dist(Point, Point)(非类的成员函数,该函数的参数为Point类对象,用来计算两点的距离)。在上述3个函数中分别输出如下信息: 构造函数中显示:“call constructor function” 析构函数中显示:“call destructor function”
程序结构如下:
class Point{
… //类的成员定义
};
double dist(point p1, point p2) {// dist函数的定义

}
int main(){

Point p1(2.2,3.3),p2;
dist(p1,p2);

return 0;
}

#include
#include
using namespace std;
class Point{
	public:
		Point (double a=0.0,double b=0.0);  //声明构造函数 
		~Point(); 							//声明析构函数 
		 double dist(Point p1, Point p2);
	public:	 
	double x;
	double y;
}; 
Point::Point(double a,double b)       //定义构造函数 
{
	x=a;
	y=b;
	cout<<"call constructor function"<<endl;       //构造函数中显示 
}
Point::~Point()  								//定义析构函数 
{
	cout<<"call destructor function"<<endl;				// 析构函数中显示
}
    double dist(Point p1,Point p2) {             // dist函数的定义
    return sqrt(((p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y)));
}
int main(){
	
	Point p1(3,4), p2; 
	dist(p1,p2);
	cout<<dist(p1,p2)<<endl;
return 0;
}

你可能感兴趣的