- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C-空间三维点类型
哈尔滨工业大学计算机科学与技术学院课程实验:空间三维点类型课程名称:算法设计与分析课程类型:必修一实验题目实验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) 实现从二进制文件读入折线数据的功能。二实现构思为了体现各个类的继承关系,同时也为了减少单独一个头文件的大小,分别使用三个头文件实现平面点类、三维点类以及三维折线类。1.平面点类 #include iostream#ifndefPoint_h#define Point_husing namespace std;class Point{public: Point():m_x(0),m_y(0){}; Point(float x, float y):m_x(x),m_y(y){}; ~Point(){};const float getx() { return m_x; }const float gety() { return m_y; } void setx(float xin) {m_x = xin;cout x is updated as m_x endl; return; } void sety(float yin) {m_y = yin;cout y is updated as m_y endl; return; } void DisplayPoint() {cout The position of the point is ( m_x , m_y ) endl; return; }protected: float m_x, m_y;};#endif // Point_h2.三维点类增加了成员变量m_z以及相应的设定、读取函数,重载了展示函数。 #include iostream #include Point.h#ifdefPoint_h#ifndef Point3D_h#define Point3D_hclass Point3D:public Point{protected: float m_z;public: Point3D():m_z(0){};Point3D(const Point3D){}; Point3D(float x,floaty,float z):Point(x,y),m_z(z){}; ~Point3D(){};const float getz() { return m_z; } void setz(float zin) {m_z = zin;cout z
您可能关注的文档
- 2016高考生物一轮复习14遗传信息的携带者-核酸细胞中的糖类和脂质规范训练(含解析).doc
- 2016龙街镇朝阳小学语文四年级下册期末测试卷及答案.doc
- 2016~2017下学期八年期末物理试卷及答案很好.doc
- 20174文登高三文科综合能力测试.doc
- 2016考研线性代数解析行列式.doc
- 2017《会计实务》直播讲义05.docx
- 2017一轮复习有机化学共线共面问题带解析.doc
- 2016高考数学专题一函数的基本性质.doc
- 2017中考物理全真模拟试题(二).docx
- 2017二次函数练习.doc
- 江苏省灌云高级中学2023-2024学年高三上学期第一次月考地理试题含答案.docx
- 备战2024年高考物理一轮重难点复习 第十三章 近代物理.docx
- 江苏省高邮市一中2021-2022学年高三上学期第一次月考语文试题(原卷版).docx
- 江苏省华罗庚中学2023-2024学年高三上学期12月阶段检测数学试卷含答案.docx
- 江苏省海门中学2023-2024学年高三上学期第一次调研考试地理试题及答案.docx
- 备战2024年高考物理一轮重难点复习 第九章 恒定电流.docx
- 江苏省高邮市2023-2024学年高三下学期3月学情调研数学试题含答案.docx
- 备战2024年高考物理一轮重难点复习 实验十一:探究影响感应电流方向的因素.docx
- 备战2024年高考物理一轮重难点复习 实验三:验证平行四边形定则.docx
- 备战2024年高考物理一轮重难点复习 第十四章 光.docx
文档评论(0)