收藏 分享(赏)

C++课后习题答案.docx

上传人:hwpkd79526 文档编号:6757260 上传时间:2019-04-22 格式:DOCX 页数:15 大小:15.76KB
下载 相关 举报
C++课后习题答案.docx_第1页
第1页 / 共15页
C++课后习题答案.docx_第2页
第2页 / 共15页
C++课后习题答案.docx_第3页
第3页 / 共15页
C++课后习题答案.docx_第4页
第4页 / 共15页
C++课后习题答案.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、章 多态性与虚函数1.在例 12.1程序基础上作一些修改。定义 Point /Point.h#ifndef POINT_H#define POINT_H using namespace std;class Point;ostream y=b;void Point:setPoint(float a,float b)x=a;y=b;ostream float Circle:getRadius() const return radius;float Circle:area() constreturn float(3.14159*radius*radius);ostream float Cylinde

2、r:getHeight() const return height;float Cylinder:area() const return float(2*Circle:area()+2*3.14159*radius*height);float Cylinder:volume() constreturn Circle:area()*height;ostream cout把构造函数修改为带参数的函数,在建立对象时初始化。#include using namespace std;class Pointpublic:Point(double a,double b):x(a),y(b)Point()co

3、ut先不将析构函数声明为 virtual,在 main函数中另设一个指向 Circle类对象的指针变量.#include using namespace std;class Pointpublic:Point(double a,double b):x(a),y(b)Point()cout不作第(2)点的修改而将析构函数声明为 virtual,运行程序,分析结果#include using namespace std;class Pointpublic:Point(double a,double b):x(a),y(b)virtualPoint()coutusing namespace std;

4、class Shapepublic:virtual double area() const =0;class Circle:public Shapepublic:Circle(double r):radius(r) virtual double area() const return 3.14159*radius*radius;protected:double radius; ;class Rectangle:public Shapepublic:Rectangle(double w,double h):width(w),height(h) virtual double area() cons

5、t return width*height; protected:double width,height; ;class Triangle:public Shapepublic:Triangle(double w,double h):width(w),height(h)virtual double area() const return 0.5*width*height; protected:double width,height; ;void printArea(const Shape class Shapepublic:virtual double area() const =0; ;cl

6、ass Circle:public Shapepublic:Circle(double r):radius(r)virtual double area() const return 3.14159*radius*radius;protected:double radius; ;class Square:public Shapepublic:Square(double s):side(s) virtual double area() const return side*side; protected:double side;class Rectangle:public Shapepublic:R

7、ectangle(double w,double h):width(w),height(h) virtual double area() const return width*height; protected:double width,height; ;class Trapezoid:public Shapepublic:Trapezoid(double t,double b,double h):top(t),bottom(t),height(h)virtual double area() const return 0.5*(top+bottom)*height;protected:doub

8、le top,bottom,height;class Triangle:public Shapepublic:Triangle(double w,double h):width(w),height(h)virtual double area() const return 0.5*width*height;protected:double width,height; ;int main()Circle circle(12.6); Square square(3.5); Rectangle rectangle(4.5,8.4); Trapezoid trapezoid(2.0,4.5,3.2);

9、Triangle triangle(4.5,8.4); Shape *pt5= double areas=0.0; for(int i=0;iarea();cout#include using namespace std;int main()double a,b,c,s,area;coutabc;if (a+b#include using namespace std;int main()float a5;coutai;coutusing namespace std;void main() int i,j,k;for(i=0;i#include using namespace std;void

10、fun1()int a10;ofstream outfile1(“f1.dat“),outfile2(“f2.dat“);if(!outfile1)cerrai;outfile1ai;outfile2a; outfileai; for(i=0;iaj+1)t=aj;aj=aj+1;aj+1=t;infile.close(); ofstream outfile(“f2.dat“,ios:out);if(!outfile)cerr#include using namespace std;struct staffint num;char name20;int age;double pay;int m

11、ain()staff staf7=2101,“Li“,34,1203,2104,“Wang“,23,674.5,2108,“Fun“,54,778,3006,“Xue“,45,476.5,5101,“Ling“,39,656.6,staf1;fstream iofile(“staff.dat“,ios:in|ios:out|ios:binary);if(!iofile)cerrstaf1.numstaf1.namestaf1.agestaf1.pay;iofile.seekp(0,ios:end);iofile.write(char *)iofile.seekg(0,ios:beg);for(

12、i=0;inum;while(num)find=false;iofile.seekg(0,ios:beg);for(i=0;inum;iofile.close();return 0;6.在例 13.17的基础上修改程序,将存放在 C数组中的数据读入并显示出来。#include #include using namespace std;struct studentint num;char name20;double score;int main()int i;student stud3=1001,“Li“,78,1002,“Wang“,89.5,1004,“Fun“,90,stud13;char

13、 c50;strstream strio(c,50,ios:in|ios:out);for(i=0;istud1i.numstud1i.namestud1i.score;cout#include #include using namespace std;struct studentint num;char name20;double score;int main()student stud3=1001,“Li“,78,1002,“Wang“,89.5,1004,“Fun“,90,stud13;char c50;int i;ostrstream strout(c,50);for(i=0;istud1i.numstud1i.namestud1i.score;cout“data from array c to array stud1:“endl;for(i=0;i3;i+)coutstud1i.num“ “stud1i.name“ “stud1i.scoreendl;coutendl;return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报