实验报告2类与对象07赵霞.doc_第1页
实验报告2类与对象07赵霞.doc_第2页
实验报告2类与对象07赵霞.doc_第3页
实验报告2类与对象07赵霞.doc_第4页
实验报告2类与对象07赵霞.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

计 算 机 课 程 实 验 报 告20122013学年度 第一 学期系别:数学与计算机科学学院实验课程C+面向对象程序设计班 级 级计算机科学与技术学 号07姓 名赵霞指导教师马学梅实验题目类和对象日 期2012年 9 月 19 日实验目的及要求1、掌握类的概念以及类的定义方法2、掌握对象的创建方法3、掌握类的构造函数和析构函数的概念和使用方法。4、学习友元的概念和定义5、简单面向对象程序的编写实验内容及具体步骤:内容1:按要求分析程序指出程序运行的结果:1)分析下面的程序,并给出程序运行的结果,写出程序的功能:#includeclass changechar c1,c2;public:void set(char a)c2=(c1=a)-32);void print()coutc1 can be upwritten as c2endl;void main()change a,b;a.set(a);b.set(b);a.print();b.print();结果: 2)分析下面的程序,并给出输出结果:#includeclass pairchar c1,c2;public:void set(char b)c1=1+(c2=b);unsigned where_am_I()return(unsigned)this);void print()coutc1+c2t;void main()pair a,b,c;a.set(A);b.set(B);c.set(C);a.print();coutis at a.where_am_I()n;b.print();coutis at b.where_am_I()n;c.print();coutis at c.where_am_I()n;结果:3)创建一个 Employee 类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。把表示构造函数、 ChangeName() 、 display() 的函数原型放在类定义中,构造函数初始化每个成员, Display() 函数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。 用多文件结构实现: *employee.h* class employee public: employee(char *na,char *street,char *city,char *di,char *po); void changeName(char *); void display(); protected: char *name; char *street; char *city; char *district; char *post; ; *function.cpp* #include #include”employee.h” employee:employee(char *na,char *st,char *ci,char *di,char *po) name=na; street=st; city=ci; district=di; post=po; void employee:changeName(char *na) name=na; void employee:display() coutnameendl; coutstreetendl; coutcityendl; coutdistrictendl; coutpostEndl; *test.cpp* #include”employee.h” void main() employee a1(“WangFei”,”Street 200” ,”Tianjin”,”Zhixiashi”,” 300480” ); a1.display(); a1.changeName(“LiLi”); a1.display(); 结果:内容2:编写并调试程序:1)下面是一个类的测试程序,给定主函数,请写出类的定义,构成一个完整的程序,使执行程序后输出结果为:88-32=56给定的主函数为:void main()Tst t;t.init(88,32);t.print();2)编程分析由主函数可知,要创建的类名为Tst,一个类对象为t,类中含有两个公有成员函数init()和print(),利用函数init()对两个私有成员数据赋值,即为减数与被减数的数值,为了程序的实现需要定义第三个成员数据作为减法之差。3)源程序#includeclass Tstint c1,c2,a;public:void init(int c,int b)a=(c1=c)-(c2=b);void print()coutc1-c2=aendl; ;void main() Tst t; t.init(88,32); t.print();4)运行结果(4)#include class Point /定义一个Point 类; int x,y ; /定义类的私有成员;public: Point( );/定义一个无参的构造函数;Point(int a ,int b=4 );/Point的含有参数的构造函数void output();/类的成员变量;Point(); ; Point:Point( ) coutconstructor noparameter!endl; Point:Point( int a, int b )x=a;y=b;void Point:output()coutx=x,y=yendl; Point:Point()coutdestructor!endl; void main()Point pt1 ; Point pt2(5); Point pt3(8,7);pt1.output();pt2.output();pt3.output();5)调试情况分析6)实验结论:内容3、图形类设计 设计三个图形类:Circle(圆)、Retangle(矩形)、Triangle(三角形)1、Circle类基本信息:圆心坐标、半径Retangle类基本信息:长、宽Triangle类基本信息:三个顶点坐标;其中:成员变量为private属性,成员函数为public属性;2、每个图形类有多个构造函数:缺省构造函数、带参数的构造函数;3、每个图形类有计算图形面积GetArea(),显示图形的基本信息函数Show(),修改基本信息的函数Set(形参)。以Circle类为例:通过GetArea()计算圆的面积,Show()函数中显示圆心坐标、直径、面积等基本信息;Set(int x, int y, int r)函数可以修改圆心坐标和半径。【实验提示】1、注意多个构造函数的声明方式与定义实现;2、当输入数据为不合理数据时(例如:输入的三角形的顶点是否能组成一个三角形),提示用户输入错误;【测试数据】1、Circle类测试数据:圆心坐标:(20,30) 半径: 5 (-20,40) 30 (40,-10) -52、Retangle类测试数据:长: 20 宽:50 40 5 -9 10 43 -83、Triangle类测试数据:三个顶点坐标: (20,30)、(40,50)、(40,20) (10,10)、(50,10)、(35,10)#include using namespace std; /定义抽象基类Shape class Shape public: virtual double area() const =0; /纯虚函数 ; /定义Circle类 class Circle:public Shape public: Circle(double r):radius(r) virtual double area() const return 3.14159*radius*radius; protected: double radius; ; /定义Rectangle类 class Rectangle:public Shape public: Rectangle(double w,double h):width(w),height(h) virtual double area() const return width*height; protected: double width,height; ; /定义Triangle类class Triangle:public Shape public: 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 c1(12.6),c2(5.0); /建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(20.0,50.0),r2(40.0,5.0); /建立Rectangle类对象r1,r2,参数为矩形长、宽 Triangle t1(30.0,10.0),t2(40.0,15.0); /建立Tria

温馨提示

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

评论

0/150

提交评论