实验报告模板——实验4:多态程序设计实验报告模板——实验4:多态程序设计.doc

实验报告模板——实验4:多态程序设计实验报告模板——实验4:多态程序设计.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告模板——实验4:多态程序设计实验报告模板——实验4:多态程序设计

天津理工大学 计算机与通信工程学院 实验报告 至 学年 第 学期 课程名称 实验( 4 ) 实验名称 实验时间 学号姓名 专业 主讲教师 辅导教师 软件环境 硬件环境 实验目的 (1)掌握运算符重载的方法; (2)掌握使用虚函数实现动态多态性; 实验内容(应包括实验题目、实验要求、实验任务等) 1.定义Point类,有坐标x,y两个成员变量,利用友元函数对Point类重载“++”运算符,实现对坐标值的改变。具体要求如下: (1)编写程序定义Point类,在类中定义整型的私有成员变量x,y; (2)在类中定义两个友元函数,分别重载前置++和后置++; (3)编写主函数测试。 注意函数有无返回值的区别,以及返回值是否带有应用符号。 2.定义Point类,有坐标x,y两个成员变量,利用运算符重载对Point类重载“++”运算符,实现对坐标值的改变。具体要求如下: (1)编写程序定义Point类,在类中定义整型的私有成员变量x,y; (2)定义成员函数Point operator++(); Point operator++(int);以实现对Point类重载“++”运算符,分别重载前置++和后置++; (3)编写主函数测试。 3.定义一个分数类,通过重载运算符实现分数的四则运算、求负运算和赋值运算。其中,要求加法“+” 和减法“-”用友元函数实现重载,其他运算符用成员函数实现重载。 4.定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。具体要求如下: (1)编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数; (2)由车(vehicle)基类派生出自行车(bicycle)类、汽车类(motorcar),从bicycle类和motorcar类派生出摩托车类(motorcycle),它们都有Run、Stop等成员函数。 (3)在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。 (4)分别用vehicle类型的指针来调用几个对象的成员函数,看看能否成功(提示:把Run、Stop定义为虚函 数)。 5.编写程序,定义抽象基类Container,由此派生出2个派生类球体类Sphere,圆柱体类Cylinder,分别用虚函数分别计算表面积和体积。 (1)球体的表面积为:4πr2,球体的体积4πr3 /3?; 圆柱表面积为: 2πR(h+R) 圆柱体的体积πR2h。 (2)定义相应的对象,编写主函数测试。 6.设计一个时钟类TIME,内含数据成员hour,minute,second表示时间,成员函数set( )设置时间数据,show( )显示时间数据。重载运算符 ++和-- (具有返回值),每执行一次++,second自增1,执行一次--,second自减1。second和minute的值在0~59区间循环(满59后再自增则归0,minute加1;second为0时再自减则为59,minute减1)。hour的值在0~23区间循环。 实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等) 1.记录程序运行结果 2.记录程序运行结果 3.记录程序运行结果 4.记录程序运行结果 5.记录程序运行结果 6. 记录程序运行结果 附录(可包括源程序清单或其它说明) 1. #includeiostream using namespace std; class point { private: int x, y; public: point(int, int); friend void operator++(point); friend void operator++(point, int); void display(); }; point::point(int a = 0, int b = 0) :x(a), y(b) {} void point::display() { cout x= x \t y= yendl; } void operator++(point A) { ++A.x; ++A.y; } void operator++(point A, int) { ++A.x; +

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档