C++编程.doc_第1页
C++编程.doc_第2页
C++编程.doc_第3页
C++编程.doc_第4页
C++编程.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

实验三:编写一个构造三角形的应用程序,让用户输入三角形三边的长度,然后程序确定这个三角形是直角三角形还是等边三角形。需要定义一个代表三角形的类和主函数。#includeusing namespace std;class Trigonprivate:int a;int b;int c;public:void set();void Trigon:set()cina;cinb;cinc;int main()Trigon t1;int a,b,c;t1.set();if(a+b)=c|(a+c)=b|(b+c)=a) cout不能构成三角形endl;elseif(a*a+b*b)=c*c|(b*b+c*c)=a*a|(a*a+c*c)=b*b) cout构成直角三角形endl; if(a=b|b=c|a=c) cout构成等边三角形endl;return 0;实验四:电子时钟#includeusing namespace std;class Timepublic:Time()hour=0;minute=0;sec=0;Time operator+();void set_time();void show_time();private:int hour;int minute;int sec;void Time:set_time()cinhour;cinminute;cinsec;void Time:show_time()couthour:minute:sec=60)sec-=60;+minute;if(minute=60)minute=minute-60;hour+=1;if(hour=12)hour=hour-12;return*this;int main()Time t1;t1.set_time();for(int i=0;i60;i+)+t1;t1.show_time();return 0;实验五:创建点类 Point ,包含两个数据成员x,y和构造函数、析构函数,获取x,y值的函数等。 为point类添加一个友元函数,使其能计算两点间的距离。#include#includeusing namespace std;class Pointprivate:int x;int y;public:void set();void display();friend float Distance(Point&a,Point&b); /友元函数声明Point();Point();Point:Point()x=0;y=0;float Distance(Point&p1,Point&p2) /友元函数定义,形参double m=double(p1.x-p2.x); double n=double(p1.y-p2.y);return float(sqrt(m*m+n*n);void Point:set()cinx;ciny;void Point:display()coutxendl;coutyendl;int main()Point p1,p2;p1.set();p2.set();p1.display();p2.display();coutDistance(p1,p2)endl;return 0;实验六:重载双目运算符#include class Timepublic: Time()minute=0;sec=0; Time(int m,int s):minute(m),sec(s) Time operator+(); /声明前置自增+重载函数 Time operator+(int); /声明后置自增+重载 friend istream&operator(istream&,Time&); friend ostream&operator=60) sec-=60; +minute; return *this;Time Time:operator+(int)Time temp(*this); /保存当前对象 sec+; if (sec=60) sec-=60; +minute;return temp;istream&operator(istream&input,Time&t)inputt.minutet.sec;return input; ostream&operator(ostream&output,Time&t)outputt.minutet.secendl; return output; int main()Time time1(34,59),time2; cout time1 : ; couttime1endl; +time1; cout+time1: ; cout time1endl; time2=time1+; couttime1+: ; couttime1endl; cout time2 : ; cout time2endl; return 0; 实验七:重载单目运算符#includeusing namespace std;class Pointprivate:int x;int y;public:void set();void display();Point();Point operator+();Point operator-();Point:Point()x=0;y=0;void Point:set()cinx;ciny;void Point:display()coutxendl;coutyendl;Point Point:operator+()x=x+1;y=y+1;return *this;Point Point:operator-()x=x-1;y=y-1;return *this;int main()Point p1;p1.set();p1.display();+p1;p1.display();-p1;p1.display();return 0;实验八:定义基类point,它包含两个整型数据成员x、y 和一个成员函数display(),输出其坐标值; 把圆circle定义为点point类的派生类,它在点point的基础上增加一个数据成员radius; 并增加输出成员函数 display()用于输出圆心坐标和半径的值;求面积成员函数area(),求出该圆的面积。#includeusing namespace std;class Pointprotected:int x;int y;public:void set()cinxy;void display()cout(x,y)r;void display1() display();coutr 3.14*r*rendl;double area()return(3.14*r*r); ;int main()circle circle1;circle1.set1();circle1.display1();return 0;实验九:将5.8节程序补充完整,在程序中使用继承和组合。#include /习题5-10#include using namespace std;class Teacher /教师类 public: Teacher(int,char ,char); /声明构造函数 void display(); /声明输出函数 private: int num; char name20; char sex; ;Teacher:Teacher(int n,char nam,char s) num=n; strcpy(name,nam); sex=s;void Teacher:display() /定义输出函数 coutnum:numendl; coutname:nameendl; coutsex:sexendl;class BirthDate /生日类 public: BirthDate(int,int,int); /声明构造函数 void display(); /声明输出函数 void change(int,int,int); /声明修改函数 private: int year; int month; int day;BirthDate:BirthDate(int y,int m,int d) /定义构造函数 year=y; month=m; day=d; void BirthDate:display() /定义输出函数 coutbirthday:month/day/yearendl; void BirthDate:change(int y,int m,int d) /定义修改函数 year=y; month=m; day=d; class Professor:public Teacher/教授类 public: Professor(int,char ,char,int,int,int,float); /声明构造函数 void display(); /声明输出函数 void change(int,int,int); /声明修改函数 private: float area; BirthDate birthday; /定义BirthDate类的对象作为数据成员 ;Professor:Professor(int n,char nam20,char s,int y,int m,int d,float a):Teacher(n,nam,s),birthday(y,m,d),area(a) /定义构造函数void Professor:display() /定义输出函数Teacher:display(); birthday.display(); coutarea:areaendl;void Professor:change(int y,int m,int d) /定义修改函数 birthday.change(y,m,d); int main()Professor prof1(3012,Zhang,f,1949,10,1,125.4); /定义Professor对象prof1 coutendloriginal data:endl; prof1.display(); /调用prof1对象的display函数 coutendlnew data:endl; prof1.change(1950,6,1); /调用prof1对象的change函数 prof1.display(); return 0;实验十:根据提示,设计相关的各个类。#include class Pet public: virtual void speak() cout不知哪种动物,让我如何学叫?endl; ; class Mouse:public Petpublic:virtual void speak() cout我叫Jerry,是一只老鼠,我的叫声是:吱吱吱!endl; public:Mouse(char n30) name20=n30; private: char name30;class Cat:public Petpublic:virtual void speak() cout我叫Tom,是一只猫,我的叫声是:喵喵喵! endl;Cat(char n30)name30=n30;private:char name30;class Dog:public Petpublic:virtual void speak() cout我叫Droopy,是一条狗,我的叫声是:汪汪汪! endl; Dog(char n30) name30=n30;private:char name30;class Giraffe:public Petpublic:virtual void speak() cout我叫Gill,是长颈鹿,脖子太长,发不出声音来! speak(); /输出: 不知哪种动物,让我如何学叫? Mouse m1(Jerry); p=&m1; p- speak(); /输出: 我叫Jerry,是一只老鼠,我的叫声是:吱吱吱! Cat c(Tom); p=&c; p- speak(); /输出: 我叫Tom,是一只猫,我的叫声是:喵喵喵! Dog d1(Droopy); p=&d1; p- speak(); /输出: 我叫Droopy,是一条狗,我的叫声是:汪汪汪! Giraffe g(Gill); p=&g; p- speak(); /输出: 我叫Gill,是长颈鹿,脖子太长,发不出声音来! return 0; 实验十一:在例题6.4的基础上 添加一point类的派生类rectangle。为其添加数据成员width、 length 和成员函数 area() .并把area加入虚函数序列.#include class Shapepublic: virtual float area() constreturn 0.0; virtual float volume() constreturn 0.0; virtual void shapeName() const =0;class Point:public Shapepublic: Point(float x=0,float y=0); void setPoint(float,float); float getX() const return x; float getY() const return y; virtual void shapeName() const coutPoint:; friend ostream &operator (ostream &,const Point &);protected: float x,y;Point:Point(float a,float b) x=a;y=b;void Point:setPoint(float a,float b) x=a;y=b;ostream &operator (ostream &output,const Point &p) outputp.x,p.y; return output;class Circle:public Pointpublic: Circle(float x=0,float y=0,float r=0); void setRadius(float); float getRadius() const; virtual float area() const; virtual void shapeName() const coutCircle:; friend ostream & operator(ostream &,const Circle &);protected: float radius;Circle:Circle(float x,float y,float r):Point(x,y),radius(r)void Circle:setRadius(float r)radius=r;float Circle:getRadius() const return radius;float Circle:area() const return 3.14159*radius*radius;ostream & operator (ostream &output,const Circle &c) outputc.x,c.y,r=c.radius; return output;class Cylinder:public Circlepublic: Cylinder(float x=0,float y=0,float r=0,float h=0); void setHeight(float); virtual float area() const; virtual float volume() const; virtual void shapeName() const coutCylinder:; friend ostream & operator (ostream &,const Cylinder &);protected: float height;Cylinder:Cylinder(float a,float b,float r,float h):Circle(a,b,r),height(h)void Cylinder:setHeight(float h)height=h;float Cylinder:area() const return 2*Circle:area()+2*3.14159*radius*height;float Cylinder:volume() const return Circle:area()*height;ostream & operator(ostream &output,const Cylinder &cy) outputcy.x,cy.y,r=cy.radius,h=cy.height; return output;class Rectangle:public Pointpublic: Rectangle(float l=0,float w=0); void setLength(float); float getLength() const; void setWidth(float); float getWidth() const; virtual float area() const; virtual void shapeName() const coutRectangle:; friend ostream & operator(ostream &,const Rectangle &);protected: float length,width;Rectangle:Rectangle(float l,float w):length(l),width(w)void Rectangle:setLength(float l)length=l;float Rectangle:getLength() const return length;

温馨提示

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

评论

0/150

提交评论