C++第四次实验概要1.docVIP

  • 58
  • 0
  • 约9.53千字
  • 约 18页
  • 2017-07-02 发布于湖北
  • 举报
C第四次实验概要1

天津理工大学 计算机与通信工程学院 实验报告 2013 至 2014 学年 第 二 学期 课程名称 高级语言程序设计Ⅱ 实验( 4 ) 实验名称 多态程序设计 实验时间 2014 年 4 月 28 日 第 3 节 至 第 6 节 学号姓名 专业 信息安全 主讲教师 唐召东 辅导教师 唐召东 软件环境 VC++6 硬件环境 PC机 实验目的 (1)掌握运算符重载的方法; (2)掌握使用虚函数实现动态多态性; 实验内容(应包括实验题目、实验要求、实验任务等) 二、练习项目: 1.Point类,有坐标x,y两个成员变量,利用友元函数对Point类重载“++”运算符,实现对坐标值的改变。具体要求如下: 编写程序定义Point类,在类中定义整型的私有成员变量x,y; 在类中定义两个友元函数,分别重载前置++和后置++; 编写主函数测试。 注意函数有无返回值的区别,以及返回值是否带有应用符号。 2.定义Point类,有坐标x,y两个成员变量,利用运算符重载对Point类重载“++”运算符,实现对坐标值的改变。具体要求如下: 编写程序定义Point类,在类中定义整型的私有成员变量x,y; 定义成员函数Point operator++(); Point operator++(int);以实现对Point类重载“++”运算符,分别重载前置++和后置++; 编写主函数测试。 3.定义一个分数类,通过重载运算符实现分数的四则运算、求负运算和赋值运算。其中,要求加法“+” 和减法“-”用友元函数实现重载,其他运算符用成员函数实现重载。 4.编写程序,定义抽象基类Container,由此派生出2个派生类球体类Sphere,圆柱体类Cylinder,分别用虚函数分别计算表面积和体积。 球体的表面积为:,球体的体积为; 圆柱表面积为: 2πR(h+R)πR2h。 定义相应的对象,编写主函数测试。 5.设计一个时钟类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区间循环。 实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等) 源代码: #include iostream using namespace std; class Point { private: double x,y; public: Point(double _x=0,double _y=0) { x=_x; y=_y; } ~Point(){} void setx(double _x) { x=_x; } void sety(double _y) { y=_y; } double getx() { return x; } double gety() { return y; } friend void operator(ostream out,const Point p) { outPoint(p.x,p.y)\n; } friend void operator++(Point p,int); friend void operator++(Point p); }; void operator++(Point p,int) { p.x++; p.y++; } void operator++(Point p) { ++p.x; ++p.y; } int main() { Point a(1,1),b(3,4); couta; coutb; a++; ++b; couta; coutb; return 0; } 输出结果: : #include iostream using namespace std; class Point { private: double x,y; public: Point(double _x=0,double _y=0) { x=_x; y=_y; } ~Point(){} void setx(double _x) { x=_x; } void sety(double _y){ y=_y; } double getx() { return x; } double gety() { r

文档评论(0)

1亿VIP精品文档

相关文档