cppworks_exp2

实验题目 题目2-实验1:定义并实现一个平面点类

  1. Point,包含protected类型的数据成员m_x、m_y用于保存x轴、y轴两个坐标值,并具有如下数据成员:
  2. get_x()、get_y()用于获取x、y轴的坐标值
  3. set_x()、set_y()用于获取x、y轴的坐标值
  4. DisplayPoint()函数,用于输出点的全部信息(坐标等)
  5. 主程序从键盘输入点的坐标值,程序结束前输出点的信息。

实验2:从平面点类Point采用继承的方式,派生三维空间点类Point3D

  1. 增加数据成员m_z(z轴坐标值)
  2. 增加成员函数set_z()、get_z()用于设定或获取z轴坐标数值
  3. 采用虚函数的方式重载DisplayPoint输出三维空间点的全部信息。
  4. 主程序从键盘输入点的三维坐标值,程序结束前输出点的信息。

实验3:定义并实现折线类Curve3D

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