面向对象程序设计实验报告.doc_第1页
面向对象程序设计实验报告.doc_第2页
面向对象程序设计实验报告.doc_第3页
面向对象程序设计实验报告.doc_第4页
面向对象程序设计实验报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

信息科学与工程学院面向对象程序设计综合实验报告综 合 实 验 报 告面向对象程序设计专业名称: 班 级:_ 姓 名: 学 号: 信息科学与工程学院二零一三年七月目 录第一题11.1题目概述11.2设计思路11.3设计说明与调试分析21.4编码实现21.5程序运行结果4第二题42.1题目概述42.2设计思路42.3设计说明与调试分析42.4编码实现52.5程序运行结果6设计心得:7参考文献:7信息科学与工程学院面向对象程序设计综合实验报告第一题 1.1题目概述用抽象类设计计算二维平面图形面积的程序,在基类TDshape中设计纯虚函数area()和printName(),area()用于计算机几何图形的面积,printName()用于打印输出几何图形的类名,如Triangle类的对象就打印输出“Triangle”。每个具体形状的类则从抽象类TDshape派生,各自需要定义其独有的数据成员和成员函数,并且定义area()和printName()的具体实现代码,如图5-9所示。TDshapeVirtual area()=0Virtual printName()=0Rectanglearea()printName()getHeight()setHeight()double width,heightTrianglearea()printName()getWitdth()setWidth()double width,height要求编写以TDshape为接口的函数,借以访问具体类如Triangle和Rectangle类的成员函数area(),printName()。1.2设计思路用虚构函数写出基类TDshape,之后创建派生类Trangle、Rectangle,每个派生类都定义double width,height,之后定义area(),printName,每个里面都有cout函数,同时每个派生类都有set和get函数,分别用来给width,height赋值和返回width,height的数值。1.3设计说明与调试分析见代码。1.4编码实现#includeusing namespace std;class TDshapepublic: virtual void area()=0; virtual void printName()=0;class Triangle:public TDshape /公有继承TDshape private: double width,height; /定义私有成员width,height public: void setWidth(double w)width=w; /赋值给width void setHeight(double h)height=h; /赋值给heightdouble getWidth()return width; /返回width的值double getHeight() return height; /返回height的值 void printName() cout该图形是三角形。endl; /输出图形的个名字void area()cout面积是width*height*0.5endl; /计算面积并且输出;class Rectangle:public TDshape /公有继承TDshape private: double width,height; /定义私有成员width,height public: void setWidth(double w)width=w; /赋值给width void setHeight(double h)height=h; /赋值给heightdouble getWidth()return width; /返回width的值double getHeight() return height; /返回height的值 void printName() cout该图形是矩形。endl; /输出图形名称void area()cout面积是width*heightendl; /计算面积并且输出;int main() Rectangle r; Triangle t; r.setHeight(70); /调用Rectangle中的setheight 给height赋值 r.setWidth(60); /调用Rectangle中的setwidth 给width赋值 r.printName(); /调用Rectangle中的printName 打印出图形名称 r.area(); /打印面积。 t.setHeight(70); t.setWidth(60); t.printName(); t.area();1.5程序运行结果第二题2.1题目概述假设有一个工人类,形式如下:class Worker char name10;int age;double salary;public:Worker()void SetData(char *Name,int Age,double wage)void Display() 其中的name表示姓名、age表示年龄、salary表示薪金,构造函数worker()实现各数据成员的初始化,SetData()成员函数用于重置各数据成员的值,Display()用于显示输出各数据成员的值。完成该类的设计,并用STL中的链表list(或向量vector、堆栈stack、队列queue等数据结构)管理该类的对象,要求至少建立两个链表、每个链表中至少存入Worker类的3个对象,通过迭代器访问输出各节点对象的数据成员,并利用链表的merge算法将两个链表合并在一起,然后输出合并后的链表节点对象。2.2设计思路2.3设计说明与调试分析见代码。2.4编码实现#include #include#include #include using namespace std;class Worker /定义Worker类char name10; /姓名 int age; /年龄 double salary; /薪水 public:Worker() Worker(char* n,int a,double s) /构造函数 strcpy(name,n); /把n中的字符复制给name age=a; /a中的数值赋值给age salary=s; /s中的数值赋值给salary void SetData(char *Name,int Age,double wage ) /用于重置的函数 strcpy(name,Name); /把Name中的字符复制给name age=Age; /把Age中的数值赋值给age salary=wage; /把wage中的数赋值给salary void Display() /用于输出的函数 cout姓名:nameendl; cout年龄:ageendl; cout工资:salaryendl; ; int main() listp,q; list:iterator i; Worker a(杨,50,3000); Worker b(孙,44,3500); Worker c; c.SetData(倪,41,5000); p.push_back(&a); q.push_back(&b); for(i=p.begin();i!=p.end();i+) (*i)-Display(); for(i=q.begin();i!=q.end();i+) (*i)-Display(); while(!p.empty() p.pop_front(); cout重置之后的结果 :Display(

温馨提示

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

评论

0/150

提交评论