您现在的位置:文学网 > 西方文学

湖北理工(黄石理工)C++实验 实验三多态性(可编辑)doc下载

发布时间:2019-05-15 22:13编辑:本站原创阅读(4)

    实验多态性实验课程名:面向对象程序设计(C)专业班级:计科(一)班学号:********姓名:*****实验时间:实验地点:K指导教师:祁文青一、实验目的和要求()了解多态性的概念。 ()掌握运算符重载的基本方法。

    ()掌握虚函数的定义和使用方法。

    ()掌握纯虚函数和抽象类的概念和用法。

    二、实验内容分析并调试下列程序写出程序的输出结果并解释输出结果。

    #includeiostreamusingnamespacestdclassB{public:virtualvoidf(doublex){coutB::f(double)xendl}voidf(doublex){coutB::f(double)*xendl}voidf(doublex){coutB::f(double)*xendl}}classD:publicB{public:virtualvoidf(doublex){coutD::f(double)xendl}voidf(doublex){coutD::f(double)*xendl}voidf(doublex){coutD::f(double)*xendl}}intmain(){DdB*pb=dD*pd=dpbf()pbf()pbf()pbf()pbf()return}程序的运行结果。

    答:编写一个程序其中设计一个时间类Time,用来保存时、分、秒等私有数据成员通过重载操作符“”实现两个时间的相加。 要求将小时范围限制在大于等于分钟范围限制在~秒钟范围限制在~秒。

    【提示】时间类Time{public:Time(inth=,intm=,ints=)Timeoperator(Time)voiddisptime(string)private:inthourseintminutesintseconds}实验代码:#includeiostream#includestringusingnamespacestdclassTime{public:Time(inth=,intm=,ints=)Timeoperator(Time)voiddisptime(string)private:inthourseintminutesintseconds}Time::Time(inth,intm,ints){hourse=hminutes=mseconds=s}TimeTime::operator(Timet){Timeppseconds=secondstsecondsinttemp=psecondspseconds=temppminutes=minutestminutestemptemp=pminutespminutes=tempphourse=hoursethoursetempreturnp}voidTime::disptime(strings){coutshourse:minutes:secondsendl}intmain(){inthh,mm,ssdo{cout输入第一个时间时分秒(例如)endlcinhhmmss}while(hh||mm||mm||ss||ss)Timet(hh,mm,ss)do{cout输入第二个时间时分秒(例如)endlcinhhmmss}while(hh||mm||mm||ss||ss)TimeT(hh,mm,ss),ttotalttotal=tTttotaldisptime(输出结果(时分秒):)return}程序运行结果:给出下面的抽象基类containerclasscontainer{protected:doubleradiuspublic:container(doubleradius)virtualdoublesurfacearea()=virtualdoublevolume()=}要求建立个继承container的派生类cube、sphere与cylinder让每一个派生类都包含虚函数surfacearea()和volume()分别用来计算正方体、球体和圆柱体的表面积及体积。

    要求写出主程序应用C的多态性分别计算边长为的正方体、半径为的球体以及半径为和高为的圆柱体的表面积和体积。

    实验代码:doubleCylinderArea(doubler,doubleh){return*r*r***r*h}计算圆柱体体积doubleCylinderVolume(doubler,doubleh){return*r*r*h}计算球体表面积doubleBallArea(doubler){return**r*r}计算球体体积doubleBallVolume(doubler){return**r*r*r}计算正方体表面积doubleCubicArea(doubler){returnr*r*}计算正方体体积doubleCubicVolume(doubler){returnr*r*r}计算长方体表面积doubleCuboidArea(doublea,doubleb,doublec){returna*b*b*c*a*c*}计算长方体体积doubleCuboidVolume(doublea,doubleb,doublec){returna*b*c}实验运行结果:编写一个程序用于进行集合的并、差和交运算。

    例如输入整数集合{}和{}计算出它们进行集合的并、差和交运算后的结果。 【提示】可用以下表达式实现整数集合的基本运算:ss两个整数集合的并运算ss两个整数集合的差运算s*s两个整数集合的交运算参考以下Set类的框架用于完成集合基本运算所需的各项功能。 classset{public:set::set()voidset::input(intd)intset::length()intset::getd(inti)voidset::disp()setset::operator(sets)setset::operator(sets)setset::operator*(sets)setset::operator=(sets)protected:intlenintsMAX}结论。

    上一篇:湖北潜江2018年度经济师合格证书领取时间通知

    下一篇:湖北省2015年高二下学期期中考试语文试题