Cpp程序设计教材(第二版)第11-12章答案.doc_第1页
Cpp程序设计教材(第二版)第11-12章答案.doc_第2页
Cpp程序设计教材(第二版)第11-12章答案.doc_第3页
Cpp程序设计教材(第二版)第11-12章答案.doc_第4页
Cpp程序设计教材(第二版)第11-12章答案.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

P264 1#include #includeusing namespace std;class Personchar Name20;char Sex;int Age;public:Person(char *name,int age,char sex)strcpy(Name,name);Age=age;Sex=(sex=m?m:f);coutconstructor of TeacherNametAgetSex;Person()coutdeconstrucor of teacherendl;class Teacher: public Personchar Prof10,Posit10,Less10;public:Teacher(char *name,int age,char sex,char *prof,char *posit,char *less):Person(name,age,sex)strcpy(Prof,prof);strcpy(Posit,posit);strcpy(Less,less);couttProftPosittLessendl;Teacher();int main()Teacher tea(,18,m,);return 0;P264 2#include #includeusing namespace std;class Personpublic:char Name20;char Sex;int Age;public:void Register(char *name,int age,char sex)strcpy(Name,name);Age=age;Sex=(sex=m?m:f);void showMe()couttNametAgetSext;class Student: public Personint Number;char ClassName10;public:void Register(char *classname,int number,char *name,int age,char sex)strcpy(ClassName,classname);Number=number;Person:Register(name,age,sex);void ShowMe()coutNumbertClassNamet;Person:showMe();class Teacher: public Personpublic:char Prof10,Posit10,Less10;public:void Register(char *name,int age,char sex,char *prof,char *posit,char *less)strcpy(Prof,prof);strcpy(Posit,posit);strcpy(Less,less);Person:Register(name,age,sex);void ShowMe()coutProftPosittLesst;class postgraduate:public Student,public Teacherpublic:void Register(char *classname,int number,char *name,int age,char sex,char *prof,char *posit,char *less)Student:Register(classname,number,name,age,sex);Teacher:Register(name,age,sex,prof,posit,less);void ShowMe()Student:ShowMe();Teacher:ShowMe();int main()Person p1;Student student;Teacher teacher;p1.Register(,18,m);p1.showMe();student.Register(1,7061,18,m);student.ShowMe();teacher.Register(,18,m,yanjiu,);teacher.ShowMe();postgraduate tea;tea.Register(1,7061,18,m,yanjiu,);tea.ShowMe();return 0;P264 3#include#include class Pointpublic:double x,y;public:Point(int =0,int =0);void SetPoint(int ,int );double GetX()return x;double GetY()return y;void Print();Point:Point(int a,int b)SetPoint(a,b);void Point:SetPoint(int a,int b)x=a;y=b;void Point:Print() coutx,y;class Line:public PointPoint EndPoint;double length;public:Line(int a =0,int b=0,int c=0,int d =0):Point(a,b),EndPoint(c,d);double Area()return sqrt(y-EndPoint.y)*(y-EndPoint.y)+(x-EndPoint.x)*(x-EndPoint.x);void Print()coutPoint=;Point:Point();cout=0?r:0);double Circle:GetRadius()return radius;double Circle:Area()return 3.14159*radius*radius;void Circle:Print()coutCenter=;Point:Point();cout;radius=radiusendl;int main()Point p1;Circle c(120,80,10.0);coutPoint p1:;p1.Print();coutnCircle c:;c.Print();coutthe center of circle c:;c.Point:Print();coutnthe area of circle c:c.Area()endl;Line line(0,0,3,4);coutLine:;line.Print();coutn the length :line.Area()endl;return 0;P289 1#include #includeusing namespace std;class Basepublic:virtual void display()coutYYYYYYYYendl;class FirstB:public Basepublic:void display()couthuhuhuhuhuendl;class SecondB:public Basevoid display()couthahahadisplay();ptr=&f1;ptr-display();ptr=&s1;ptr-display();return 0;P289 2#include using namespace std;class Shapepublic:virtual double Area()constreturn 0.0;virtual void PrintShapeName() const=0;virtual void Print() const =0;class Point:public Shapeint x,y;public:Point(int=0,int=0);void SetPoint(int,int);int GetX()return x;int GetY()return y;virtual void PrintShapeName()const coutPoint:;virtual void Print() const;Point:Point(int a,int b)SetPoint(a,b);void Point:SetPoint(int a,int b)x=a;y=b;void Point:Print()constcoutx,y;class Circle:public Pointdouble radius;public:Circle(int x=0,int y=0,double r=0.0);void SetRadius(double);double GetRadius()constreturn radius;double Area()const;void Print()const;void PrintShapeName()constcout=0?r:0);double Circle:Area()constreturn 3.14159*radius*radius;void Circle:Print()constcoutCenter=;Point:Print();cout;radius=radiusendl;class Rectangle:public Pointdouble length,width;public:Rectangle(int x=0,int y=0,double l=0.0,double w=0.0);void SetLength(double);void SetWidth(double);double GetLength()const;double GetWidth()const;double Area()const;void Print()const;void PrintShapeName()constcout=0?l:0);void Rectangle:SetWidth(double w)width=(w=0?w:0);double Rectangle:GetLength()constreturn length;double Rectangle:GetWidth()constreturn width;double Rectangle:Area()constreturn length*width;void Rectangle:Print()constcoutleft Top Vertex=;Point:Print();cout;length=length,wigth=widthendl;class zfangx:public Pointdouble Length;public:zfangx(int x=0,int y=0,double L=0.0);void Setlength(double);double Getlength()const;double Area()const;void Print()const;void PrintShapeName()constcout=0?l:0);double zfangx:Getlength()constreturn Length;double zfangx:Area()constreturn 6*Length*Length;void zfangx:Print()constcoutleft Top Vertex=;Point:Print();cout;length=Lengthendl;class yuanzhu:public CircleCircle cir;double hight;public:yuanzhu(int x=0,int y=0,double c=0.0,double h=0.0);void Sethight(double);double Gethight()const;double Area()const;void Print()constcoutleft Top Vertex=;Circle:Print();cout;hight=hightendl;void PrintShapeName()constcout=0?h:0);double yuanzhu:Gethight()constreturn hight;double yuanzhu:Area()constreturn hight*cir.Area();void virtualviapointer(const Shape *baseclassptr)baseclassptr-PrintShapeName();baseclassptr-Print();coutArea=Area()endl;void virtualviareference(const Shape &baseclassptr)baseclassptr.PrintShapeName();baseclassptr.Print();coutArea=baseclassptr.Area()endl;int main()Point point(30,50);Circle circle(120,80,10.0);Rectangle rectangle(10,10,8.0,5.0);zfangx Zfangx(31,34,10.0);yuanzhu Yuanzhu(30,50,10.0,5.0);point.PrintShapeName();point.Print();coutendl;circle.PrintShapeName();circle.Print();rectangle.PrintShapeName();rectangle.Print();Shape *shape5;shape0=&point;shape1=&circle;shape2=&rectangle;shape3=&Zfangx;shape4=&Yuanzhu;for(int i=0;i5;i+)virtualviapointer(shapei);for(int j=0;j5;j+)virtualviareference(*shapej);return 0;P289 3#include #include using namespace std;class Dateint day,month,year;void IncDay();/int DayCalc() const;/static const int days;/public:Date(int y,int m,int d);/Date(int m,int d);/Date();void SystemDate();void SetDate(int yy,int mm,int dd);void SetDate(int mm,int dd);bool IsLeapYear(int yy) const;/bool IsEndofMonth() const;/void Istoday(int mm,int dd) const;void print_ymd() const;/yy_mm_ddvoid print_mdy() const;/mm_dd_yyconst Date &operator + (int days);/const Date &operator +=(int days);/int operator -(const Date& ymd) const;/add days,modify object;const int Date:days=0,31,28,31,30,31,30,31,31,30,31,30,31;Date:Date(int y,int m,int d)SetDate(y,m,d);Date:Date(int m,int d)SetDate(m,d);Date:Date()SystemDate();void Date:SystemDate()tm *gm;time_t t=time(NULL);gm=gmtime(&t);year=1900+gm-tm_year;month=gm-tm_mon+1;day=gm-tm_mday;void Date:SetDate(int yy,int mm,int dd)month=(mm=1&mm=1900&yy=1&dd=1&dd=1&mmtm_year;if(month=2&IsLeapYear(year)day=(dd=1&dd=1&dd=daysmonth)?dd:1;const Date &Date:operator + (int days)for(int i=0;idays;i+)IncDay();return *this;const Date &Date:operator += (int days)for(int i=0;itm_mon+1)&(dd=gm-tm_mday)coutHappy Birthdaygm-tm_mon+1|(mm=gm-tm_mon+1&ddgm-tm_mday)coutyour birthday havetemp-*thisdaysendl;elsetemp.year=temp.year+1;coutyour birthday havetemp-*thisdaysendl;void Date:IncDay()if(IsEndofMonth()if(month=12)day=1;month=1;year+;elseday=1;month+;else da

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论