




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验3 多态性实验课程名:面向对象程序设计(C+)专业班级: 09计科(一)班 学号: 2* 姓名: * 实验时间: 12.6 实验地点: K4-102 指导教师: 祁文青 一、实验目的和要求(1) 了解多态性的概念。(2) 掌握运算符重载的基本方法。(3) 掌握虚函数的定义和使用方法。(4) 掌握纯虚函数和抽象类的概念和用法。二、实验内容1.分析并调试下列程序,写出程序的输出结果,并解释输出结果。#includeusing namespace std;class Bpublic:virtual void f1 (double x)coutB:f1(double)xendl;void f2(double x)coutB:f2(double)2*xendl;void f3(double x)coutB:f3(double)3*xendl;class D:public Bpublic:virtual void f1(double x)coutD:f1(double)xendl;void f2(double x)coutD:f2(double)2*xendl;void f3(double x)coutD:f3(double)3*xf1(1.23);pb-f1(1.23);pb-f2(1.23);pb-f3(1.23);pb-f3(3.14);return 0;程序的运行结果。答:2. 编写一个程序,其中设计一个时间类Time,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现两个时间的相加。要求将小时范围限制在大于等于0,分钟范围限制在059,秒钟范围限制在059秒。【提示】时间类Timepublic:Time(int h=0,int m=0,int s=0);Time operator+(Time&);void disptime(string);private: int hourse; int minutes; int seconds;实验代码:#include#includeusing namespace std;class Timepublic: Time(int h=0,int m=0,int s=0); Time operator+(Time&); void disptime(string);private: int hourse; int minutes; int seconds;Time:Time(int h,int m,int s) hourse=h; minutes=m; seconds=s;Time Time: operator+(Time&t1)Time p;p.seconds=seconds+t1.seconds;int temp=p.seconds; p.seconds=temp%60; p.minutes=minutes+t1.minutes+temp/60;temp=p.minutes; p.minutes=temp%60; p.hourse=hourse+t1.hourse+temp/60; return p;void Time: disptime(string s)coutshourse:minutes:secondsendl;int main()int hh,mm,ss;docout输入第一个时间时分秒(例如2 30 42)hhmmss;while(hh0|mm59|ss59);Time t(hh,mm,ss);docout输入第二个时间时分秒(例如2 30 42)hhmmss;while(hh0|mm59|ss59);Time T(hh,mm,ss),t_total;t_total=t+T;t_total.disptime(输出结果(时/分/秒):);return 0;程序运行结果:3.给出下面的抽象基类container; class container protected: double radius; public: container(double radius1); virtual double surface_area()=0; virtual double volume()=0; ;要求建立3个继承container的派生类cube、sphere与cylinder,让每一个派生类都包含虚函数surface_area()和volume(),分别用来计算正方体、球体和圆柱体的表面积及体积。要求写出主程序,应用C+的多态性,分别计算边长为6.0的正方体、半径为5.0的球体,以及半径为5.0和高为6.0的圆柱体的表面积和体积。实验代码:double CylinderArea(double r, double h) return 3.14159*r*r*2+2*3.14159*r*h;/计算圆柱体体积double CylinderVolume(double r, double h) return 3.14159*r*r*h;/计算球体表面积double BallArea(double r)return 4*3.14159*r*r;/计算球体体积double BallVolume(double r)return 4*3.14159*r*r*r/3.0;/计算正方体表面积double CubicArea(double r)return r*r*6;/计算正方体体积double CubicVolume(double r)return r*r*r;/计算长方体表面积double CuboidArea(double a, double b,double c)return a*b*2+b*c*2+a*c*2;/计算长方体体积double CuboidVolume(double a, double b, double c)return a*b*c;实验运行结果:4.编写一个程序,用于进行集合的并、差和交运算。例如输入整数集合9 5 4 3 6 7和2 4 6 9 ,计算出它们进行集合的并、差和交运算后的结果。【提示】i. 可用以下表达式实现整数集合的基本运算: s1+s2 两个整数集合的并运算s1-s2 两个整数集合的差运算s1*s2 两个整数集合的交运算ii. 参考以下Set类的框架,用于完成集合基本运算所需的各项功能。 class set public: set:set(); void set:input(int d); int set:length(); int set:getd(int i); void set:disp(); s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年营养师考试冲刺试卷:实操技能与心理营养深度解析
- 新能源汽车发展前景
- 深层搅拌桩软基处理施工方案
- 2025年东北师范大学教师教育研究院春季学期专任教师招聘7人考前自测高频考点模拟试题及答案详解(新)
- 2024计算机四级考前冲刺练习试题及答案详解【夺冠】
- 2024计算机四级考前冲刺练习及答案详解【考点梳理】
- 2025临床执业医师测试卷(名校卷)附答案详解
- 2024-2025学年自考专业(计算机网络)考试彩蛋押题含答案详解(完整版)
- 2024自考专业(建筑工程)考试黑钻押题含答案详解(培优A卷)
- 2024-2025学年度广播电视播音员主持人能力提升B卷题库附参考答案详解【能力提升】
- 现房与期房培训课件
- 2024年仙桃市高新技术产业投资有限公司招聘笔试真题
- 汽车知识培训讲师简介课件
- 2025年教师职称-浙江-浙江教师职称(基础知识、综合素质、初中信息技术)历年参考题库典型考点含答案解析
- 北京高校标准化食堂标准(2026版)讲解
- 专题1.4数学归纳法(高效培优讲义)
- 卒中后抑郁症的中医治疗
- 泸州北方化学工业有限公司锅炉烟气脱硫脱硝除尘技改项目环评报告
- 可靠性基础知识培训课件
- 耗材产品售后方案(3篇)
- 2025年全国保密教育线上培训考试试题库(含答案)
评论
0/150
提交评论