实验题目 题目2-实验1:定义并实现一个平面点类
- Point,包含protected类型的数据成员m_x、m_y用于保存x轴、y轴两个坐标值,并具有如下数据成员:
- get_x()、get_y()用于获取x、y轴的坐标值
- set_x()、set_y()用于获取x、y轴的坐标值
- DisplayPoint()函数,用于输出点的全部信息(坐标等)
- 主程序从键盘输入点的坐标值,程序结束前输出点的信息。
实验2:从平面点类Point采用继承的方式,派生三维空间点类Point3D
- 增加数据成员m_z(z轴坐标值)
- 增加成员函数set_z()、get_z()用于设定或获取z轴坐标数值
- 采用虚函数的方式重载DisplayPoint输出三维空间点的全部信息。
- 主程序从键盘输入点的三维坐标值,程序结束前输出点的信息。
实验3:定义并实现折线类Curve3D
- 该类的对象拥有至少1个空间点(Point3D类型的数据,用指针与动态空间申请实现),以及记录点数量的数据成员
- 编写带默认参数值的构造函数,折线默认的空间点为原点(0,0,0)
- 编写析构函数;
- 成员函数DisplayCurve用于输出折线的各个点的信息;
- 成员函数CurveLen用于计算并输出折线长度;
- 重载加号运算符+,可以将一个Point3D点增加到折线点序列中(表示将折线延长到改点处);
- 重载减号运算符-,可以将一个Point3D点从折线点序列中删除(先在点序列中搜索,如果有要删除的点,就删除,如果没有,返回即可);
- 重载赋值运算符= 解决浅拷贝问题;
- 成员函数write_txt(ofstream &os),实现将折线数据写入文本文件的功能,文本文件每行保存一个点的三个坐标值,有多少个点,就有多少行;
- 成员函数read_txt(ifstream &is),实现从文本文件读入折线数据的功能,文本文件每行保存一个点的三个坐标值,有多少个点,就有多少行;
- 成员函数write_binary(ofstream &os) ,实现将折线数据写入二进制文件的功能;
- 成员函数read_binary(ifstream &is) 实现从二进制文件读入折线数据的功能。 二、大作业 2个题目,任选1个: 题目1、C++中动态多态性的原理分析 (1)C++实现多态的机制; (2)使用多态性,可能遇到的问题,与程序设计中的解决方法。 题目2、深入分析STL标准模板 list、vector等任选一个,查找并阅读源代码,总结如下内容: (1)内部成员 (2)接口 (3)内存管理方法 (4)有哪些封装方面的技巧 (5)应用中需要注意的问题或不足,结合程序实例的运行结果进行分析。