C++项目分块示例.doc_第1页
C++项目分块示例.doc_第2页
C++项目分块示例.doc_第3页
C++项目分块示例.doc_第4页
C++项目分块示例.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

学生学号0121508900213实验课成绩武汉理工大学学 生 实 验 报 告 书实验课程名称 高级语言程序设计 开 课 学 院 计算机科学与技术学院 指导老师姓名 段鹏飞 学 生 姓 名 吕世豪 学生专业班级 软件zy1501 2016 2017 学年 第 2 学期实验课程名称: 高级语言程序设计 实验项目名称类的设计与对象使用实验成绩实验者吕世豪 专业班级软件zy1501组别同组者实验日期第一部分:实验分析与设计(可加页)一、 实验内容描述(问题域描述)1下面的程序在编译时会出错,请修改程序,使之能正确运行。然后得到的正确程序分成3个文件。文件MyClass.h包括类的定义,文件MyClass.cpp包括类成员函数的实现,文件App.cpp包括类的使用。调试、运行该程序,使之获得正确结果。2已知两个矩形的长和宽,用面向对象的概念编程求它们的面积和周长。假设矩形 1 的长和宽分别为 20 和 50;矩形 2 的长和宽分别为 3.6 和 4.5。(先定义矩形类再实例化两个对象)3. (1)为IntArray加上析构函数并编译运行程序,体会类的构造函数和析构函数的作用。(2)程序中,类IntArray的三个构造函数都是以相似的方式来实现的。一般来说,当两个或多个函数重复相同的代码时,可将这部分代码抽取出来,形成独立的函数,以便共享。以后如果需要改变这些实现,则只需改变一次,而且这种实现的共享本质更容易为大家所理解。怎样把构造函数中的代码抽取出来形成独立的共享函数呢?请给出一种可能的实现。按你给出的实现方法修改程序并重新编译运行。4. 试定义一个三角形Triangle类,在Triangle类中以点myPoint类的3个对象p1、p2、p3作为数据成员,表示三角形的三个顶点。Triangle类具有计算三角形的周长和面积的功能。请编写程序上机调试并运行。二、 实验基本原理与设计(流程图与程序)1/MyClass.hclass MyClass public: MyClass() x=0;y=0; MyClass(int a,int b); Print(); private: int x,y; ;/MyClass.cpp#includeMyClass.h#includeMyClass:MyClass(int a,int b) x = a; y = b; MyClass:Print() std:cout x = x std:endl; std:cout y = y std:endl; /main.cpp#include #includeMyClass.cppusing namespace std; int main() MyClass obj1(1,3),obj2(5,8);obj1.Print();obj2.Print();return 0;2/Triangle.hclass Trangleprivate:int x,y;public:Trangle();Trangle(int a,int b);area();length();/Triangle.cpp#include Trangle.h#includeTrangle:Trangle()x=0;y=0;Trangle:Trangle(int a,int b)x=a;y=b;Trangle:area()return x*y;Trangle:length()return 2*(x+y);/main.cpp#include #include Trangle.cppint main(int argc, char* argv) Trangle A(20,50);Trangle B(3.6,4.5);std:coutA的面积:A.area() A的周长:A.length()std:endl;std:coutB的面积:B.area() B的周长:B.length()std:endl;return 0;3. #include #includeusing namespace std; class IntArray public:IntArray(int sz); / 数组初始化为sz个元素,初值全为0 IntArray( int *array, int sz ) ; / 用静态数组array的前sz个元素初始化新数组 IntArray( const IntArray &rhs ) ; / 拷贝构造函数 IntArray() cout析构函数被调用endl; InitIa(int *a,int sz); void printAll(); private:int *ia;int size;IntArray:InitIa(int *a, int sz) size = sz; ia = new intsz; if(NULL = a) memset(ia , 0, sizeof(int)*sz); else for(int i = 0; i sz; i+) iai = ai; IntArray:IntArray( int sz ) InitIa(NULL,sz);IntArray:IntArray( int *array, int sz ) InitIa(array,sz);IntArray:IntArray( const IntArray &rhs ) InitIa(rhs.ia,rhs.size);void IntArray:printAll() for ( int ix=0; ix size; +ix ) coutiaix ; coutendl;int main()int a10=1,2,3,4,5,6,7,8,9,10;IntArray arr1(10), arr2(a,5),arr3(arr2);arr1.printAll();arr2.printAll();arr3.printAll();return 0;4. #include #include class myPoint public: myPoint(double x0=0.0,double y0=0.0):x(x0),y(y0) myPoint(myPoint &np):x(np.x),y(np.y) double GetX() return x; double GetY() return y; void SetX(double x0) x=x0; void SetY(double y0) x=y0; void SetPoint(double x0,double y0) x=x0;y=y0; void SetPoint(myPoint &np) x=np.x; y=np.y; double GetLength(myPoint p) return sqrt(x-p.x)*(x-p.x) +(y-p.y)*(y-p.y); void Printit() std:cout (x,y) ;private: double x ,y;class Trianglepublic:double GetLength(myPoint p1,myPoint p2,myPoint p3)return (p1.GetLength(p2)+p2.GetLength(p3)+p3.GetLength(p1);double GetArea(myPoint p1,myPoint p2,myPoint p3)double a,b,c,s,area;a=p1.GetLength(p2);b=p2.GetLength(p3);c=p3.GetLength(p1);s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);return area;int main(int argc, char* argv) myPoint a(0,0),b(3,0),c(0,4);Triangle t;std:coutarea=t.GetArea(a,b,c)std:endl;std:coutlength=t.GetLength(a,b,c)std:endl;return 0;三、主要仪器设备及耗材1PC机2开发环境(比如:VC,Eclipse)第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)实验一:只需要稍微修改一点程序。实验二:写出来的程序没有错误就可以了。实验三:了解构造函数还有析构函数。实验四:通过类的定义,函数的运用,试调过后,就可以运行。二、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)1结果描述 实验一:如图为实验输出。实验二:如图实验三:如图实验四:如图2实验现象分析实验现象如上面图片所示。实验能够正确的运行,并且可以得到自己所想要的结果。3影响因素讨论我认为影响的只是数据不同可能会得出不同的结果,还有就是可能有些地方函数调用有错误,从而引起实验的错误,或者开发环境有问题。4算法分析(包括时间和空间)实验一:简单的实验,只要把已经给出的代码放到不同的头文件就可以了。 实验二:求矩形的面积和周长,直接可以用简单的数学思维想就可以了,周长等于:2(a+b) 面积等于ab。 实验三:主要是要了解构造函数和析构函数的作用,只要了解了,函数很简单。 实验四:周长和面积的算法如上图所示,主要算法,重要知道在坐标上知道三个顶点如何求三角形的面积和周长就可以。5结论了解

温馨提示

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

最新文档

评论

0/150

提交评论