实验十 类与对象的基本概念.docx
《实验十 类与对象的基本概念.docx》由会员分享,可在线阅读,更多相关《实验十 类与对象的基本概念.docx(9页珍藏版)》请在冰豆网上搜索。
![实验十 类与对象的基本概念.docx](https://file1.bdocx.com/fileroot1/2023-1/31/d91b3699-d182-4907-a1cd-24b07da1e2c1/d91b3699-d182-4907-a1cd-24b07da1e2c11.gif)
实验十类与对象的基本概念
实验十类与对象的基本概念
一、实验目的
类是C++扩展数据类型,可以封装不同类型的数据成员和函数成员。
类是面向对象程序设计的基础。
本次实验内容包括面向对象的基本概念、构造函数与析构函数,从实际问题抽象出类等,通过实验要求掌握以下内容:
1、掌握面向对象的基本概念和类的定义方法。
2、掌握类成员的访问权限以及访问类成员的方法。
3、掌握内联函数和默认函数。
4、掌握构造函数和析构函数的意义及使用方法。
二、实验内容
1、范例:
设计并测试一个矩形类(Rectangle)。
属性为矩形的左下角与右上角的坐标,矩形水平放置。
操作为计算矩形的周长和面积。
程序】
【要求】
(1)将Rectangle(doublel=0,doublet=0,doubler=0,doubleb=0);改为Rectangle(doublel,doublet,doubler,doubleb);
程序仍能正确运行吗?
为什么?
(2)注意成员函数voidShow()、doubleArea()、doublePerimeter()的使用,因为在第三章如果需编写类似功能的一般函数是需要带参数(形参)的。
而在此处作为类的成员函数又不需要带参数。
思考为什么?
(3)理解voidAssign(doublel,doublet,doubler,doubleb);函数的作用。
将Rectangle(doublel=0,doublet=0,doubler=0,doubleb=0);
改为Rectangle(doublel,doublet,doubler,doubleb);这时,有人认为Rectangle(doublel,doublet,doubler,doubleb)和voidAssign(doublel,doublet,
doubler,doubleb)的功能相同,那么Assign函数能否去掉呢?
请试一试,结果会怎样?
2、定义一个圆类(Circle),要求用两种方法定义:
方法一:
要求属性为半径,操作为计算圆的周长和面积。
方法二:
要求属性为半径(radius)、圆周长和面积,操作为输入半径,并计算周长、面积,输出半径、周长和面积。
要求定义构造函数(以半径为参数,缺省值为0,周长和面积在构造函数中生成)和拷贝构造函数。
3、设计一个学校在册人员类(Person)。
数据成员包括:
身份证号(IdPerson),姓名(Name),性别(Sex),生日(Birthday)和家庭住址(HomeAddress)。
成员函数包括人员信息的录入和显示等。
★选做题4、编程建立一个分数类。
分数类的数据成员包括分子和分母,操作包括约分、通分、加、减、乘、除、求倒数、比较、显示和输入。
分数类的定义如下:
【要求】完成上述所有成员函数并进行检验。
★选做题5、集合是具有同一属性(共性)而又能互相区别(个性)的多个成员汇集起来的整体,构成集合的每个成员称为集合的元素,元素间没有顺序关系。
例如,所有的大写英文字母是一个集合,它包括26个元素:
A、B、…、Z。
不包含任何元素的集合称为空集合。
【实验要求]】
自定义一个集合类set,采用数组存放集合的元素。
自定义集合运算包括:
1)判断元素elem是否为集合set的元素。
2)为集合添加一个元素elem。
3)从集合中删除一个元素elem。
4)复制一个集合,其元素与原集合完全一样。
5)显示集合中的所有元素。
6)求两个集合中相同的元素,即求两个集合的交集。
7)求两个集合中所有的元素,即求两个集合的并集。
8)判断两集合包含的元素是否完全相同。
9)判断一个集合是否被包含在另一个集合之中,即是否为另一个集合的子集。
*/
【程序】
cout<<"删除部分元素后:
"<cout<<"s";
s.print();
cout<<"s1";
s1.print();
cout<<"s2";
s2.print();
return0;
}